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