diff options
Diffstat (limited to 'Alc/backends/solaris.c')
-rw-r--r-- | Alc/backends/solaris.c | 14 |
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, |