diff --git a/mopidy_touchscreen/.idea/workspace.xml b/mopidy_touchscreen/.idea/workspace.xml index 6f06ef1..78a6aa0 100644 --- a/mopidy_touchscreen/.idea/workspace.xml +++ b/mopidy_touchscreen/.idea/workspace.xml @@ -23,63 +23,11 @@ - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -96,24 +44,24 @@ @@ -331,12 +279,13 @@ - - + + + @@ -347,10 +296,9 @@ - - + @@ -687,13 +635,6 @@ - - - - - - - @@ -708,16 +649,9 @@ - - - - - - - - + @@ -731,14 +665,6 @@ - - - - - - - - @@ -747,21 +673,43 @@ + + + + + + + + + + + + + + + + - - + + - - - - - + + + + + + + + + + + diff --git a/mopidy_touchscreen/__init__.py b/mopidy_touchscreen/__init__.py index f37542e..1044841 100644 --- a/mopidy_touchscreen/__init__.py +++ b/mopidy_touchscreen/__init__.py @@ -26,15 +26,11 @@ class Extension(ext.Extension): def get_config_schema(self): schema = super(Extension, self).get_config_schema() - schema['screen_width'] = config.Integer() - schema['screen_height'] = config.Integer() - schema['cursor'] = config.Boolean() - # TODO: Comment in and edit, or remove entirely - #schema['username'] = config.String() - #schema['password'] = config.Secret() + schema['screen_width'] = config.Integer() + schema['screen_height'] = config.Integer() + schema['cursor'] = config.Boolean() return schema def setup(self, registry): registry.add('frontend', TouchScreen) - registry.add('backend', TouchScreenBackend) - + registry.add('backend', TouchScreenBackend) \ No newline at end of file diff --git a/mopidy_touchscreen/dynamic_background.py b/mopidy_touchscreen/dynamic_background.py index c17daf2..065cb7b 100644 --- a/mopidy_touchscreen/dynamic_background.py +++ b/mopidy_touchscreen/dynamic_background.py @@ -1,27 +1,38 @@ import random + class DynamicBackground(): def __init__(self): - self.current=[0,0,0] - for x in range(0, 3): - self.current[x]=random.randint(0,255) - self.target=[0,0,0] - for x in range(0, 3): - self.target[x]=random.randint(0,255) + self.current = get_valid_color() + self.target = get_valid_color() - def drawBackground(self,surface): + def draw_background(self, surface): same = True for x in range(0, 3): - if self.current[x]> self.target[x]: - self.current[x]=self.current[x]-1 + if self.current[x] > self.target[x]: + self.current[x] -= 1 elif self.current[x] 0: + i = random.randint(0, 2) + color[i] -= - extra + return color diff --git a/mopidy_touchscreen/list_view.py b/mopidy_touchscreen/list_view.py index 58d1338..62cff23 100644 --- a/mopidy_touchscreen/list_view.py +++ b/mopidy_touchscreen/list_view.py @@ -10,7 +10,7 @@ logger = logging.getLogger(__name__) class ListView(): - def __init__(self, pos, size, base_size,fonts): + def __init__(self, pos, size, base_size, fonts): self.size = size self.pos = pos self.base_size = base_size @@ -29,7 +29,7 @@ class ListView(): if self.max_rows < self.list_size: self.scrollbar = True scroll_bar = ScrollBar((self.pos[0]+self.size[0]-self.base_size,self.pos[1]), (self.base_size, self.size[1]),self.list_size,self.max_rows) - self.screen_objects.add_touch_object("scrollbar", scroll_bar) + self.screen_objects.set_touch_object("scrollbar", scroll_bar) logger.error("hemen nao") else: self.scrollbar = False @@ -38,9 +38,9 @@ class ListView(): def load_new_item_position(self, item_pos): self.current_item = item_pos if self.scrollbar: - self.screen_objects.clear("scrollbar") + self.screen_objects.clear_touch("scrollbar") else: - self.screen_objects.clear(None) + self.screen_objects.clear_touch(None) i = self.current_item z = 0 if self.scrollbar: @@ -48,9 +48,8 @@ class ListView(): else: width = self.size[0] while i < self.list_size and z < self.max_rows: - logger.error("sartu naiz") - item = TouchAndTextItem(self.fonts['dejavusans'], self.list[i], (self.pos[0],self.pos[1]+self.base_size*z),(width, self.base_size)) - self.screen_objects.add_touch_object(str(i), item) + item = TouchAndTextItem(self.fonts['dejavusans'], self.list[i], (self.pos[0], self.pos[1]+self.base_size*z), (width, self.base_size)) + self.screen_objects.set_touch_object(str(i), item) i += 1 z += 1 @@ -79,6 +78,4 @@ class ListView(): if self.current_item < 0: self.current_item = 0 self.load_new_item_position(self.current_item) - self.screen_objects.get_touch_object("scrollbar").set_item(self.current_item) - - + self.screen_objects.get_touch_object("scrollbar").set_item(self.current_item) \ No newline at end of file diff --git a/mopidy_touchscreen/main_screen.py b/mopidy_touchscreen/main_screen.py index b702f91..45d5cbd 100644 --- a/mopidy_touchscreen/main_screen.py +++ b/mopidy_touchscreen/main_screen.py @@ -41,9 +41,9 @@ class MainScreen(): def track_started(self, track): self.image = None x = self.base_size * 5 - self.touch_text_manager.add_object("track_name",self.fonts['dejavusans'],track.name,(x,self.base_size*2), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) - self.touch_text_manager.add_object("album_name",self.fonts['dejavusans'],track.album.name,(x,self.base_size*3), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) - self.touch_text_manager.add_object("artist_name",self.fonts['dejavusans'],self.getFirstArtist(track),(x,self.base_size*4), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) + self.touch_text_manager.set_object("track_name",self.fonts['dejavusans'],track.name,(x,self.base_size*2), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) + self.touch_text_manager.set_object("album_name",self.fonts['dejavusans'],track.album.name,(x,self.base_size*3), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) + self.touch_text_manager.set_object("artist_name",self.fonts['dejavusans'],self.getFirstArtist(track),(x,self.base_size*4), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) self.touch_text_manager.add_progressbar("time_progress", self.fonts['dejavusans'],time.strftime('%M:%S', time.gmtime(0))+"/"+time.strftime('%M:%S', time.gmtime(0)),(0,self.base_size*6), (self.size[0],self.base_size*7),track.length/1000, False) self.track = track if not self.is_image_in_cache(): @@ -89,9 +89,9 @@ class MainScreen(): except: logger.warning("Cover could not be downloaded") logger.error(self.track.name) - self.touch_text_manager.add_object("track_name",self.fonts['dejavusans'],self.track.name,(self.base_size,self.base_size*2), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) - self.touch_text_manager.add_object("album_name",self.fonts['dejavusans'],self.track.album.name,(self.base_size,self.base_size*3), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) - self.touch_text_manager.add_object("artist_name",self.fonts['dejavusans'],self.getFirstArtist(self.track),(self.base_size,self.base_size*4), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) + self.touch_text_manager.set_object("track_name",self.fonts['dejavusans'],self.track.name,(self.base_size,self.base_size*2), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) + self.touch_text_manager.set_object("album_name",self.fonts['dejavusans'],self.track.album.name,(self.base_size,self.base_size*3), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) + self.touch_text_manager.set_object("artist_name",self.fonts['dejavusans'],self.getFirstArtist(self.track),(self.base_size,self.base_size*4), (self.size[0]-self.base_size,self.size[1]), (255, 255, 255)) def loadImage(self): size = self.base_size * 4 diff --git a/mopidy_touchscreen/screen_manager.py b/mopidy_touchscreen/screen_manager.py index 2b72249..e6575bf 100644 --- a/mopidy_touchscreen/screen_manager.py +++ b/mopidy_touchscreen/screen_manager.py @@ -31,16 +31,16 @@ class ScreenManager(): self.touch_manager = TouchManager(size) self.screen_objects_manager = ScreenObjectsManager() button = TouchAndTextItem(self.fonts['dejavusans']," ll",(0, 0), None) - self.screen_objects_manager.add_touch_object("pause_play", button) + self.screen_objects_manager.set_touch_object("pause_play", button) x = button.get_right_pos() + self.base_size / 2 button = TouchAndTextItem(self.fonts['dejavuserif'],u"\u2928",(x,0),None) - self.screen_objects_manager.add_touch_object("random",button) + self.screen_objects_manager.set_touch_object("random",button) x = button.get_right_pos() button = TouchAndTextItem(self.fonts['dejavuserif'],u"\u27F21",(x,0),None) - self.screen_objects_manager.add_touch_object("repeat",button) + self.screen_objects_manager.set_touch_object("repeat",button) x = button.get_right_pos() + self.base_size / 2 button = TouchAndTextItem(self.fonts['dejavusans'],"Mute",(x,0),None) - self.screen_objects_manager.add_touch_object("mute",button) + self.screen_objects_manager.set_touch_object("mute",button) x = button.get_right_pos() + self.base_size / 2 ''' @@ -62,7 +62,7 @@ class ScreenManager(): def update(self): surface = pygame.Surface(self.size) - self.background.drawBackground(surface) + self.background.draw_background(surface) self.screens[self.current_screen].update(surface) surface.blit(self.top_bar,(0,0)) surface.blit(self.top_bar,(0,self.base_size*7)) diff --git a/mopidy_touchscreen/screen_objects.py b/mopidy_touchscreen/screen_objects.py index 05fd744..00843a1 100644 --- a/mopidy_touchscreen/screen_objects.py +++ b/mopidy_touchscreen/screen_objects.py @@ -11,13 +11,13 @@ class ScreenObjectsManager(): self.touch_objects = {} self.text_objects = {} - def add_object(self, key, add_object): + def set_object(self, key, add_object): self.text_objects[key] = add_object def get_object(self, key): return self.text_objects[key] - def add_touch_object(self, key, add_object): + def set_touch_object(self, key, add_object): self.touch_objects[key] = add_object def get_touch_object(self, key): @@ -38,12 +38,13 @@ class ScreenObjectsManager(): touched_objects.append(key) return touched_objects - def clear(self, mantain): - if mantain is not None: - object = self.get_touch_object(mantain) + def clear_touch(self, not_remove): + if not_remove is not None: + new_touch = {} + for key in not_remove: + new_touch[key] = self.get_touch_object(key) + self.touch_objects = new_touch self.touch_objects = {} - if mantain is not None: - self.touch_objects[mantain] = object class BaseItem(): @@ -146,7 +147,7 @@ class TouchAndTextItem(TouchObject, TextItem): class Progressbar(TouchObject): - def __init__(self, font, text, pos,size, max_value, value_text): + def __init__(self, font, text, pos, size, max_value, value_text): BaseItem.__init__(self, pos, size) self.value = 0 self.max = max_value @@ -156,7 +157,7 @@ class Progressbar(TouchObject): self.surface.fill(self.back_color) self.value_text = value_text if value_text: - self.text = TextItem(font, str(self.max), pos, None, (255, 255, 255), size) + self.text = TextItem(font, str(self.max), pos, None) self.text.set_text(str(self.value), True) else: self.text = TextItem(font, text, pos, None) @@ -176,7 +177,7 @@ class Progressbar(TouchObject): self.set_text(str(self.value)) self.surface.fill(self.back_color) pos_pixel = value * self.size[0] / self.max - rect = pygame.Rect(0,0, pos_pixel, self.size[1]) + rect = pygame.Rect(0, 0, pos_pixel, self.size[1]) self.surface.fill(self.main_color, rect) def get_pos_value(self, pos):