Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

FS#9341 - Rbutil - testplugin with python and PyQt

Attached to Project: Rockbox
Opened by Dominik Wenger (Domonoky) - Saturday, 30 August 2008, 21:28 GMT+2
Last edited by Dominik Riebeling (bluebrother) - Wednesday, 11 January 2012, 21:38 GMT+2
Task Type Patches
Category Rbutil
Status Closed
Assigned To No-one
Player Type All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Private No

Details

Hi.

i made a crude attempt to make a testplugin for rbutil, which embeddes python with PyQt.
The idea is, to use such a technic to allow the devs of Rockbox Center to extend rbutil with their new ideas in python plugins.

This patch is very hacky, and only an attempt to prove that it is posssible.

To compile it, you need Python and PyQt. Adjust the paths in rbutil/rbutilqt/plugins/testplugin.pro to point to your Python installation. Also make sure you have the exact same Qt version for rbutil as the version used by your copy if PyQt.
Then just build rbutil normally, and do a "qmake && make" in the plugins dir.
   rbutil-pythonplugin.patch (35.4 KiB)
 rbutil/rbutilqt/plugininterface.h      |   39 +++++
 rbutil/rbutilqt/plugins/testplugin.cpp |  124 +++++++++++++++++
 rbutil/rbutilqt/plugins/testplugin.h   |   80 +++++++++++
 rbutil/rbutilqt/plugins/testplugin.pro |   18 ++
 rbutil/rbutilqt/rbutilqt.cpp           |   41 +++++
 rbutil/rbutilqt/rbutilqt.h             |    4 
 rbutil/rbutilqt/rbutilqt.pro           |    7 
 rbutil/rbutilqt/rbutilqtfrm.ui         |  236 +++++++++++++++++++++++++--------
 8 files changed, 489 insertions(+), 60 deletions(-)

This task depends upon

Closed by  Dominik Riebeling (bluebrother)
Wednesday, 11 January 2012, 21:38 GMT+2
Reason for closing:  Out of Date
Additional comments about closing:  no activity since years.
Comment by Dominik Wenger (Domonoky) - Sunday, 31 August 2008, 15:03 GMT+2
Little improvement for the patch.
Exports the settings object to the Plugin, and exports one function of the settings object to Python. (current mountpoint)


   rbutil-pythonplugin2.patch (36.8 KiB)
 rbutil/rbutilqt/plugininterface.h      |   43 ++++++
 rbutil/rbutilqt/plugins/testplugin.cpp |  166 +++++++++++++++++++++++
 rbutil/rbutilqt/plugins/testplugin.h   |   90 ++++++++++++
 rbutil/rbutilqt/plugins/testplugin.pro |   24 +++
 rbutil/rbutilqt/rbutilqt.cpp           |   44 ++++++
 rbutil/rbutilqt/rbutilqt.h             |    4 
 rbutil/rbutilqt/rbutilqt.pro           |    7 
 rbutil/rbutilqt/rbutilqtfrm.ui         |  236 +++++++++++++++++++++++++--------
 8 files changed, 554 insertions(+), 60 deletions(-)

Comment by Dominik Wenger (Domonoky) - Sunday, 31 August 2008, 15:12 GMT+2
Up,
now the patch is hopefully without dublicates..
   rbutil-python3.patch (31.4 KiB)
 rbutil/rbutilqt/plugins/testplugin.cpp |   83 +++++++++++
 rbutil/rbutilqt/plugins/testplugin.h   |   45 ++++++
 rbutil/rbutilqt/plugins/testplugin.pro |   12 +
 rbutil/rbutilqt/rbutilqtfrm.ui         |  236 +++++++++++++++++++++++++--------
 rbutil/rbutilqt/rbutilqt.cpp           |   44 ++++++
 rbutil/rbutilqt/rbutilqt.pro           |    7 
 rbutil/rbutilqt/rbutilqt.h             |    4 
 rbutil/rbutilqt/plugininterface.h      |   43 ++++++
 8 files changed, 414 insertions(+), 60 deletions(-)

Comment by Dominik Wenger (Domonoky) - Sunday, 31 August 2008, 19:36 GMT+2
new Version, it now re-loads he plugin before calling run on it. This prevents crashed in th Python part ofthe plugin.

   rbuti-python4.patch (31.9 KiB)
 rbutil/rbutilqt/plugins/testplugin.cpp |   84 +++++++++++
 rbutil/rbutilqt/plugins/testplugin.h   |   45 ++++++
 rbutil/rbutilqt/plugins/testplugin.pro |   12 +
 rbutil/rbutilqt/rbutilqtfrm.ui         |  236 +++++++++++++++++++++++++--------
 rbutil/rbutilqt/rbutilqt.cpp           |   45 ++++++
 rbutil/rbutilqt/rbutilqt.pro           |    7 
 rbutil/rbutilqt/rbutilqt.h             |    8 -
 rbutil/rbutilqt/plugininterface.h      |   43 ++++++
 8 files changed, 420 insertions(+), 60 deletions(-)

Comment by Dominik Wenger (Domonoky) - Thursday, 04 September 2008, 22:16 GMT+2
New version.
It now executes a testplugin.py file in the same dir as the plugin .so/.dll is.
This is very good for testing and fiddeling with the Python part. :-)
There is a example python file in the plugins dir.

I also extracted the rbsettings to python binding into a extra file. So it can easily reused by other python plugins.
And i added a few more rbsettings functions to python.

EDIT:
add missing header
   rbutil-python5.patch (35.5 KiB)
 rbutil/rbutilqt/plugins/testplugin.cpp        |   62 ++++++
 rbutil/rbutilqt/plugins/testplugin.h          |   43 ++++
 rbutil/rbutilqt/plugins/testplugin.py         |   27 ++
 rbutil/rbutilqt/plugins/rbsettingswrapper.cpp |   80 ++++++++
 rbutil/rbutilqt/plugins/rbsettingswrapper.h   |   31 +++
 rbutil/rbutilqt/plugins/testplugin.pro        |   15 +
 rbutil/rbutilqt/rbutilqtfrm.ui                |  236 +++++++++++++++++++-------
 rbutil/rbutilqt/rbutilqt.cpp                  |   46 +++++
 rbutil/rbutilqt/rbutilqt.pro                  |    8 
 rbutil/rbutilqt/rbutilqt.h                    |    9 
 10 files changed, 497 insertions(+), 60 deletions(-)

   plugininterface.h (1.4 KiB)

Loading...