/** * Gets a list of audio output devices for a given audio output module, * * \see Audio::outputDeviceSet() . * * \note Not all audio outputs support this. In particular, an empty * (NULL) list of devices does imply that the specified audio output does * not work. * * \note The list might not be exhaustive. * * \warning Some audio output devices in the list might not actually work * in some circumstances. By default, it is recommended to not specify * any explicit audio device. * * \param psz_aout audio output name (as returned by * Instance::audioOutputList() ) * * \return A vector containing all audio output devices for this module * * \version LibVLC 2.1.0 or later. */ std::vector<AudioOutputDeviceDescription> audioOutputDeviceList(const std::string& aout) { libvlc_audio_output_device_t* devices = libvlc_audio_output_device_list_get( *this, aout.c_str() ); std::vector<AudioOutputDeviceDescription> res; if ( devices == NULL ) return res; for ( libvlc_audio_output_device_t* p = devices; p != NULL; p = p->p_next ) res.emplace_back( p ); libvlc_audio_output_device_list_release( devices ); return res; }
vector<VLC::deviceoutput> VLC::getDeviceOutputs(vector<string> &outputNames) { // Get all attached audio devices libvlc_audio_output_t *audioOutputs, *curAudioOutput; audioOutputs = libvlc_audio_output_list_get(libvlcInstance); curAudioOutput = audioOutputs; vector<deviceoutput> outputs; while (curAudioOutput) { libvlc_audio_output_device_t *audioDevices, *curAudioDevice; audioDevices = libvlc_audio_output_device_list_get(libvlcInstance, curAudioOutput->psz_name); curAudioDevice = audioDevices; while (curAudioDevice) { outputNames.push_back(string(curAudioDevice->psz_device)); outputs.push_back({string(curAudioOutput->psz_name), string(curAudioDevice->psz_device), string(curAudioDevice->psz_description)}); curAudioDevice = curAudioDevice->p_next; } libvlc_audio_output_device_list_release(audioDevices); audioDevices = NULL; curAudioOutput = curAudioOutput->p_next; } libvlc_audio_output_list_release(audioOutputs); audioOutputs = NULL; return outputs; }