示例#1
0
//  Explicitly set the muted or unmuted state of the sink.
//
func (self *Sink) SetMute(mute bool) error {
	operation := NewOperation(self.Client)

	var muting C.int

	if mute {
		muting = C.int(1)
	} else {
		muting = C.int(0)
	}

	operation.paOper = C.pa_context_set_sink_mute_by_index(C.pulse_get_context(), C.uint32_t(self.Index), muting, (C.pa_context_success_cb_t)(unsafe.Pointer(C.pulse_generic_success_callback)), unsafe.Pointer(operation))

	//  wait for the result, refresh, return any errors
	return operation.WaitSuccess(func(op *Operation) error {
		return self.Refresh()
	})
}
示例#2
0
//  Explicitly set the muted or unmuted state of the sink.
//
func (self *Sink) SetMute(mute bool) error {
	operation := NewOperation(self.Client)
	defer operation.Destroy()

	var muting C.int

	if mute {
		muting = C.int(1)
	} else {
		muting = C.int(0)
	}

	operation.paOper = C.pa_context_set_sink_mute_by_index(self.Client.context, C.uint32_t(self.Index), muting, (C.pa_context_success_cb_t)(C.pulse_generic_success_callback), operation.ToUserdata())

	//  wait for the result, refresh, return any errors
	if err := operation.Wait(); err == nil {
		return self.Refresh()
	} else {
		return err
	}
}