Module: RbPod::PlaylistCollection

Defined in:
ext/rbpod/playlist_collection.c

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'ext/rbpod/playlist_collection.c', line 13

static VALUE rbpod_playlist_collection_get(VALUE self, VALUE key)
{
    VALUE parent = rbpod_playlist_collection_parent(self);
    Itdb_iTunesDB *database = TYPED_DATA_PTR(parent, Itdb_iTunesDB);
    Itdb_Playlist *playlist = NULL;

    switch (TYPE(key)) {
    case T_SYMBOL:
    case T_STRING:
        playlist = itdb_playlist_by_name(database, StringValueCStr(key));
        break;
    case T_FIXNUM:
        playlist = itdb_playlist_by_nr(database, FIX2INT(key));
        break;
    }

    if (playlist == NULL) {
        return Qnil;
    }

    return Data_Wrap_Struct(cRbPodPlaylist, NULL, NULL, (void *) playlist);
}

#masterObject



44
45
46
47
48
49
50
# File 'ext/rbpod/playlist_collection.c', line 44

static VALUE rbpod_playlist_collection_master_get(VALUE self)
{
    VALUE parent = rbpod_playlist_collection_parent(self);
    Itdb_iTunesDB *database = TYPED_DATA_PTR(parent, Itdb_iTunesDB);
    Itdb_Playlist *master = itdb_playlist_mpl(database);
    return Data_Wrap_Struct(cRbPodPlaylist, NULL, NULL, (void *) master);
}

#podcastsObject



36
37
38
39
40
41
42
# File 'ext/rbpod/playlist_collection.c', line 36

static VALUE rbpod_playlist_collection_podcasts_get(VALUE self)
{
    VALUE parent = rbpod_playlist_collection_parent(self);
    Itdb_iTunesDB *database = TYPED_DATA_PTR(parent, Itdb_iTunesDB);
    Itdb_Playlist *podcasts = itdb_playlist_podcasts(database);
    return Data_Wrap_Struct(cRbPodPlaylist, NULL, NULL, (void *) podcasts);
}