Skip to main content

AudioPlayerButton

Struct AudioPlayerButton 

Source
pub struct AudioPlayerButton { /* private fields */ }
Expand description

A button that plays a recording and stops it, with its progress and, when there is one, a transcript to open. Space and Enter work on the button, as on any.

The app delivers the audio as a SoundClip. It can do it later: with Self::on_request, the first press asks for it and playing starts when it arrives.

It plays through Sound::speak_clip, so a new recording or anything else said by the Sound takes its place, and this button goes back to rest. Progress is by the clock, as the service does not report where it is. The sound does not stop by itself if the view leaves the screen while playing.

use ravenrs_widgets::{AudioPlayerButton, SoundClip, Ui};

let audio = AudioPlayerButton::new()
    .clip(SoundClip::new(vec![0.0; 44_100], 44_100))
    .transcript("Your order is ready.");
let mut ui = Ui::new(audio, ravenrs_style::Theme::raven_dark());
ui.update();

Implementations§

Source§

impl AudioPlayerButton

Source

pub fn new() -> Self

A player with nothing to play yet.

Source

pub fn clip(self, clip: SoundClip) -> Self

The recording.

Source

pub fn seconds(self, seconds: f32) -> Self

How long it lasts, to show before the recording arrives.

Source

pub fn loading(self, loading: bool) -> Self

Whether the recording is on its way, which holds the button until it arrives.

Source

pub fn on_request(self, handler: impl Fn() + 'static) -> Self

Called when someone presses play with no recording here: the app brings it, and it plays when it arrives through Self::clip. Without this or a clip, the button stays disabled.

Source

pub fn transcript(self, text: impl Into<String>) -> Self

What was said, under a button that shows and hides it. Blank text says there is no speech in the recording.

Source

pub fn on_transcribe(self, handler: impl Fn() + 'static) -> Self

With no transcript, offers a button that asks for one.

Source

pub fn transcribing(self, transcribing: bool) -> Self

Whether a transcript is on its way, which holds that button.

Source

pub fn transcript_open(self, open: Binding<bool>) -> Self

Keeps whether the transcript is open in the app’s hands. By default it starts closed and is kept here.

Trait Implementations§

Source§

impl Clone for AudioPlayerButton

Source§

fn clone(&self) -> AudioPlayerButton

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AudioPlayerButton

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AudioPlayerButton

Source§

fn default() -> AudioPlayerButton

Returns the “default value” for a type. Read more
Source§

impl View for AudioPlayerButton

Source§

fn build(&self, cx: &mut BuildCx<'_>) -> NodeId

Creates this view’s node for the current build.
Source§

fn type_name(&self) -> &'static str

The name the diagnostics panel shows this view’s cost under.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V> ViewExt for V
where V: View,

Source§

fn padding(self, padding: impl Into<Insets>) -> Styled<Self>

Adds padding inside the box, in logical pixels.
Source§

fn background(self, fill: impl Into<Fill>) -> Styled<Self>

Paints a background behind the content.
Source§

fn frame(self, width: Option<f32>, height: Option<f32>) -> Styled<Self>

Fixes the width and/or height in logical pixels; None keeps the content size.
Source§

fn width(self, width: f32) -> Styled<Self>

Fixes the width in logical pixels.
Source§

fn height(self, height: f32) -> Styled<Self>

Fixes the height in logical pixels.
Source§

fn grow(self, grow: f32) -> Styled<Self>

Takes a share of the free space in the parent stack.
Source§

fn stretch(self) -> Styled<Self>

Stretches across the parent stack’s cross axis.
Source§

fn centered(self) -> Styled<Self>

Centers the content inside the box.
Source§

fn tooltip(self, text: impl Into<String>) -> Tooltip<Self>

Shows text above the view while the pointer is over it; see Tooltip.
Source§

fn opacity(self, opacity: f32) -> Faded<Self>

Draws the view and everything in it at this opacity, from 0.0 to 1.0, easing to it when it changes. Layout and input stay as they are; see Faded.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more