Fixed compatibility of output.
[AROS.git] / rom / usb / classes / camdmidi / camdusbmidi.h
blob34fdc85b8e9384dd16270c2788910b8f7b9a28ea
1 #ifndef CAMDUSBMIDI_H
2 #define CAMDUSBMIDI_H
4 #include <intuition/intuition.h>
5 #include <intuition/intuitionbase.h>
6 #include <libraries/mui.h>
7 #include <libraries/gadtools.h>
9 #define ID_ABOUT 0x55555555
10 #define ID_STORE_CONFIG 0xaaaaaaaa
12 struct ClsGlobalCfg
14 ULONG cgc_ChunkID;
15 ULONG cgc_Length;
18 struct CAMDAdapter
20 APTR ca_ActivateFunc; /* activate function -- filled by CAMD Driver */
21 BOOL ca_IsOpen; /* TRUE if opened */
22 struct Hook ca_CAMDRXFunc; /* RX function in CAMD driver */
23 struct Interrupt ca_CAMDTXFunc; /* TX function in CAMD driver (internal) */
24 ULONG ca_PortNum; /* Port Number -- filled by OpenPort() */
25 APTR ca_TXFunc; /* TX Function -- filled by OpenPort() */
26 APTR ca_RXFunc; /* RX Function -- filled by OpenPort() */
27 APTR ca_UserData; /* Handler user data -- filled by OpenPort() */
28 UBYTE *ca_TXBuffer; /* Ringbuffer to send data (to USB) */
29 ULONG ca_TXBufSize; /* Size of ringbuffer */
30 ULONG ca_TXWritePos; /* Writing position */
31 ULONG ca_TXReadPos; /* Bytes already sent */
32 struct MsgPort *ca_MsgPort; /* Pointer to MsgPort to signal task for TX data ready */
33 BOOL ca_SysExMode; /* is in SysEx sending mode */
34 ULONG ca_SysExData; /* three bytes of sysex information */
35 UWORD ca_SysExNum; /* number of sysex bytes */
38 struct NepHidBase
40 struct Library nh_Library; /* standard */
41 UWORD nh_Flags; /* various flags */
42 struct Library *nh_UtilityBase; /* utility base */
43 struct List nh_Bindings; /* List of bindings created */
45 struct Library *nh_MUIBase; /* MUI master base */
46 struct Library *nh_PsdBase; /* Poseidon base */
47 struct Library *nh_IntBase; /* Intuition base */
48 struct Task *nh_GUITask; /* GUI Task */
50 struct ClsGlobalCfg nh_CurrentCGC;
51 BOOL nh_UsingDefaultCfg;
53 struct CAMDAdapter nh_CAMDAdapters[16];
55 Object *nh_App;
56 Object *nh_MainWindow;
57 Object *nh_UseObj;
58 Object *nh_CloseObj;
60 Object *nh_AboutMI;
61 Object *nh_UseMI;
62 Object *nh_MUIPrefsMI;
65 struct NepClassHid
67 struct Node nch_Node; /* Node linkage */
68 struct NepHidBase *nch_ClsBase; /* Up linkage */
69 struct Library *nch_Base; /* Poseidon base */
70 struct PsdDevice *nch_Device; /* Up linkage */
71 struct PsdConfig *nch_Config; /* Up linkage */
72 struct PsdInterface *nch_Interface; /* Up linkage */
73 struct PsdPipe *nch_EP0Pipe; /* Endpoint 0 pipe */
74 struct PsdEndpoint *nch_EPIn; /* Endpoint 1 */
75 struct PsdPipe *nch_EPInPipe; /* Endpoint 1 pipe */
76 struct PsdEndpoint *nch_EPOut; /* Endpoint 2 */
77 struct PsdPipe *nch_EPOutPipe; /* Endpoint 2 pipe */
78 UBYTE *nch_EPInBuf; /* Packet buffer for EP1 */
79 UBYTE *nch_EPOutBuf; /* Packet buffer for EP2 */
80 struct Task *nch_ReadySigTask; /* Task to send ready signal to */
81 LONG nch_ReadySignal; /* Signal to send when ready */
82 struct Task *nch_Task; /* Subtask */
83 struct MsgPort *nch_TaskMsgPort; /* Message Port of Subtask */
84 IPTR nch_IfNum; /* Interface Number */
85 UBYTE nch_ShortID[32]; /* generated ID string for driver */
88 #endif /* CAMDUSBMIDI_H */