mmvari/FSK8250/fsk8250.cpp
2013-07-05 15:09:45 -05:00

86 lines
2.2 KiB
C++

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
//---------------------------------------------------------------------------
extern "C" void __declspec(dllexport) __stdcall extfskClose(void);
//---------------------------------------------------------------------------
USEFORM("Main.cpp", ComFSK);
//---------------------------------------------------------------------------
TComFSK *g_pMain;
//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
switch(reason){
case DLL_PROCESS_ATTACH:
g_pMain = NULL;
memset(&sys, 0, sizeof(sys));
::GetModuleFileName(hinst, sys.m_ModuleName, sizeof(sys.m_ModuleName));
::SetDirName(sys.m_BgnDir, sys.m_ModuleName);
sys.m_dwVersion = ::GetVersion();
sys.m_WinNT = (sys.m_dwVersion < 0x80000000) ? TRUE : FALSE;
break;
case DLL_PROCESS_DETACH:
extfskClose();
break;
}
return 1;
}
//---------------------------------------------------------------------------
extern "C" LONG __declspec(dllexport) __stdcall
extfskOpen(LONG para)
{
extfskClose();
g_pMain = new TComFSK(NULL);
ASSERT(g_pMain);
if( g_pMain != NULL ){
g_pMain->SetPara(para);
g_pMain->Show();
return TRUE;
}
else {
return FALSE;
}
}
//---------------------------------------------------------------------------
extern "C" void __declspec(dllexport) __stdcall
extfskClose(void)
{
if( g_pMain != NULL ){
g_pMain->Close();
delete g_pMain;
g_pMain = NULL;
}
}
//---------------------------------------------------------------------------
extern "C" LONG __declspec(dllexport) __stdcall
extfskIsTxBusy(void)
{
if( g_pMain == NULL ) return FALSE;
return g_pMain->IsBusy();
}
//---------------------------------------------------------------------------
extern "C" void __declspec(dllexport) __stdcall
extfskPutChar(BYTE c)
{
if( g_pMain == NULL ) return;
g_pMain->PutChar(c);
}
//---------------------------------------------------------------------------
extern "C" void __declspec(dllexport) __stdcall
extfskSetPTT(LONG tx)
{
if( g_pMain == NULL ) return;
g_pMain->SetPTT(tx & 1, TRUE);
}