The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Audio::MPD::Collection - an object to query MPD's collection

SYNOPSIS

    my $song = $mpd->collection->random_song;

DESCRIPTION

Audio::MPD::Collection is a class meant to access & query MPD's collection. You will be able to use those high-level methods instead of using the low-level methods provided by mpd itself.

PUBLIC METHODS

Constructor

new( $mpd )

This will create the object, holding a back-reference to the Audio::MPD object itself (for communication purposes). But in order to play safe and to free the memory in time, this reference is weakened.

Note that you're not supposed to call this constructor yourself, an Audio::MPD::Collection is automatically created for you during the creation of an Audio::MPD object.

Retrieving songs & directories

$coll->all_items( [$path] )

Return all Audio::MPD::Common::Items (both songs & directories) currently known by mpd.

If $path is supplied (relative to mpd root), restrict the retrieval to songs and dirs in this directory.

$coll->all_items_simple( [$path] )

Return all Audio::MPD::Common::Items (both songs & directories) currently known by mpd.

If $path is supplied (relative to mpd root), restrict the retrieval to songs and dirs in this directory.

/!\ Warning: the Audio::MPD::Common::Item::Song objects will only have their tag file filled. Any other tag will be empty, so don't use this sub for any other thing than a quick scan!

$coll->items_in_dir( [$path] )

Return the items in the given $path. If no $path supplied, do it on mpd's root directory.

Note that this sub does not work recusrively on all directories.

Retrieving the whole collection

$coll->all_songs( [$path] )

Return all Audio::MPD::Common::Item::Songs currently known by mpd.

If $path is supplied (relative to mpd root), restrict the retrieval to songs and dirs in this directory.

$coll->all_albums()

Return the list of all albums (strings) currently known by mpd.

$coll->all_artists()

Return the list of all artists (strings) currently known by mpd.

$coll->all_titles()

Return the list of all song titles (strings) currently known by mpd.

$coll->all_pathes()

Return the list of all pathes (strings) currently known by mpd.

$coll->all_playlists()

Return the list of all playlists (strings) currently known by mpd.

Picking a song

$coll->song( $path )

Return the Audio::MPD::Common::Item::Song which correspond to $path.

$coll->songs_with_filename_partial( $string )

Return the Audio::MPD::Common::Item::Songs containing $string in their path.

Songs, albums & artists relations

$coll->albums_by_artist( $artist )

Return all albums (strings) performed by $artist or where $artist participated.

$coll->songs_by_artist( $artist )

Return all Audio::MPD::Common::Item::Songs performed by $artist.

$coll->songs_by_artist_partial( $string )

Return all Audio::MPD::Common::Item::Songs performed by an artist with $string in her name.

$coll->songs_from_album( $album )

Return all Audio::MPD::Common::Item::Songs appearing in $album.

$coll->songs_from_album_partial( $string )

Return all Audio::MPD::Common::Item::Songs appearing in album containing $string.

$coll->songs_with_title( $title )

Return all Audio::MPD::Common::Item::Songs which title is exactly $title.

$coll->songs_with_title_partial( $string )

Return all Audio::MPD::Common::Item::Songs where $string is part of the title.

SEE ALSO

For all related information (bug reporting, mailing-list, pointers to MPD, etc.), refer to Audio::MPD's pod, section SEE ALSO

AUTHOR

Jerome Quelin, <jquelin@cpan.org>

COPYRIGHT & LICENSE

Copyright (c) 2007-2009 Jerome Quelin, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.