|
1 | 1 | //! The module defines structures and protocols for asynchronous MPD communication |
2 | 2 | //! |
3 | 3 | //! The MPD supports very simple protocol for asynchronous client notifications about |
4 | | -//! different player events. First user issues `idle` command with optional argument |
5 | | -//! to filter events by source subsystem (like "database", "player", "mixer" etc.) |
| 4 | +//! different player events. First user issues [`idle`](Client::idle) command |
| 5 | +//! with optional argument to filter events by source subsystem (like |
| 6 | +//! "database", "player", "mixer" etc.) |
6 | 7 | //! |
7 | 8 | //! Once in "idle" mode, client connection timeout is disabled, and MPD will notify |
8 | 9 | //! client about next event when one occurs (if originated from one of designated |
9 | 10 | //! subsystems, if specified). |
10 | 11 | //! |
11 | 12 | //! (Actually MPD notifies only about general subsystem source of event, e.g. |
12 | | -//! if user changed volume, client will get `mixer` event in idle mode, so |
13 | | -//! it should issue `status` command then and check for any mixer-related field |
14 | | -//! changes.) |
| 13 | +//! if user changed volume, client will get [`mixer`](Subsystem::Mixer) event |
| 14 | +//! in idle mode, so it should issue [`status`](Client::status) command then and |
| 15 | +//! check for any mixer-related field changes.) |
15 | 16 | //! |
16 | 17 | //! Once some such event occurs, and client is notified about it, idle mode is interrupted, |
17 | 18 | //! and client must issue another `idle` command to continue listening for interesting |
|
22 | 23 | //! since last `idle` command, if they occurred. |
23 | 24 | //! |
24 | 25 | //! The module describes subsystems enum only, but the main workflow is determined by |
25 | | -//! [`IdleGuard`](struct.IdleGuard.html) struct, which catches mutable reference |
26 | | -//! to original `Client` struct, thus enforcing MPD contract in regards of (im)possibility |
| 26 | +//! [`IdleGuard`] struct, which catches mutable reference |
| 27 | +//! to original [`Client`] struct, thus enforcing MPD contract in regards of (im)possibility |
27 | 28 | //! to send commands while in "idle" mode. |
28 | 29 |
|
29 | 30 | use crate::client::Client; |
|
0 commit comments