Basic Imaging Profile (GSOC 2008)
This is page for GSOC 2008 project "Extend obex-data-server with BIP support".
Project goal is to implement partial Basic Imaging Profile support in obex-data-server. The actual parts of profile to be implemented: Image Push (initiator and responder) and Remote Display (initiator and responder).
The newest code resides in obex-data-server subversion repository (trunk): svn://muiline.com/obex-data-server/trunk (browse)
Implementation details and current status (Image Push and Remote Display features)
Handling of additional SDP record attributes for BIP (DONE)
src/ods-bluez.c
BIP functions
PutImage (client-side DONE) PutLinkedThumbnail (client-side DONE) PutLinkedAttachment (client-side DONE) RemoteDisplay (client-side DONE)
src/ods-obex.c
BIP descriptors Image-Descriptor, Attachment-Descriptor (DONE)
src/ods-imaging-helpers.c
Acquiring image information (width, height, etc.) and image resizing (DONE)
src/ods-imaging-helpers.c (Implemented using ImageMagick?. TODO: need to pull in threading support and make all this optional)
Imaging capabilities XML object
Capabilities object will not be parsed when using Initiator mode, as Responder, obex-data-server will use static configuration file and serve that as Imaging capabilities object.
GObjects used in obex-data-server
Currently there are OdsSession?, OdsServer? and OdsServerSession? objects. Since BIP can reuse a lot of code from these objects, the best way is to just add BIP functionality to existing objects instead of creating new ones.
DBus API draft
Manager object:
CreateBluetoothImagingSession (string target_address, string source_address, string bip_feature)
Session object:
string GetImagingCapabilities () void PutImage (string file) void PutImageResized (string file, string pixels, string transformation) void PutLinkedAttachment (string image_handle, string file, string content_type) void RemoteDisplaySelectImage (string image_handle) void RemoteDisplayShowCurrentImage () void RemoteDisplayShowNextImage () void RemoteDisplayShowPreviousImage () Signals: ImageHandleReceived(string image_handle)
Signals: RemoteDisplayRequested (string image_file)