Game Kit: rewrite DirectWindow, FileGameSound and SimpleGameSound headers

Change-Id: I45687f8164dbc915a0cb6ca1bf4c0211761cb098
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2108
Reviewed-by: Adrien Destugues <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
Panagiotis Vasilopoulos
2020-01-22 00:33:44 +00:00
committed by waddlesplash
parent 450208975b
commit f0b6c6a24b
3 changed files with 93 additions and 91 deletions
+34 -28
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright 2001-2008 Haiku, Inc. All rights reserved. * Copyright 2020 Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
@@ -14,22 +14,20 @@
enum direct_buffer_state { enum direct_buffer_state {
B_DIRECT_MODE_MASK = 15, B_DIRECT_MODE_MASK = 15,
B_DIRECT_START = 0,
B_DIRECT_START = 0, B_DIRECT_STOP = 1,
B_DIRECT_STOP = 1, B_DIRECT_MODIFY = 2,
B_DIRECT_MODIFY = 2,
B_CLIPPING_MODIFIED = 16, B_CLIPPING_MODIFIED = 16,
B_BUFFER_RESIZED = 32, B_BUFFER_RESIZED = 32,
B_BUFFER_MOVED = 64, B_BUFFER_MOVED = 64,
B_BUFFER_RESET = 128 B_BUFFER_RESET = 128
}; };
enum direct_driver_state { enum direct_driver_state {
B_DRIVER_CHANGED = 0x0001, B_DRIVER_CHANGED = 0x0001,
B_MODE_CHANGED = 0x0002 B_MODE_CHANGED = 0x0002
}; };
@@ -58,10 +56,12 @@ public:
BDirectWindow(BRect frame, const char* title, BDirectWindow(BRect frame, const char* title,
window_type type, uint32 flags, window_type type, uint32 flags,
uint32 workspace = B_CURRENT_WORKSPACE); uint32 workspace = B_CURRENT_WORKSPACE);
BDirectWindow(BRect frame, const char* title, BDirectWindow(BRect frame, const char* title,
window_look look, window_feel feel, window_look look, window_feel feel,
uint32 flags, uint32 flags,
uint32 workspace = B_CURRENT_WORKSPACE); uint32 workspace = B_CURRENT_WORKSPACE);
virtual ~BDirectWindow(); virtual ~BDirectWindow();
static BArchivable* Instantiate(BMessage* data); static BArchivable* Instantiate(BMessage* data);
@@ -69,46 +69,57 @@ public:
bool deep = true) const; bool deep = true) const;
virtual void Quit(); virtual void Quit();
virtual void DispatchMessage(BMessage* message, virtual void DispatchMessage(BMessage* message,
BHandler* handler); BHandler* handler);
virtual void MessageReceived(BMessage* message); virtual void MessageReceived(BMessage* message);
virtual void FrameMoved(BPoint newPosition); virtual void FrameMoved(BPoint newPosition);
virtual void FrameResized(float newWidth, float newHeight);
virtual void WorkspacesChanged(uint32 oldWorkspaces, virtual void WorkspacesChanged(uint32 oldWorkspaces,
uint32 newWorkspaces); uint32 newWorkspaces);
virtual void WorkspaceActivated(int32 workspaceIndex, virtual void WorkspaceActivated(int32 workspaceIndex,
bool state); bool state);
virtual void FrameResized(float newWidth, float newHeight);
virtual void Minimize(bool minimize); virtual void Minimize(bool minimize);
virtual void Zoom(BPoint recPosition, float recWidth, virtual void Zoom(BPoint recPosition, float recWidth,
float recHeight); float recHeight);
virtual void ScreenChanged(BRect screenFrame, virtual void ScreenChanged(BRect screenFrame,
color_space depth); color_space depth);
virtual void MenusBeginning(); virtual void MenusBeginning();
virtual void MenusEnded(); virtual void MenusEnded();
virtual void WindowActivated(bool state); virtual void WindowActivated(bool state);
virtual void Show(); virtual void Show();
virtual void Hide(); virtual void Hide();
virtual BHandler* ResolveSpecifier(BMessage* message, virtual BHandler* ResolveSpecifier(BMessage* message,
int32 index, BMessage* specifier, int32 index, BMessage* specifier,
int32 what, const char* property); int32 what, const char* property);
virtual status_t GetSupportedSuites(BMessage* data); virtual status_t GetSupportedSuites(BMessage* data);
virtual status_t Perform(perform_code code, void* arg); virtual status_t Perform(perform_code code, void* arg);
private:
virtual void task_looper();
virtual BMessage* ConvertToMessage(void* raw, int32 code);
public:
virtual void DirectConnected(direct_buffer_info* info); virtual void DirectConnected(direct_buffer_info* info);
status_t GetClippingRegion(BRegion* region, status_t GetClippingRegion(BRegion* region,
BPoint* origin = NULL) const; BPoint* origin = NULL) const;
status_t SetFullScreen(bool enable); status_t SetFullScreen(bool enable);
bool IsFullScreen() const; bool IsFullScreen() const;
static bool SupportsWindowMode( static bool SupportsWindowMode(
screen_id id = B_MAIN_SCREEN_ID); screen_id id = B_MAIN_SCREEN_ID);
private: private:
BDirectWindow();
BDirectWindow(BDirectWindow& other);
BDirectWindow& operator=(BDirectWindow& other);
typedef BWindow inherited; typedef BWindow inherited;
virtual void _ReservedDirectWindow1(); virtual void _ReservedDirectWindow1();
@@ -116,30 +127,26 @@ private:
virtual void _ReservedDirectWindow3(); virtual void _ReservedDirectWindow3();
virtual void _ReservedDirectWindow4(); virtual void _ReservedDirectWindow4();
BDirectWindow(); virtual void task_looper();
BDirectWindow(BDirectWindow& other); virtual BMessage* ConvertToMessage(void* raw, int32 code);
BDirectWindow& operator=(BDirectWindow& other);
static int32 _daemon_thread(void* arg); static int32 _daemon_thread(void* arg);
int32 _DirectDaemon(); int32 _DirectDaemon();
bool _LockDirect() const; bool _LockDirect() const;
void _UnlockDirect() const; void _UnlockDirect() const;
void _InitData(); void _InitData();
void _DisposeData(); void _DisposeData();
private:
bool fDaemonKiller; bool fDaemonKiller;
bool fConnectionEnable; bool fConnectionEnable;
bool fIsFullScreen; bool fIsFullScreen;
bool _unused; bool _unused;
bool fInDirectConnect; bool fInDirectConnect;
int32 fDirectLock; int32 fDirectLock;
sem_id fDirectSem; sem_id fDirectSem;
uint32 fDirectLockCount; uint32 fDirectLockCount;
thread_id fDirectLockOwner; thread_id fDirectLockOwner;
char* fDirectLockStack; char* fDirectLockStack;
sem_id fDisableSem; sem_id fDisableSem;
sem_id fDisableSemAck; sem_id fDisableSemAck;
@@ -156,5 +163,4 @@ private:
uint32 _more_reserved_[17]; uint32 _more_reserved_[17];
}; };
#endif
#endif // _DIRECT_WINDOW_H
+11 -11
View File
@@ -1,16 +1,16 @@
/* /*
* Copyright 2001-2002, Haiku Inc. All Rights Reserved. * Copyright 2020, Haiku Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Author: * Author:
* Christopher ML Zumwalt May ([email protected]) * Christopher ML Zumwalt May ([email protected])
*/ */
#ifndef _FILEGAMESOUND_H #ifndef _FILEGAMESOUND_H
#define _FILEGAMESOUND_H #define _FILEGAMESOUND_H
#include <StreamingGameSound.h> #include <StreamingGameSound.h>
#include <DataIO.h> #include <DataIO.h>
@@ -21,12 +21,15 @@ struct _gs_ramp;
class BFileGameSound : public BStreamingGameSound { class BFileGameSound : public BStreamingGameSound {
public: public:
BFileGameSound(const entry_ref* file, BFileGameSound(const entry_ref* file,
bool looping = true, bool looping = true,
BGameSoundDevice* device = NULL); BGameSoundDevice* device = NULL);
BFileGameSound(const char* file, BFileGameSound(const char* file,
bool looping = true, bool looping = true,
BGameSoundDevice* device = NULL); BGameSoundDevice* device = NULL);
BFileGameSound(BDataIO* data, BFileGameSound(BDataIO* data,
bool looping = true, bool looping = true,
BGameSoundDevice* device = NULL); BGameSoundDevice* device = NULL);
@@ -37,8 +40,7 @@ public:
virtual status_t StartPlaying(); virtual status_t StartPlaying();
virtual status_t StopPlaying(); virtual status_t StopPlaying();
status_t Preload(); status_t Preload();
// if you have stopped and want to start quickly again
virtual void FillBuffer(void* buffer, size_t byteCount); virtual void FillBuffer(void* buffer, size_t byteCount);
virtual status_t Perform(int32 selector, void* data); virtual status_t Perform(int32 selector, void* data);
@@ -49,13 +51,13 @@ public:
B_PAUSE_IN_PROGRESS, B_PAUSE_IN_PROGRESS,
B_PAUSED B_PAUSED
}; };
int32 IsPaused();
int32 IsPaused();
private: private:
BFileGameSound(); BFileGameSound();
BFileGameSound(const BFileGameSound& other); BFileGameSound(const BFileGameSound& other);
BFileGameSound& operator=(const BFileGameSound& other); BFileGameSound& operator=(const BFileGameSound& other);
// not implemented
status_t Init(BDataIO* data); status_t Init(BDataIO* data);
@@ -63,7 +65,7 @@ private:
bool Read(void* buffer, size_t bytes); bool Read(void* buffer, size_t bytes);
status_t _Reserved_BFileGameSound_0(int32 arg, ...); status_t _Reserved_BFileGameSound_0(int32 arg, ...);
// SetPaused(bool paused, bigtime_t ramp); // SetPaused(bool paused, bigtime_t ramp);
virtual status_t _Reserved_BFileGameSound_1(int32 arg, ...); virtual status_t _Reserved_BFileGameSound_1(int32 arg, ...);
virtual status_t _Reserved_BFileGameSound_2(int32 arg, ...); virtual status_t _Reserved_BFileGameSound_2(int32 arg, ...);
virtual status_t _Reserved_BFileGameSound_3(int32 arg, ...); virtual status_t _Reserved_BFileGameSound_3(int32 arg, ...);
@@ -87,7 +89,6 @@ private:
virtual status_t _Reserved_BFileGameSound_21(int32 arg, ...); virtual status_t _Reserved_BFileGameSound_21(int32 arg, ...);
virtual status_t _Reserved_BFileGameSound_22(int32 arg, ...); virtual status_t _Reserved_BFileGameSound_22(int32 arg, ...);
virtual status_t _Reserved_BFileGameSound_23(int32 arg, ...); virtual status_t _Reserved_BFileGameSound_23(int32 arg, ...);
private: private:
_gs_media_tracker* fAudioStream; _gs_media_tracker* fAudioStream;
@@ -104,7 +105,7 @@ private:
bool fPaused; bool fPaused;
float fPauseGain; float fPauseGain;
BDataIO* fDataSource; BDataIO* fDataSource;
#ifdef B_HAIKU_64_BIT #ifdef B_HAIKU_64_BIT
uint32 _reserved[9]; uint32 _reserved[9];
@@ -113,5 +114,4 @@ private:
#endif #endif
}; };
#endif
#endif // _FILEGAMESOUND_H
+48 -52
View File
@@ -1,76 +1,72 @@
/* /*
* Copyright 2001-2010, Haiku Inc. All Rights Reserved. * Copyright 2020, Haiku Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
*/ */
#ifndef _SIMPLEGAMESOUND_H #ifndef _SIMPLEGAMESOUND_H
#define _SIMPLEGAMESOUND_H #define _SIMPLEGAMESOUND_H
#include <GameSoundDefs.h>
#include <GameSound.h> #include <GameSound.h>
#include <GameSoundDefs.h>
struct entry_ref; struct entry_ref;
class BSimpleGameSound : public BGameSound { class BSimpleGameSound : public BGameSound {
public: public:
BSimpleGameSound(const entry_ref* file, BSimpleGameSound(const entry_ref* file,
BGameSoundDevice* device = NULL); BGameSoundDevice* device = NULL);
BSimpleGameSound(const char* file,
BGameSoundDevice* device = NULL);
BSimpleGameSound(const void* data,
size_t frameCount,
const gs_audio_format* format,
BGameSoundDevice* device = NULL);
BSimpleGameSound(const BSimpleGameSound& other);
virtual ~BSimpleGameSound(); BSimpleGameSound(const char* file,
BGameSoundDevice* device = NULL);
virtual BGameSound* Clone() const; BSimpleGameSound(const void* data,
size_t frameCount,
const gs_audio_format* format,
BGameSoundDevice* device = NULL);
virtual status_t Perform(int32 selector, void* data); BSimpleGameSound(const BSimpleGameSound& other);
status_t SetIsLooping(bool looping); virtual ~BSimpleGameSound();
bool IsLooping() const;
virtual BGameSound* Clone() const;
virtual status_t Perform(int32 selector, void* data);
status_t SetIsLooping(bool looping);
bool IsLooping() const;
private: private:
BSimpleGameSound(); BSimpleGameSound();
BSimpleGameSound& operator=(const BSimpleGameSound& other);
// not implemented
status_t Init(const entry_ref* file); BSimpleGameSound& operator=(const BSimpleGameSound& other);
status_t Init(const void* data, int64 frameCount,
const gs_audio_format* format);
virtual status_t _Reserved_BSimpleGameSound_0(int32 arg, ...); status_t Init(const entry_ref* file);
virtual status_t _Reserved_BSimpleGameSound_1(int32 arg, ...); status_t Init(const void* data, int64 frameCount,
virtual status_t _Reserved_BSimpleGameSound_2(int32 arg, ...); const gs_audio_format* format);
virtual status_t _Reserved_BSimpleGameSound_3(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_4(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_5(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_6(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_7(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_8(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_9(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_10(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_11(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_12(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_13(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_14(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_15(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_16(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_17(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_18(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_19(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_20(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_21(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_22(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_23(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_0(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_1(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_2(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_3(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_4(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_5(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_6(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_7(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_8(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_9(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_10(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_11(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_12(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_13(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_14(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_15(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_16(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_17(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_18(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_19(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_20(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_21(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_22(int32 arg, ...);
virtual status_t _Reserved_BSimpleGameSound_23(int32 arg, ...);
private: private:
uint32 _reserved[12]; uint32 _reserved[12];
}; };
#endif
#endif // _SIMPLE_GAME_SOUND_H