コード例 #1
0
ファイル: playlist.c プロジェクト: Voxar/spot
static VALUE
rb_ds_playlist_new (VALUE self, VALUE sessionv, VALUE id)
{
	rb_ds_session *session;
	rb_ds_playlist *pls;
	ds_playlist_t *pl;
	char *playlist_id;

	VALUE2PLAYLIST(self, pls);
	VALUE2SESSION(sessionv, session);
	playlist_id = StringValuePtr(id);

	if (strlen(playlist_id) != 34)
		return Qnil;

	pl = despotify_get_playlist(session->real, playlist_id);
	if (!pl)
		return Qnil;

	pls->real = pl;
	pls->ischild = false;

	rb_iv_set(self, "session", sessionv);

	if (rb_block_given_p())
		rb_yield(self);

	return self;
}
コード例 #2
0
ファイル: session.c プロジェクト: porras/despotify-ruby
static VALUE
rb_ds_session_play_playlist (VALUE self, VALUE playlist)
{
	SESSION_METHOD_HEADER
	rb_ds_playlist *pl;

	VALUE2PLAYLIST(playlist, pl);

	return BOOL2VALUE(despotify_play(session->real, pl->real->tracks, true));
}
コード例 #3
0
ファイル: playlist.c プロジェクト: Voxar/spot
VALUE
PLAYLIST2VALUE (VALUE session, ds_playlist_t *pl, bool ischild)
{
	rb_ds_playlist *pls;
	VALUE obj;

	if (!pl)
		return Qnil;

	obj = rb_ds_playlist_alloc(cPlaylist);
	VALUE2PLAYLIST(obj, pls);

	pls->real = pl;
	pls->ischild = ischild;

	rb_iv_set(obj, "session", session);

	return obj;
}