itunes_com/lib.rs
1//! Bindings over iTunes COM API for Windows
2//!
3//! # What is this for?
4//!
5//! iTunes COM API makes it possible to control the local instance of iTunes.
6//!
7//! This crate is able to **read** info (about playlists, songs, etc.) from the local iTunes instance.<br/>
8//! It is also able to **edit** data (add songs to playlists, change track ratings, etc.) on the local iTunes instance.<br/>
9//! It is also able to interact with iTunes state and settings (get info about the currently opened windows, get or set EQs, etc.)<br/>
10//! It is **not** meant to read or edit "cloud" playlists, or to do anything network-related.
11//!
12//! # OS and software compatibility
13//!
14//! This crate is Windows-only.
15//! Currently, only iTunes is supported, as Apple Music on Windows does not (yet?) expose a COM interface.<br/>
16//! On macOS, it is possible to control iTunes and Apple Music using Apple Script.
17//!
18//! # How can this crate be used?
19//!
20//! ## Raw bindings
21//!
22//! This crate provides raw bindings over the COM API. See the [`sys`] module.
23//!
24//! ## Safe bindings
25//!
26//! In case it is built with the `wrappers` Cargo feature, it also provides safe, Rust-typed wrappers over this API.
27//! See the [`wrappers`] module.
28//!
29//! ## Examples
30//!
31//! Examples are available in the `examples/` folder. Run them with `cargo run --example ... --all-features`.
32//!
33//! ## Notes
34//!
35//! This crate probably does not correctly work on 32-bit machines (run `cargo clippy --all-features` and see the Clippy errors).
36
37
38pub mod sys;
39#[cfg(feature = "wrappers")]
40pub mod wrappers;