rnd-20001129-2-src
[rocksndiamonds.git] / src / system.h
index f7cb3984c02194f2306faf003be643ee2780c6de..fdfb4a6a7169c3329dd01dc753d46a650ad3f2e2 100644 (file)
 #ifndef SYSTEM_H
 #define SYSTEM_H
 
-#if defined(MSDOS)
-#define PLATFORM_MSDOS
-#elif defined(WIN32)
-#define PLATFORM_WIN32
-#else
-#define PLATFORM_UNIX
-#endif
+#include "platform.h"
 
-#if defined(MSDOS)
+#if defined(PLATFORM_MSDOS)
 #include "msdos.h"
 #endif
 
@@ -34,7 +28,7 @@
 #endif
 
 
-/* system-wide contant definitions */
+/* contant definitions */
 
 #define DEFAULT_DEPTH                  0
 
 #define FULLSCREEN_AVAILABLE           TRUE
 
 
-/* system-wide type definitions */
+/* type definitions */
 
 typedef int (*EventFilter)(const Event *);
 
 
-/* system-wide function definitions */
+/* structure definitions */
+
+struct AudioSystemInfo
+{
+  boolean sound_available;
+  boolean loops_available;
+  int soundserver_pipe[2];
+  int soundserver_pid;
+  int device_fd;
+};
+
+
+/* function definitions */
 
 inline void InitBufferedDisplay(DrawBuffer *, DrawWindow *);
 inline int GetDisplayDepth(void);
@@ -67,11 +73,13 @@ inline boolean PointerInWindow(DrawWindow);
 inline boolean SetVideoMode(void);
 inline void ChangeVideoModeIfNeeded(void);
 
-inline boolean InitAudio(void);
+inline boolean OpenAudio(struct AudioSystemInfo *);
+inline void CloseAudio(struct AudioSystemInfo *);
 
 inline void InitEventFilter(EventFilter);
 inline boolean PendingEvent(void);
 inline void NextEvent(Event *event);
 inline Key GetEventKey(KeyEvent *, boolean);
+inline boolean CheckCloseWindowEvent(ClientMessageEvent *);
 
 #endif /* SYSTEM_H */