class Display(SevenSegment):
  # Indicator Bit Flags
  __MID_COLON                = 14
  __LEFT_TOP                 = 13
  __LEFT_BOTTOM              = 12
  __RIGHT_TOP                = 11

  def __init__(self, address=0x70):
    self.display = LEDBackpack(address=address)
    self.showTime = True

  def setBrightness(self, level):
    self.display.setBrightness(level)

  def setColon(self, state=True):
    row = BitArray('uint:16=%d' % self.display.getBufferRow(2))
    row[self.__MID_COLON] = state
    self.display.setBufferRow(2, int(row.hex, 16))

  def setEvening(self, state=True):
    row = BitArray('uint:16=%d' % self.display.getBufferRow(2))
    row[self.__LEFT_TOP] = state
    self.display.setBufferRow(2, int(row.hex, 16))

  def setMinutes(self, minutes):
    self._writeDigit(3, int(minutes / 10))   # Tens
    self._writeDigit(4, minutes % 10)        # Ones

  def setHours(self, hours):
    hourTens = int(hours / 10) if hours >= 10 else None
    self._writeDigit(0, hourTens)          # Tens
    self._writeDigit(1, hours % 10)        # Ones

  def _writeDigit(self, charNumber, value, dot=False):
    if (charNumber > 7): return
    if (value > 9): return

    hexValue = SevenSegment.digits[value] if value != None else 0x00
    self.display.setBufferRow(charNumber, hexValue)
 def __init__(self, address=0x70):
   self.display = LEDBackpack(address=address)
   self.showTime = True