#!/usr/bin/env python2.5 # -*- coding: latin1 -*- import ecore import ecore.evas import edje import sys import os from dbus import SystemBus, Interface import e_dbus import ecore SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS = "/sys/class/backlight/gta01-bl/brightness" brightness_value_max = 5100 things = [] mark = {} active = 1 dbus_ml = e_dbus.DBusEcoreMainLoop() bus = SystemBus(mainloop=dbus_ml) ee = ecore.evas.SoftwareX11(w=480, h=640) ee.fullscreen = True ee.title = 'ebrightness' ee.name_class = ('ebrightness', 'ebrightness') ee.cursor_set('cursor.png', 0x7fffffff, 60, 60) background = edje.Edje(ee.evas, file='ebrightness.edj', group='background') background.size = ee.evas.size background.show() foreground = edje.Edje(ee.evas, file='ebrightness.edj', group='foreground') foreground.size = ee.evas.size foreground.show() #thing = edje.Edje(ee.evas, file='ebrightness.edj', group='thing') #thing.size = ee.evas.size #thing.show() def set_sysfs_value(entry_dir, value): try: file_descriptor = open(entry_dir, 'w') except: return False file_descriptor.write("%d" % int(value)) file_descriptor.close() return True def get_sysfs_value(entry_dir): try: file_descriptor = open(entry_dir) except: return "" value = file_descriptor.read() file_descriptor.close() return value brightness_value = int(get_sysfs_value(SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS)) class Thing: def __init__(self, ee, type, screenpos, status=False, ): self.part = edje.Edje(ee.evas, file='ebrightness.edj', group='thing') self.part.geometry_set(0, 160 * screenpos, 480, 150) if not status: self.part.color = (128, 128, 128, 128, ) else: self.part.color = (255, 255, 255, 255, ) #self.part.part_rect.color_class = ('empty', active) self.part.show() mark[screenpos] = status print 'mark: ', mark[screenpos] def selected_thing(self, signal, source): global things, active, status print 'source: ', source, mark[screenpos], screenpos if screenpos == 0: self.part.color = (255, 255, 255, 255, ) self.part.signal_callback_add('mouse,up,1', '*', selected_thing) class Brightness(Thing): def __init__(self, ee, screenpos, status): Thing.__init__(self, ee, "brightness", screenpos, status) self.part.part_text_set('text', 'Brightness: ' + str((brightness_value*100)/brightness_value_max) + ' %') class VolumeRight(Thing): def __init__(self, ee, screenpos, status): Thing.__init__(self, ee, "volumeright", screenpos, status) self.part.part_text_set('text', 'Volume Right: ' + str((brightness_value*100)/brightness_value_max) + ' %') class VolumeLeft(Thing): def __init__(self, ee, screenpos, status): Thing.__init__(self, ee, "volumeleft", screenpos, status) self.part.part_text_set('text', 'Volume Left: ' + str((brightness_value*100)/brightness_value_max) + ' %') def selected(foreground, signal, source): global brightness_value, brightness_value_max, SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS, things, active, status if source == 'plus_image': for n, thing in enumerate(things): if mark[0] == True: brightness_value += 100 things[0].part.part_text_set('text', 'Brightness: ' + str((brightness_value*100)/brightness_value_max) + ' %') set_sysfs_value(SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS, brightness_value) if mark[1] == True: brightness_value += 100 elif source =='minus_image' and active == True: for n, thing in enumerate(things): if mark[0] == True: brightness_value -= 100 things[0].part.part_text_set('text', 'Brightness: ' + str((brightness_value*100)/brightness_value_max) + ' %') set_sysfs_value(SYSFS_ENTRY_BACKLIGHT_BRIGHTNESS, brightness_value) else: print 'selected', foreground, signal, source foreground.signal_callback_add('mouse,up,1', '*', selected) things.append(Brightness(ee, 0 - active + 1, False)) things.append(VolumeRight(ee, 1 - active + 1, False)) things.append(VolumeLeft(ee, 2 - active + 1, False)) try: ee.show() ecore.main_loop_begin() except: ecore.event.shutdown()