aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends/solaris.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/backends/solaris.c')
-rw-r--r--Alc/backends/solaris.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/Alc/backends/solaris.c b/Alc/backends/solaris.c
index bf0f57f5..26d923c7 100644
--- a/Alc/backends/solaris.c
+++ b/Alc/backends/solaris.c
@@ -193,11 +193,18 @@ static ALCboolean solaris_reset_playback(ALCdevice *device)
device->Frequency = info.play.sample_rate;
device->UpdateSize = (info.play.buffer_size/device->NumUpdates) + 1;
- data->data_size = device->UpdateSize * frameSize;
- data->mix_data = calloc(1, data->data_size);
-
SetDefaultChannelOrder(device);
+ return ALC_TRUE;
+}
+
+static ALCboolean solaris_start_playback(ALCdevice *device)
+{
+ solaris_data *data = (solaris_data*)device->ExtraData;
+
+ data->data_size = device->UpdateSize * FrameSizeFromDevFmt(device->FmtChans, device->FmtType);
+ data->mix_data = calloc(1, data->data_size);
+
data->thread = StartThread(SolarisProc, device);
if(data->thread == NULL)
{
@@ -233,6 +240,7 @@ static const BackendFuncs solaris_funcs = {
solaris_open_playback,
solaris_close_playback,
solaris_reset_playback,
+ solaris_start_playback,
solaris_stop_playback,
NULL,
NULL,