{
AudioQueueRef audioQueue;
bool b_stopped;
+ float f_volume;
};
/*****************************************************************************
return -1;
}
+/*****************************************************************************
+ * Module management
+ *****************************************************************************/
+
+static int VolumeSet(audio_output_t * p_aout, float volume)
+{
+ struct aout_sys_t *p_sys = p_aout->sys;
+ OSStatus ostatus;
+
+ aout_VolumeReport(p_aout, volume);
+ p_sys->f_volume = volume;
+
+ /* Set volume for output unit */
+ ostatus = AudioQueueSetParameter(p_sys->audioQueue, kAudioQueueParam_Volume, volume * volume * volume);
+
+ return ostatus;
+}
+
/*****************************************************************************
* Module management
*****************************************************************************/
aout->sys = sys;
aout->start = Start;
aout->stop = Stop;
+ aout->volume_set = VolumeSet;
+
+ /* reset volume */
+ aout_VolumeReport(aout, 1.0);
return VLC_SUCCESS;
}