+++ /dev/null
-#ifndef CONSTANTS_H
-#define CONSTANTS_H
-
-// QCoreApplication info
-#define APPLICATION_NAME "simplexbmcremote"
-#define ORGANIZATION_NAME "Ionutz Borcoman"
-
-// QSettings keys
-#define SETUP_XBMC_SERVER "xbmc/server"
-#define SETUP_XBMC_SERVER_DEFAULT "localhost"
-#define SETUP_XBMC_PORT "xbmc/port"
-#define SETUP_XBMC_PORT_DEFAULT "8080"
-
-#define SETUP_NOTIFICATION_TIMEOUT "notification/timeout"
-#define SETUP_NOTIFICATION_TIMEOUT_DEFAULT 3000
-
-#endif // CONSTANTS_H
+++ /dev/null
-The Debian Package simplexbmcremote
------------------------------------
-
-A simple application for controlling XBMC remotely while watching movies. Uses
-HTTP XBMC protocol to communicate with XBMC. Can navigate your video
-collection, start/pause/stop movies, skip forward and back, control the volume,
-cycle through the existing subtitles and languages.
-
- -- Ionutz Borcoman <iborco@gmail.com> Mon, 31 Jan 2011 14:34:36 +0200
+++ /dev/null
-simplexbmcremote (0.8.1) unstable; urgency=low
-
- * Preparing for garage upload.
-
- -- Ionutz Borcoman <iborco+maemo@gmail.com> Wed, 09 Mar 2011 09:16:53 +0200
-
-simplexbmcremote (0.8.0) unstable; urgency=low
-
- * Initial Release.
-
- -- Ionutz Borcoman <iborco+maemo@gmail.com> Mon, 31 Jan 2011 14:34:36 +0200
+++ /dev/null
-Source: simplexbmcremote
-Section: user/multimedia
-Priority: optional
-Maintainer: Ionutz Borcoman <iborco+maemo@gmail.com>
-Build-Depends: debhelper (>= 5), libqt4-dev
-Standards-Version: 3.7.3
-Homepage: https://garage.maemo.org/projects/simple-xmbc-rem/
-
-Package: simplexbmcremote
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: simple xbmc remote control
- A simple application for controlling XBMC remotely (using HTTP) while watching movies.
- .
- Can navigate your video collection, start/pause/stop movies, skip forward and back, control the volume, switch the existing subtitles and languages.
-XSBC-Bugtracker: https://garage.maemo.org/tracker/?atid=7118&group_id=2102
-XSBC-Maemo-Display-Name: Simple XBMC Remote
-XB-Maemo-Upgrade-Description: Initial release for Maemo.
-XB-Maemo-Icon-26:
- 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
+++ /dev/null
-This package was debianized by Ionutz Borcoman <iborco@gmail.com> on
-Mon, 31 Jan 2011 14:34:36 +0200.
-
-It was downloaded from https://garage.maemo.org/projects/simple-xmbc-rem/
-
-Upstream Author(s):
-
- Ionutz Borcoman <iborco+maemo@gmail.com>
-
-Copyright:
-
- Copyright (C) 2011 Ionutz Borcoman
-
-License:
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-On Debian systems, the complete text of the GNU General
-Public License can be found in `/usr/share/common-licenses/GPL'.
-
-The Debian packaging is (C) 2011, Ionutz Borcoman <iborco@gmail.com> and
-is licensed under the GPL, see above.
+++ /dev/null
-#!/usr/bin/make -f
-APPNAME := simplexbmcremote
-builddir:
- mkdir -p builddir
-
-builddir/Makefile: builddir
- cd builddir && qmake-qt4 PREFIX=/usr ../$(APPNAME).pro
-
-build: build-stamp
-
-build-stamp: builddir/Makefile
- dh_testdir
- # Add here commands to compile the package.
- cd builddir && $(MAKE)
- touch $@
-
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp
- # Add here commands to clean up after the build process.
- rm -rf builddir
- dh_clean
-install: build
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
-
- # Add here commands to install the package into debian/your_appname
- cd builddir && $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/$(APPNAME) install
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
- dh_testdir
- dh_testroot
- dh_installdocs
- dh_installexamples
- dh_installman
- dh_link
-# dh_strip --dbg-package=appname-dbg
- dh_compress
- dh_fixperms
- dh_installdeb
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
+++ /dev/null
-# checksum 0x2939 version 0x20001
-# This file was generated by an application wizard of Qt Creator.
-# The code below handles deployment to Symbian and Maemo, aswell as copying
-# of the application data to shadow build directories on desktop.
-# It is recommended not to modify this file, since newer versions of Qt Creator
-# may offer an updated version of it.
-
-defineTest(qtcAddDeployment) {
-for(deploymentfolder, DEPLOYMENTFOLDERS) {
- item = item$${deploymentfolder}
- itemsources = $${item}.sources
- $$itemsources = $$eval($${deploymentfolder}.source)
- itempath = $${item}.path
- $$itempath= $$eval($${deploymentfolder}.target)
- export($$itemsources)
- export($$itempath)
- DEPLOYMENT += $$item
-}
-
-MAINPROFILEPWD = $$PWD
-
-symbian {
- ICON = $${TARGET}.svg
- TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
- contains(DEFINES, ORIENTATIONLOCK):LIBS += -lavkon -leikcore -lcone
- contains(DEFINES, NETWORKACCESS):TARGET.CAPABILITY += NetworkServices
-} else:win32 {
- copyCommand =
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
- source = $$replace(source, /, \\)
- sourcePathSegments = $$split(source, \\)
- target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
- target = $$replace(target, /, \\)
- !isEqual(source,$$target) {
- !isEmpty(copyCommand):copyCommand += &&
- copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
- }
- }
- !isEmpty(copyCommand) {
- copyCommand = @echo Copying application data... && $$copyCommand
- copydeploymentfolders.commands = $$copyCommand
- first.depends = $(first) copydeploymentfolders
- export(first.depends)
- export(copydeploymentfolders.commands)
- QMAKE_EXTRA_TARGETS += first copydeploymentfolders
- }
-} else:unix {
- maemo5 {
- installPrefix = /opt/usr
- desktopfile.path = /usr/share/applications/hildon
- } else {
- installPrefix = /usr/local
- desktopfile.path = /usr/share/applications
- copyCommand =
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
- source = $$replace(source, \\, /)
- macx {
- target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
- } else {
- target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
- }
- target = $$replace(target, \\, /)
- sourcePathSegments = $$split(source, /)
- targetFullPath = $$target/$$last(sourcePathSegments)
- !isEqual(source,$$targetFullPath) {
- !isEmpty(copyCommand):copyCommand += &&
- copyCommand += $(MKDIR) \"$$target\"
- copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
- }
- }
- !isEmpty(copyCommand) {
- copyCommand = @echo Copying application data... && $$copyCommand
- copydeploymentfolders.commands = $$copyCommand
- first.depends = $(first) copydeploymentfolders
- export(first.depends)
- export(copydeploymentfolders.commands)
- QMAKE_EXTRA_TARGETS += first copydeploymentfolders
- }
- }
- for(deploymentfolder, DEPLOYMENTFOLDERS) {
- item = item$${deploymentfolder}
- itemfiles = $${item}.files
- $$itemfiles = $$eval($${deploymentfolder}.source)
- itempath = $${item}.path
- $$itempath = $${installPrefix}/share/$${TARGET}/$$eval($${deploymentfolder}.target)
- export($$itemfiles)
- export($$itempath)
- INSTALLS += $$item
- }
- icon.files = $${TARGET}.png
- icon.path = /usr/share/icons/hicolor/64x64/apps
- desktopfile.files = $${TARGET}.desktop
- target.path = $${installPrefix}/bin
- export(icon.files)
- export(icon.path)
- export(desktopfile.files)
- export(desktopfile.path)
- export(target.path)
- INSTALLS += desktopfile icon target
-}
-
-export (ICON)
-export (INSTALLS)
-export (DEPLOYMENT)
-export (TARGET.EPOCHEAPSIZE)
-export (TARGET.CAPABILITY)
-export (LIBS)
-export (QMAKE_EXTRA_TARGETS)
-}
+++ /dev/null
-#ifdef Q_WS_MAEMO_5
-#include <QMaemo5InformationBox>
-#else
-#include <libnotify/notify.h>
-#endif
-
-#include "genericnotify.h"
-#include "constants.h"
-#include <QSettings>
-
-void notify::init()
-{
-#ifdef Q_WS_MAEMO_5
-#else
- /* Init libnotify library */
- notify_init(APPLICATION_NAME);
-#endif
-}
-
-void notify::notify(const QString& msg)
-{
-#ifdef Q_WS_MAEMO_5
- QMaemo5InformationBox::information (0, msg);
-#else
- /* Create notification */
- NotifyNotification *notification = notify_notification_new(APPLICATION_NAME, qPrintable(msg), 0, 0);
- if (notification) {
- QSettings settings;
- int timeout = settings.value(SETUP_NOTIFICATION_TIMEOUT, SETUP_NOTIFICATION_TIMEOUT_DEFAULT).toInt();
-
- /* Set timeout */
- notify_notification_set_timeout(notification, timeout);
-
- /* Schedule notification for showing */
- if (!notify_notification_show(notification, NULL)) {
- qDebug("Failed to send notification");
- }
-
- /* Clean up the memory */
- g_object_unref(notification);
- }
-#endif
- qDebug(qPrintable(msg));
-}
+++ /dev/null
-#ifndef GENERIC_NOTIFY_H
-#define GENERIC_NOTIFY_H
-
-#include <QString>
-
-namespace notify
-{
- void init();
- void notify(const QString& msg);
-}
-
-#endif // GENERIC_NOTIFY_H
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="480"
- height="800"
- id="svg2"
- version="1.1"
- inkscape:version="0.48.1 r9760"
- sodipodi:docname="xbmc.svg">
- <defs
- id="defs4">
- <linearGradient
- id="linearGradient5205">
- <stop
- style="stop-color:#ff0000;stop-opacity:1"
- offset="0"
- id="stop5207" />
- <stop
- style="stop-color:#ffd5d5;stop-opacity:0;"
- offset="1"
- id="stop5209" />
- </linearGradient>
- <linearGradient
- id="linearGradient3763">
- <stop
- style="stop-color:#ffd5d5;stop-opacity:1;"
- offset="0"
- id="stop3765" />
- <stop
- style="stop-color:#ffd5d5;stop-opacity:0;"
- offset="1"
- id="stop3767" />
- </linearGradient>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.7"
- inkscape:cx="134.45775"
- inkscape:cy="242.83914"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- width="480px"
- inkscape:showpageshadow="false"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-width="1280"
- inkscape:window-height="750"
- inkscape:window-x="0"
- inkscape:window-y="25"
- inkscape:window-maximized="1"
- inkscape:snap-global="true"
- objecttolerance="20">
- <inkscape:grid
- type="xygrid"
- id="grid5495"
- empspacing="5"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true"
- spacingx="5px"
- spacingy="5px" />
- </sodipodi:namedview>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-252.36218)">
- <g
- id="g5788">
- <path
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- transform="matrix(0.76825029,0,0,0.76825029,-362.37407,246.78953)"
- d="m 668.57144,105 a 57.857143,57.857143 0 1 1 -115.71429,0 57.857143,57.857143 0 1 1 115.71429,0 z"
- sodipodi:ry="57.857143"
- sodipodi:rx="57.857143"
- sodipodi:cy="105"
- sodipodi:cx="610.71429"
- id="path5290"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc" />
- <path
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- sodipodi:nodetypes="czcacc"
- inkscape:connector-curvature="0"
- id="path5292"
- d="m 139.78101,326.74849 c 0,18.21084 -14.76281,32.97364 -32.97365,32.97364 -18.21084,0 -32.973639,-14.7628 -32.973639,-32.97364 l 0,0 c 0,0 15.50423,10.16472 32.973639,10.47668 17.46112,0 32.97365,-10.47668 32.97365,-10.47668 z"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:13.89884281;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
- <text
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- sodipodi:linespacing="125%"
- id="text5358"
- y="351.5061"
- x="83.063553"
- style="font-size:44.04649352999999934px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
- xml:space="preserve"><tspan
- style="font-size:66.06974791999999752px;fill:#f2f2f2;stroke:#999999;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none"
- y="351.5061"
- x="83.063553"
- id="tspan5360"
- sodipodi:role="line">S</tspan></text>
- </g>
- <g
- id="g5794">
- <g
- id="g5294"
- transform="matrix(0.76825029,0,0,0.76825029,213.30391,161.81075)">
- <path
- transform="translate(-749.33649,262.04198)"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- sodipodi:ry="57.857143"
- sodipodi:rx="57.857143"
- sodipodi:cy="105"
- sodipodi:cx="610.71429"
- id="path5296"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="czcacc"
- inkscape:connector-curvature="0"
- id="path5298"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
- </g>
- <text
- xml:space="preserve"
- style="font-size:44.04649352999999934px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
- x="83.628113"
- y="467.87341"
- id="text5362"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan5364"
- x="83.628113"
- y="467.87341"
- style="font-size:66.06974791999999752px;fill:#f2f2f2;stroke:#999999;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none">L</tspan></text>
- </g>
- <g
- id="g5801">
- <g
- transform="matrix(0.76825029,0,0,0.76825029,493.15327,161.81075)"
- id="g5276">
- <path
- sodipodi:type="arc"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="path5278"
- sodipodi:cx="610.71429"
- sodipodi:cy="105"
- sodipodi:rx="57.857143"
- sodipodi:ry="57.857143"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- transform="translate(-749.33649,262.04198)" />
- <path
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- id="path5280"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="czcacc" />
- </g>
- <g
- style="stroke:#999999"
- transform="translate(643.31879,94.918051)"
- id="g5370">
- <path
- sodipodi:type="star"
- style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:19.64505386;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- id="path5368"
- sodipodi:sides="3"
- sodipodi:cx="-234.28571"
- sodipodi:cy="65.714287"
- sodipodi:r1="87.563385"
- sodipodi:r2="43.781693"
- sodipodi:arg1="1.0471976"
- sodipodi:arg2="2.0943951"
- inkscape:flatsided="false"
- inkscape:rounded="0"
- inkscape:randomized="0"
- d="m -190.50402,141.5464 -65.67253,-37.91606 -65.67254,-37.916057 65.67254,-37.916054 65.67254,-37.916056 0,75.832114 z"
- transform="matrix(0.12475737,0,0,0.332313,-234.55319,327.03509)"
- inkscape:transform-center-x="2.7310475" />
- <rect
- style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- id="rect5366"
- width="10"
- height="28.971426"
- x="-281.71429"
- y="334.38708" />
- </g>
- <path
- sodipodi:open="true"
- sodipodi:end="7.0685835"
- sodipodi:start="5.4977871"
- transform="matrix(0.26667711,0,0,0.47997549,311.76939,408.13553)"
- d="m 300.95322,57.618196 a 23.571428,23.571428 0 0 1 0,33.335034"
- sodipodi:ry="23.571428"
- sodipodi:rx="23.571428"
- sodipodi:cy="74.285713"
- sodipodi:cx="284.28571"
- id="path5403"
- style="fill:none;stroke:#999999;stroke-width:11.18040657;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- sodipodi:type="arc" />
- </g>
- <g
- id="g5810">
- <g
- id="g5270"
- transform="matrix(0.76825029,0,0,0.76825029,493.15327,45.475706)">
- <path
- transform="translate(-749.33649,262.04198)"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- sodipodi:ry="57.857143"
- sodipodi:rx="57.857143"
- sodipodi:cy="105"
- sodipodi:cx="610.71429"
- id="path5272"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="czcacc"
- inkscape:connector-curvature="0"
- id="path5274"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
- </g>
- <g
- style="stroke:#999999"
- transform="translate(108.64493,-94)"
- id="g5436">
- <g
- style="stroke:#999999"
- transform="translate(534.67386,72.583011)"
- id="g5424">
- <path
- sodipodi:type="star"
- style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:19.64505386000000087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- id="path5426"
- sodipodi:sides="3"
- sodipodi:cx="-234.28571"
- sodipodi:cy="65.714287"
- sodipodi:r1="87.563385"
- sodipodi:r2="43.781693"
- sodipodi:arg1="1.0471976"
- sodipodi:arg2="2.0943951"
- inkscape:flatsided="false"
- inkscape:rounded="0"
- inkscape:randomized="0"
- d="m -190.50402,141.5464 -65.67253,-37.91606 -65.67254,-37.916057 65.67254,-37.916054 65.67254,-37.916056 0,75.832114 z"
- transform="matrix(0.12475737,0,0,0.332313,-234.55319,327.03509)"
- inkscape:transform-center-x="2.7310475" />
- <rect
- style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- id="rect5428"
- width="10"
- height="28.971426"
- x="-281.71429"
- y="334.38708" />
- </g>
- <path
- sodipodi:open="true"
- sodipodi:end="7.0685835"
- sodipodi:start="5.4977871"
- transform="matrix(0.26667711,0,0,0.47997549,203.12446,385.80049)"
- d="m 300.95322,57.618196 c 9.20522,9.205215 9.20522,24.129818 0,33.335033 0,1e-6 0,1e-6 0,1e-6"
- sodipodi:ry="23.571428"
- sodipodi:rx="23.571428"
- sodipodi:cy="74.285713"
- sodipodi:cx="284.28571"
- id="path5430"
- style="fill:none;stroke:#999999;stroke-width:11.18040657000000060;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- sodipodi:type="arc" />
- <path
- sodipodi:type="arc"
- style="fill:none;stroke:#999999;stroke-width:5.45370578999999989;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- id="path5432"
- sodipodi:cx="284.28571"
- sodipodi:cy="74.285713"
- sodipodi:rx="23.571428"
- sodipodi:ry="23.571428"
- d="m 300.95322,57.618196 c 9.20522,9.205215 9.20522,24.129818 0,33.335033 0,1e-6 0,1e-6 0,1e-6"
- transform="matrix(0.68970634,0,0,0.77996018,81.812482,363.51592)"
- sodipodi:start="5.4977871"
- sodipodi:end="7.0685835"
- sodipodi:open="true" />
- <path
- sodipodi:open="true"
- sodipodi:end="7.0685835"
- sodipodi:start="5.4977871"
- transform="matrix(1.1127359,0,0,1.0799449,-39.499656,341.23134)"
- d="m 300.95322,57.618196 c 9.20522,9.205215 9.20522,24.129818 0,33.335033 0,1e-6 0,1e-6 0,1e-6"
- sodipodi:ry="23.571428"
- sodipodi:rx="23.571428"
- sodipodi:cy="74.285713"
- sodipodi:cx="284.28571"
- id="path5434"
- style="fill:none;stroke:#999999;stroke-width:3.64891005000000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- sodipodi:type="arc" />
- </g>
- </g>
- <g
- id="g5776">
- <g
- id="g5282"
- transform="matrix(0.76825029,0,0,0.76825029,493.15326,299.36579)">
- <path
- transform="translate(-749.33649,262.04198)"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- sodipodi:ry="57.857143"
- sodipodi:rx="57.857143"
- sodipodi:cy="105"
- sodipodi:cx="610.71429"
- id="path5284"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="czcacc"
- inkscape:connector-curvature="0"
- id="path5286"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
- </g>
- <g
- id="g5457"
- transform="translate(643.31879,232.4731)"
- style="stroke:#999999">
- <path
- inkscape:transform-center-x="2.7310475"
- transform="matrix(0.12475737,0,0,0.332313,-234.55319,327.03509)"
- d="m -190.50402,141.5464 -65.67253,-37.91606 -65.67254,-37.916057 65.67254,-37.916054 65.67254,-37.916056 0,75.832114 z"
- inkscape:randomized="0"
- inkscape:rounded="0"
- inkscape:flatsided="false"
- sodipodi:arg2="2.0943951"
- sodipodi:arg1="1.0471976"
- sodipodi:r2="43.781693"
- sodipodi:r1="87.563385"
- sodipodi:cy="65.714287"
- sodipodi:cx="-234.28571"
- sodipodi:sides="3"
- id="path5459"
- style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:19.64505386;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- sodipodi:type="star" />
- <rect
- y="334.38708"
- x="-281.71429"
- height="28.971426"
- width="10"
- id="rect5461"
- style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
- </g>
- <g
- transform="translate(186.31244,177.80758)"
- id="g5480">
- <path
- style="fill:#999999;stroke:#999999;stroke-width:3.99999976;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 205.71429,395.53832 10.61883,16"
- id="path5469"
- inkscape:connector-curvature="0" />
- <g
- id="g5473"
- transform="matrix(1.1435669,0,0,1.1286554,-29.533762,-52.94665)">
- <path
- style="fill:#999999;stroke:#999999;stroke-width:3.52085781;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="M 205.71429,411.53834 215,397.36218"
- id="path5471"
- inkscape:connector-curvature="0" />
- </g>
- </g>
- </g>
- <g
- id="g5770">
- <g
- transform="matrix(0.76825029,0,0,0.76825029,213.30391,299.36579)"
- id="g5300">
- <path
- sodipodi:type="arc"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="path5302"
- sodipodi:cx="610.71429"
- sodipodi:cy="105"
- sodipodi:rx="57.857143"
- sodipodi:ry="57.857143"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- transform="translate(-749.33649,262.04198)" />
- <path
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- id="path5304"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="czcacc" />
- </g>
- <path
- sodipodi:nodetypes="cccccccccc"
- inkscape:connector-curvature="0"
- id="path5499"
- d="m 82.896655,590.80125 15.267855,15.26786 0,-10.08929 24.55357,0 0,-39.35714 -10.35714,0 0,29.17857 -14.28572,0 0,-10.35714 z"
- style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none" />
- </g>
- <g
- id="g5764">
- <g
- id="g5306"
- transform="matrix(0.76825029,0,0,0.76825029,213.30391,700.79436)">
- <path
- transform="translate(-749.33649,262.04198)"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- sodipodi:ry="57.857143"
- sodipodi:rx="57.857143"
- sodipodi:cy="105"
- sodipodi:cx="610.71429"
- id="path5308"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="czcacc"
- inkscape:connector-curvature="0"
- id="path5310"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
- </g>
- <rect
- y="964.77448"
- x="88.807365"
- height="36"
- width="36"
- id="rect5681"
- style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
- </g>
- <g
- id="g5738">
- <g
- id="g5246"
- transform="matrix(0.76825029,0,0,0.76825029,230.75784,531.69157)">
- <path
- transform="translate(-749.33649,262.04198)"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- sodipodi:ry="57.857143"
- sodipodi:rx="57.857143"
- sodipodi:cy="105"
- sodipodi:cx="610.71429"
- id="path5248"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="czcacc"
- inkscape:connector-curvature="0"
- id="path5250"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
- </g>
- <path
- style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none"
- d="m 148.98379,805.12041 -23.39951,0 0,-17.87291 -26.045478,26.50121 26.198688,26.34714 0,-17.41069 23.2463,0 z"
- id="path5683"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccc" />
- </g>
- <g
- id="g5744">
- <g
- transform="matrix(0.76825029,0,0,0.76825029,475.69934,531.69157)"
- id="g5252">
- <path
- sodipodi:type="arc"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="path5254"
- sodipodi:cx="610.71429"
- sodipodi:cy="105"
- sodipodi:rx="57.857143"
- sodipodi:ry="57.857143"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- transform="translate(-749.33649,262.04198)" />
- <path
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- id="path5256"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="czcacc" />
- </g>
- <path
- sodipodi:nodetypes="cccccccc"
- inkscape:connector-curvature="0"
- id="path5689"
- d="m 344.4803,805.12041 23.39951,0 0,-17.87291 26.04548,26.50121 -26.19869,26.34714 0,-17.41069 -23.2463,0 z"
- style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none" />
- </g>
- <g
- id="g5758">
- <g
- transform="matrix(0.76825029,0,0,0.76825029,353.22859,654.54336)"
- id="g5242">
- <path
- sodipodi:type="arc"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="path2985"
- sodipodi:cx="610.71429"
- sodipodi:cy="105"
- sodipodi:rx="57.857143"
- sodipodi:ry="57.857143"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- transform="translate(-749.33649,262.04198)" />
- <path
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- id="path5223"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="czcacc" />
- </g>
- <path
- style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none"
- d="m 255.28331,911.80097 0,23.39951 17.87291,0 -26.50121,26.04548 -26.34714,-26.19869 17.41069,0 0,-23.2463 z"
- id="path5691"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccc" />
- </g>
- <g
- id="g5732">
- <g
- id="g5258"
- transform="matrix(0.76825029,0,0,0.76825029,353.22859,409.60167)">
- <path
- transform="translate(-749.33649,262.04198)"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- sodipodi:ry="57.857143"
- sodipodi:rx="57.857143"
- sodipodi:cy="105"
- sodipodi:cx="610.71429"
- id="path5260"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="arc" />
- <path
- sodipodi:nodetypes="czcacc"
- inkscape:connector-curvature="0"
- id="path5262"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
- </g>
- <path
- sodipodi:nodetypes="cccccccc"
- inkscape:connector-curvature="0"
- id="path5693"
- d="m 255.28331,716.30427 0,-23.39951 17.87291,0 -26.50121,-26.04548 -26.34714,26.19869 17.41069,0 0,23.2463 z"
- style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none" />
- </g>
- <g
- id="g5750">
- <g
- transform="matrix(0.76825029,0,0,0.76825029,493.15326,700.79436)"
- id="g5485">
- <path
- sodipodi:type="arc"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="path5487"
- sodipodi:cx="610.71429"
- sodipodi:cy="105"
- sodipodi:rx="57.857143"
- sodipodi:ry="57.857143"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- transform="translate(-749.33649,262.04198)" />
- <path
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- id="path5489"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="czcacc" />
- </g>
- <g
- transform="translate(489.78454,229.23933)"
- id="g5699">
- <path
- sodipodi:nodetypes="cccccccc"
- inkscape:connector-curvature="0"
- id="path5695"
- d="m -98.172464,779.78011 0,-27.46428 10.35714,0 -15.357136,-15.17856 -15.26787,15.26784 10.08929,0 0,27.375 z"
- style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none" />
- <rect
- style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- id="rect5697"
- width="30.625"
- height="5.8470025"
- x="-118.44032"
- y="727.29016" />
- </g>
- </g>
- <g
- id="g5723">
- <g
- transform="matrix(1.1107359,0,0,1.1107359,400.7047,405.98497)"
- id="g5264">
- <path
- sodipodi:type="arc"
- style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="path5266"
- sodipodi:cx="610.71429"
- sodipodi:cy="105"
- sodipodi:rx="57.857143"
- sodipodi:ry="57.857143"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
- transform="translate(-749.33649,262.04198)" />
- <path
- transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
- style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
- d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
- id="path5268"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="czcacc" />
- </g>
- <path
- inkscape:connector-curvature="0"
- id="path5703"
- d="m 213.23208,783.67167 30,30 -30,30 z"
- style="fill:#e6e6e6;stroke:#999999;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <rect
- transform="matrix(0.96592583,0.25881905,-0.25881905,0.96592583,0,0)"
- y="704.06989"
- x="449.35043"
- height="34.999996"
- width="2.9999542"
- id="rect5705"
- style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:2.99999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
- <rect
- style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
- id="rect5707"
- width="8"
- height="49.999996"
- x="259.23203"
- y="788.67169" />
- <rect
- y="788.67169"
- x="272.23203"
- height="49.999996"
- width="8"
- id="rect5711"
- style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
- </g>
- </g>
-</svg>
+++ /dev/null
-#include "mainwindow.h"
-#include "constants.h"
-#include "genericnotify.h"
-
-#include <QtGui/QApplication>
-
-int main(int argc, char *argv[])
-{
- notify::init();
-
- QApplication app(argc, argv);
- app.setOrganizationName(APPLICATION_NAME);
- app.setApplicationName(ORGANIZATION_NAME);
-
- MainWindow mainWindow;
- mainWindow.setOrientation(MainWindow::ScreenOrientationLockPortrait);
- mainWindow.showExpanded();
-
- return app.exec();
-}
+++ /dev/null
-// checksum 0xfd0b version 0x20001
-/*
- This file was generated by the Mobile Qt Application wizard of Qt Creator.
- MainWindow is a convenience class containing mobile device specific code
- such as screen orientation handling.
- It is recommended not to modify this file, since newer versions of Qt Creator
- may offer an updated version of it.
-*/
-
-#include "mainwindow.h"
-#include "ui_mainwindow.h"
-
-#include "setupdialog.h"
-#include "xbmc.h"
-
-#include <QGraphicsRectItem>
-#include <QGraphicsEllipseItem>
-
-#include <QCoreApplication>
-
-#if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK)
-#include <eikenv.h>
-#include <eikappui.h>
-#include <aknenv.h>
-#include <aknappui.h>
-#endif // Q_OS_SYMBIAN && ORIENTATIONLOCK
-
-MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent), m_ui(new Ui::MainWindow)
-{
- m_ui->setupUi(this);
- m_xbmc = new Xbmc(this);
-}
-
-MainWindow::~MainWindow()
-{
- delete m_xbmc;
- delete m_ui;
-}
-
-void MainWindow::setOrientation(ScreenOrientation orientation)
-{
-#ifdef Q_OS_SYMBIAN
- if (orientation != ScreenOrientationAuto) {
-#if defined(ORIENTATIONLOCK)
- const CAknAppUiBase::TAppUiOrientation uiOrientation =
- (orientation == ScreenOrientationLockPortrait) ? CAknAppUi::EAppUiOrientationPortrait
- : CAknAppUi::EAppUiOrientationLandscape;
- CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi());
- TRAPD(error,
- if (appUi)
- appUi->SetOrientationL(uiOrientation);
- );
- Q_UNUSED(error)
-#else // ORIENTATIONLOCK
- qWarning("'ORIENTATIONLOCK' needs to be defined on Symbian when locking the orientation.");
-#endif // ORIENTATIONLOCK
- }
-#elif defined(Q_WS_MAEMO_5)
- Qt::WidgetAttribute attribute;
- switch (orientation) {
- case ScreenOrientationLockPortrait:
- attribute = Qt::WA_Maemo5PortraitOrientation;
- break;
- case ScreenOrientationLockLandscape:
- attribute = Qt::WA_Maemo5LandscapeOrientation;
- break;
- case ScreenOrientationAuto:
- default:
- attribute = Qt::WA_Maemo5AutoOrientation;
- break;
- }
- setAttribute(attribute, true);
-#else // Q_OS_SYMBIAN
- Q_UNUSED(orientation);
-#endif // Q_OS_SYMBIAN
-}
-
-void MainWindow::showExpanded()
-{
-#ifdef Q_OS_SYMBIAN
- showFullScreen();
-#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
- showMaximized();
-#else
- show();
-#endif
-}
-
-void MainWindow::on_actionSetup_triggered()
-{
- SetupDialog dialog;
- dialog.load();
- if(dialog.exec() == QDialog::Accepted) {
- dialog.save();
- }
-}
-
-void MainWindow::on_rightBtn_clicked()
-{
- m_xbmc->actionRight();
-}
-
-void MainWindow::on_leftBtn_clicked()
-{
- m_xbmc->actionLeft();
-}
-
-void MainWindow::on_upBtn_clicked()
-{
- m_xbmc->actionUp();
-}
-
-void MainWindow::on_downBtn_clicked()
-{
- m_xbmc->actionDown();
-}
-
-void MainWindow::on_playBtn_clicked()
-{
- m_xbmc->actionPlay();
-}
-
-void MainWindow::on_muteBtn_clicked()
-{
- m_xbmc->actionMute();
-}
-
-void MainWindow::on_volumeUpBtn_clicked()
-{
- m_xbmc->actionVolumeUp();
-}
-
-void MainWindow::on_volumeDownBtn_clicked()
-{
- m_xbmc->actionVolumeDown();
-}
-
-void MainWindow::on_nextSubtitleBtn_clicked()
-{
- m_xbmc->actionNextSubtitle();
-}
-
-void MainWindow::on_nextLanguageBtn_clicked()
-{
- m_xbmc->actionNextLanguage();
-}
-
-void MainWindow::on_selectButton_clicked()
-{
- m_xbmc->actionSelect();
-}
-
-void MainWindow::on_stopBtn_clicked()
-{
- m_xbmc->actionStop();
-}
+++ /dev/null
-// checksum 0x9a77 version 0x20001
-/*
- This file was generated by the Mobile Qt Application wizard of Qt Creator.
- MainWindow is a convenience class containing mobile device specific code
- such as screen orientation handling.
- It is recommended not to modify this file, since newer versions of Qt Creator
- may offer an updated version of it.
-*/
-
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-
-#include "xbmc.h"
-
-namespace Ui {
- class MainWindow;
-}
-
-class MainWindow : public QMainWindow
-{
- Q_OBJECT
-public:
- enum ScreenOrientation {
- ScreenOrientationLockPortrait,
- ScreenOrientationLockLandscape,
- ScreenOrientationAuto
- };
-
- explicit MainWindow(QWidget *parent = 0);
- virtual ~MainWindow();
-
- void setOrientation(ScreenOrientation orientation);
- void showExpanded();
-
-private slots:
- void on_actionSetup_triggered();
-
- void on_rightBtn_clicked();
- void on_leftBtn_clicked();
- void on_upBtn_clicked();
- void on_downBtn_clicked();
- void on_selectButton_clicked();
-
- void on_playBtn_clicked();
- void on_stopBtn_clicked();
-
- void on_muteBtn_clicked();
- void on_volumeUpBtn_clicked();
- void on_volumeDownBtn_clicked();
-
- void on_nextSubtitleBtn_clicked();
- void on_nextLanguageBtn_clicked();
-
-private:
- Ui::MainWindow *m_ui;
- Xbmc* m_xbmc;
-};
-
-#endif // MAINWINDOW_H
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>480</width>
- <height>836</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>XBMC Net Movies RC</string>
- </property>
- <widget class="QWidget" name="centralWidget">
- <layout class="QVBoxLayout" name="verticalLayout_4">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <widget class="QToolButton" name="nextSubtitleBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>next subtitle</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_next_subtitle.png</normaloff>:/images/btn_next_subtitle.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="nextLanguageBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>next language</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_next_language.png</normaloff>:/images/btn_next_language.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer_9">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <item>
- <widget class="QToolButton" name="volumeUpBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>volume up</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_volume_up.png</normaloff>:/images/btn_volume_up.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="volumeDownBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>volume down</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_volume_down.png</normaloff>:/images/btn_volume_down.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="muteBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>mute</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_mute.png</normaloff>:/images/btn_mute.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_5">
- <item>
- <spacer name="horizontalSpacer_6">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QToolButton" name="upBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>up</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_up.png</normaloff>:/images/btn_up.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QToolButton" name="leftBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>left</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_left.png</normaloff>:/images/btn_left.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="playBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>pause</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_play_pause.png</normaloff>:/images/btn_play_pause.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>133</width>
- <height>133</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QToolButton" name="rightBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>right</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_right.png</normaloff>:/images/btn_right.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QToolButton" name="downBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>down</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_down.png</normaloff>:/images/btn_down.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_4">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer_7">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_6">
- <item>
- <widget class="QToolButton" name="stopBtn">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>stop</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_stop.png</normaloff>:/images/btn_stop.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_5">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QToolButton" name="selectButton">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- <property name="toolTip">
- <string>select</string>
- </property>
- <property name="text">
- <string>...</string>
- </property>
- <property name="icon">
- <iconset resource="simplexbmcremote.qrc">
- <normaloff>:/images/btn_enter.png</normaloff>:/images/btn_enter.png</iconset>
- </property>
- <property name="iconSize">
- <size>
- <width>92</width>
- <height>92</height>
- </size>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <widget class="QMenuBar" name="menuBar">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>480</width>
- <height>25</height>
- </rect>
- </property>
- <widget class="QMenu" name="menuSetup">
- <property name="title">
- <string>MainMenu</string>
- </property>
- <addaction name="actionSetup"/>
- </widget>
- <addaction name="menuSetup"/>
- </widget>
- <action name="actionSetup">
- <property name="text">
- <string>Setup</string>
- </property>
- </action>
- <action name="actionConnect">
- <property name="checkable">
- <bool>true</bool>
- </property>
- <property name="text">
- <string>Connect</string>
- </property>
- </action>
- </widget>
- <layoutdefault spacing="6" margin="11"/>
- <resources>
- <include location="simplexbmcremote.qrc"/>
- </resources>
- <connections/>
-</ui>
+++ /dev/null
-The Debian Package simplexbmcremote
------------------------------------
-
-A simple application for controlling XBMC remotely while watching movies. Uses
-HTTP XBMC protocol to communicate with XBMC. Can navigate your video
-collection, start/pause/stop movies, skip forward and back, control the volume,
-cycle through the existing subtitles and languages.
-
- -- Ionutz Borcoman <iborco@gmail.com> Mon, 31 Jan 2011 14:34:36 +0200
+++ /dev/null
-simplexbmcremote (0.8.0-1) unstable; urgency=low
-
- * Preparing for garage upload.
-
- -- Ionutz Borcoman <iborco@gmail.com> Wed, 09 Mar 2011 09:16:53 +0200
-
-simplexbmcremote (0.8.0) unstable; urgency=low
-
- * Initial Release.
-
- -- Ionutz Borcoman <iborco@gmail.com> Mon, 31 Jan 2011 14:34:36 +0200
+++ /dev/null
-Source: simplexbmcremote
-Section: user/multimedia
-Priority: optional
-Maintainer: Ionutz Borcoman <iborco@gmail.com>
-Build-Depends: debhelper (>= 5), libqt4-dev
-Standards-Version: 3.7.3
-Homepage: https://garage.maemo.org/projects/simple-xmbc-rem/
-
-Package: simplexbmcremote
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: simple xbmc remote control
- A simple application for controlling XBMC remotely (using HTTP) while watching movies.
- .
- Can navigate your video collection, start/pause/stop movies, skip forward and back, control the volume, switch the existing subtitles and languages.
-XSBC-Bugtracker: https://garage.maemo.org/tracker/?atid=7118&group_id=2102
-XSBC-Maemo-Display-Name: Simple XBMC Remote
-XB-Maemo-Upgrade-Description: Initial release for Maemo.
-XB-Maemo-Icon-26:
- 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
+++ /dev/null
-This package was debianized by Ionutz Borcoman <iborco@gmail.com> on
-Mon, 31 Jan 2011 14:34:36 +0200.
-
-It was downloaded from https://garage.maemo.org/projects/simple-xmbc-rem/
-
-Upstream Author(s):
-
- Ionutz Borcoman <iborco@gmail.com>
-
-Copyright:
-
- Copyright (C) 2011 Ionutz Borcoman
-
-License:
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-On Debian systems, the complete text of the GNU General
-Public License can be found in `/usr/share/common-licenses/GPL'.
-
-The Debian packaging is (C) 2011, Ionutz Borcoman <iborco@gmail.com> and
-is licensed under the GPL, see above.
+++ /dev/null
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-
-
-
-
-configure: configure-stamp
-configure-stamp:
- dh_testdir
- # Add here commands to configure the package.
-
- touch configure-stamp
-
-
-build: build-stamp
-
-build-stamp: configure-stamp
- dh_testdir
-
- # Add here commands to compile the package.
- $(MAKE)
- #docbook-to-man debian/simplexbmcremote.sgml > simplexbmcremote.1
-
- touch $@
-
-clean:
- dh_testdir
- dh_testroot
- rm -f build-stamp configure-stamp
-
- # Add here commands to clean up after the build process.
- $(MAKE) clean
-
- dh_clean
-
-install: build
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
-
- # Add here commands to install the package into debian/simplexbmcremote.
- $(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/simplexbmcremote install
-
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
- dh_testdir
- dh_testroot
- dh_installchangelogs
- dh_installdocs
- dh_installexamples
-# dh_install
-# dh_installmenu
-# dh_installdebconf
-# dh_installlogrotate
-# dh_installemacsen
-# dh_installpam
-# dh_installmime
-# dh_python
-# dh_installinit
-# dh_installcron
-# dh_installinfo
- dh_installman
- dh_link
- # dh_strip
- dh_compress
- dh_fixperms
-# dh_perl
-# dh_makeshlibs
- dh_installdeb
- dh_shlibdeps # Uncomment this line for publishing!
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
+++ /dev/null
-#include "setupdialog.h"
-#include "ui_setupdialog.h"
-
-#include "constants.h"
-
-#include <QSettings>
-
-SetupDialog::SetupDialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::SetupDialog)
-{
- ui->setupUi(this);
-}
-
-SetupDialog::~SetupDialog()
-{
- delete ui;
-}
-
-void SetupDialog::save()
-{
- QSettings settings;
- settings.setValue(SETUP_XBMC_SERVER, ui->xbmcServerEdit->text());
- settings.setValue(SETUP_XBMC_PORT, ui->xbmcPortEdit->text());
-}
-
-void SetupDialog::load()
-{
- QSettings settings;
- ui->xbmcServerEdit->setText(settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString());
- ui->xbmcPortEdit->setText(settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toString());
-}
+++ /dev/null
-#ifndef SETUPDIALOG_H
-#define SETUPDIALOG_H
-
-#include <QDialog>
-
-namespace Ui {
- class SetupDialog;
-}
-
-class SetupDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- explicit SetupDialog(QWidget *parent = 0);
- ~SetupDialog();
- void save();
- void load();
-
-private:
- Ui::SetupDialog *ui;
-};
-
-#endif // SETUPDIALOG_H
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SetupDialog</class>
- <widget class="QDialog" name="SetupDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>329</width>
- <height>111</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Dialog</string>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>XBMC</string>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QFormLayout" name="formLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="xbmcServerLabel">
- <property name="text">
- <string>Server:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLineEdit" name="xbmcServerEdit"/>
- </item>
- <item row="1" column="0">
- <widget class="QLabel" name="xbmcPortLabel">
- <property name="text">
- <string>Port:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QLineEdit" name="xbmcPortEdit"/>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>buttonBox</sender>
- <signal>accepted()</signal>
- <receiver>SetupDialog</receiver>
- <slot>accept()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>248</x>
- <y>254</y>
- </hint>
- <hint type="destinationlabel">
- <x>157</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>buttonBox</sender>
- <signal>rejected()</signal>
- <receiver>SetupDialog</receiver>
- <slot>reject()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>316</x>
- <y>260</y>
- </hint>
- <hint type="destinationlabel">
- <x>286</x>
- <y>274</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
+++ /dev/null
-[Desktop Entry]
-Encoding=UTF-8
-Version=1.0
-Type=Application
-Terminal=false
-Name=Simple XBMC Remote
-Exec=/opt/usr/bin/simplexbmcremote
-Icon=simplexbmcremote
-X-Window-Icon=
-X-HildonDesk-ShowInToolbar=true
-X-Osso-Type=application/x-executable
+++ /dev/null
-# Add files and directories to ship with the application
-# by adapting the examples below.
-# file1.source = myfile
-# dir1.source = mydir
-DEPLOYMENTFOLDERS = # file1 dir1
-
-# Avoid auto screen rotation
-#DEFINES += ORIENTATIONLOCK
-
-maemo5 {
- message(Compiling for Maemo)
- QT += maemo5
- DEFINES += Q_WS_MAEMO_5
-} else {
- CONFIG += link_pkgconfig
- PKGCONFIG += gtk+-2.0 libnotify
-}
-
-# Needs to be defined for Symbian
-DEFINES += NETWORKACCESS
-QT += network
-
-symbian:TARGET.UID3 = 0xED8FBFF1
-
-# If your application uses the Qt Mobility libraries, uncomment
-# the following lines and add the respective components to the
-# MOBILITY variable.
-# CONFIG += mobility
-# MOBILITY +=
-
-TARGET = simplexbmcremote
-
-SOURCES += main.cpp mainwindow.cpp \
- setupdialog.cpp \
- xbmc.cpp \
- genericnotify.cpp
-HEADERS += mainwindow.h \
- setupdialog.h \
- constants.h \
- xbmc.h \
- genericnotify.h
-FORMS += mainwindow.ui \
- setupdialog.ui
-
-# Please do not modify the following two lines. Required for deployment.
-include(deployment.pri)
-qtcAddDeployment()
-
-RESOURCES += \
- simplexbmcremote.qrc
+++ /dev/null
-<RCC>
- <qresource prefix="/">
- <file>images/btn_down.png</file>
- <file>images/btn_enter.png</file>
- <file>images/btn_left.png</file>
- <file>images/btn_mute.png</file>
- <file>images/btn_next_language.png</file>
- <file>images/btn_next_subtitle.png</file>
- <file>images/btn_play_pause.png</file>
- <file>images/btn_right.png</file>
- <file>images/btn_stop.png</file>
- <file>images/btn_up.png</file>
- <file>images/btn_volume_down.png</file>
- <file>images/btn_volume_up.png</file>
- </qresource>
-</RCC>
+++ /dev/null
-#include "xbmc.h"
-#include "constants.h"
-#include "genericnotify.h"
-
-#include <QSettings>
-#include <QTextStream>
-#include <QNetworkReply>
-
-// XBMC constants -- from https://github.com/xbmc/xbmc/blob/master/xbmc/guilib/Key.h
-#define ACTION_MOVE_LEFT 1
-#define ACTION_MOVE_RIGHT 2
-#define ACTION_MOVE_UP 3
-#define ACTION_MOVE_DOWN 4
-#define ACTION_NEXT_SUBTITLE 26 // switch to next subtitle of movie. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_SUBTITLE_DELAY_MIN 52 // Decrease subtitle/movie Delay. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_SUBTITLE_DELAY_PLUS 53 // Increase subtitle/movie Delay. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_AUDIO_DELAY_MIN 54 // Increase avsync delay. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_AUDIO_DELAY_PLUS 55 // Decrease avsync delay. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_AUDIO_NEXT_LANGUAGE 56 // Select next language in movie. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_ENTER 135
-#define ACTION_SHOW_GUI 18 // toggle between GUI and movie or GUI and visualisation.
-#define ACTION_STEP_FORWARD 20 // seek +1% in the movie. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_STEP_BACK 21 // seek -1% in the movie. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_BIG_STEP_FORWARD 22 // seek +10% in the movie. Can b used in videoFullScreen.xml window id=2005
-#define ACTION_BIG_STEP_BACK 23 // seek -10% in the movie. Can b used in videoFullScreen.xml window id=2005
-
-#define ACTION_PLAYER_PLAY 79 // Play current song. Unpauses song and sets playspeed to 1x. global action, can be used anywhere
-#define ACTION_SELECT_ITEM 7
-#define ACTION_HIGHLIGHT_ITEM 8
-#define ACTION_PARENT_DIR 9
-
-#define ACTION_VOLUME_UP 88
-#define ACTION_VOLUME_DOWN 89
-#define ACTION_MUTE 91
-
-#define ACTION_PAUSE 12
-#define ACTION_STOP 13
-#define ACTION_NEXT_ITEM 14
-#define ACTION_PREV_ITEM 15
-#define ACTION_FORWARD 16 // Can be used to specify specific action in a window, Playback control is handled in ACTION_PLAYER_*
-#define ACTION_REWIND 17 // Can be used to specify specific action in a window, Playback control is handled in ACTION_PLAYER_*
-
-Xbmc::Xbmc(QObject *parent) : QObject(parent)
-{
- m_manager = new QNetworkAccessManager(this);
-}
-
-Xbmc::~Xbmc()
-{
- delete m_manager;
-}
-
-void Xbmc::commandActionFinished()
-{
- QNetworkReply* reply = qobject_cast<QNetworkReply *>(sender());
- if (reply) {
- if (reply->error() == QNetworkReply::NoError) {
- QTextStream stream(reply);
- QString msg = stream.readAll();
- qDebug("Xbmc::commandActionFinished: %s", qPrintable(msg));
- } else {
- notify::notify(reply->errorString());
- }
- reply->deleteLater();
- }
-}
-
-void Xbmc::do_command_action(int action)
-{
- QSettings settings;
- QString server = settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString();
- QString port = settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toString();
-
- QUrl url = QUrl(QString("http://%1:%2/xbmcCmds/xbmcHttp?command=Action(%3)").arg(server).arg(port).arg(action));
-
- QNetworkRequest request;
- request.setUrl(url);
-
- QNetworkReply *reply = m_manager->get(request);
- connect(reply, SIGNAL(finished()), this, SLOT(commandActionFinished()));
-}
-
-void Xbmc::actionRight()
-{
- do_command_action(ACTION_MOVE_RIGHT);
- do_command_action(ACTION_STEP_FORWARD);
-}
-
-void Xbmc::actionLeft()
-{
- do_command_action(ACTION_MOVE_LEFT);
- do_command_action(ACTION_STEP_BACK);
-}
-
-void Xbmc::actionUp()
-{
- do_command_action(ACTION_MOVE_UP);
- do_command_action(ACTION_BIG_STEP_FORWARD);
-}
-
-void Xbmc::actionDown()
-{
- do_command_action(ACTION_MOVE_DOWN);
- do_command_action(ACTION_BIG_STEP_BACK);
-}
-
-void Xbmc::actionMute()
-{
- do_command_action(ACTION_MUTE);
-}
-
-void Xbmc::actionVolumeUp()
-{
- do_command_action(ACTION_VOLUME_UP);
-}
-
-void Xbmc::actionVolumeDown()
-{
- do_command_action(ACTION_VOLUME_DOWN);
-}
-
-void Xbmc::actionNextSubtitle()
-{
- do_command_action(ACTION_NEXT_SUBTITLE);
-}
-
-void Xbmc::actionNextLanguage()
-{
- do_command_action(ACTION_AUDIO_NEXT_LANGUAGE);
-}
-
-void Xbmc::actionPlay()
-{
- do_command_action(ACTION_PLAYER_PLAY);
-}
-
-void Xbmc::actionSelect()
-{
- do_command_action(ACTION_SELECT_ITEM);
-}
-
-void Xbmc::actionStop()
-{
- do_command_action(ACTION_STOP);
-}
+++ /dev/null
-#ifndef XBMC_H
-#define XBMC_H
-
-#include <QString>
-#include <QNetworkAccessManager>
-
-class Xbmc : public QObject
-{
- Q_OBJECT
-public:
- Xbmc(QObject* parent = 0);
- ~Xbmc();
-
- void actionRight();
- void actionLeft();
- void actionUp();
- void actionDown();
-
- void actionMute();
- void actionVolumeUp();
- void actionVolumeDown();
-
- void actionNextSubtitle();
- void actionNextLanguage();
-
- void actionPlay();
- void actionStop();
-
- void actionSelect();
-
-private slots:
- void commandActionFinished();
-
-private:
- void do_command_action(int action);
-
- QNetworkAccessManager *m_manager;
-};
-
-#endif // XBMC_H
--- /dev/null
+#ifndef CONSTANTS_H
+#define CONSTANTS_H
+
+// QCoreApplication info
+#define APPLICATION_NAME "simplexbmcremote"
+#define ORGANIZATION_NAME "Ionutz Borcoman"
+
+// QSettings keys
+#define SETUP_XBMC_SERVER "xbmc/server"
+#define SETUP_XBMC_SERVER_DEFAULT "localhost"
+#define SETUP_XBMC_PORT "xbmc/port"
+#define SETUP_XBMC_PORT_DEFAULT "8080"
+
+#define SETUP_NOTIFICATION_TIMEOUT "notification/timeout"
+#define SETUP_NOTIFICATION_TIMEOUT_DEFAULT 3000
+
+#endif // CONSTANTS_H
--- /dev/null
+The Debian Package simplexbmcremote
+-----------------------------------
+
+A simple application for controlling XBMC remotely while watching movies. Uses
+HTTP XBMC protocol to communicate with XBMC. Can navigate your video
+collection, start/pause/stop movies, skip forward and back, control the volume,
+cycle through the existing subtitles and languages.
+
+ -- Ionutz Borcoman <iborco@gmail.com> Mon, 31 Jan 2011 14:34:36 +0200
--- /dev/null
+simplexbmcremote (0.8.1) unstable; urgency=low
+
+ * Preparing for garage upload.
+
+ -- Ionutz Borcoman <iborco+maemo@gmail.com> Wed, 09 Mar 2011 09:16:53 +0200
+
+simplexbmcremote (0.8.0) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Ionutz Borcoman <iborco+maemo@gmail.com> Mon, 31 Jan 2011 14:34:36 +0200
--- /dev/null
+Source: simplexbmcremote
+Section: user/multimedia
+Priority: optional
+Maintainer: Ionutz Borcoman <iborco+maemo@gmail.com>
+Build-Depends: debhelper (>= 5), libqt4-dev
+Standards-Version: 3.7.3
+Homepage: https://garage.maemo.org/projects/simple-xmbc-rem/
+
+Package: simplexbmcremote
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: simple xbmc remote control
+ A simple application for controlling XBMC remotely (using HTTP) while watching movies.
+ .
+ Can navigate your video collection, start/pause/stop movies, skip forward and back, control the volume, switch the existing subtitles and languages.
+XSBC-Bugtracker: https://garage.maemo.org/tracker/?atid=7118&group_id=2102
+XSBC-Maemo-Display-Name: Simple XBMC Remote
+XB-Maemo-Upgrade-Description: Initial release for Maemo.
+XB-Maemo-Icon-26:
+ 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
--- /dev/null
+This package was debianized by Ionutz Borcoman <iborco@gmail.com> on
+Mon, 31 Jan 2011 14:34:36 +0200.
+
+It was downloaded from https://garage.maemo.org/projects/simple-xmbc-rem/
+
+Upstream Author(s):
+
+ Ionutz Borcoman <iborco+maemo@gmail.com>
+
+Copyright:
+
+ Copyright (C) 2011 Ionutz Borcoman
+
+License:
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
+
+The Debian packaging is (C) 2011, Ionutz Borcoman <iborco@gmail.com> and
+is licensed under the GPL, see above.
--- /dev/null
+#!/usr/bin/make -f
+APPNAME := simplexbmcremote
+builddir:
+ mkdir -p builddir
+
+builddir/Makefile: builddir
+ cd builddir && qmake-qt4 PREFIX=/usr ../$(APPNAME).pro
+
+build: build-stamp
+
+build-stamp: builddir/Makefile
+ dh_testdir
+ # Add here commands to compile the package.
+ cd builddir && $(MAKE)
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+ # Add here commands to clean up after the build process.
+ rm -rf builddir
+ dh_clean
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/your_appname
+ cd builddir && $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/$(APPNAME) install
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installdocs
+ dh_installexamples
+ dh_installman
+ dh_link
+# dh_strip --dbg-package=appname-dbg
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
--- /dev/null
+# checksum 0x2939 version 0x20001
+# This file was generated by an application wizard of Qt Creator.
+# The code below handles deployment to Symbian and Maemo, aswell as copying
+# of the application data to shadow build directories on desktop.
+# It is recommended not to modify this file, since newer versions of Qt Creator
+# may offer an updated version of it.
+
+defineTest(qtcAddDeployment) {
+for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemsources = $${item}.sources
+ $$itemsources = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath= $$eval($${deploymentfolder}.target)
+ export($$itemsources)
+ export($$itempath)
+ DEPLOYMENT += $$item
+}
+
+MAINPROFILEPWD = $$PWD
+
+symbian {
+ ICON = $${TARGET}.svg
+ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+ contains(DEFINES, ORIENTATIONLOCK):LIBS += -lavkon -leikcore -lcone
+ contains(DEFINES, NETWORKACCESS):TARGET.CAPABILITY += NetworkServices
+} else:win32 {
+ copyCommand =
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, /, \\)
+ sourcePathSegments = $$split(source, \\)
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
+ target = $$replace(target, /, \\)
+ !isEqual(source,$$target) {
+ !isEmpty(copyCommand):copyCommand += &&
+ copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
+ }
+ }
+ !isEmpty(copyCommand) {
+ copyCommand = @echo Copying application data... && $$copyCommand
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+} else:unix {
+ maemo5 {
+ installPrefix = /opt/usr
+ desktopfile.path = /usr/share/applications/hildon
+ } else {
+ installPrefix = /usr/local
+ desktopfile.path = /usr/share/applications
+ copyCommand =
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+ source = $$replace(source, \\, /)
+ macx {
+ target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
+ } else {
+ target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+ }
+ target = $$replace(target, \\, /)
+ sourcePathSegments = $$split(source, /)
+ targetFullPath = $$target/$$last(sourcePathSegments)
+ !isEqual(source,$$targetFullPath) {
+ !isEmpty(copyCommand):copyCommand += &&
+ copyCommand += $(MKDIR) \"$$target\"
+ copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
+ }
+ }
+ !isEmpty(copyCommand) {
+ copyCommand = @echo Copying application data... && $$copyCommand
+ copydeploymentfolders.commands = $$copyCommand
+ first.depends = $(first) copydeploymentfolders
+ export(first.depends)
+ export(copydeploymentfolders.commands)
+ QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+ }
+ }
+ for(deploymentfolder, DEPLOYMENTFOLDERS) {
+ item = item$${deploymentfolder}
+ itemfiles = $${item}.files
+ $$itemfiles = $$eval($${deploymentfolder}.source)
+ itempath = $${item}.path
+ $$itempath = $${installPrefix}/share/$${TARGET}/$$eval($${deploymentfolder}.target)
+ export($$itemfiles)
+ export($$itempath)
+ INSTALLS += $$item
+ }
+ icon.files = $${TARGET}.png
+ icon.path = /usr/share/icons/hicolor/64x64/apps
+ desktopfile.files = $${TARGET}.desktop
+ target.path = $${installPrefix}/bin
+ export(icon.files)
+ export(icon.path)
+ export(desktopfile.files)
+ export(desktopfile.path)
+ export(target.path)
+ INSTALLS += desktopfile icon target
+}
+
+export (ICON)
+export (INSTALLS)
+export (DEPLOYMENT)
+export (TARGET.EPOCHEAPSIZE)
+export (TARGET.CAPABILITY)
+export (LIBS)
+export (QMAKE_EXTRA_TARGETS)
+}
--- /dev/null
+#ifdef Q_WS_MAEMO_5
+#include <QMaemo5InformationBox>
+#else
+#include <libnotify/notify.h>
+#endif
+
+#include "genericnotify.h"
+#include "constants.h"
+#include <QSettings>
+
+void notify::init()
+{
+#ifdef Q_WS_MAEMO_5
+#else
+ /* Init libnotify library */
+ notify_init(APPLICATION_NAME);
+#endif
+}
+
+void notify::notify(const QString& msg)
+{
+#ifdef Q_WS_MAEMO_5
+ QMaemo5InformationBox::information (0, msg);
+#else
+ /* Create notification */
+ NotifyNotification *notification = notify_notification_new(APPLICATION_NAME, qPrintable(msg), 0, 0);
+ if (notification) {
+ QSettings settings;
+ int timeout = settings.value(SETUP_NOTIFICATION_TIMEOUT, SETUP_NOTIFICATION_TIMEOUT_DEFAULT).toInt();
+
+ /* Set timeout */
+ notify_notification_set_timeout(notification, timeout);
+
+ /* Schedule notification for showing */
+ if (!notify_notification_show(notification, NULL)) {
+ qDebug("Failed to send notification");
+ }
+
+ /* Clean up the memory */
+ g_object_unref(notification);
+ }
+#endif
+ qDebug(qPrintable(msg));
+}
--- /dev/null
+#ifndef GENERIC_NOTIFY_H
+#define GENERIC_NOTIFY_H
+
+#include <QString>
+
+namespace notify
+{
+ void init();
+ void notify(const QString& msg);
+}
+
+#endif // GENERIC_NOTIFY_H
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="480"
+ height="800"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="xbmc.svg">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient5205">
+ <stop
+ style="stop-color:#ff0000;stop-opacity:1"
+ offset="0"
+ id="stop5207" />
+ <stop
+ style="stop-color:#ffd5d5;stop-opacity:0;"
+ offset="1"
+ id="stop5209" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3763">
+ <stop
+ style="stop-color:#ffd5d5;stop-opacity:1;"
+ offset="0"
+ id="stop3765" />
+ <stop
+ style="stop-color:#ffd5d5;stop-opacity:0;"
+ offset="1"
+ id="stop3767" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.7"
+ inkscape:cx="134.45775"
+ inkscape:cy="242.83914"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ width="480px"
+ inkscape:showpageshadow="false"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1280"
+ inkscape:window-height="750"
+ inkscape:window-x="0"
+ inkscape:window-y="25"
+ inkscape:window-maximized="1"
+ inkscape:snap-global="true"
+ objecttolerance="20">
+ <inkscape:grid
+ type="xygrid"
+ id="grid5495"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ spacingx="5px"
+ spacingy="5px" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-252.36218)">
+ <g
+ id="g5788">
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ transform="matrix(0.76825029,0,0,0.76825029,-362.37407,246.78953)"
+ d="m 668.57144,105 a 57.857143,57.857143 0 1 1 -115.71429,0 57.857143,57.857143 0 1 1 115.71429,0 z"
+ sodipodi:ry="57.857143"
+ sodipodi:rx="57.857143"
+ sodipodi:cy="105"
+ sodipodi:cx="610.71429"
+ id="path5290"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ sodipodi:nodetypes="czcacc"
+ inkscape:connector-curvature="0"
+ id="path5292"
+ d="m 139.78101,326.74849 c 0,18.21084 -14.76281,32.97364 -32.97365,32.97364 -18.21084,0 -32.973639,-14.7628 -32.973639,-32.97364 l 0,0 c 0,0 15.50423,10.16472 32.973639,10.47668 17.46112,0 32.97365,-10.47668 32.97365,-10.47668 z"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:13.89884281;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4" />
+ <text
+ inkscape:export-ydpi="90"
+ inkscape:export-xdpi="90"
+ sodipodi:linespacing="125%"
+ id="text5358"
+ y="351.5061"
+ x="83.063553"
+ style="font-size:44.04649352999999934px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+ xml:space="preserve"><tspan
+ style="font-size:66.06974791999999752px;fill:#f2f2f2;stroke:#999999;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none"
+ y="351.5061"
+ x="83.063553"
+ id="tspan5360"
+ sodipodi:role="line">S</tspan></text>
+ </g>
+ <g
+ id="g5794">
+ <g
+ id="g5294"
+ transform="matrix(0.76825029,0,0,0.76825029,213.30391,161.81075)">
+ <path
+ transform="translate(-749.33649,262.04198)"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ sodipodi:ry="57.857143"
+ sodipodi:rx="57.857143"
+ sodipodi:cy="105"
+ sodipodi:cx="610.71429"
+ id="path5296"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="czcacc"
+ inkscape:connector-curvature="0"
+ id="path5298"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:44.04649352999999934px;font-style:normal;font-weight:bold;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
+ x="83.628113"
+ y="467.87341"
+ id="text5362"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5364"
+ x="83.628113"
+ y="467.87341"
+ style="font-size:66.06974791999999752px;fill:#f2f2f2;stroke:#999999;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none">L</tspan></text>
+ </g>
+ <g
+ id="g5801">
+ <g
+ transform="matrix(0.76825029,0,0,0.76825029,493.15327,161.81075)"
+ id="g5276">
+ <path
+ sodipodi:type="arc"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5278"
+ sodipodi:cx="610.71429"
+ sodipodi:cy="105"
+ sodipodi:rx="57.857143"
+ sodipodi:ry="57.857143"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ transform="translate(-749.33649,262.04198)" />
+ <path
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ id="path5280"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="czcacc" />
+ </g>
+ <g
+ style="stroke:#999999"
+ transform="translate(643.31879,94.918051)"
+ id="g5370">
+ <path
+ sodipodi:type="star"
+ style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:19.64505386;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path5368"
+ sodipodi:sides="3"
+ sodipodi:cx="-234.28571"
+ sodipodi:cy="65.714287"
+ sodipodi:r1="87.563385"
+ sodipodi:r2="43.781693"
+ sodipodi:arg1="1.0471976"
+ sodipodi:arg2="2.0943951"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m -190.50402,141.5464 -65.67253,-37.91606 -65.67254,-37.916057 65.67254,-37.916054 65.67254,-37.916056 0,75.832114 z"
+ transform="matrix(0.12475737,0,0,0.332313,-234.55319,327.03509)"
+ inkscape:transform-center-x="2.7310475" />
+ <rect
+ style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect5366"
+ width="10"
+ height="28.971426"
+ x="-281.71429"
+ y="334.38708" />
+ </g>
+ <path
+ sodipodi:open="true"
+ sodipodi:end="7.0685835"
+ sodipodi:start="5.4977871"
+ transform="matrix(0.26667711,0,0,0.47997549,311.76939,408.13553)"
+ d="m 300.95322,57.618196 a 23.571428,23.571428 0 0 1 0,33.335034"
+ sodipodi:ry="23.571428"
+ sodipodi:rx="23.571428"
+ sodipodi:cy="74.285713"
+ sodipodi:cx="284.28571"
+ id="path5403"
+ style="fill:none;stroke:#999999;stroke-width:11.18040657;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ </g>
+ <g
+ id="g5810">
+ <g
+ id="g5270"
+ transform="matrix(0.76825029,0,0,0.76825029,493.15327,45.475706)">
+ <path
+ transform="translate(-749.33649,262.04198)"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ sodipodi:ry="57.857143"
+ sodipodi:rx="57.857143"
+ sodipodi:cy="105"
+ sodipodi:cx="610.71429"
+ id="path5272"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="czcacc"
+ inkscape:connector-curvature="0"
+ id="path5274"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
+ </g>
+ <g
+ style="stroke:#999999"
+ transform="translate(108.64493,-94)"
+ id="g5436">
+ <g
+ style="stroke:#999999"
+ transform="translate(534.67386,72.583011)"
+ id="g5424">
+ <path
+ sodipodi:type="star"
+ style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:19.64505386000000087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path5426"
+ sodipodi:sides="3"
+ sodipodi:cx="-234.28571"
+ sodipodi:cy="65.714287"
+ sodipodi:r1="87.563385"
+ sodipodi:r2="43.781693"
+ sodipodi:arg1="1.0471976"
+ sodipodi:arg2="2.0943951"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="m -190.50402,141.5464 -65.67253,-37.91606 -65.67254,-37.916057 65.67254,-37.916054 65.67254,-37.916056 0,75.832114 z"
+ transform="matrix(0.12475737,0,0,0.332313,-234.55319,327.03509)"
+ inkscape:transform-center-x="2.7310475" />
+ <rect
+ style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect5428"
+ width="10"
+ height="28.971426"
+ x="-281.71429"
+ y="334.38708" />
+ </g>
+ <path
+ sodipodi:open="true"
+ sodipodi:end="7.0685835"
+ sodipodi:start="5.4977871"
+ transform="matrix(0.26667711,0,0,0.47997549,203.12446,385.80049)"
+ d="m 300.95322,57.618196 c 9.20522,9.205215 9.20522,24.129818 0,33.335033 0,1e-6 0,1e-6 0,1e-6"
+ sodipodi:ry="23.571428"
+ sodipodi:rx="23.571428"
+ sodipodi:cy="74.285713"
+ sodipodi:cx="284.28571"
+ id="path5430"
+ style="fill:none;stroke:#999999;stroke-width:11.18040657000000060;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="fill:none;stroke:#999999;stroke-width:5.45370578999999989;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path5432"
+ sodipodi:cx="284.28571"
+ sodipodi:cy="74.285713"
+ sodipodi:rx="23.571428"
+ sodipodi:ry="23.571428"
+ d="m 300.95322,57.618196 c 9.20522,9.205215 9.20522,24.129818 0,33.335033 0,1e-6 0,1e-6 0,1e-6"
+ transform="matrix(0.68970634,0,0,0.77996018,81.812482,363.51592)"
+ sodipodi:start="5.4977871"
+ sodipodi:end="7.0685835"
+ sodipodi:open="true" />
+ <path
+ sodipodi:open="true"
+ sodipodi:end="7.0685835"
+ sodipodi:start="5.4977871"
+ transform="matrix(1.1127359,0,0,1.0799449,-39.499656,341.23134)"
+ d="m 300.95322,57.618196 c 9.20522,9.205215 9.20522,24.129818 0,33.335033 0,1e-6 0,1e-6 0,1e-6"
+ sodipodi:ry="23.571428"
+ sodipodi:rx="23.571428"
+ sodipodi:cy="74.285713"
+ sodipodi:cx="284.28571"
+ id="path5434"
+ style="fill:none;stroke:#999999;stroke-width:3.64891005000000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ <g
+ id="g5776">
+ <g
+ id="g5282"
+ transform="matrix(0.76825029,0,0,0.76825029,493.15326,299.36579)">
+ <path
+ transform="translate(-749.33649,262.04198)"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ sodipodi:ry="57.857143"
+ sodipodi:rx="57.857143"
+ sodipodi:cy="105"
+ sodipodi:cx="610.71429"
+ id="path5284"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="czcacc"
+ inkscape:connector-curvature="0"
+ id="path5286"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
+ </g>
+ <g
+ id="g5457"
+ transform="translate(643.31879,232.4731)"
+ style="stroke:#999999">
+ <path
+ inkscape:transform-center-x="2.7310475"
+ transform="matrix(0.12475737,0,0,0.332313,-234.55319,327.03509)"
+ d="m -190.50402,141.5464 -65.67253,-37.91606 -65.67254,-37.916057 65.67254,-37.916054 65.67254,-37.916056 0,75.832114 z"
+ inkscape:randomized="0"
+ inkscape:rounded="0"
+ inkscape:flatsided="false"
+ sodipodi:arg2="2.0943951"
+ sodipodi:arg1="1.0471976"
+ sodipodi:r2="43.781693"
+ sodipodi:r1="87.563385"
+ sodipodi:cy="65.714287"
+ sodipodi:cx="-234.28571"
+ sodipodi:sides="3"
+ id="path5459"
+ style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:19.64505386;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ sodipodi:type="star" />
+ <rect
+ y="334.38708"
+ x="-281.71429"
+ height="28.971426"
+ width="10"
+ id="rect5461"
+ style="fill:#f2f2f2;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+ </g>
+ <g
+ transform="translate(186.31244,177.80758)"
+ id="g5480">
+ <path
+ style="fill:#999999;stroke:#999999;stroke-width:3.99999976;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 205.71429,395.53832 10.61883,16"
+ id="path5469"
+ inkscape:connector-curvature="0" />
+ <g
+ id="g5473"
+ transform="matrix(1.1435669,0,0,1.1286554,-29.533762,-52.94665)">
+ <path
+ style="fill:#999999;stroke:#999999;stroke-width:3.52085781;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 205.71429,411.53834 215,397.36218"
+ id="path5471"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g5770">
+ <g
+ transform="matrix(0.76825029,0,0,0.76825029,213.30391,299.36579)"
+ id="g5300">
+ <path
+ sodipodi:type="arc"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5302"
+ sodipodi:cx="610.71429"
+ sodipodi:cy="105"
+ sodipodi:rx="57.857143"
+ sodipodi:ry="57.857143"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ transform="translate(-749.33649,262.04198)" />
+ <path
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ id="path5304"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="czcacc" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0"
+ id="path5499"
+ d="m 82.896655,590.80125 15.267855,15.26786 0,-10.08929 24.55357,0 0,-39.35714 -10.35714,0 0,29.17857 -14.28572,0 0,-10.35714 z"
+ style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none" />
+ </g>
+ <g
+ id="g5764">
+ <g
+ id="g5306"
+ transform="matrix(0.76825029,0,0,0.76825029,213.30391,700.79436)">
+ <path
+ transform="translate(-749.33649,262.04198)"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ sodipodi:ry="57.857143"
+ sodipodi:rx="57.857143"
+ sodipodi:cy="105"
+ sodipodi:cx="610.71429"
+ id="path5308"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="czcacc"
+ inkscape:connector-curvature="0"
+ id="path5310"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
+ </g>
+ <rect
+ y="964.77448"
+ x="88.807365"
+ height="36"
+ width="36"
+ id="rect5681"
+ style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+ </g>
+ <g
+ id="g5738">
+ <g
+ id="g5246"
+ transform="matrix(0.76825029,0,0,0.76825029,230.75784,531.69157)">
+ <path
+ transform="translate(-749.33649,262.04198)"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ sodipodi:ry="57.857143"
+ sodipodi:rx="57.857143"
+ sodipodi:cy="105"
+ sodipodi:cx="610.71429"
+ id="path5248"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="czcacc"
+ inkscape:connector-curvature="0"
+ id="path5250"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
+ </g>
+ <path
+ style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none"
+ d="m 148.98379,805.12041 -23.39951,0 0,-17.87291 -26.045478,26.50121 26.198688,26.34714 0,-17.41069 23.2463,0 z"
+ id="path5683"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+ <g
+ id="g5744">
+ <g
+ transform="matrix(0.76825029,0,0,0.76825029,475.69934,531.69157)"
+ id="g5252">
+ <path
+ sodipodi:type="arc"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5254"
+ sodipodi:cx="610.71429"
+ sodipodi:cy="105"
+ sodipodi:rx="57.857143"
+ sodipodi:ry="57.857143"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ transform="translate(-749.33649,262.04198)" />
+ <path
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ id="path5256"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="czcacc" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0"
+ id="path5689"
+ d="m 344.4803,805.12041 23.39951,0 0,-17.87291 26.04548,26.50121 -26.19869,26.34714 0,-17.41069 -23.2463,0 z"
+ style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none" />
+ </g>
+ <g
+ id="g5758">
+ <g
+ transform="matrix(0.76825029,0,0,0.76825029,353.22859,654.54336)"
+ id="g5242">
+ <path
+ sodipodi:type="arc"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path2985"
+ sodipodi:cx="610.71429"
+ sodipodi:cy="105"
+ sodipodi:rx="57.857143"
+ sodipodi:ry="57.857143"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ transform="translate(-749.33649,262.04198)" />
+ <path
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ id="path5223"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="czcacc" />
+ </g>
+ <path
+ style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none"
+ d="m 255.28331,911.80097 0,23.39951 17.87291,0 -26.50121,26.04548 -26.34714,-26.19869 17.41069,0 0,-23.2463 z"
+ id="path5691"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc" />
+ </g>
+ <g
+ id="g5732">
+ <g
+ id="g5258"
+ transform="matrix(0.76825029,0,0,0.76825029,353.22859,409.60167)">
+ <path
+ transform="translate(-749.33649,262.04198)"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ sodipodi:ry="57.857143"
+ sodipodi:rx="57.857143"
+ sodipodi:cy="105"
+ sodipodi:cx="610.71429"
+ id="path5260"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:nodetypes="czcacc"
+ inkscape:connector-curvature="0"
+ id="path5262"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)" />
+ </g>
+ <path
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0"
+ id="path5693"
+ d="m 255.28331,716.30427 0,-23.39951 17.87291,0 -26.50121,-26.04548 -26.34714,26.19869 17.41069,0 0,23.2463 z"
+ style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none" />
+ </g>
+ <g
+ id="g5750">
+ <g
+ transform="matrix(0.76825029,0,0,0.76825029,493.15326,700.79436)"
+ id="g5485">
+ <path
+ sodipodi:type="arc"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5487"
+ sodipodi:cx="610.71429"
+ sodipodi:cy="105"
+ sodipodi:rx="57.857143"
+ sodipodi:ry="57.857143"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ transform="translate(-749.33649,262.04198)" />
+ <path
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ id="path5489"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="czcacc" />
+ </g>
+ <g
+ transform="translate(489.78454,229.23933)"
+ id="g5699">
+ <path
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0"
+ id="path5695"
+ d="m -98.172464,779.78011 0,-27.46428 10.35714,0 -15.357136,-15.17856 -15.26787,15.26784 10.08929,0 0,27.375 z"
+ style="fill:#ececec;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-mid:none" />
+ <rect
+ style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect5697"
+ width="30.625"
+ height="5.8470025"
+ x="-118.44032"
+ y="727.29016" />
+ </g>
+ </g>
+ <g
+ id="g5723">
+ <g
+ transform="matrix(1.1107359,0,0,1.1107359,400.7047,405.98497)"
+ id="g5264">
+ <path
+ sodipodi:type="arc"
+ style="fill:#e6e6e6;fill-rule:evenodd;stroke:#cccccc;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5266"
+ sodipodi:cx="610.71429"
+ sodipodi:cy="105"
+ sodipodi:rx="57.857143"
+ sodipodi:ry="57.857143"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95361,0 -57.85714,-25.90352 -57.85714,-57.85714 0,-31.953618 25.90353,-57.857143 57.85714,-57.857143 31.95362,0 57.85715,25.903525 57.85715,57.857143 z"
+ transform="translate(-749.33649,262.04198)" />
+ <path
+ transform="matrix(0.74183478,0,0,0.74183478,-591.6713,288.22864)"
+ style="fill:#cccccc;fill-rule:evenodd;stroke:#cccccc;stroke-width:24.38758087;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4"
+ d="m 668.57144,105 c 0,31.95362 -25.90353,57.85714 -57.85715,57.85714 -31.95362,0 -57.85714,-25.90352 -57.85714,-57.85714 l 0,0 c 0,0 27.20447,17.83551 57.85714,18.38288 30.63813,0 57.85715,-18.38288 57.85715,-18.38288 z"
+ id="path5268"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="czcacc" />
+ </g>
+ <path
+ inkscape:connector-curvature="0"
+ id="path5703"
+ d="m 213.23208,783.67167 30,30 -30,30 z"
+ style="fill:#e6e6e6;stroke:#999999;stroke-width:4;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+ <rect
+ transform="matrix(0.96592583,0.25881905,-0.25881905,0.96592583,0,0)"
+ y="704.06989"
+ x="449.35043"
+ height="34.999996"
+ width="2.9999542"
+ id="rect5705"
+ style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:2.99999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+ <rect
+ style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+ id="rect5707"
+ width="8"
+ height="49.999996"
+ x="259.23203"
+ y="788.67169" />
+ <rect
+ y="788.67169"
+ x="272.23203"
+ height="49.999996"
+ width="8"
+ id="rect5711"
+ style="fill:#ececec;fill-opacity:1;stroke:#999999;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+ </g>
+ </g>
+</svg>
--- /dev/null
+#include "mainwindow.h"
+#include "constants.h"
+#include "genericnotify.h"
+
+#include <QtGui/QApplication>
+
+int main(int argc, char *argv[])
+{
+ notify::init();
+
+ QApplication app(argc, argv);
+ app.setOrganizationName(APPLICATION_NAME);
+ app.setApplicationName(ORGANIZATION_NAME);
+
+ MainWindow mainWindow;
+ mainWindow.setOrientation(MainWindow::ScreenOrientationLockPortrait);
+ mainWindow.showExpanded();
+
+ return app.exec();
+}
--- /dev/null
+// checksum 0xfd0b version 0x20001
+/*
+ This file was generated by the Mobile Qt Application wizard of Qt Creator.
+ MainWindow is a convenience class containing mobile device specific code
+ such as screen orientation handling.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#include "mainwindow.h"
+#include "ui_mainwindow.h"
+
+#include "setupdialog.h"
+#include "xbmc.h"
+
+#include <QGraphicsRectItem>
+#include <QGraphicsEllipseItem>
+
+#include <QCoreApplication>
+
+#if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK)
+#include <eikenv.h>
+#include <eikappui.h>
+#include <aknenv.h>
+#include <aknappui.h>
+#endif // Q_OS_SYMBIAN && ORIENTATIONLOCK
+
+MainWindow::MainWindow(QWidget *parent)
+ : QMainWindow(parent), m_ui(new Ui::MainWindow)
+{
+ m_ui->setupUi(this);
+ m_xbmc = new Xbmc(this);
+}
+
+MainWindow::~MainWindow()
+{
+ delete m_xbmc;
+ delete m_ui;
+}
+
+void MainWindow::setOrientation(ScreenOrientation orientation)
+{
+#ifdef Q_OS_SYMBIAN
+ if (orientation != ScreenOrientationAuto) {
+#if defined(ORIENTATIONLOCK)
+ const CAknAppUiBase::TAppUiOrientation uiOrientation =
+ (orientation == ScreenOrientationLockPortrait) ? CAknAppUi::EAppUiOrientationPortrait
+ : CAknAppUi::EAppUiOrientationLandscape;
+ CAknAppUi* appUi = dynamic_cast<CAknAppUi*> (CEikonEnv::Static()->AppUi());
+ TRAPD(error,
+ if (appUi)
+ appUi->SetOrientationL(uiOrientation);
+ );
+ Q_UNUSED(error)
+#else // ORIENTATIONLOCK
+ qWarning("'ORIENTATIONLOCK' needs to be defined on Symbian when locking the orientation.");
+#endif // ORIENTATIONLOCK
+ }
+#elif defined(Q_WS_MAEMO_5)
+ Qt::WidgetAttribute attribute;
+ switch (orientation) {
+ case ScreenOrientationLockPortrait:
+ attribute = Qt::WA_Maemo5PortraitOrientation;
+ break;
+ case ScreenOrientationLockLandscape:
+ attribute = Qt::WA_Maemo5LandscapeOrientation;
+ break;
+ case ScreenOrientationAuto:
+ default:
+ attribute = Qt::WA_Maemo5AutoOrientation;
+ break;
+ }
+ setAttribute(attribute, true);
+#else // Q_OS_SYMBIAN
+ Q_UNUSED(orientation);
+#endif // Q_OS_SYMBIAN
+}
+
+void MainWindow::showExpanded()
+{
+#ifdef Q_OS_SYMBIAN
+ showFullScreen();
+#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6)
+ showMaximized();
+#else
+ show();
+#endif
+}
+
+void MainWindow::on_actionSetup_triggered()
+{
+ SetupDialog dialog;
+ dialog.load();
+ if(dialog.exec() == QDialog::Accepted) {
+ dialog.save();
+ }
+}
+
+void MainWindow::on_rightBtn_clicked()
+{
+ m_xbmc->actionRight();
+}
+
+void MainWindow::on_leftBtn_clicked()
+{
+ m_xbmc->actionLeft();
+}
+
+void MainWindow::on_upBtn_clicked()
+{
+ m_xbmc->actionUp();
+}
+
+void MainWindow::on_downBtn_clicked()
+{
+ m_xbmc->actionDown();
+}
+
+void MainWindow::on_playBtn_clicked()
+{
+ m_xbmc->actionPlay();
+}
+
+void MainWindow::on_muteBtn_clicked()
+{
+ m_xbmc->actionMute();
+}
+
+void MainWindow::on_volumeUpBtn_clicked()
+{
+ m_xbmc->actionVolumeUp();
+}
+
+void MainWindow::on_volumeDownBtn_clicked()
+{
+ m_xbmc->actionVolumeDown();
+}
+
+void MainWindow::on_nextSubtitleBtn_clicked()
+{
+ m_xbmc->actionNextSubtitle();
+}
+
+void MainWindow::on_nextLanguageBtn_clicked()
+{
+ m_xbmc->actionNextLanguage();
+}
+
+void MainWindow::on_selectButton_clicked()
+{
+ m_xbmc->actionSelect();
+}
+
+void MainWindow::on_stopBtn_clicked()
+{
+ m_xbmc->actionStop();
+}
--- /dev/null
+// checksum 0x9a77 version 0x20001
+/*
+ This file was generated by the Mobile Qt Application wizard of Qt Creator.
+ MainWindow is a convenience class containing mobile device specific code
+ such as screen orientation handling.
+ It is recommended not to modify this file, since newer versions of Qt Creator
+ may offer an updated version of it.
+*/
+
+#ifndef MAINWINDOW_H
+#define MAINWINDOW_H
+
+#include <QMainWindow>
+
+#include "xbmc.h"
+
+namespace Ui {
+ class MainWindow;
+}
+
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+public:
+ enum ScreenOrientation {
+ ScreenOrientationLockPortrait,
+ ScreenOrientationLockLandscape,
+ ScreenOrientationAuto
+ };
+
+ explicit MainWindow(QWidget *parent = 0);
+ virtual ~MainWindow();
+
+ void setOrientation(ScreenOrientation orientation);
+ void showExpanded();
+
+private slots:
+ void on_actionSetup_triggered();
+
+ void on_rightBtn_clicked();
+ void on_leftBtn_clicked();
+ void on_upBtn_clicked();
+ void on_downBtn_clicked();
+ void on_selectButton_clicked();
+
+ void on_playBtn_clicked();
+ void on_stopBtn_clicked();
+
+ void on_muteBtn_clicked();
+ void on_volumeUpBtn_clicked();
+ void on_volumeDownBtn_clicked();
+
+ void on_nextSubtitleBtn_clicked();
+ void on_nextLanguageBtn_clicked();
+
+private:
+ Ui::MainWindow *m_ui;
+ Xbmc* m_xbmc;
+};
+
+#endif // MAINWINDOW_H
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>480</width>
+ <height>836</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>XBMC Net Movies RC</string>
+ </property>
+ <widget class="QWidget" name="centralWidget">
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QToolButton" name="nextSubtitleBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>next subtitle</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_next_subtitle.png</normaloff>:/images/btn_next_subtitle.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="nextLanguageBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>next language</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_next_language.png</normaloff>:/images/btn_next_language.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_9">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QToolButton" name="volumeUpBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>volume up</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_volume_up.png</normaloff>:/images/btn_volume_up.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="volumeDownBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>volume down</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_volume_down.png</normaloff>:/images/btn_volume_down.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="muteBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>mute</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_mute.png</normaloff>:/images/btn_mute.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <spacer name="horizontalSpacer_6">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QToolButton" name="upBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>up</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_up.png</normaloff>:/images/btn_up.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QToolButton" name="leftBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>left</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_left.png</normaloff>:/images/btn_left.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="playBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>pause</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_play_pause.png</normaloff>:/images/btn_play_pause.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>133</width>
+ <height>133</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="rightBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>right</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_right.png</normaloff>:/images/btn_right.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QToolButton" name="downBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>down</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_down.png</normaloff>:/images/btn_down.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_7">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_6">
+ <item>
+ <widget class="QToolButton" name="stopBtn">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>stop</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_stop.png</normaloff>:/images/btn_stop.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_5">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QToolButton" name="selectButton">
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="toolTip">
+ <string>select</string>
+ </property>
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="icon">
+ <iconset resource="simplexbmcremote.qrc">
+ <normaloff>:/images/btn_enter.png</normaloff>:/images/btn_enter.png</iconset>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>92</width>
+ <height>92</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QMenuBar" name="menuBar">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>480</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <widget class="QMenu" name="menuSetup">
+ <property name="title">
+ <string>MainMenu</string>
+ </property>
+ <addaction name="actionSetup"/>
+ </widget>
+ <addaction name="menuSetup"/>
+ </widget>
+ <action name="actionSetup">
+ <property name="text">
+ <string>Setup</string>
+ </property>
+ </action>
+ <action name="actionConnect">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Connect</string>
+ </property>
+ </action>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources>
+ <include location="simplexbmcremote.qrc"/>
+ </resources>
+ <connections/>
+</ui>
--- /dev/null
+The Debian Package simplexbmcremote
+-----------------------------------
+
+A simple application for controlling XBMC remotely while watching movies. Uses
+HTTP XBMC protocol to communicate with XBMC. Can navigate your video
+collection, start/pause/stop movies, skip forward and back, control the volume,
+cycle through the existing subtitles and languages.
+
+ -- Ionutz Borcoman <iborco@gmail.com> Mon, 31 Jan 2011 14:34:36 +0200
--- /dev/null
+simplexbmcremote (0.8.0-1) unstable; urgency=low
+
+ * Preparing for garage upload.
+
+ -- Ionutz Borcoman <iborco@gmail.com> Wed, 09 Mar 2011 09:16:53 +0200
+
+simplexbmcremote (0.8.0) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Ionutz Borcoman <iborco@gmail.com> Mon, 31 Jan 2011 14:34:36 +0200
--- /dev/null
+Source: simplexbmcremote
+Section: user/multimedia
+Priority: optional
+Maintainer: Ionutz Borcoman <iborco@gmail.com>
+Build-Depends: debhelper (>= 5), libqt4-dev
+Standards-Version: 3.7.3
+Homepage: https://garage.maemo.org/projects/simple-xmbc-rem/
+
+Package: simplexbmcremote
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: simple xbmc remote control
+ A simple application for controlling XBMC remotely (using HTTP) while watching movies.
+ .
+ Can navigate your video collection, start/pause/stop movies, skip forward and back, control the volume, switch the existing subtitles and languages.
+XSBC-Bugtracker: https://garage.maemo.org/tracker/?atid=7118&group_id=2102
+XSBC-Maemo-Display-Name: Simple XBMC Remote
+XB-Maemo-Upgrade-Description: Initial release for Maemo.
+XB-Maemo-Icon-26:
+ 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
--- /dev/null
+This package was debianized by Ionutz Borcoman <iborco@gmail.com> on
+Mon, 31 Jan 2011 14:34:36 +0200.
+
+It was downloaded from https://garage.maemo.org/projects/simple-xmbc-rem/
+
+Upstream Author(s):
+
+ Ionutz Borcoman <iborco@gmail.com>
+
+Copyright:
+
+ Copyright (C) 2011 Ionutz Borcoman
+
+License:
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
+
+The Debian packaging is (C) 2011, Ionutz Borcoman <iborco@gmail.com> and
+is licensed under the GPL, see above.
--- /dev/null
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+
+
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+
+ touch configure-stamp
+
+
+build: build-stamp
+
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+ #docbook-to-man debian/simplexbmcremote.sgml > simplexbmcremote.1
+
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ $(MAKE) clean
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/simplexbmcremote.
+ $(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/simplexbmcremote install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+# dh_install
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_python
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+ # dh_strip
+ dh_compress
+ dh_fixperms
+# dh_perl
+# dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps # Uncomment this line for publishing!
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
--- /dev/null
+#include "setupdialog.h"
+#include "ui_setupdialog.h"
+
+#include "constants.h"
+
+#include <QSettings>
+
+SetupDialog::SetupDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::SetupDialog)
+{
+ ui->setupUi(this);
+}
+
+SetupDialog::~SetupDialog()
+{
+ delete ui;
+}
+
+void SetupDialog::save()
+{
+ QSettings settings;
+ settings.setValue(SETUP_XBMC_SERVER, ui->xbmcServerEdit->text());
+ settings.setValue(SETUP_XBMC_PORT, ui->xbmcPortEdit->text());
+}
+
+void SetupDialog::load()
+{
+ QSettings settings;
+ ui->xbmcServerEdit->setText(settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString());
+ ui->xbmcPortEdit->setText(settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toString());
+}
--- /dev/null
+#ifndef SETUPDIALOG_H
+#define SETUPDIALOG_H
+
+#include <QDialog>
+
+namespace Ui {
+ class SetupDialog;
+}
+
+class SetupDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit SetupDialog(QWidget *parent = 0);
+ ~SetupDialog();
+ void save();
+ void load();
+
+private:
+ Ui::SetupDialog *ui;
+};
+
+#endif // SETUPDIALOG_H
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SetupDialog</class>
+ <widget class="QDialog" name="SetupDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>329</width>
+ <height>111</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>XBMC</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QFormLayout" name="formLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="xbmcServerLabel">
+ <property name="text">
+ <string>Server:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="xbmcServerEdit"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="xbmcPortLabel">
+ <property name="text">
+ <string>Port:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="xbmcPortEdit"/>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>SetupDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>SetupDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
--- /dev/null
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=Simple XBMC Remote
+Exec=/opt/usr/bin/simplexbmcremote
+Icon=simplexbmcremote
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
--- /dev/null
+# Add files and directories to ship with the application
+# by adapting the examples below.
+# file1.source = myfile
+# dir1.source = mydir
+DEPLOYMENTFOLDERS = # file1 dir1
+
+# Avoid auto screen rotation
+#DEFINES += ORIENTATIONLOCK
+
+maemo5 {
+ message(Compiling for Maemo)
+ QT += maemo5
+ DEFINES += Q_WS_MAEMO_5
+} else {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += gtk+-2.0 libnotify
+}
+
+# Needs to be defined for Symbian
+DEFINES += NETWORKACCESS
+QT += network
+
+symbian:TARGET.UID3 = 0xED8FBFF1
+
+# If your application uses the Qt Mobility libraries, uncomment
+# the following lines and add the respective components to the
+# MOBILITY variable.
+# CONFIG += mobility
+# MOBILITY +=
+
+TARGET = simplexbmcremote
+
+SOURCES += main.cpp mainwindow.cpp \
+ setupdialog.cpp \
+ xbmc.cpp \
+ genericnotify.cpp
+HEADERS += mainwindow.h \
+ setupdialog.h \
+ constants.h \
+ xbmc.h \
+ genericnotify.h
+FORMS += mainwindow.ui \
+ setupdialog.ui
+
+# Please do not modify the following two lines. Required for deployment.
+include(deployment.pri)
+qtcAddDeployment()
+
+RESOURCES += \
+ simplexbmcremote.qrc
--- /dev/null
+<RCC>
+ <qresource prefix="/">
+ <file>images/btn_down.png</file>
+ <file>images/btn_enter.png</file>
+ <file>images/btn_left.png</file>
+ <file>images/btn_mute.png</file>
+ <file>images/btn_next_language.png</file>
+ <file>images/btn_next_subtitle.png</file>
+ <file>images/btn_play_pause.png</file>
+ <file>images/btn_right.png</file>
+ <file>images/btn_stop.png</file>
+ <file>images/btn_up.png</file>
+ <file>images/btn_volume_down.png</file>
+ <file>images/btn_volume_up.png</file>
+ </qresource>
+</RCC>
--- /dev/null
+#include "xbmc.h"
+#include "constants.h"
+#include "genericnotify.h"
+
+#include <QSettings>
+#include <QTextStream>
+#include <QNetworkReply>
+
+// XBMC constants -- from https://github.com/xbmc/xbmc/blob/master/xbmc/guilib/Key.h
+#define ACTION_MOVE_LEFT 1
+#define ACTION_MOVE_RIGHT 2
+#define ACTION_MOVE_UP 3
+#define ACTION_MOVE_DOWN 4
+#define ACTION_NEXT_SUBTITLE 26 // switch to next subtitle of movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_SUBTITLE_DELAY_MIN 52 // Decrease subtitle/movie Delay. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_SUBTITLE_DELAY_PLUS 53 // Increase subtitle/movie Delay. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_AUDIO_DELAY_MIN 54 // Increase avsync delay. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_AUDIO_DELAY_PLUS 55 // Decrease avsync delay. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_AUDIO_NEXT_LANGUAGE 56 // Select next language in movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_ENTER 135
+#define ACTION_SHOW_GUI 18 // toggle between GUI and movie or GUI and visualisation.
+#define ACTION_STEP_FORWARD 20 // seek +1% in the movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_STEP_BACK 21 // seek -1% in the movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_BIG_STEP_FORWARD 22 // seek +10% in the movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_BIG_STEP_BACK 23 // seek -10% in the movie. Can b used in videoFullScreen.xml window id=2005
+
+#define ACTION_PLAYER_PLAY 79 // Play current song. Unpauses song and sets playspeed to 1x. global action, can be used anywhere
+#define ACTION_SELECT_ITEM 7
+#define ACTION_HIGHLIGHT_ITEM 8
+#define ACTION_PARENT_DIR 9
+
+#define ACTION_VOLUME_UP 88
+#define ACTION_VOLUME_DOWN 89
+#define ACTION_MUTE 91
+
+#define ACTION_PAUSE 12
+#define ACTION_STOP 13
+#define ACTION_NEXT_ITEM 14
+#define ACTION_PREV_ITEM 15
+#define ACTION_FORWARD 16 // Can be used to specify specific action in a window, Playback control is handled in ACTION_PLAYER_*
+#define ACTION_REWIND 17 // Can be used to specify specific action in a window, Playback control is handled in ACTION_PLAYER_*
+
+Xbmc::Xbmc(QObject *parent) : QObject(parent)
+{
+ m_manager = new QNetworkAccessManager(this);
+}
+
+Xbmc::~Xbmc()
+{
+ delete m_manager;
+}
+
+void Xbmc::commandActionFinished()
+{
+ QNetworkReply* reply = qobject_cast<QNetworkReply *>(sender());
+ if (reply) {
+ if (reply->error() == QNetworkReply::NoError) {
+ QTextStream stream(reply);
+ QString msg = stream.readAll();
+ qDebug("Xbmc::commandActionFinished: %s", qPrintable(msg));
+ } else {
+ notify::notify(reply->errorString());
+ }
+ reply->deleteLater();
+ }
+}
+
+void Xbmc::do_command_action(int action)
+{
+ QSettings settings;
+ QString server = settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString();
+ QString port = settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toString();
+
+ QUrl url = QUrl(QString("http://%1:%2/xbmcCmds/xbmcHttp?command=Action(%3)").arg(server).arg(port).arg(action));
+
+ QNetworkRequest request;
+ request.setUrl(url);
+
+ QNetworkReply *reply = m_manager->get(request);
+ connect(reply, SIGNAL(finished()), this, SLOT(commandActionFinished()));
+}
+
+void Xbmc::actionRight()
+{
+ do_command_action(ACTION_MOVE_RIGHT);
+ do_command_action(ACTION_STEP_FORWARD);
+}
+
+void Xbmc::actionLeft()
+{
+ do_command_action(ACTION_MOVE_LEFT);
+ do_command_action(ACTION_STEP_BACK);
+}
+
+void Xbmc::actionUp()
+{
+ do_command_action(ACTION_MOVE_UP);
+ do_command_action(ACTION_BIG_STEP_FORWARD);
+}
+
+void Xbmc::actionDown()
+{
+ do_command_action(ACTION_MOVE_DOWN);
+ do_command_action(ACTION_BIG_STEP_BACK);
+}
+
+void Xbmc::actionMute()
+{
+ do_command_action(ACTION_MUTE);
+}
+
+void Xbmc::actionVolumeUp()
+{
+ do_command_action(ACTION_VOLUME_UP);
+}
+
+void Xbmc::actionVolumeDown()
+{
+ do_command_action(ACTION_VOLUME_DOWN);
+}
+
+void Xbmc::actionNextSubtitle()
+{
+ do_command_action(ACTION_NEXT_SUBTITLE);
+}
+
+void Xbmc::actionNextLanguage()
+{
+ do_command_action(ACTION_AUDIO_NEXT_LANGUAGE);
+}
+
+void Xbmc::actionPlay()
+{
+ do_command_action(ACTION_PLAYER_PLAY);
+}
+
+void Xbmc::actionSelect()
+{
+ do_command_action(ACTION_SELECT_ITEM);
+}
+
+void Xbmc::actionStop()
+{
+ do_command_action(ACTION_STOP);
+}
--- /dev/null
+#ifndef XBMC_H
+#define XBMC_H
+
+#include <QString>
+#include <QNetworkAccessManager>
+
+class Xbmc : public QObject
+{
+ Q_OBJECT
+public:
+ Xbmc(QObject* parent = 0);
+ ~Xbmc();
+
+ void actionRight();
+ void actionLeft();
+ void actionUp();
+ void actionDown();
+
+ void actionMute();
+ void actionVolumeUp();
+ void actionVolumeDown();
+
+ void actionNextSubtitle();
+ void actionNextLanguage();
+
+ void actionPlay();
+ void actionStop();
+
+ void actionSelect();
+
+private slots:
+ void commandActionFinished();
+
+private:
+ void do_command_action(int action);
+
+ QNetworkAccessManager *m_manager;
+};
+
+#endif // XBMC_H