bool Addon_music_spotify::getAlbumTracksFromTrack(CFileItemList& items,
		CStdString& uri) {
	if (isReady()) {
		sp_link *spLink = sp_link_create_from_string(uri.Left(uri.Find('.')));
		if (!spLink)
			return false;
		sp_track *spTrack = sp_link_as_track(spLink);
		if (spTrack) {
			sp_album* spAlbum = sp_track_album(spTrack);
			if (spAlbum) {
				// TODO find out on what disc the track is if its a multidisc
				SxAlbum* album = AlbumStore::getInstance()->getAlbum(spAlbum, true);

				// this is NOT nice, might result in a race condition... fix later
				while (!album->isLoaded()) {
					Session::getInstance()->processEvents();
				}
				vector<SxTrack*> tracks = album->getTracks();
				for (int i = 0; i < tracks.size(); i++) {
					items.Add(Utils::SxTrackToItem(tracks[i]));
				}
			}
			sp_track_release(spTrack);
		}
		sp_link_release(spLink);
	}
}
bool Addon_music_spotify::getAlbumTracks(CFileItemList& items,
		CStdString& path) {
	if (isReady()) {
		//lets split the string to get the album uri and the disc number
		CStdString uri = path.Left(path.Find('#'));
		CStdString discStr = path.Right(path.GetLength() - path.Find('#') - 1);
		//Logger::printOut(discStr.c_str());
		int disc = atoi(discStr.c_str());

		//0 means its not a multidisc, so we need to change it to 1
		if (disc == 0)
			disc = 1;
		sp_link *spLink = sp_link_create_from_string(uri);
		sp_album *spAlbum = sp_link_as_album(spLink);
		SxAlbum* salbum = AlbumStore::getInstance()->getAlbum(spAlbum, true);
		vector<SxTrack*> tracks = salbum->getTracks();
		for (int i = 0; i < tracks.size(); i++) {
			if (disc == tracks[i]->getDisc())
				items.Add(Utils::SxTrackToItem(tracks[i]));
		}
	}
	return true;
}