]> icculus.org git repositories - taylor/freespace2.git/blob - include/osapi.h
Userdir patch from Taylor Richards
[taylor/freespace2.git] / include / osapi.h
1 /*
2  * Copyright (C) Volition, Inc. 1999.  All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell 
5  * or otherwise commercially exploit the source or things you created based on
6  * the source.
7  */
8
9 #ifndef _OSAPI_H
10 #define _OSAPI_H
11
12 #include <stdlib.h>
13
14 #include "pstypes.h"
15
16 // --------------------------------------------------------------------------------------------------
17 // OSAPI DEFINES/VARS
18 //
19
20 // set if running under MsDev - done after os_init(...) has returned
21 extern int Os_debugger_running;
22
23 // game-wide
24 // #define THREADED
25
26 #ifdef THREADED
27         #define ENTER_CRITICAL_SECTION(csc)             do { EnterCriticalSection(csc); } while(0);
28         #define LEAVE_CRITICAL_SECTION(csc)             do { LeaveCriticalSection(csc); } while(0);
29 #else
30         #define ENTER_CRITICAL_SECTION(csc)             do { } while(0);
31         #define LEAVE_CRITICAL_SECTION(csc)             do { } while(0);
32 #endif
33
34 // --------------------------------------------------------------------------------------------------
35 // OSAPI FUNCTIONS
36 //
37
38 // initialization/shutdown functions -----------------------------------------------
39
40 #ifdef PLAT_UNIX
41 extern const char *detect_home(void);
42 void default_registry();
43 #endif
44
45 // If app_name is NULL or ommited, then TITLE is used
46 // for the app name, which is where registry keys are stored.
47 void os_init(char * wclass, char * title, char *app_name=NULL, char *version_string=NULL );
48
49 // set the main window title
50 void os_set_title( char * title );
51
52 // call at program end
53 void os_cleanup();
54
55
56 // window management ---------------------------------------------------------------
57
58 // toggle window size between full screen and windowed
59 void os_toggle_fullscreen();
60
61 // Returns 1 if app is not the foreground app.
62 int os_foreground();
63
64 // Returns the handle to the main window
65 uint os_get_window();
66
67
68 // process management --------------------------------------------------------------
69
70 // call to process windows messages. only does something in non THREADED mode
71 void os_poll();
72
73 // Sleeps for n milliseconds or until app becomes active.
74 void os_sleep(int ms);
75
76 // Used to stop message processing
77 void os_suspend();
78
79 // resume message processing
80 void os_resume();
81
82 #endif
83