示例#1
0
 /**
  * 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;
 }
示例#2
0
文件: VLC.cpp 项目: Lewn/HitjesFoon
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;
}