char *GetRecExtension(void) { TRACEENTER(); dword i; tToppyInfo *ToppyInfo; tFWDATHeader *FWDatHeader; static char *RecExtension = NULL; if(RecExtension == NULL) { if(LoadFirmwareDat(&FWDatHeader, &ToppyInfo, NULL)) { for(i = 0; i < FWDatHeader->NrOfToppyInfoEntries; i++, ToppyInfo++) { if(ToppyInfo->SysID == TAP_GetSystemId()) { switch(ToppyInfo->RecExtension) { case 0: RecExtension = ".rec"; break; case 1: RecExtension = ".mpg"; break; default: break; } break; } } } } TRACEEXIT(); return RecExtension ? RecExtension : ".rec"; }
word GetSysID(void) { TRACEENTER(); word ret = TAP_GetSystemId(); TRACEEXIT(); return ret; }
bool KeyTranslate(bool Enable, void *EventHandler) { tTMSTAPTaskTable *TMSTAPTaskTable; dword i; tToppyInfo *ToppyInfo; tFWDATHeader *FWDatHeader; TRACEENTER(); //Get toppy information if(LoadFirmwareDat(&FWDatHeader, &ToppyInfo, NULL)) { for(i = 0; i < FWDatHeader->NrOfToppyInfoEntries; i++, ToppyInfo++) { if(ToppyInfo->SysID == TAP_GetSystemId()) { RemoteType = ToppyInfo->RemoteType; break; } } } //Get the address to the TAP table TMSTAPTaskTable = (tTMSTAPTaskTable*)FIS_vTAPTable(); if(!TMSTAPTaskTable) { TRACEEXIT(); return FALSE; } //The curTapTask variable is not thread safe. Call InitTAPex() if this function will be called from a sub thread if(TAP_TableIndex == 0xffffffff) { dword *curTapTask; curTapTask = (dword*)FIS_vCurTapTask(); if(!curTapTask) { TRACEEXIT(); return -3; } TAP_TableIndex = *curTapTask; } if(Enable && (TMSTAPTaskTable[TAP_TableIndex].TAP_EventHandler == (dword)EventHandler)) { Original_TAP_EventHandler = (void*)TMSTAPTaskTable[TAP_TableIndex].TAP_EventHandler; TMSTAPTaskTable[TAP_TableIndex].TAP_EventHandler = (dword)&KeyTranslateHook; TRACEEXIT(); return TRUE; } else if(!Enable && (TMSTAPTaskTable[TAP_TableIndex].TAP_EventHandler == (dword)KeyTranslateHook)) { TMSTAPTaskTable[TAP_TableIndex].TAP_EventHandler = (dword)Original_TAP_EventHandler; Original_TAP_EventHandler = NULL; TRACEEXIT(); return TRUE; } TRACEEXIT(); return FALSE; }