template <>
class WireServer
Defined at line 896 of file fidling/gen/sdk/fidl/fuchsia.media.audio/fuchsia.media.audio/cpp/fidl/fuchsia.media.audio/cpp/wire_messaging.h
Pure-virtual interface to be implemented by a server.
This interface uses typed channels (i.e. |::fidl::ClientEnd
<
::fuchsia_media_audio::GainControl>|
and |::fidl::ServerEnd
<
::fuchsia_media_audio::GainControl>|).
Public Methods
void SetGain (::fuchsia_media_audio::wire::GainControlSetGainRequest * request, SetGainCompleter::Sync & completer)
Sets the gain in decibels.
void SetGainWithRamp (::fuchsia_media_audio::wire::GainControlSetGainWithRampRequest * request, SetGainWithRampCompleter::Sync & completer)
Smoothly changes gain from its current value to specified value, over the
specified duration (in milliseconds). If 'duration_ns' is 0, gain changes
immediately. Otherwise, gain changes only while the stream is running.
Any active or pending ramp is cancelled by subsequent call to SetGain.
There can be at most 1 active ramp at any time. Any active or pending
ramp is replaced by a later call to SetGainWithRamp (even if duration is
0). In this case gain would ramps directly from its most recent
(mid-ramp) value to the newly-specified one, over the new duration,
using the new easing.
Usage example (using time in seconds):
Time 0
SetGainWithRamp(`MUTED_GAIN_DB`, 0, SCALE_LINEAR) // Ramp 1
SetGainWithRamp(0.0f, `ZX_SEC`(4), SCALE_LINEAR) // Ramp 2
Time 3
PlayNoReply(kNoTimestamp, any_media_time)
Time 4
PauseNoReply()
Time 7
PlayNoReply(kNoTimestamp, any_media_time)
Time 8
SetGainWithRamp(`MUTED_GAIN_DB`, ZX_SEC(1), SCALE_LINEAR) // Ramp 3
Time 0: Ramp 1 completes immediately, changing the gain to `MUTED_GAIN_DB`.
Ramp 2 is pending, since we are not in playback.
Time 3, Ramp 2 begins ramping from `MUTED_GAIN_DB` to 0 dB
(scale 0.0=>1.0).
Time 4: Ramp 2 pauses (3s remain). Per `SCALE_LINEAR`, scale is approx.
0.25.
Time 7: Ramp 2 resumes from most recent value toward the target.
Time 8: Ramp 3 replaces Ramp 2 and starts from current scale
(approx 0.5).
Time 9: Ramp 3 completes; current scale value is now 0.0 (`MUTED_GAIN_DB`).
void SetMute (::fuchsia_media_audio::wire::GainControlSetMuteRequest * request, SetMuteCompleter::Sync & completer)
Sets the mute value. Ramping and mute are fully independent, although
they both affect the scaling that is applied.
void WireServer ()
Defined at line 899 of file fidling/gen/sdk/fidl/fuchsia.media.audio/fuchsia.media.audio/cpp/fidl/fuchsia.media.audio/cpp/wire_messaging.h
Handler bind_handler (async_dispatcher_t * dispatcher)
|bind_handler| returns a handler that binds incoming connections to this
server implementation.
The returned handler borrows the server instance.
The server must outlive the provided |dispatcher|. Only after
the dispatcher is shutdown will it be safe to destroy the servers.
The server should not be moved.
void ~WireServer ()
Defined at line 900 of file fidling/gen/sdk/fidl/fuchsia.media.audio/fuchsia.media.audio/cpp/fidl/fuchsia.media.audio/cpp/wire_messaging.h