Audio::MPD::Collection(3)

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::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::Common::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::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::Song"s 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::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::Common::Item::Song"s performed by $artist.

$coll->songs_by_artist_partial( $string )
    Return all "Audio::MPD::Common::Item::Song"s performed by an artist with $string in her name.

$coll->songs_from_album( $album )
    Return all "Audio::MPD::Common::Item::Song"s appearing in $album.

$coll->songs_from_album_partial( $string )
    Return all "Audio::MPD::Common::Item::Song"s appearing in album containing $string.

$coll->songs_with_title( $title )
    Return all "Audio::MPD::Common::Item::Song"s which title is exactly $title.

$coll->songs_with_title_partial( $string )
    Return all "Audio::MPD::Common::Item::Song"s 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.