Qt development with linuxmce
This article will explain how to utilize the Qt development framework with linuxmce. Currently, there are a few different types of devices that utilize the Qt framework within linuxmce
- Hue Controller - For controlling Phillips Hue color changing LED lights using QtNetwork to interface with the JSON api of the device.
- linuxmceTag - A simple command line media scanner which scans video files, and then does its best to lookup information via online api's to fill in metadata
- QOrbiter - Graphical user interface for linuxmce, allowing one to have classic orbiter functionality.
Contents
General Requirements
These are the general requirements for working with Qt and linuxmce to develop devices
- Qt Development SDK - http://www.qt.io/download/
- Choose the open source version. This will allow you to download the source as needed, libraries, and the IDE, Qt Creator.
- If you are targeting Qt4, you would best apt-get install qt4-dev-tools. This will pull in Qt4 libraries and the Qt Creator for qt4. Please note if creating a new project, you will be politely asked to use Qt5. Qt4 based projects are scheduled to be moved to Qt5.
- A functioning linuxmce installation, VM or otherwise.
- You will also need the source code, which you can check out at http://git.linuxmce.org.
- Follow this existing article: http://wiki.linuxmce.org/index.php/Developing_a_DCE_Device
Once you have setup your linuxmce box according to the article above,you will be ready to start development
Working from your own linux machine
Working from one's own linux machine can be beneficial from the standpoint using the most familiar development environment. Some things must be take into consideration however.
- If your device is a plugin, this method is not open to you. Plugins run in the router memory space and this means they cannot be run from remote machines. It wouldnt even be wise to try.
- Passing command line parameters to the device, will allow you to run it from your machine, but connected to the router.
- Pass '-r <yourcoreip>' for the router. It defaults to 192.168.80.1
- Pass '-d <devicenumber>' for the device number.
Working on your core
Working on the core can be beneficial from the standpoint of
- no need to move file(s) across network
- compile in native environment
Both of these are useful, but debugging and gui functionality will be limited.
QOrbiter Specifics
Desktop
Android
iOS
Raspberry Pi / MD specifics
When working on the raspberry pi, or a media director, one must note that they need to utilize the device profiles in Qt Creator. What these profiles do is establish template for connecting to and uploading files to another machine or embedded device. The benefit of this is that it allows you run the application on the target device, while benefiting from the development machine normally used.
You must be compiling against the Qt Version ON the device. We hope to provide links in the future with the necessary build.
Device setup is done in the 'devices' tab under the options in Qt Creator. The wizard will walk you through creating the profile for a given device.
Raspberry Pi=
Please note that the pi will also require a cross-compiler setup.