23 #if SDL_AUDIO_DRIVER_BEOSAUDIO
27 #include <SoundPlayer.h>
29 #include "../../main/beos/SDL_BeApp.h"
35 #include "../SDL_audio_c.h"
36 #include "../SDL_sysaudio.h"
37 #include "../../thread/beos/SDL_systhread_c.h"
46 FillSound(
void *device,
void *
stream,
size_t len,
47 const media_raw_audio_format &
format)
74 BEOSAUDIO_CloseDevice(
_THIS)
77 if (
_this->hidden->audio_obj) {
78 _this->hidden->audio_obj->Stop();
79 delete _this->hidden->audio_obj;
89 BEOSAUDIO_OpenDevice(
_THIS,
const char *devname,
int iscapture)
91 int valid_datatype = 0;
92 media_raw_audio_format
format;
103 SDL_memset(&format,
'\0',
sizeof(media_raw_audio_format));
104 format.byte_order = B_MEDIA_LITTLE_ENDIAN;
105 format.frame_rate = (float)
_this->spec.freq;
106 format.channel_count =
_this->spec.channels;
107 while ((!valid_datatype) && (test_format)) {
109 _this->spec.format = test_format;
110 switch (test_format) {
112 format.format = media_raw_audio_format::B_AUDIO_CHAR;
116 format.format = media_raw_audio_format::B_AUDIO_UCHAR;
120 format.format = media_raw_audio_format::B_AUDIO_SHORT;
124 format.format = media_raw_audio_format::B_AUDIO_SHORT;
125 format.byte_order = B_MEDIA_BIG_ENDIAN;
129 format.format = media_raw_audio_format::B_AUDIO_INT;
133 format.format = media_raw_audio_format::B_AUDIO_INT;
134 format.byte_order = B_MEDIA_BIG_ENDIAN;
138 format.format = media_raw_audio_format::B_AUDIO_FLOAT;
142 format.format = media_raw_audio_format::B_AUDIO_FLOAT;
143 format.byte_order = B_MEDIA_BIG_ENDIAN;
153 if (!valid_datatype) {
154 BEOSAUDIO_CloseDevice(
_this);
161 format.buffer_size =
_this->spec.size;
166 _this->hidden->audio_obj =
new BSoundPlayer(&format,
"SDL Audio",
170 if (
_this->hidden->audio_obj->Start() == B_NO_ERROR) {
171 _this->hidden->audio_obj->SetHasData(
true);
173 BEOSAUDIO_CloseDevice(
_this);
182 BEOSAUDIO_Deinitialize(
void)
210 "baudio",
"BeOS BSoundPlayer", BEOSAUDIO_Init, 0
void(* CloseDevice)(_THIS)
SDL_AudioFormat SDL_FirstAudioFormat(SDL_AudioFormat format)
DECLSPEC int SDLCALL SDL_LockMutex(SDL_mutex *mutex)
int ProvidesOwnCallbackThread
Uint16 SDL_AudioFormat
Audio format flags.
int(* OpenDevice)(_THIS, const char *devname, int iscapture)
DECLSPEC int SDLCALL SDL_UnlockMutex(SDL_mutex *mutex)
SDL_AudioFormat SDL_NextAudioFormat(void)
void SDL_UnmaskSignals(sigset_t *omask)
static SDL_VideoDevice * _this
int OnlyHasDefaultOutputDevice
DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len)
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum format
DECLSPEC int SDLCALL SDL_SetError(const char *fmt,...)
void SDL_CalculateAudioSpec(SDL_AudioSpec *spec)
void(* Deinitialize)(void)
AudioBootStrap BEOSAUDIO_bootstrap
SDL_AudioCallback callback
#define SDL_OutOfMemory()
DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src, size_t len)
uint8_t Uint8
An unsigned 8-bit integer type.
void SDL_MaskSignals(sigset_t *omask)
DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT *cvt)