FireBirdLib - Topfield TMS PVR TAP Programming Library
HDD_TAP_Callback.c
Go to the documentation of this file.
1#include "FBLib_tap.h"
2
3dword HDD_TAP_Callback(dword TAPID, void *ProcedureAddress, dword param1, dword param2, dword param3, dword param4)
4{
6
7 dword Ret = 0;
8 dword *curTapTask;
9
10 dword (*Callback)(dword param1, dword param2, dword param3, dword param4) = NULL;
11
12 if(TAPID)
13 {
14 curTapTask = (dword*)FIS_vCurTapTask();
15
16 if(!curTapTask || (!LibInitialized && !InitTAPex()))
17 {
18 TRACEEXIT();
19 return 0;
20 }
21
22 int Index = HDD_TAP_GetIndexByID(TAPID);
23 if(Index < 0 || Index >= TAP_MAX)
24 {
25 TRACEEXIT();
26 return 0;
27 }
28
29 Callback = ProcedureAddress;
30 *curTapTask = Index;
31 Ret = Callback(param1, param2, param3, param4);
32 *curTapTask = TAP_TableIndex;
33 }
34
35 TRACEEXIT();
36 return Ret;
37}
bool LibInitialized
Definition: InitTAPex.c:8
dword FIS_vCurTapTask(void)
dword HDD_TAP_Callback(dword TAPID, void *ProcedureAddress, dword param1, dword param2, dword param3, dword param4)
bool InitTAPex(void)
Definition: InitTAPex.c:10
#define TAP_MAX
Definition: libFireBird.h:60
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
int HDD_TAP_GetIndexByID(dword TAPID)
dword TAP_TableIndex
Definition: InitTAPex.c:7