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 anAudio::MPD
object.
Retrieving songs & directories
- $coll->all_items( [$path] )
-
Return all
Audio::MPD::Item
s (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::Item
s (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::Song
s 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::Song
s performed by$artist
. - $coll->songs_by_artist_partial( $string )
-
Return all
Audio::MPD::Item::Song
s performed by an artist with$string
in her name. - $coll->songs_from_album( $album )
-
Return all
Audio::MPD::Item::Song
s appearing in$album
. - $coll->songs_from_album_partial( $string )
-
Return all
Audio::MPD::Item::Song
s appearing in album containing$string
. - $coll->songs_with_title( $title )
-
Return all
Audio::MPD::Item::Song
s which title is exactly$title
. - $coll->songs_with_title_partial( $string )
-
Return all
Audio::MPD::Item::Song
s 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.