コード例 #1
0
ファイル: BTServer.py プロジェクト: BackupTheBerlios/lbrc-svn
    def __init__(self, name = "LBRC", serverid = "a1e7"):
        """
        @param  serverid:   ID associated to the service we announce
        @type   serverid:   string (hexadecimal)
        @param  name:      The name used to announce the service via bluetooth
        @type   name:      string
        @rtype:     BTServer object
        @return:    BTServer object
        """
        gobject.GObject.__init__(self)
        self.name = name
        self.serverid = serverid
        self.connectable = 'yes'
        self.filter = {}
        self.port = bluetooth.get_available_port( bluetooth.RFCOMM )
        self.connected = None
        self.bluetooth_connection = None
        self.bluetooth_keycode = None
        self.config = config()
        self.paired_by_us = {}

        self.client_sock = None
        self.server_sock = None

        self.server_io_watch = None

        self.server_sock = bluetooth.BluetoothSocket( bluetooth.RFCOMM )
        self.server_sock.bind(("", self.port))
        self.server_sock.listen(1)

        self._register_bluez_signals()
        self._switch_connectable()
コード例 #2
0
    def __init__(self):
        self.paths = path()
        bus_name = dbus.service.BusName("custom.LBRC", bus=dbus.SessionBus())
        dbus.service.Object.__init__(self, bus_name, "/custom/LBRC")
        self.btserver = BTServer()

        self.config = config()

        self.event_listener = []

        for i in (UinputDispatcher, CommandExecutor, DBUSCaller, ProfileSwitcher, MPlayer):
            self._register_listener(i)

        # load of config data
        self.cur_profile = None
        self.reload_config()

        self.btserver.connect("keycode", self.handler)
        self.btserver.connect(
            "connect", lambda btserver, btadress, port: self.connect_cb(bluetooth.lookup_name(btadress), btadress, port)
        )
        self.btserver.connect(
            "disconnect",
            lambda btserver, btadress, port: self.disconnect_cb(bluetooth.lookup_name(btadress), btadress, port),
        )
        # load the default profile
        self._load_default_profile()
コード例 #3
0
ファイル: applet.py プロジェクト: BackupTheBerlios/lbrc-svn
    def __init__(self, lbrc, **kwds):
        self.lbrc = lbrc
        self._config = {}
        self.config = config()
        self.paths = path()
        try:
            proxy_obj = dbus.SessionBus().get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
            self.notify_interface = dbus.Interface(proxy_obj, 'org.freedesktop.Notifications')
            self.notify_interface.GetServerInformation()
        except:
            self.notify_interface = None
        try:
            self.bluecontrol = BlueZControl()
        except:
            self.bluecontrol = None
        self._config['icon_size'] = 24
        self.icon = gtk.gdk.pixbuf_new_from_file(self.paths.get_datafile('LBRC.svg'))
        self.trayicon = egg.trayicon.TrayIcon("LBRC")
        image = gtk.Image()
        image.set_from_pixbuf(self.icon.scale_simple(self._config['icon_size'],self._config['icon_size'], gtk.gdk.INTERP_BILINEAR))
        self._create_menu()
        eventbox = gtk.EventBox()
        self.trayicon.add(eventbox)
        eventbox.add(image)
        eventbox.add_events(gtk.gdk.BUTTON_PRESS)
        eventbox.connect('button-press-event', self.popup_menu)
        self.lbrc.connect_to_signal("shutdown", lambda: gtk.main_quit())
        self.lbrc.connect_to_signal("connect_cb", self.connect_cb)
        self.lbrc.connect_to_signal("disconnect_cb", self.disconnect_cb)
        self.lbrc.connect_to_signal("profile_change", self.profile_change_cb)
        self.pid_menu_map[self.lbrc.get_profile()].set_active(1)
        self.trayicon.show_all()

        self.config_close_handler = None
コード例 #4
0
    def __init__(self):
        self.bluez_manager = dinterface(dbus.SystemBus(), "org.bluez", "/org/bluez", "org.bluez.Manager")
        self.bluez_manager.InterfaceVersion()
        self.config = config()
        self.adapter = {}
        self.menu = {}
        self.bluez_manager.connect_to_signal("AdapterAdded", self._bluez_adapter_added)
        self.bluez_manager.connect_to_signal("AdapterRemoved", self._bluez_adapter_removed)
        self.menu["bz_visible"] = {"title": _("Bluetooth visible"), "callback": (self._bluez_switch_visible, 0)}
        self.menu["bz_shorttime"] = {
            "title": _("Bluetooth visible (automatic hiding)"),
            "callback": (self._bluez_switch_visible, 180),
        }
        self.menu["bz_invisible"] = {"title": _("Bluetooth invisible"), "callback": (self._bluez_switch_visible, -1)}

        for menu in self.menu.values():
            menuitem = gtk.CheckMenuItem(menu["title"])
            menuitem.set_draw_as_radio(1)
            menuitem.set_sensitive(0)
            menu["handler"] = menuitem.connect("toggled", *menu["callback"])
            menu["menuitem"] = menuitem

        self.menu_list = [i["menuitem"] for i in self.menu.values()]
        menuitem = gtk.SeparatorMenuItem()
        self.menu_list.append(menuitem)
        self.set_menus_visible(self.config.get_config_item_fb("show-bluetooth", True))
        self._bluez_init_adapter()
コード例 #5
0
    def __init__(self, **kwds):
        self.logger = logging.getLogger('LBRC')
        self.shutdown_commands = []
        bus_name = dbus.service.BusName(DBUSNAME, bus=dbus.SessionBus())
        dbus.service.Object.__init__(self, bus_name, "/core")
        
        self.loghandler = DBUSLogHandler(bus_name, "/log")
        logging.getLogger().addHandler(self.loghandler)
        if 'debug' in kwds:
            self.loghandler.setLevel(kwds['debug'])
            
        self.paths = path()
        self.btserver = BTServer()
        self.config = config()
        
        self.profile_control = ProfileControl(self.config)
        self.dbus_profile_control = DBUSProfileControl(bus_name,
                                                       "/profile",
                                                       self.profile_control)
        self.connection_control = ConnectionControl(bus_name, 
                                                    "/connection", 
                                                    self.btserver)
        
        self.event_listener = []
        
        for i in (UinputDispatcher, CommandExecutor, DBUSCaller, 
                  ProfileSwitcher, MPlayer, PresentationCompanion,
                  VolumeControl, XInput):
            self._register_listener(i)

        self.logger.debug("Register done")
        self.profile_control.connect("profile_changed", self._profile_change_cb)
        self.logger.debug("Initial Profile set")
        self.btserver.connect('keycode', self._dispatch)
        self.logger.debug("Init dispatcher")

        self.btserver.connect("connect", self._connection_established_cb)
        self.btserver.connect("disconnect", self._connection_closed_cb)

        #load of config data 
        self.reload_config()
        self.logger.debug("Reload config")
コード例 #6
0
ファイル: BTServer.py プロジェクト: BackupTheBerlios/lbrc-svn
    def __init__(self, name = "LBRC", serverid = "9c6c8dce-9545-11dc-a3c1-0011d8388a56"):
        """
        @param  serverid:   ID associated to the service we announce
        @type   serverid:   string (hexadecimal)
        @param  name:      The name used to announce the service via bluetooth
        @type   name:      string
        @rtype:     BTServer object
        @return:    BTServer object
        """
        gobject.GObject.__init__(self)
        self.logger = logging.getLogger('LBRC.BTServer')
        self.name = name
        self.serverid = serverid
        self.connectable = 'yes'
        self.filter = {}
        
        self.connected = None
        self.bluetooth_connection = None
        self.bluetooth_keycode = None
        self.config = config()
        self.paired_by_us = {}

        self.client_sock = None
        self.server_sock = None

        self.server_io_watch = None

        self.server_sock = bluetooth.BluetoothSocket( bluetooth.RFCOMM )
        self.server_sock.bind(("", bluetooth.PORT_ANY))
        (addr, self.port) = self.server_sock.getsockname();
        self.server_sock.listen(1)
        
        self.bluez_db = dinterface(dbus.SystemBus(), 'org.bluez', '/org/bluez', 'org.bluez.Database')
        self.advertise_id = None

        self._register_bluez_signals()
        self._switch_connectable()
コード例 #7
0
ファイル: config.py プロジェクト: BackupTheBerlios/lbrc-svn
 def _load_config(self):
     """Loads the config file"""
     self.config = config()    
     self.user_profiles = self.config.user['profiles']
     self.system_profiles = self.config.system['profiles']