nkeynes@26: /** nkeynes@144: * $Id: dreamcast.h,v 1.9 2006-05-15 08:28:48 nkeynes Exp $ nkeynes@26: * nkeynes@26: * Public interface for dreamcast.c - nkeynes@26: * Central switchboard for the system. This pulls all the individual modules nkeynes@26: * together into some kind of coherent structure. This is also where you'd nkeynes@26: * add Naomi support, if I ever get a board to play with... nkeynes@26: * nkeynes@26: * Copyright (c) 2005 Nathan Keynes. nkeynes@26: * nkeynes@26: * This program is free software; you can redistribute it and/or modify nkeynes@26: * it under the terms of the GNU General Public License as published by nkeynes@26: * the Free Software Foundation; either version 2 of the License, or nkeynes@26: * (at your option) any later version. nkeynes@26: * nkeynes@26: * This program is distributed in the hope that it will be useful, nkeynes@26: * but WITHOUT ANY WARRANTY; without even the implied warranty of nkeynes@26: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nkeynes@26: * GNU General Public License for more details. nkeynes@26: */ nkeynes@2: nkeynes@2: #ifndef dreamcast_H nkeynes@2: #define dreamcast_H 1 nkeynes@2: nkeynes@15: #include nkeynes@18: #include nkeynes@15: nkeynes@15: #ifdef __cplusplus nkeynes@15: extern "C" { nkeynes@15: #endif nkeynes@15: nkeynes@30: #define DEFAULT_TIMESLICE_LENGTH 1000000 /* nanoseconds */ nkeynes@144: #define CONFIG_TYPE_NONE 0 nkeynes@144: #define CONFIG_TYPE_FILE 1 nkeynes@144: #define CONFIG_TYPE_PATH 2 nkeynes@144: #define CONFIG_TYPE_KEY 3 nkeynes@144: nkeynes@144: #define DEFAULT_CONFIG_FILENAME "dream.conf" nkeynes@144: nkeynes@144: typedef struct dreamcast_config_entry { nkeynes@144: const gchar *key; nkeynes@144: const int type; nkeynes@144: const gchar *default_value; nkeynes@144: gchar *value; nkeynes@144: } *dreamcast_config_entry_t; nkeynes@144: nkeynes@144: typedef struct dreamcast_config_group { nkeynes@144: const gchar *key; nkeynes@144: struct dreamcast_config_entry *params; nkeynes@144: } *dreamcast_config_group_t; nkeynes@144: nkeynes@23: nkeynes@2: void dreamcast_init(void); nkeynes@2: void dreamcast_reset(void); nkeynes@23: void dreamcast_run(void); nkeynes@2: void dreamcast_stop(void); nkeynes@2: nkeynes@144: gboolean dreamcast_load_config( const gchar *filename ); nkeynes@144: gboolean dreamcast_save_config( const gchar *filename ); nkeynes@30: nkeynes@18: int dreamcast_save_state( const gchar *filename ); nkeynes@18: int dreamcast_load_state( const gchar *filename ); nkeynes@18: nkeynes@144: extern struct dreamcast_config_group dreamcast_config_root[]; nkeynes@144: nkeynes@15: #ifdef __cplusplus nkeynes@15: } nkeynes@15: #endif nkeynes@15: nkeynes@26: #endif /* !dreamcast_H */