Discussion:
[BitPim-devel] bitpim architecture overview?
Steven J. Owens
2008-06-07 04:23:37 UTC
Permalink
Hi folks,

Bitpim looks pretty nifty. I'm working on a project to prototype
a touchscreen kiosk that uses bluetooth to push ringtones and
wallpapers, etc, to cell phones. I'm coding it in python, using
PyBluez, but my biggest blank spot in the design is that there doesn't
seem to be a standard way to download ringtones, etc. Imagine my
delight when a friend sent me a pointer to bitpim!

I've been browsing the api docs at http://www.bitpim.org/apidoc/
trying to get a sense of how bitpim fits together. Does an overview
document exist anywhere (other than the code itself, of course) that
gives a sort of walkthrough of a bitpim session at the class level,
from the user running bitpim at the start, to the data being written
to the phone at the other end?

For example, if I assume bp.py is the starting point, I'd write:

bp.py is the main entry point to BitPim.
bp.py parses any command-line options and then instantiates and invokes either:
an error dialog if the options are garbled
bp_cli (bp_cli.py) for command-line interface (not currently supported)
bitfling.bitfling (bitfling.py) for xml-rpc mode
gui (gui.py) for GUI mode

gui.py is the main GUI code for BitPim.
gui.py contains several class definitions
gui.py's run() method instantiates and returns class MainApp, defined in gui.py
...etc...


I'm not that interested in the GUI aspects in this request (first
because I'm more interested in using the underlying code that actually
does the heavy lifting, and second because there are already good
resources out there on python GUI development). But at some point the
user clicks a button and logic classes are instantiated and invoked,
and at some point classes are used to send data to the phone. Those
are the parts I'm really interested in.

Does something like this exist already?
--
Steven J. Owens
***@darksleep.com / (412) 401-8060 cell
| "I'm going to make broad, sweeping generalizations and strong,
| declarative statements, because otherwise I'll be here all night and
| this document will be four times longer and much less fun to read.
| Take it all with a grain of salt."
| - http://darksleep.com/notablog
Sean Burke
2008-06-07 11:29:52 UTC
Permalink
Steven,
A good entre into the bitpim interface is the CLI. That will give
you file system level access but is abstract enough to be more or less
model agnostic.

Best,

Sean
Post by Steven J. Owens
Hi folks,
Bitpim looks pretty nifty. I'm working on a project to prototype
a touchscreen kiosk that uses bluetooth to push ringtones and
wallpapers, etc, to cell phones. I'm coding it in python, using
PyBluez, but my biggest blank spot in the design is that there doesn't
seem to be a standard way to download ringtones, etc. Imagine my
delight when a friend sent me a pointer to bitpim!
I've been browsing the api docs at http://www.bitpim.org/apidoc/
trying to get a sense of how bitpim fits together. Does an overview
document exist anywhere (other than the code itself, of course) that
gives a sort of walkthrough of a bitpim session at the class level,
from the user running bitpim at the start, to the data being written
to the phone at the other end?
bp.py is the main entry point to BitPim.
an error dialog if the options are garbled
bp_cli (bp_cli.py) for command-line interface (not currently supported)
bitfling.bitfling (bitfling.py) for xml-rpc mode
gui (gui.py) for GUI mode
gui.py is the main GUI code for BitPim.
gui.py contains several class definitions
gui.py's run() method instantiates and returns class MainApp, defined in gui.py
...etc...
I'm not that interested in the GUI aspects in this request (first
because I'm more interested in using the underlying code that actually
does the heavy lifting, and second because there are already good
resources out there on python GUI development). But at some point the
user clicks a button and logic classes are instantiated and invoked,
and at some point classes are used to send data to the phone. Those
are the parts I'm really interested in.
Does something like this exist already?
Loading...