Switch to side-by-side view

--- a/src/cdplugins/qobuz/session.py
+++ b/src/cdplugins/qobuz/session.py
@@ -5,7 +5,8 @@
 
 import sys
 import json
-from upmplgmodels import Artist, Album, Track, Playlist, SearchResult, Category
+from upmplgmodels import Artist, Album, Track, Playlist, SearchResult, \
+     Category, Genre
 from qobuz.api import raw
 
 class Session(object):
@@ -37,6 +38,13 @@
         data = self.api.album_get(album_id = albid)
         album = _parse_album(data)
         return [_parse_track(t, album) for t in data['tracks']['items']]
+
+    def get_featured_albums(self, genre_id=None):
+        data = self.api.album_getFeatured(type='editor-picks',
+                                          genre_id=genre_id, limit=50)
+        if data and 'albums' in data:
+            return [_parse_album(alb) for alb in data['albums']['items']]
+        return []
 
     def get_playlist_tracks(self, plid):
         data = self.api.playlist_get(playlist_id = plid, extra = 'tracks')
@@ -90,6 +98,10 @@
                             data['playlists']['items']]
         return []
 
+    def get_genres(self, parent=None):
+        data = self.api.genre_list(parent_id=parent)
+        return [_parse_genre(g) for g in data['genres']['items']]
+
     def search(self, query, tp):
         data = self.api.catalog_search(query=query, type=tp)
         try:
@@ -114,6 +126,9 @@
 def _parse_artist(json_obj):
     artist = Artist(id=json_obj['id'], name=json_obj['name'])
     return artist
+
+def _parse_genre(data):
+    return Genre(id=data['id'], name=data['name'])
 
 def _parse_album(json_obj, artist=None, artists=None):
     if artist is None and 'artist' in json_obj: