#!./bin/python3

import os

EVENT_UP = "event_up"
EVENT_DOWN = "event_down"
EVENT_LEFT = "event_left"
EVENT_RIGHT = "event_right"

class HandlerExit(Exception):
    pass

class BaseHandler:

    def __init__(self, config, display):
        self.display = display
        self.config = config


    def setPlaylistItem(self, item):
        '''
        Called with the selected item.
        '''
        self.item = item


    def update(self, text=None, highlight=-1, title=None, img=None):
        '''
        Called when the handler should update the display.
        '''
        self.display.update(text, highlight, title, img)


    def stop(self):
        '''
        Called when the handler should stop.
        '''
        pass


    def emitEvent(self, event):
        '''
        Called when an event has happened.
        '''
        if event == EVENT_LEFT:
            self.stop()
            raise HandlerExit


    def toDisplayName(self, s):
        s = os.path.splitext(s)[0]
        return s.replace("_", " ").title()
