[gnome-bluetooth] bonobo-ectomy?

Edd Dumbill edd at usefulinc.com
Fri Sep 26 18:09:52 BST 2003

Though it pains me to entertain the notion, perhaps it's time for to
chop out the Bonobo component from this software.

Here are the functions the Bonobo component implements, and my notes:

      long getRFCOMMPort(in string bdaddr, in long channel);
      long connectRFCOMMPort(in string bdaddr, in long channel);

--> these can be done via libbtctl

      long getRFCOMMPortByService(in string bdaddr, in ServiceID
      long connectRFCOMMPortByService(in string bdaddr, in ServiceID

--> these probably ought to have their implementations moved to libbtctl

      void knownDevices (out DeviceList list);
      void knownDevicesOfClass (out DeviceList list, in MajorDeviceClass
clsid);      void removeAllDevices ();
      void removeDevice(in string bdaddr);
      void servicesForDevice(out ServiceList list, in string bdaddr);
      void channelsForService(out ChannelList list,
                              in string bdaddr, in ServiceID service);
      void discoverDevices ();
      void getDeviceInfo (out Device dev, in string bdaddr)

--> these methods are essentially go-betweens between gconf and
libbtctl.  They could be moved into libgnomebt.  The idea with putting
them in the Bonobo component was the app writer shouldn't have to fiddle
around with the prefs as in gconf, but that effect can still be achieved
via libgnomebt.

So we end up with two libraries:

* libbtctl - GObject wrapper for Bluetooth stuff.  Can be used without
GNOME.  Is basically the Btctl::Controller class.

* libgnomebt - GNOME-aware helpers. Make a Gnomebt::Controller class
which is a subclass of Btctl::Controller, and includes all the
GNOME-specific things from the IDL above.

How does this sound?

-- Edd

More information about the gnome-bluetooth mailing list