Beispiel #1
0
func GetAudioOutputList() ([]*AudioOutput, error) {
	if instance == nil {
		return nil, errors.New("Module must be first initialized")
	}

	outputs := C.libvlc_audio_output_list_get(instance)
	if outputs == nil {
		return nil, getError()
	}
	defer C.libvlc_audio_output_list_release(outputs)

	audioOutputs := []*AudioOutput{}
	for p := outputs; p != nil; p = (*C.libvlc_audio_output_t)(p.p_next) {
		audioOutput := &AudioOutput{
			Name:        C.GoString(p.psz_name),
			Description: C.GoString(p.psz_description),
		}

		audioOutputs = append(audioOutputs, audioOutput)
	}

	return audioOutputs, getError()
}
Beispiel #2
0
func (this *AudioOutput) Release() {
	if this.ptr != nil {
		C.libvlc_audio_output_list_release(this.ptr)
		this.ptr = nil
	}
}