1 /*---------------------------------------------------------------------------*
2   Project:  TwlSDK - tools - loadrun
3   File:     isd_api.h
4 
5   Copyright 2005-2008 Nintendo. All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain
8   proprietary information of Nintendo of America Inc. and/or Nintendo
9   Company Ltd., and are protected by Federal copyright law. They may
10   not be disclosed to third parties or copied or duplicated in any form,
11   in whole or in part, without the prior written consent of Nintendo.
12 
13   $Date:: 2008-09-18#$
14   $Rev: 8573 $
15   $Author: okubata_ryoma $
16  *---------------------------------------------------------------------------*/
17 #ifndef NITRO_LOADRUN_ISD_API_H_
18 #define NITRO_LOADRUN_ISD_API_H_
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #if 0
25 extern NITROTOOLAPI_FINDOPEN NITROToolAPIFindOpen;
26 extern NITROTOOLAPI_FINDNEXT NITROToolAPIFindNext;
27 extern NITROTOOLAPI_FINDCLOSE NITROToolAPIFindClose;
28 extern NITROTOOLAPI_DEVSELECTOR NITROToolAPISelector;
29 
30 extern NITROTOOLAPI_OPEN NITROToolAPIDeviceOpen;
31 extern NITROTOOLAPI_CHECKCONNECT NITROToolAPICheckConnect;
32 extern NITROTOOLAPI_CLOSE NITROToolAPIDeviceClose;
33 
34 extern NITROTOOLAPI_RESET NITROToolAPIReset;
35 extern NITROTOOLAPI_READROM NITROToolAPIReadROM;
36 extern NITROTOOLAPI_WRITEROM NITROToolAPIWriteROM;
37 extern NITROTOOLAPI_SYNCWRITE NITROToolAPISyncWriteROM;
38 extern NITROTOOLAPI_SYNCREAD NITROToolAPISyncReadROM;
39 extern NITROTOOLAPI_ROMSIZE NITROToolAPIGetROMSize;
40 extern NITROTOOLAPI_SETSYNCTIMEOUT NITROToolAPISetSyncTimeout;
41 extern NITROTOOLAPI_CHECKPOWER NITROToolAPIGetPowerStatus;
42 extern NITROTOOLAPI_CARDSLOTPOWER NITROToolAPICardSlotPower;
43 extern NITROTOOLAPI_CARTRIDGESLOTPOWER NITROToolAPICartridgeSlotPower;
44 
45 // Stream base data transmission
46 extern NITROTOOLAPI_STREAMWRITE NITROToolAPIStreamWrite;
47 extern NITROTOOLAPI_STREAMGETWRITABLELEN NITROToolAPIStreamGetWritableLength;
48 extern NITROTOOLAPI_STREAMSETCB NITROToolAPISetReceiveStreamCallBackFunction;
49 extern NITROTOOLAPI_STREAMCHKRECV NITROToolAPICheckStreamReceive;
50 
51 // For getting debug print
52 extern NITROTOOLAPI_GETDEBUGPRINT NITROToolAPIGetDebugPrint;
53 
54 // For getting errors
55 extern NITROTOOLAPI_GETLASTERROR NITROToolAPIGetLastError;
56 extern NITROTOOLAPI_GETERRORMESSAGE NITROToolAPIGetErrorMessage;
57 #endif
58 
59 // Public functions
60 extern NITROTOOLAPI_FINDOPEN ISNTD_FindOpen;
61 extern NITROTOOLAPI_FINDNEXT ISNTD_FindNext;
62 extern NITROTOOLAPI_FINDCLOSE ISNTD_FindClose;
63 extern NITROTOOLAPI_DEVSELECTOR ISNTD_Selector;
64 extern NITROTOOLAPI_OPEN ISNTD_DeviceOpen;
65 extern NITROTOOLAPI_CHECKCONNECT ISNTD_CheckConnect;
66 extern NITROTOOLAPI_CLOSE ISNTD_DeviceClose;
67 extern NITROTOOLAPI_WRITEROM ISNTD_WriteROM;
68 extern NITROTOOLAPI_READROM ISNTD_ReadROM;
69 extern NITROTOOLAPI_RESET ISNTD_Reset;
70 extern NITROTOOLAPI_SYNCWRITE ISNTD_SyncWriteROM;
71 extern NITROTOOLAPI_SYNCREAD ISNTD_SyncReadROM;
72 extern NITROTOOLAPI_STREAMWRITE ISNTD_StreamWrite;
73 extern NITROTOOLAPI_STREAMGETWRITABLELEN ISNTD_StreamGetWritableLength;
74 extern NITROTOOLAPI_STREAMSETCB ISNTD_SetReceiveStreamCallBackFunction;
75 extern NITROTOOLAPI_STREAMCHKRECV ISNTD_StreamCheckStreamReceive;
76 extern NITROTOOLAPI_SETSYNCTIMEOUT ISNTD_SetSyncTimeOut;
77 extern NITROTOOLAPI_GETDEBUGPRINT ISNTD_GetDebugPrint;
78 extern NITROTOOLAPI_ROMSIZE ISNTD_GetROMSize;
79 extern NITROTOOLAPI_CHECKPOWER ISNTD_GetPowerStatus;
80 extern NITROTOOLAPI_CARDSLOTPOWER ISNTD_CardSlotPower;
81 extern NITROTOOLAPI_CARTRIDGESLOTPOWER ISNTD_CartridgeSlotPower;
82 extern NITROTOOLAPI_GETLASTERROR ISNTD_GetLastError;
83 extern NITROTOOLAPI_GETERRORMESSAGE ISNTD_GetLastErrorMessage;
84 
85 
86 //---- Device type
87 #define ISNTD_DEVICE_NONE                   0
88 #define ISNTD_DEVICE_CGB_EMULATOR_USB       1
89 #define ISNTD_DEVICE_CGB_EMULATOR_SCSI      2
90 #define ISNTD_DEVICE_IS_NITRO_EMULATOR      3
91 #define ISNTD_DEVICE_IS_NITRO_UIC           4
92 #define ISNTD_DEVICE_UNKNOWN                5
93 
94 typedef struct ISNTDDevice ISNTDDevice;
95 struct ISNTDDevice
96 {
97     NITRODEVICEID ntdId;
98     int     type;
99     int     host;
100     int     serial;
101 };
102 
103 
104 /*---------------------------------------------------------------------------*
105   Name:         ISNTD_InitDll
106 
107   Description:  Initializes DLL.
108 
109   Arguments:    None.
110 
111   Returns:      TRUE   if success
112  *---------------------------------------------------------------------------*/
113 extern BOOL ISNTD_InitDll(void);
114 
115 /*---------------------------------------------------------------------------*
116   Name:         ISNTD_FreeDll
117 
118   Description:  Frees DLL module.
119 
120   Arguments:    None.
121 
122   Returns:      TRUE   if success
123  *---------------------------------------------------------------------------*/
124 extern BOOL ISNTD_FreeDll(void);
125 
126 
127 /*---------------------------------------------------------------------------*
128   Name:         ISNTD_GetDeviceList
129 
130   Description:  Gets connecting device list.
131 
132   Arguments:    deviceList: Pointer of list
133                 deviceMax: Max number of list
134 
135   Returns:      -1 if FAIL
136                 >=0 value is num of device that is connected
137  *---------------------------------------------------------------------------*/
138 extern int ISNTD_GetDeviceList(ISNTDDevice * deviceList, int deviceMax);
139 
140 
141 #ifdef __cplusplus
142 } /* extern "C" */
143 #endif
144 
145 /* NITRO_LOADRUN_ISD_API_H_ */
146 #endif
147