/*
 *  Overreact - Mr. 4th Dimention
 *      Allen Webster
 *  03.21.2015 (mm.dd.yyyy)
 *
 * Platform Services
 */

// TODO(allen):
// - The file loading scheme requires that the platform layer
//     make an extra allocation and then is later used to free
//     that allocation.  It would be better for file loading to
//     be broken up into two steps: (1) get size (2) load into
//     buffer so the application can provide any buffer it wants.
//

struct File{
	void *data;
	u64 size;
};

#define SIG_SYS_LOAD_FILE(name) File name(char *filename)
#define SIG_SYS_SAVE_FILE(name) void name(File file, char *filename)
#define SIG_SYS_FREE_FILE(name) void name(File file)

internal
SIG_SYS_LOAD_FILE(system_load_file);

internal
SIG_SYS_SAVE_FILE(system_save_file);

internal
SIG_SYS_FREE_FILE(system_free_file);



#define SIS_SYS_SET_KEYBIND(name) void name(i32 btn_id, char key)

internal
SIS_SYS_SET_KEYBIND(system_set_keybind);