1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//! RenderingControl service for audio rendering operations and events
//!
//! This service handles audio rendering operations on individual Sonos speakers
//! and related events (volume changes, mute state changes, etc.).
//!
//! # Operations
//!
//! | Operation | Description |
//! |-----------|-------------|
//! | `get_volume` / `set_volume` | Get/set volume level (0-100) |
//! | `set_relative_volume` | Adjust volume relatively (-100 to +100) |
//! | `get_mute` / `set_mute` | Get/set mute state |
//! | `get_bass` / `set_bass` | Get/set bass level (-10 to +10) |
//! | `get_treble` / `set_treble` | Get/set treble level (-10 to +10) |
//! | `get_loudness` / `set_loudness` | Get/set loudness compensation |
//!
//! # Examples
//! ```rust,ignore
//! use sonos_api::services::rendering_control;
//!
//! // Volume
//! let op = rendering_control::set_volume("Master".to_string(), 75).build()?;
//! client.execute("192.168.1.100", op)?;
//!
//! // Mute
//! let op = rendering_control::get_mute("Master".to_string()).build()?;
//! let response = client.execute_enhanced("192.168.1.100", op)?;
//! println!("Muted: {}", response.current_mute);
//!
//! // Bass / Treble
//! let op = rendering_control::set_bass(5).build()?;
//! client.execute("192.168.1.100", op)?;
//! ```
//!
//! # Event Subscriptions
//! ```rust,ignore
//! let subscription = rendering_control::subscribe(&client, "192.168.1.100", "http://callback")?;
//! ```
//!
//! # Event Handling
//! ```rust,ignore
//! use sonos_api::services::rendering_control::events::{RenderingControlEventParser, create_enriched_event};
//! use sonos_api::events::EventSource;
//!
//! let parser = RenderingControlEventParser;
//! let event_data = parser.parse_upnp_event(xml_content)?;
//! let enriched = create_enriched_event(speaker_ip, event_source, event_data);
//! ```
// Re-export operations for convenience
pub use *;
// Re-export event types and parsers
pub use ;
pub use RenderingControlState;