1 /** \file archdep.h 2 * \brief Miscellaneous system-specific stuff - header 3 * 4 * \author Marco van den Heuvel <blackystardust68@yahoo.com> 5 * 6 * \note Do NOT \#include stdbool.h here, that will lead to weird bugs in 7 * the monitor code. 8 */ 9 10 /* 11 * This file is part of VICE, the Versatile Commodore Emulator. 12 * See README for copyright notice. 13 * 14 * This program is free software; you can redistribute it and/or modify 15 * it under the terms of the GNU General Public License as published by 16 * the Free Software Foundation; either version 2 of the License, or 17 * (at your option) any later version. 18 * 19 * This program is distributed in the hope that it will be useful, 20 * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 * GNU General Public License for more details. 23 * 24 * You should have received a copy of the GNU General Public License 25 * along with this program; if not, write to the Free Software 26 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 27 * 02111-1307 USA. 28 * 29 */ 30 31 #ifndef VICE_ARCHDEP_H 32 #define VICE_ARCHDEP_H 33 34 /* XXX: do NOT include <stdbool.h>, causes bugs in monitor code */ 35 #include "vice.h" 36 #include "sound.h" 37 38 /* Extra functions for SDL UI */ 39 char *archdep_default_hotkey_file_name(void); 40 char *archdep_default_joymap_file_name(void); 41 42 /* returns a NULL terminated list of strings. Both the list and the strings 43 * must be freed by the caller using lib_free(void*) */ 44 char **archdep_list_drives(void); 45 46 /* returns a string that corresponds to the current drive. The string must 47 * be freed by the caller using lib_free(void*) */ 48 char *archdep_get_current_drive(void); 49 50 /* sets the current drive to the given string */ 51 void archdep_set_current_drive(const char *drive); 52 53 /* Virtual keyboard handling */ 54 int archdep_require_vkbd(void); 55 56 /* Video chip scaling. */ 57 #define ARCHDEP_VICII_DSIZE 1 58 #define ARCHDEP_VICII_DSCAN 1 59 #define ARCHDEP_VICII_HWSCALE 1 60 #define ARCHDEP_VDC_DSIZE 1 61 #define ARCHDEP_VDC_DSCAN 1 62 #define ARCHDEP_VDC_HWSCALE 1 63 #define ARCHDEP_VIC_DSIZE 1 64 #define ARCHDEP_VIC_DSCAN 1 65 #define ARCHDEP_VIC_HWSCALE 1 66 #define ARCHDEP_CRTC_DSIZE 1 67 #define ARCHDEP_CRTC_DSCAN 1 68 #define ARCHDEP_CRTC_HWSCALE 1 69 #define ARCHDEP_TED_DSIZE 1 70 #define ARCHDEP_TED_DSCAN 1 71 #define ARCHDEP_TED_HWSCALE 1 72 73 /* Video chip double buffering. */ 74 #define ARCHDEP_VICII_DBUF 0 75 #define ARCHDEP_VDC_DBUF 0 76 #define ARCHDEP_VIC_DBUF 0 77 #define ARCHDEP_CRTC_DBUF 0 78 #define ARCHDEP_TED_DBUF 0 79 80 /* No key symcode. */ 81 #define ARCHDEP_KEYBOARD_SYM_NONE 0 82 83 /* Default sound output mode */ 84 #define ARCHDEP_SOUND_OUTPUT_MODE SOUND_OUTPUT_SYSTEM 85 86 /* define if the platform supports the monitor in a seperate window */ 87 #define ARCHDEP_SEPERATE_MONITOR_WINDOW 88 89 #ifdef UNIX_COMPILE 90 #include "archdep_unix.h" 91 #endif 92 93 #ifdef WIN32_COMPILE 94 #include "archdep_win32.h" 95 #endif 96 97 /* 98 * New additions (since the Gtk3-native port) 99 */ 100 101 /* Get user configuration directory */ 102 /* FIXME: why does this need to be here as well as in 103 * arch/shared/archdep_user_config_path? 104 */ 105 char *archdep_user_config_path(void); 106 void archdep_user_config_path_free(void); 107 /* Get the absolute path to the directory that contains resources, icons, etc */ 108 char *archdep_get_vice_datadir(void); 109 /* Get the absolute path to the directory that contains the documentation */ 110 char *archdep_get_vice_docsdir(void); 111 112 /* Register CBM font with the OS without installing */ 113 int archdep_register_cbmfont(void); 114 /* Unregister CBM font */ 115 void archdep_unregister_cbmfont(void); 116 117 #endif 118