emuapi.h
1 #ifndef EMUAPI_H 2 #define EMUAPI_H 3 4 #include "platform_config.h" 5 #include "emucfg.h" 6 7 #define ACTION_NONE 0 8 #define ACTION_RUN1 1 9 #define ACTION_RUN2 2 10 11 #define FORCE_VGATIMERVSYNC 1 12 #define SUPPORT_HIRES 1 13 14 #define MASK_JOY2_RIGHT 0x0001 15 #define MASK_JOY2_LEFT 0x0002 16 #define MASK_JOY2_UP 0x0004 17 #define MASK_JOY2_DOWN 0x0008 18 #define MASK_JOY2_BTN 0x0010 19 #define MASK_KEY_USER1 0x0020 20 #define MASK_KEY_USER2 0x0040 21 #define MASK_KEY_USER3 0x0080 22 #define MASK_JOY1_RIGHT 0x0100 23 #define MASK_JOY1_LEFT 0x0200 24 #define MASK_JOY1_UP 0x0400 25 #define MASK_JOY1_DOWN 0x0800 26 #define MASK_JOY1_BTN 0x1000 27 #define MASK_KEY_USER4 0x2000 28 29 #define RGBVAL16(r,g,b) ( (((r>>3)&0x1f)<<11) | (((g>>2)&0x3f)<<5) | (((b>>3)&0x1f)<<0) ) 30 31 #ifdef __cplusplus 32 extern "C" { 33 extern void emu_init(int hires=0); 34 extern void emu_start(int vblms, void * callback, int forcetimervsync=0); 35 #endif 36 extern void emu_printf(const char * text); 37 extern void emu_printi(int val); 38 extern void emu_printh(int val); 39 extern void * emu_Malloc(unsigned int size); 40 extern void * emu_MallocI(unsigned int size); 41 extern void emu_Free(void * pt); 42 extern void * emu_SMalloc(unsigned int size); 43 extern void emu_SFree(void * pt); 44 45 extern int emu_FileOpen(const char * filepath, const char * mode); 46 extern int emu_FileRead(void * buf, int size, int handler); 47 extern int emu_FileWrite(void * buf, int size, int handler); 48 extern int emu_FileGetc(int handler); 49 extern int emu_FileSeek(int handler, int seek, int origin); 50 extern int emu_FileTell(int handler); 51 extern void emu_FileClose(int handler); 52 53 extern unsigned int emu_FileSize(const char * filepath); 54 extern unsigned int emu_LoadFile(const char * filepath, void * buf, int size); 55 extern unsigned int emu_LoadFileSeek(const char * filepath, void * buf, int size, int seek); 56 57 extern void emu_SetPaletteEntry(unsigned char r, unsigned char g, unsigned char b, int index); 58 extern void emu_DrawLinePal16(unsigned char * VBuf, int width, int height, int line); 59 extern void emu_DrawLine16(unsigned short * VBuf, int width, int height, int line); 60 extern void emu_DrawScreenPal16(unsigned char * VBuf, int width, int height, int stride); 61 extern void emu_DrawLine8(unsigned char * VBuf, int width, int height, int line); 62 extern void emu_DrawVsync(void); 63 extern int emu_FrameSkip(void); 64 extern int emu_IsVga(void); 65 extern int emu_IsVgaHires(void); 66 67 extern int menuActive(void); 68 extern char * menuSelection(void); 69 extern char * menuSecondSelection(void); 70 extern void toggleMenu(int on); 71 extern int handleMenu(unsigned short bClick); 72 73 extern int handleOSKB(void); 74 extern void toggleOSKB(int forceon); 75 76 extern void emu_InitJoysticks(void); 77 extern int emu_SwapJoysticks(int statusOnly); 78 extern unsigned short emu_DebounceLocalKeys(void); 79 extern int emu_ReadKeys(void); 80 extern int emu_GetPad(void); 81 extern int emu_GetMouse(int *x, int *y, int *buts); 82 extern int emu_MouseDetected(void); 83 extern int emu_GetJoystick(void); 84 extern int emu_KeyboardDetected(void); 85 extern int emu_ReadAnalogJoyX(int min, int max); 86 extern int emu_ReadAnalogJoyY(int min, int max); 87 extern int emu_ReadI2CKeyboard(void); 88 extern unsigned char emu_ReadI2CKeyboard2(int row); 89 extern void emu_KeyboardOnUp(int keymodifer, int key); 90 extern void emu_KeyboardOnDown(int keymodifer, int key); 91 extern void emu_MidiOnDataReceived(unsigned char data); 92 93 extern void emu_sndPlaySound(int chan, int volume, int freq); 94 extern void emu_sndPlayBuzz(int size, int val); 95 extern void emu_sndInit(); 96 extern void emu_resetus(void); 97 extern int emu_us(void); 98 99 extern int emu_setKeymap(int index); 100 101 #ifdef __cplusplus 102 } 103 #endif 104 105 #endif