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::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::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::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_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.

Picking a song

$coll->song( $path )

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

$coll->songs_with_filename_partial( $path )

Return the Audio::MPD::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::Item::Songs performed by $artist.

$coll->songs_by_artist_partial( $string )

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

$coll->songs_from_album( $album )

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

$coll->songs_from_album_partial( $string )

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

$coll->songs_with_title( $title )

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

$coll->songs_with_title_partial( $string )

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

SEE ALSO

You can find more information on the mpd project on its homepage at http://www.musicpd.org, or its wiki http://mpd.wikia.com.

Regarding this Perl module, you can report bugs on CPAN via http://rt.cpan.org/Public/Bug/Report.html?Queue=Audio-MPD.

Audio::MPD development takes place on <audio-mpd@googlegroups.com>: feel free to join us. (use http://groups.google.com/group/audio-mpd to sign in). Our subversion repository is located at https://svn.musicpd.org.

AUTHORS

Jerome Quelin <jquelin@cpan.org>

COPYRIGHT AND LICENSE

Copyright (c) 2007 Jerome Quelin <jquelin@cpan.org>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.