summaryrefslogtreecommitdiffstats
path: root/Alc/backends/oss.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/backends/oss.c')
-rw-r--r--Alc/backends/oss.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/Alc/backends/oss.c b/Alc/backends/oss.c
index bd489e3e..a577d8be 100644
--- a/Alc/backends/oss.c
+++ b/Alc/backends/oss.c
@@ -268,11 +268,18 @@ static ALCboolean oss_reset_playback(ALCdevice *device)
device->UpdateSize = info.fragsize / frameSize;
device->NumUpdates = info.fragments + 1;
- data->data_size = device->UpdateSize * frameSize;
- data->mix_data = calloc(1, data->data_size);
-
SetDefaultChannelOrder(device);
+ return ALC_TRUE;
+}
+
+static ALCboolean oss_start_playback(ALCdevice *device)
+{
+ oss_data *data = (oss_data*)device->ExtraData;
+
+ data->data_size = device->UpdateSize * FrameSizeFromDevFmt(device->FmtChans, device->FmtType);
+ data->mix_data = calloc(1, data->data_size);
+
data->thread = StartThread(OSSProc, device);
if(data->thread == NULL)
{
@@ -473,6 +480,7 @@ static const BackendFuncs oss_funcs = {
oss_open_playback,
oss_close_playback,
oss_reset_playback,
+ oss_start_playback,
oss_stop_playback,
oss_open_capture,
oss_close_capture,