Skip to main content

ProceduralAudio

Struct ProceduralAudio 

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

Procedural audio generator for Pong.

Generates audio events based on game state changes. Events are returned as JSON to be executed by JavaScript’s Web Audio API.

§Example

use jugar_web::audio::ProceduralAudio;

let mut audio = ProceduralAudio::new();
audio.set_enabled(true);

// Trigger a paddle hit sound (hit_y, paddle_y, paddle_height)
audio.on_paddle_hit(300.0, 250.0, 100.0);

// Get events to send to JavaScript
let events = audio.take_events();
assert!(!events.is_empty());

Implementations§

Source§

impl ProceduralAudio

Source

pub fn new() -> Self

Creates a new audio generator.

Source

pub fn set_volume(&mut self, volume: f32)

Sets the master volume (0.0-1.0).

Source

pub const fn volume(&self) -> f32

Returns the current master volume.

Source

pub fn set_enabled(&mut self, enabled: bool)

Enables or disables audio.

Source

pub const fn is_enabled(&self) -> bool

Returns whether audio is enabled.

Source

pub fn on_paddle_hit(&mut self, hit_y: f32, paddle_y: f32, paddle_height: f32)

Generates a paddle hit sound.

§Arguments
  • hit_y - Y position where ball hit the paddle
  • paddle_y - Center Y position of the paddle
  • paddle_height - Height of the paddle
Source

pub fn on_wall_bounce(&mut self)

Generates a wall bounce sound with optional velocity-based pitch variation.

Source

pub fn on_wall_bounce_with_velocity(&mut self, ball_speed: f32, base_speed: f32)

Generates a wall bounce sound with velocity-based pitch.

§Arguments
  • ball_speed - Current ball speed (magnitude of velocity)
  • base_speed - Reference speed for normal pitch
Source

pub fn on_goal(&mut self, player_scored: bool)

Generates a goal sound.

§Arguments
  • player_scored - True if the player (left paddle) scored
Source

pub fn on_game_start(&mut self)

Generates a game start sound.

Source

pub fn on_rally_milestone(&mut self, rally_count: u32)

Generates a rally milestone sound.

Should be called when rally count reaches a milestone (5, 10, 15, etc.).

§Arguments
  • rally_count - Current rally count at the milestone
Source

pub fn on_sound_toggle(&mut self, enabled: bool)

Generates a sound toggle confirmation sound.

Plays a brief confirmation when sound is enabled. This provides immediate feedback that audio is working.

Source

pub fn take_events(&mut self) -> Vec<AudioEvent>

Takes all pending audio events (clears the internal buffer).

§Returns

Vector of audio events to be played by JavaScript.

Source

pub fn peek_events(&self) -> &[AudioEvent]

Returns pending events without clearing (for inspection).

Source

pub fn clear_events(&mut self)

Clears all pending events.

Source

pub fn event_count(&self) -> usize

Returns the number of pending events.

Trait Implementations§

Source§

impl Clone for ProceduralAudio

Source§

fn clone(&self) -> ProceduralAudio

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ProceduralAudio

Source§

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

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

impl Default for ProceduralAudio

Source§

fn default() -> Self

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

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V