def playback(kodi_params): '''Start playback''' logger.debug('call function playback') if kodi_api.player_get_active(kodi_params): kodi_api.player_play_pause(kodi_params) else: kodi_api.player_open(kodi_params)
def do_play_song(self, line): ''' Play a single song Usage: play_song [id] Play the song behind the id. Use the search functions to find the id. The id is optional, a song is randomly selected without it. ''' logger.debug('call function do_play_song') song_id = parse_single_int(line) if not song_id: logger.info('no song id provided') song_index = random.randrange(self.nb_songs) logger.debug('random song index: %i', song_index) album_id = self.albums.keys()[album_index] kodi_api.playlist_clear(self.kodi_params) kodi_api.playlist_add(SONG, song_id, self.kodi_params) kodi_api.player_open(self.kodi_params) print fancy_disp.play_song(song_id, self.songs) print
def do_play_album(self, line): ''' Play a single album Usage: play_album [id] Play the album behind the id. Use the albums function to find the id. The id is optional, an album is randomly selected without it. ''' logger.debug('call function do_play_album') album_id = parse_single_int(line) if not album_id: logger.info('no album id provided') album_index = random.randrange(self.nb_albums) logger.debug('random album index: %i', album_index) album_id = self.albums.keys()[album_index] kodi_api.playlist_clear(self.kodi_params) kodi_api.playlist_add(ALBUM, album_id, self.kodi_params) kodi_api.player_open(self.kodi_params) print fancy_disp.play_album(album_id, self.albums) print
def do_playlist_tasteprofile(self, line): ''' Create a playlist from echonest taste profile Usage: playlist_tasteprofile Generate and play a new playlist based on echonest taste profile. The current playlist is removed before. ''' logger.debug('call function do_playlist_tasteprofile') profile_id = get_profile_id(self.api_key) while True: song_ids = echonest_playlist(self.api_key, profile_id) fancy_disp.songs_index(song_ids, self.songs) action = fancy_disp.validate_playlist() if action <> 'r': break if action == 'p': playback_stop(self.kodi_params) kodi_api.playlist_clear(self.kodi_params) populate_playlist(song_ids, self.kodi_params) kodi_api.player_open(self.kodi_params) print
def do_play_genre(self,line): ''' Start playing songs from specific genre. Usage: play_genre [genre] The library is search for all songs with playlist is shuffled each time ''' logger.debug('call function do_play_genre') song_ids=get_genre_search(line, self.songs) if len(song_ids) >= 1: #Listening to the same sequence is bornig, so shuffle the list each time. random.shuffle(song_ids) #TODO check if result is empty and is really a list kodi_api.playlist_clear(self.kodi_params) #First add only one song and start playback kodi_api.playlist_add(SONG, song_ids[0], self.kodi_params) kodi_api.player_open(self.kodi_params) #Adding the other songs takes very long if len(song_ids)>=2: populate_playlist(song_ids[1:-1],self.kodi_params) else: logger.info("Genre %s has only one song", line) else: logger.error("Genre %s has no songs", line)
def do_play_genre(self, line): ''' Start playing songs from specific genre. Usage: play_genre [genre] The library is search for all songs with playlist is shuffled each time ''' logger.debug('call function do_play_genre') song_ids = get_genre_search(line, self.songs) if len(song_ids) >= 1: #Listening to the same sequence is bornig, so shuffle the list each time. random.shuffle(song_ids) #TODO check if result is empty and is really a list kodi_api.playlist_clear(self.kodi_params) #First add only one song and start playback kodi_api.playlist_add(SONG, song_ids[0], self.kodi_params) kodi_api.player_open(self.kodi_params) #Adding the other songs takes very long if len(song_ids) >= 2: populate_playlist(song_ids[1:-1], self.kodi_params) else: logger.info("Genre %s has only one song", line) else: logger.error("Genre %s has no songs", line)
def do_playlist_taste_seed(self, line): ''' Create a playlist from echonest taste profile and seeded by a song Usage: playlist_tasteprofile song_id Generate and play a new playlist based on echonest taste profile. The current playlist is removed before. ''' #TODO: function for a single logic and several pl methods logger.debug('call function do_playlist_tasteprofile') song_id = parse_single_int(line) profile_id = get_profile_id(self.api_key) while True: song_ids = echonest_pl_seed(self.api_key, profile_id, song_id) fancy_disp.songs_index(song_ids, self.songs) action = fancy_disp.validate_playlist() if action <> 'r': break if action == 'p': playback_stop(self.kodi_params) kodi_api.playlist_clear(self.kodi_params) populate_playlist(song_ids, self.kodi_params) kodi_api.player_open(self.kodi_params) print