---
name: "Audio::MPD::Collection"
section: "3pm"
platform: "linux"
package: "libaudio-mpd-perl"
version: "2.004-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Audio::MPD::Collection"
---

# Audio::MPD::Collection(3pm)

class to query MPD's collection

## NAME

Audio::MPD::Collection - class to query MPD's collection

## VERSION

version 2.004

## SYNOPSIS

```
    my @songs = $mpd->collection->all_songs;
    # and lots of other methods
```

## 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.

Note that you're not supposed to call the constructor yourself, an Audio::MPD::Collection is automatically created for you during the creation of an Audio::MPD object - it can then be used with the `"collection()"` accessor.

## RETRIEVING SONGS & DIRECTORIES

### all\_items

```
    my @items = $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.

### all\_items\_simple

```
    my @items = $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!

### items\_in\_dir

```
    my @items = $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

### all\_songs

```
    my @songs = $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.

### all\_albums

```
    my @albums = $coll->all_albums;
```

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

### all\_artists

```
    my @artists = $coll->all_artists;
```

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

### all\_titles

```
    my @titles = $coll->all_titles;
```

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

### all\_pathes

```
    my @pathes = $coll->all_pathes;
```

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

### all\_playlists

```
    my @lists = $coll->all_playlists;
```

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

### all\_genres

```
    my @genres = $coll->all_genres;
```

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

## PICKING A SONG

### song

```
    my $song = $coll->song( $path );
```

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

### songs\_with\_filename\_partial

```
    my @songs = $coll->songs_with_filename_partial( $string );
```

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

## SONGS, ALBUMS, ARTISTS & GENRES RELATIONS

### albums\_by\_artist

```
    my @albums = $coll->albums_by_artist( $artist );
```

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

### songs\_by\_artist

```
    my @songs = $coll->songs_by_artist( $artist );
```

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

### songs\_by\_artist\_partial

```
    my @songs = $coll->songs_by_artist_partial( $string );
```

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

### songs\_from\_album

```
    my @songs = $coll->songs_from_album( $album );
```

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

### songs\_from\_album\_partial

```
    my @songs = $coll->songs_from_album_partial( $string );
```

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

### songs\_with\_title

```
    my @songs = $coll->songs_with_title( $title );
```

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

### songs\_with\_title\_partial

```
    my @songs = $coll->songs_with_title_partial( $string );
```

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

### artists\_by\_genre

```
    my @artists = $coll->artists_by_genre( $genre );
```

Return all artists (strings) of `$genre`.

## AUTHOR

Jerome Quelin

## COPYRIGHT AND LICENSE

This software is copyright (c) 2007 by Jerome Quelin.

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