Search
lxdream.org :: lxdream/src/dreamcast.h
lxdream 0.9.1
released Jun 29
Download Now
filename src/dreamcast.h
changeset 180:e6dcf9b65658
prev167:71c0cc416a64
next295:6637664291a8
author nkeynes
date Sat Aug 05 00:18:21 2006 +0000 (17 years ago)
permissions -rw-r--r--
last change Add error lines to tests with incomplete polys
Split clip tests to separate data file
Add tests for cmd bit 23 ("use list size field")
file annotate diff log raw
nkeynes@26
     1
/**
nkeynes@180
     2
 * $Id: dreamcast.h,v 1.11 2006-07-02 04:59:00 nkeynes Exp $
nkeynes@26
     3
 *
nkeynes@26
     4
 * Public interface for dreamcast.c -
nkeynes@26
     5
 * Central switchboard for the system. This pulls all the individual modules
nkeynes@26
     6
 * together into some kind of coherent structure. This is also where you'd
nkeynes@26
     7
 * add Naomi support, if I ever get a board to play with...
nkeynes@26
     8
 *
nkeynes@26
     9
 * Copyright (c) 2005 Nathan Keynes.
nkeynes@26
    10
 *
nkeynes@26
    11
 * This program is free software; you can redistribute it and/or modify
nkeynes@26
    12
 * it under the terms of the GNU General Public License as published by
nkeynes@26
    13
 * the Free Software Foundation; either version 2 of the License, or
nkeynes@26
    14
 * (at your option) any later version.
nkeynes@26
    15
 *
nkeynes@26
    16
 * This program is distributed in the hope that it will be useful,
nkeynes@26
    17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
nkeynes@26
    18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
nkeynes@26
    19
 * GNU General Public License for more details.
nkeynes@26
    20
 */
nkeynes@2
    21
nkeynes@2
    22
#ifndef dreamcast_H
nkeynes@2
    23
#define dreamcast_H 1
nkeynes@2
    24
nkeynes@15
    25
#include <stdio.h>
nkeynes@18
    26
#include <glib/gtypes.h>
nkeynes@15
    27
nkeynes@15
    28
#ifdef __cplusplus
nkeynes@15
    29
extern "C" {
nkeynes@15
    30
#endif
nkeynes@15
    31
nkeynes@30
    32
#define DEFAULT_TIMESLICE_LENGTH 1000000 /* nanoseconds */
nkeynes@144
    33
#define CONFIG_TYPE_NONE 0
nkeynes@144
    34
#define CONFIG_TYPE_FILE 1
nkeynes@144
    35
#define CONFIG_TYPE_PATH 2
nkeynes@144
    36
#define CONFIG_TYPE_KEY 3
nkeynes@144
    37
nkeynes@180
    38
#define DEFAULT_CONFIG_FILENAME "lxdream.rc"
nkeynes@144
    39
nkeynes@144
    40
typedef struct dreamcast_config_entry {
nkeynes@144
    41
    const gchar *key;
nkeynes@144
    42
    const int type;
nkeynes@144
    43
    const gchar *default_value;
nkeynes@144
    44
    gchar *value;
nkeynes@144
    45
} *dreamcast_config_entry_t;
nkeynes@144
    46
nkeynes@144
    47
typedef struct dreamcast_config_group {
nkeynes@144
    48
    const gchar *key;
nkeynes@144
    49
    struct dreamcast_config_entry *params;
nkeynes@144
    50
} *dreamcast_config_group_t;
nkeynes@144
    51
nkeynes@23
    52
nkeynes@2
    53
void dreamcast_init(void);
nkeynes@2
    54
void dreamcast_reset(void);
nkeynes@23
    55
void dreamcast_run(void);
nkeynes@2
    56
void dreamcast_stop(void);
nkeynes@2
    57
nkeynes@144
    58
gboolean dreamcast_load_config( const gchar *filename );
nkeynes@144
    59
gboolean dreamcast_save_config( const gchar *filename );
nkeynes@30
    60
nkeynes@18
    61
int dreamcast_save_state( const gchar *filename );
nkeynes@18
    62
int dreamcast_load_state( const gchar *filename );
nkeynes@18
    63
nkeynes@144
    64
extern struct dreamcast_config_group dreamcast_config_root[];
nkeynes@144
    65
nkeynes@167
    66
/* Global config values */
nkeynes@167
    67
const gchar *dreamcast_get_config_value( int key );
nkeynes@167
    68
#define CONFIG_BIOS_PATH 0
nkeynes@167
    69
#define CONFIG_FLASH_PATH 1
nkeynes@167
    70
#define CONFIG_DEFAULT_PATH 2
nkeynes@167
    71
#define CONFIG_SAVE_PATH 3
nkeynes@167
    72
#define CONFIG_BOOTSTRAP 4
nkeynes@167
    73
nkeynes@15
    74
#ifdef __cplusplus
nkeynes@15
    75
}
nkeynes@15
    76
#endif
nkeynes@15
    77
nkeynes@26
    78
#endif /* !dreamcast_H */
.