2.2 KiB
2.2 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.2.0] - 2025-01-16
Added
-
Extended
MusicSourcetrait with comprehensive async methods:root_container(): Get root container for ContentDirectorybrowse(object_id): Browse containers and itemsresolve_uri(object_id): Resolve audio URIs (with cache support)supports_fifo(): Indicate FIFO supportappend_track(track): Add track to FIFOremove_oldest(): Remove oldest track from FIFOupdate_id(): Get current update counterlast_change(): Get last modification timestampget_items(offset, count): Paginated browsingsearch(query): Optional search functionality
-
New types:
BrowseResult: Enum for browse results (Containers, Items, or Mixed)- Extended
MusicSourceErrorwith more error variants
-
Dependencies:
async-trait: For async trait methodstokio: Async runtimepmodidl: DIDL-Lite supportpmoplaylist: FIFO playlist managementpmoaudiocache(optional): Audio cachingpmocovers(optional): Cover art caching
-
Complete Radio Paradise example (
examples/radio_paradise.rs) demonstrating:- FIFO management using
pmoplaylist - Cache integration simulation
- DIDL-Lite generation
- Change tracking
- Full trait implementation
- FIFO management using
-
Comprehensive documentation:
- Updated README with architecture diagrams
- Usage examples for static and dynamic sources
- Integration guides for PMOMusic ecosystem
- Thread safety notes
Changed
MusicSourcetrait is now async (requires#[async_trait])- All implementations must be
Send + Sync - Trait is now much more comprehensive and ready for UPnP/OpenHome integration
Removed
- Outdated
show_sources.rsexample
[0.1.0] - Initial Release
Added
- Basic
MusicSourcetrait with:name(): Human-readable nameid(): Unique identifierdefault_image(): Embedded WebP logodefault_image_mime_type(): MIME type
- Basic error types
- Standard image size constant (300x300px)