= papywizard Developper Guide = * [#Introduction Introduction] * [#API API] * [#Architecture Architecture] * [#Hardware Hardware] * [#Model Model] * [#Custompresets Custom presets] * [#View View] * [#Distributing Distributing] * [#Makedebianpackage Make Debian package] * [#Makemaemopackage Make Maemo package] * [#Makewindowsinstaller Make Windows installer] * [#Thefuture The future] == Introduction == Papywizard is entirely written in python. It uses PyGTK (Python bindings for GTK) toolkit for the GUI, and a few additional modules, mainly for hardware control (pybluez and pyserial). Optionnaly, vpython (OpenGL-based module) can also be used to simulate the position of the head (note that this will be soon a separate application). == API == The API documentation is available as web page in the {{{html/}}} directory. == Architecture == Papywizard uses a MVC-like pattern, which keeps the model separated from the views. This allows to use any other toolkit if needed; I recently switched from Tkinter to PyGTK, to run papywizard on Nokia plateform. I hope, one day, to be able to run papywizard on QTopia-based devices, like Openmoko. But I first need to get such device ;o) Low-levels routines which control the hardware are also in their own package; I plan to made them even more modular, to be used in an external project to control the head. For know, only Merlin/Orion head is supported, but it is very easy to implement other heads. A word about the simulation (to come). === Hardware === ''TODO: add Merlin/Orion protocole.'' === Model === === View === == Distributing == === Make Debian package === Papywizard includes an distutils extension script to build debian package in a easy way: {{{ $ python debian/setup.py bdist_debian }}} The package is build in the {{{dist/}}} directory. === Make Maemo package === Same for debian package: {{{ $ python maemo/setup.py bdist_debian }}} === Make Windows installer === This is a little bit tricky (as always on this plateform!). You first need to build the executable, by launching the windows setup script. The easier is to use [http://ipython.scipy.org Ipython]: {{{ In [1]: run windows/setup.py py2exe }}} Then, run the script {{{windows/papywizard.nsi}}} to build the installer itself. == The future ==