diff options
author | Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org> | 2011-03-03 17:09:35 -0300 |
---|---|---|
committer | Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org> | 2011-03-03 19:21:03 -0300 |
commit | d7d612ff07253b1cc1ffa4be489a8d90ec750af6 (patch) | |
tree | 3a58a0fd8cba98c67dffb030e84769bd0280475a | |
parent | 3d1495cc84ce8a274cbda6023d56e75de671eed9 (diff) |
RadioTuner
Signed-off-by: Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org>
68 files changed, 1404 insertions, 412 deletions
diff --git a/RadioTuner/LICENSE.BSD b/RadioTuner/LICENSE.BSD new file mode 100644 index 0000000..13f338b --- /dev/null +++ b/RadioTuner/LICENSE.BSD @@ -0,0 +1,32 @@ +Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +All rights reserved. +Contact: Nokia Corporation (qt-info@nokia.com) + +"Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor + the names of its contributors may be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE." diff --git a/RadioTuner/README.rtf b/RadioTuner/README.rtf deleted file mode 100644 index 3891a00..0000000 --- a/RadioTuner/README.rtf +++ /dev/null @@ -1,7 +0,0 @@ -{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 -{\fonttbl\f0\fswiss\fcharset0 Helvetica;} -{\colortbl;\red255\green255\blue255;} -\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0 -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural - -\f0\fs24 \cf0 Just need to run the "RadioTuner.qml" file.}
\ No newline at end of file diff --git a/RadioTuner/RadioModel.qml b/RadioTuner/RadioModel.qml deleted file mode 100644 index e6974ef..0000000 --- a/RadioTuner/RadioModel.qml +++ /dev/null @@ -1,5 +0,0 @@ -import Qt 4.7 - -ListModel { - id: radioModel - } diff --git a/RadioTuner/RadioTuner.qml b/RadioTuner/RadioTuner.qml deleted file mode 100644 index 39db455..0000000 --- a/RadioTuner/RadioTuner.qml +++ /dev/null @@ -1,145 +0,0 @@ -import Qt 4.7 - -Item { - id: root - width: 800 - height: 480 - - Script { - source: "rangemodel.js"; - } - - Image { - id: tunerBg - x: 81 - y: 86 - source: "images/scala_bg.png" - } - - StationsModel{ - id:stationsModel; - } - - ListView { - id: radiosList; - x: 68; - y: 86; - width: 638; - height: 270; - orientation: "Horizontal" - model: createModel(stationsModel); - delegate: scaleDelegate; - highlightMoveSpeed: -1; - highlightRangeMode: "StrictlyEnforceRange" - //interactive: false; - } - - Component { - id: scaleDelegate; - RangeStation { - width: 29; - height: 266; - stationRange: model.stationRange; - kind: model.kind; - station: model.station; - stationName: model.stationName; - } - } - - Image { - id: buttonNext; - x: 719 - y: 86 - source: "images/bt_next.png" - - MouseArea { - anchors.fill: parent; - onClicked: { - gotoNextStation(radiosList, stationName, stationDial); - } - } - } - - Image { - id: buttonPrevious; - x: 0 - y: 86 - source: "images/bt_prev.png" - - MouseArea { - anchors.fill: parent; - onClicked: { - gotoPreviousStation(radiosList, stationName, stationDial); - } - } - } - - Image { - id: bottomBar; - x: 0 - y: 355 - source: "images/bottom.png" - } - - Image { - id: topBar; - x: 0 - y: 58 - source: "images/top.png" - } - - Image { - id: placeHolder; - x: 0 - y: 0 - source: "images/placeholder_n900_bar.png" - } - - Image { - id: image1 - x: 81 - y: 86 - source: "images/scala_glass.png" - } - - Image { - id: image2 - x: 198 - y: 117 - source: "images/scala_needle.png" - } - - Text { - id: stationName - x: 198 - y: 377 - width: 404 - height: 46 - color: "#ffffff" - styleColor: "#ffffff" - horizontalAlignment: "AlignHCenter" - font.pointSize: 35 - font.family: "Nokia Sans" - } - - Text { - id: stationDial - x: 290 - y: 422 - width: 220 - height: 32 - color: "#eaeaeb" - font.pointSize: 25 - font.family: "Nokia Sans" - styleColor: "#eaeaeb" - horizontalAlignment: "AlignHCenter" - } - - - Component.onCompleted:{ - radiosList.currentIndex = gotoradioIndex(0); - radiosList.highlightMoveSpeed = 1000; - stationName.text = setStationName(0); - stationDial.text = setStationDial(0); - } -} diff --git a/RadioTuner/RadioTuner.qmlproject b/RadioTuner/RadioTuner.qmlproject deleted file mode 100644 index 86a5669..0000000 --- a/RadioTuner/RadioTuner.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -// File generated by QtCreator - -import QmlProject 1.0 - -Project { - // Scan current directory for .qml, .js, and image files - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } -} diff --git a/RadioTuner/RangeStation.qml b/RadioTuner/RangeStation.qml deleted file mode 100644 index 4ce6e37..0000000 --- a/RadioTuner/RangeStation.qml +++ /dev/null @@ -1,69 +0,0 @@ -import Qt 4.6 - -Item { - id: range; - width: 266; - height: 272; - property real stationRange; - property int roundedRange : parseInt(stationRange) - property string kind; - property string stationName; - property real station; - - onKindChanged:{ - if(kind == "high") - background.source = "images/high_tick.png"; - - else if(kind == "medium") - background.source = "images/medium_tick.png"; - - else if(kind == "low") - background.source = "images/low_tick.png"; - } - - onStationChanged:{ - if(station != -1){ - bgText.visible = true; - } - - } - - Image { - id: background; - anchors.fill: parent; - anchors.topMargin: 30; - fillMode: "PreserveAspectFit"; - } - - Image { - id: bgText; - visible: false; - fillMode: "PreserveAspectFit"; - source:"images/scala_rdslabel.png"; - - Text { - id: name; - text: stationName; - rotation: 270; - anchors.fill:parent; - anchors.leftMargin:70; - anchors.topMargin:170; - color: "#514C4A"; - font.pixelSize: 23; - font.family: "Nokia Sans"; - } - - } - - Text { - id: rangeText; - text: parent.roundedRange; - width: 50; - x:-10; - color: "#000000"; - font.pixelSize: 25; - font.family: "Nokia Sans"; - horizontalAlignment: "AlignHCenter"; - visible: parseInt(stationRange * 10) % 10 == 0; - } -} diff --git a/RadioTuner/StationsModel.qml b/RadioTuner/StationsModel.qml deleted file mode 100644 index c979c17..0000000 --- a/RadioTuner/StationsModel.qml +++ /dev/null @@ -1,77 +0,0 @@ -import Qt 4.7 - -ListModel { - id: stationsModel - ListElement { - name: "NME Radio" - dial: 87.7 - } - ListElement { - name: "BBC Radio 2" - dial: 89.1 - } - ListElement { - name: "BBC Radio 3" - dial: 91.3 - } - ListElement { - name: "BBC Radio 4" - dial: 93.5 - } - ListElement { - name: "BBC London" - dial: 94.9 - } - ListElement { - name: "Capital FM" - dial: 95.8 - } - ListElement { - name: "The Eagle" - dial: 96.4 - } - ListElement { - name: "Herts Mercury" - dial: 87.7 - } - ListElement { - name: "BBC Radio Kent" - dial: 96.6 - } - ListElement { - name: "Choice FM" - dial: 96.9 - } - ListElement { - name: "LBC" - dial: 97.3 - } - ListElement { - name: "Chiltern FM" - dial: 97.6 - } - ListElement { - name: "BBC Radio 1" - dial: 98.8 - } - ListElement { - name: "Kiss FM" - dial: 100.0 - } - ListElement { - name: "Classic FM" - dial: 100.9 - } - ListElement { - name: "Mercury FM" - dial: 101.6 - } - ListElement { - name: "Smooth FM" - dial: 102.2 - } - ListElement { - name: "Essex FM" - dial: 102.7 - } - } diff --git a/RadioTuner/build/build.pro b/RadioTuner/build/build.pro new file mode 100644 index 0000000..a0c6a18 --- /dev/null +++ b/RadioTuner/build/build.pro @@ -0,0 +1,17 @@ +TEMPLATE = app +TARGET = radiotuner + +QT += declarative + +symbian { + LIBS += -lesock -lconnmon -lcone -lavkon + + TARGET.UID3 = 0xe3431593 + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 + + DEPLOYMENT.installer_header = 0xA000D7CE +} + +SOURCES += main.cpp + +RESOURCES += resource.qrc diff --git a/RadioTuner/build/debian/changelog b/RadioTuner/build/debian/changelog new file mode 100644 index 0000000..16f5a75 --- /dev/null +++ b/RadioTuner/build/debian/changelog @@ -0,0 +1,5 @@ +radiotuner (0.1-1) unstable; urgency=low + + * Initial release + + -- Adriano Rezende <adriano.rezende@openbossa.org> Thu, 25 Nov 2010 10:37:30 -0300 diff --git a/RadioTuner/build/debian/compat b/RadioTuner/build/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/RadioTuner/build/debian/compat @@ -0,0 +1 @@ +5 diff --git a/RadioTuner/build/debian/control b/RadioTuner/build/debian/control new file mode 100644 index 0000000..f24ba17 --- /dev/null +++ b/RadioTuner/build/debian/control @@ -0,0 +1,13 @@ +Source: radiotuner +Section: user/Other +Priority: extra +Maintainer: Adriano Rezende <adriano.rezende@openbossa.org> +Build-Depends: debhelper (>= 5), libqt4-experimental-dev +Standards-Version: 3.8.4 + +Package: radiotuner +Section: user/Other +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Radio Tuner + Qt Quick demo. diff --git a/RadioTuner/build/debian/rules b/RadioTuner/build/debian/rules new file mode 100755 index 0000000..f62b045 --- /dev/null +++ b/RadioTuner/build/debian/rules @@ -0,0 +1,19 @@ +#!/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 + +DEB_BUILDDIR = debian/builddeb +DEB_QMAKE_ARGS = $(CURDIR)/build.pro + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/qmake.mk + +clear:: + rm -fr $(DEB_BUILDDIR) diff --git a/RadioTuner/build/main.cpp b/RadioTuner/build/main.cpp new file mode 100644 index 0000000..c766754 --- /dev/null +++ b/RadioTuner/build/main.cpp @@ -0,0 +1,36 @@ +#include <QApplication> +#include <QDeclarativeView> +#include <QDeclarativeEngine> + +#ifdef Q_OS_SYMBIAN +#include <eikenv.h> +#include <aknappui.h> +#endif + + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + +#ifdef Q_OS_SYMBIAN + // lock portrait mode for symbian + CAknAppUi *akn = dynamic_cast<CAknAppUi*>(CEikonEnv::Static()->AppUi()); + TRAPD(error, if (akn) akn->SetOrientationL(CAknAppUi::EAppUiOrientationLandscape); ); +#endif + + QDeclarativeView view; +#ifdef Q_OS_SYMBIAN + view.setSource(QUrl("qrc:main_s60.qml")); +#else + view.setSource(QUrl("qrc:main_n900.qml")); +#endif + QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit())); + +#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5) + view.showFullScreen(); +#else + view.show(); +#endif + + return app.exec(); +} diff --git a/RadioTuner/build/mainwindow.cpp b/RadioTuner/build/mainwindow.cpp new file mode 100644 index 0000000..0fd7157 --- /dev/null +++ b/RadioTuner/build/mainwindow.cpp @@ -0,0 +1,39 @@ +#include "mainwindow.h" + +#include <QApplication> +#include <QDeclarativeEngine> + +#if defined(Q_OS_SYMBIAN) +#include <QTimer> +#include <eikenv.h> +#include <coemain.h> +#include <aknappui.h> +#endif + +MainWindow::MainWindow() + : QDeclarativeView(), + m_isPortrait(false) +{ + setSource(QUrl::fromLocalFile("c://data/radiotuner/main_s60.qml")); + + QObject::connect(engine(), SIGNAL(quit()), qApp, SLOT(quit())); + +#if defined(Q_OS_SYMBIAN) + QTimer::singleShot(0, this, SLOT(lockViewMode())); +#endif +} + +#if defined(Q_OS_SYMBIAN) +void MainWindow::lockViewMode() +{ + CAknAppUi *aknAppUi = dynamic_cast<CAknAppUi *>(CEikonEnv::Static()->AppUi()); + + if (!aknAppUi) + return; + + if (m_isPortrait) + aknAppUi->SetOrientationL(CAknAppUi::EAppUiOrientationPortrait); + else + aknAppUi->SetOrientationL(CAknAppUi::EAppUiOrientationLandscape); +} +#endif diff --git a/RadioTuner/build/mainwindow.h b/RadioTuner/build/mainwindow.h new file mode 100644 index 0000000..8e92912 --- /dev/null +++ b/RadioTuner/build/mainwindow.h @@ -0,0 +1,22 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include <QDeclarativeView> + +class MainWindow : public QDeclarativeView +{ + Q_OBJECT + +public: + MainWindow(); + +protected slots: +#ifdef Q_OS_SYMBIAN + void lockViewMode(); +#endif + +private: + bool m_isPortrait; +}; + +#endif diff --git a/RadioTuner/build/resource.qrc b/RadioTuner/build/resource.qrc new file mode 100644 index 0000000..5cf653c --- /dev/null +++ b/RadioTuner/build/resource.qrc @@ -0,0 +1,43 @@ +<RCC> +<qresource prefix="/"> + <file>../content/RadioTuner.qml</file> + <file>../content/rangemodel.js</file> + <file>../content/RangeStation.qml</file> + <file>../content/images/n900/close.png</file> + <file>../content/images/n900/bt_next_down.png</file> + <file>../content/images/n900/medium_tick.png</file> + <file>../content/images/n900/low_tick.png</file> + <file>../content/images/n900/bt_prev_down.png</file> + <file>../content/images/n900/scala_glass.png</file> + <file>../content/images/n900/scala_ticks.png</file> + <file>../content/images/n900/bt_next.png</file> + <file>../content/images/n900/top.png</file> + <file>../content/images/n900/scala_bg.png</file> + <file>../content/images/n900/bt_prev.png</file> + <file>../content/images/n900/bt_rdsname_arrow.png</file> + <file>../content/images/n900/high_tick.png</file> + <file>../content/images/n900/bottom.png</file> + <file>../content/images/n900/scala_rdslabel.png</file> + <file>../content/images/n900/scala_needle.png</file> + <file>../content/images/s60/close.png</file> + <file>../content/images/s60/bt_next_down.png</file> + <file>../content/images/s60/medium_tick.png</file> + <file>../content/images/s60/low_tick.png</file> + <file>../content/images/s60/bt_prev_down.png</file> + <file>../content/images/s60/scala_glass.png</file> + <file>../content/images/s60/scala_ticks.png</file> + <file>../content/images/s60/bt_next.png</file> + <file>../content/images/s60/top.png</file> + <file>../content/images/s60/scala_bg.png</file> + <file>../content/images/s60/bt_prev.png</file> + <file>../content/images/s60/bt_rdsname_arrow.png</file> + <file>../content/images/s60/high_tick.png</file> + <file>../content/images/s60/bottom.png</file> + <file>../content/images/s60/scala_rdslabel.png</file> + <file>../content/images/s60/scala_needle.png</file> + <file>../content/RadioModel.qml</file> + <file>../content/StationsModel.qml</file> + <file>../main_s60.qml</file> + <file>../main_n900.qml</file> +</qresource> +</RCC> diff --git a/RadioTuner/content/RadioModel.qml b/RadioTuner/content/RadioModel.qml new file mode 100755 index 0000000..1dccbab --- /dev/null +++ b/RadioTuner/content/RadioModel.qml @@ -0,0 +1,46 @@ +/**************************************************************************** +** +** This file is part of RadioTuner +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +** COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +** POSSIBILITY OF SUCH DAMAGE." +** +****************************************************************************/ + +import Qt 4.7 + +ListModel { + id: radioModel +} diff --git a/RadioTuner/content/RadioTuner.qml b/RadioTuner/content/RadioTuner.qml new file mode 100755 index 0000000..fcc6f8c --- /dev/null +++ b/RadioTuner/content/RadioTuner.qml @@ -0,0 +1,202 @@ +/**************************************************************************** +** +** This file is part of RadioTuner +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +** COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +** POSSIBILITY OF SUCH DAMAGE." +** +****************************************************************************/ + +import Qt 4.7 +import "rangemodel.js" as RangeFunctions + +Item { + id: root + + property real scaleFactor: root.width/800.0; + + StationsModel { + id: stationsModel + } + + Image { + id: bottomBar + source: folder+"bottom.png" + anchors.bottom: root.bottom + + Text { + id: stationName + anchors.top: parent.top + anchors.horizontalCenter: parent.horizontalCenter + anchors.topMargin: 16 * scaleFactor + color: "#ffffff" + styleColor: "#ffffff" + font.family: "Nokia Sans" + font.pixelSize: 35 * scaleFactor + } + + Text { + id: stationDial + anchors.top: stationName.bottom + anchors.horizontalCenter: parent.horizontalCenter + anchors.topMargin: -6 * scaleFactor + color: "#eaeaeb" + styleColor: "#eaeaeb" + font.family: "Nokia Sans" + font.pixelSize: 25 * scaleFactor + } + } + + Image { + id: topBar + source: folder+"top.png" + anchors.bottom: tunerBg.top + } + + Image { + id: tunerBg + source: folder+"scala_bg.png" + anchors.bottom: bottomBar.top + anchors.left: buttonPrevious.right + } + + ListModel{ + id: listModelExample + } + + + ListView { + id: radioList + anchors.fill: tunerBg + anchors.leftMargin: -15 * scaleFactor + orientation: "Horizontal" + model: RangeFunctions.createModel(stationsModel, listModelExample) + delegate: scaleDelegate + highlightMoveSpeed: -1 + highlightRangeMode: "StrictlyEnforceRange" + + onCurrentIndexChanged: { + var index = RangeFunctions.getCenterIndex(currentIndex); + + if (index >= 0 && index < radioList.model.count) { + var model = radioList.model.get(index); + if (model.stationName) { + stationName.text = model.stationName; + stationDial.text = model.station; + } + } + } + } + + Component { + id: scaleDelegate + RangeStation { + width: parseInt(29 * scaleFactor) + height: 264 * scaleFactor + stationRange: model.stationRange + kind: model.kind + station: model.station + stationName: model.stationName + } + } + + Image { + id: buttonNext + anchors.bottom: bottomBar.top + anchors.left: tunerBg.right + source: folder+"bt_next.png" + + MouseArea { + anchors.fill: parent + onClicked: { + var index = RangeFunctions.getNextStation(radioList); + if (index >= 0) + radioList.currentIndex = index; + } + } + } + + Image { + id: buttonPrevious + anchors.bottom: bottomBar.top + anchors.left: parent.left + source: folder+"bt_prev.png" + + MouseArea { + anchors.fill: parent + onClicked: { + var index = RangeFunctions.getPreviousStation(radioList); + if (index >= 0) + radioList.currentIndex = index; + } + } + } + + Image { + anchors.top: tunerBg.top + anchors.left: tunerBg.left + source: folder+"scala_glass.png" + } + + Image { + anchors.bottom: bottomBar.top + anchors.horizontalCenter: tunerBg.horizontalCenter + source: folder+"scala_needle.png" + } + + Component.onCompleted: { + var station = RangeFunctions.getStation(0); + + if (station) { + stationName.text = station.name; + stationDial.text = station.dial; + radioList.currentIndex = station.centerIndex; + } + + radioList.highlightMoveSpeed = 1000; + } + + Image { + id: bt_close + anchors.top: parent.top + anchors.right: parent.right + source: folder + "close.png" + + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } + } +} diff --git a/RadioTuner/content/RangeStation.qml b/RadioTuner/content/RangeStation.qml new file mode 100755 index 0000000..8d1f91a --- /dev/null +++ b/RadioTuner/content/RangeStation.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** This file is part of RadioTuner +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +** COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +** POSSIBILITY OF SUCH DAMAGE." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: range + property string kind + property real station + property real stationRange + property string stationName + + onKindChanged: { + if (kind == "high") + background.source = folder+"high_tick.png"; + else if (kind == "medium") + background.source = folder+"medium_tick.png"; + else if (kind == "low") + background.source = folder+"low_tick.png"; + else + background.source = ""; + } + + Image { + id: background + anchors.bottom: bgText.bottom + anchors.horizontalCenter: parent.horizontalCenter + } + + Image { + id: bgText + visible: (stationName != "") + source: folder+"scala_rdslabel.png" + anchors.horizontalCenter: parent.horizontalCenter + + Text { + id: name + text: stationName + anchors.fill: parent + anchors.topMargin: 220 * scaleFactor + anchors.leftMargin: -1 * scaleFactor + horizontalAlignment: Text.AlignLeft + color: "#514C4A" + font.family: "Nokia Sans" + font.pixelSize: 23 * scaleFactor + + transform: Rotation { + id: textRotation + origin.x: 0 + origin.y: 0 + angle: 270 + } + } + } + + Text { + id: rangeText + x: -10 * scaleFactor + width: 50 * scaleFactor + text: parseInt(stationRange) + color: "#000000" + font.family: "Nokia Sans" + font.pixelSize: 25 * scaleFactor + horizontalAlignment: "AlignHCenter" + visible: (kind == "high") + } +} diff --git a/RadioTuner/content/StationsModel.qml b/RadioTuner/content/StationsModel.qml new file mode 100755 index 0000000..46fcf01 --- /dev/null +++ b/RadioTuner/content/StationsModel.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** This file is part of RadioTuner +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +** COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +** POSSIBILITY OF SUCH DAMAGE." +** +****************************************************************************/ + +import Qt 4.7 + +ListModel { + id: stationsModel + ListElement { + name: "NME Radio" + dial: 87.7 + } + ListElement { + name: "BBC Radio 2" + dial: 89.1 + } + ListElement { + name: "BBC Radio 3" + dial: 91.3 + } + ListElement { + name: "BBC Radio 4" + dial: 93.5 + } + ListElement { + name: "BBC London" + dial: 94.9 + } + ListElement { + name: "Capital FM" + dial: 95.8 + } + ListElement { + name: "The Eagle" + dial: 96.4 + } + ListElement { + name: "Herts Mercury" + dial: 87.7 + } + ListElement { + name: "BBC Radio Kent" + dial: 96.6 + } + ListElement { + name: "Choice FM" + dial: 96.9 + } + ListElement { + name: "LBC" + dial: 97.3 + } + ListElement { + name: "Chiltern FM" + dial: 97.6 + } + ListElement { + name: "BBC Radio 1" + dial: 98.8 + } + ListElement { + name: "Kiss FM" + dial: 100.0 + } + ListElement { + name: "Classic FM" + dial: 100.9 + } + ListElement { + name: "Mercury FM" + dial: 101.6 + } + ListElement { + name: "Smooth FM" + dial: 102.2 + } + ListElement { + name: "Essex FM" + dial: 102.7 + } +} diff --git a/RadioTuner/images/bottom.png b/RadioTuner/content/images/n900/bottom.png Binary files differindex 854266d..854266d 100755 --- a/RadioTuner/images/bottom.png +++ b/RadioTuner/content/images/n900/bottom.png diff --git a/RadioTuner/images/bt_next.png b/RadioTuner/content/images/n900/bt_next.png Binary files differindex 8951976..8951976 100755 --- a/RadioTuner/images/bt_next.png +++ b/RadioTuner/content/images/n900/bt_next.png diff --git a/RadioTuner/images/bt_next_down.png b/RadioTuner/content/images/n900/bt_next_down.png Binary files differindex 1a476df..1a476df 100755 --- a/RadioTuner/images/bt_next_down.png +++ b/RadioTuner/content/images/n900/bt_next_down.png diff --git a/RadioTuner/images/bt_prev.png b/RadioTuner/content/images/n900/bt_prev.png Binary files differindex 754f9e9..754f9e9 100755 --- a/RadioTuner/images/bt_prev.png +++ b/RadioTuner/content/images/n900/bt_prev.png diff --git a/RadioTuner/images/bt_prev_down.png b/RadioTuner/content/images/n900/bt_prev_down.png Binary files differindex 1e0d353..1e0d353 100755 --- a/RadioTuner/images/bt_prev_down.png +++ b/RadioTuner/content/images/n900/bt_prev_down.png diff --git a/RadioTuner/images/bt_rdsname_arrow.png b/RadioTuner/content/images/n900/bt_rdsname_arrow.png Binary files differindex 62a85ec..62a85ec 100755 --- a/RadioTuner/images/bt_rdsname_arrow.png +++ b/RadioTuner/content/images/n900/bt_rdsname_arrow.png diff --git a/RadioTuner/content/images/n900/close.png b/RadioTuner/content/images/n900/close.png Binary files differnew file mode 100755 index 0000000..e86141a --- /dev/null +++ b/RadioTuner/content/images/n900/close.png diff --git a/RadioTuner/images/high_tick.png b/RadioTuner/content/images/n900/high_tick.png Binary files differindex 6f966c6..6f966c6 100644..100755 --- a/RadioTuner/images/high_tick.png +++ b/RadioTuner/content/images/n900/high_tick.png diff --git a/RadioTuner/images/low_tick.png b/RadioTuner/content/images/n900/low_tick.png Binary files differindex f4aa2c1..f4aa2c1 100644..100755 --- a/RadioTuner/images/low_tick.png +++ b/RadioTuner/content/images/n900/low_tick.png diff --git a/RadioTuner/images/medium_tick.png b/RadioTuner/content/images/n900/medium_tick.png Binary files differindex f03aa10..f03aa10 100644..100755 --- a/RadioTuner/images/medium_tick.png +++ b/RadioTuner/content/images/n900/medium_tick.png diff --git a/RadioTuner/images/scala_bg.png b/RadioTuner/content/images/n900/scala_bg.png Binary files differindex 3c63cb6..3c63cb6 100755 --- a/RadioTuner/images/scala_bg.png +++ b/RadioTuner/content/images/n900/scala_bg.png diff --git a/RadioTuner/images/scala_glass.png b/RadioTuner/content/images/n900/scala_glass.png Binary files differindex 639c2b7..639c2b7 100755 --- a/RadioTuner/images/scala_glass.png +++ b/RadioTuner/content/images/n900/scala_glass.png diff --git a/RadioTuner/images/scala_needle.png b/RadioTuner/content/images/n900/scala_needle.png Binary files differindex 3a14938..3a14938 100755 --- a/RadioTuner/images/scala_needle.png +++ b/RadioTuner/content/images/n900/scala_needle.png diff --git a/RadioTuner/images/scala_rdslabel.png b/RadioTuner/content/images/n900/scala_rdslabel.png Binary files differindex a2ec211..a2ec211 100755 --- a/RadioTuner/images/scala_rdslabel.png +++ b/RadioTuner/content/images/n900/scala_rdslabel.png diff --git a/RadioTuner/images/scala_ticks.png b/RadioTuner/content/images/n900/scala_ticks.png Binary files differindex 0e8dc81..0e8dc81 100755 --- a/RadioTuner/images/scala_ticks.png +++ b/RadioTuner/content/images/n900/scala_ticks.png diff --git a/RadioTuner/content/images/n900/top.png b/RadioTuner/content/images/n900/top.png Binary files differnew file mode 100755 index 0000000..cdf855f --- /dev/null +++ b/RadioTuner/content/images/n900/top.png diff --git a/RadioTuner/content/images/s60/bottom.png b/RadioTuner/content/images/s60/bottom.png Binary files differnew file mode 100755 index 0000000..1c71e2e --- /dev/null +++ b/RadioTuner/content/images/s60/bottom.png diff --git a/RadioTuner/content/images/s60/bt_next.png b/RadioTuner/content/images/s60/bt_next.png Binary files differnew file mode 100755 index 0000000..3d32204 --- /dev/null +++ b/RadioTuner/content/images/s60/bt_next.png diff --git a/RadioTuner/content/images/s60/bt_next_down.png b/RadioTuner/content/images/s60/bt_next_down.png Binary files differnew file mode 100755 index 0000000..a1349c5 --- /dev/null +++ b/RadioTuner/content/images/s60/bt_next_down.png diff --git a/RadioTuner/content/images/s60/bt_prev.png b/RadioTuner/content/images/s60/bt_prev.png Binary files differnew file mode 100755 index 0000000..640b1d2 --- /dev/null +++ b/RadioTuner/content/images/s60/bt_prev.png diff --git a/RadioTuner/content/images/s60/bt_prev_down.png b/RadioTuner/content/images/s60/bt_prev_down.png Binary files differnew file mode 100755 index 0000000..6760442 --- /dev/null +++ b/RadioTuner/content/images/s60/bt_prev_down.png diff --git a/RadioTuner/content/images/s60/bt_rdsname_arrow.png b/RadioTuner/content/images/s60/bt_rdsname_arrow.png Binary files differnew file mode 100755 index 0000000..d4ecb5f --- /dev/null +++ b/RadioTuner/content/images/s60/bt_rdsname_arrow.png diff --git a/RadioTuner/content/images/s60/close.png b/RadioTuner/content/images/s60/close.png Binary files differnew file mode 100755 index 0000000..5054c33 --- /dev/null +++ b/RadioTuner/content/images/s60/close.png diff --git a/RadioTuner/content/images/s60/high_tick.png b/RadioTuner/content/images/s60/high_tick.png Binary files differnew file mode 100755 index 0000000..b7af7e0 --- /dev/null +++ b/RadioTuner/content/images/s60/high_tick.png diff --git a/RadioTuner/content/images/s60/low_tick.png b/RadioTuner/content/images/s60/low_tick.png Binary files differnew file mode 100755 index 0000000..b98d3cc --- /dev/null +++ b/RadioTuner/content/images/s60/low_tick.png diff --git a/RadioTuner/content/images/s60/medium_tick.png b/RadioTuner/content/images/s60/medium_tick.png Binary files differnew file mode 100755 index 0000000..93bcbf2 --- /dev/null +++ b/RadioTuner/content/images/s60/medium_tick.png diff --git a/RadioTuner/content/images/s60/scala_bg.png b/RadioTuner/content/images/s60/scala_bg.png Binary files differnew file mode 100755 index 0000000..e1e6035 --- /dev/null +++ b/RadioTuner/content/images/s60/scala_bg.png diff --git a/RadioTuner/content/images/s60/scala_glass.png b/RadioTuner/content/images/s60/scala_glass.png Binary files differnew file mode 100755 index 0000000..e8d6398 --- /dev/null +++ b/RadioTuner/content/images/s60/scala_glass.png diff --git a/RadioTuner/content/images/s60/scala_needle.png b/RadioTuner/content/images/s60/scala_needle.png Binary files differnew file mode 100755 index 0000000..537270e --- /dev/null +++ b/RadioTuner/content/images/s60/scala_needle.png diff --git a/RadioTuner/content/images/s60/scala_rdslabel.png b/RadioTuner/content/images/s60/scala_rdslabel.png Binary files differnew file mode 100755 index 0000000..7105393 --- /dev/null +++ b/RadioTuner/content/images/s60/scala_rdslabel.png diff --git a/RadioTuner/content/images/s60/scala_ticks.png b/RadioTuner/content/images/s60/scala_ticks.png Binary files differnew file mode 100755 index 0000000..09a733a --- /dev/null +++ b/RadioTuner/content/images/s60/scala_ticks.png diff --git a/RadioTuner/content/images/s60/top.png b/RadioTuner/content/images/s60/top.png Binary files differnew file mode 100755 index 0000000..ae15ff3 --- /dev/null +++ b/RadioTuner/content/images/s60/top.png diff --git a/RadioTuner/content/rangemodel.js b/RadioTuner/content/rangemodel.js new file mode 100755 index 0000000..bf99c98 --- /dev/null +++ b/RadioTuner/content/rangemodel.js @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** This file is part of RadioTuner +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +** COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +** POSSIBILITY OF SUCH DAMAGE." +** +****************************************************************************/ + +var middleRange = 11; +var startRange = 860; +var finalRange = 1050; +var stations = []; +var currentStation = 0; + + +function createModel(stationsModel, listModelExample) +{ + //var component = Qt.createComponent("RadioModel.qml"); + //var model = component.createObject(root); + + var model = listModelExample; + + var stationNames = []; + for (var i = 0; i < stationsModel.count; i++) { + var item = stationsModel.get(i); + stationNames[item.dial] = item.name; + } + + var k = 0; + for (var i = startRange; i <= finalRange; i++, k++) { + var range = i / 10.0; + var kind = ((i % 10 == 0) ? "high" : (i % 5 == 0) ? "medium" : "low"); + + if (range in stationNames) { + var station = new Object(); + station.index = k; + station.centerIndex = k - middleRange; + station.dial = range; + station.name = stationNames[range]; + stations.push(station); + + model.append({stationRange: range, kind: kind, station: station.dial, stationName: station.name}); + } else { + model.append({stationRange: range, kind: kind, station: -1, stationName: ""}); + } + } + + return model; +} + +function getStation(index) +{ + return stations[index]; +} + +function getCenterIndex(currentIndex) +{ + return currentIndex + middleRange; +} + +function getNextStation(radiosList) +{ + var model = radiosList.model; + var currentIndex = getCenterIndex(radiosList.currentIndex); + + var total = model.count; + for (var i = currentIndex; i < total; i++) { + if (i != currentIndex && model.get(i).station >= 0) + return i - middleRange; + } + + return -1; +} + +function getPreviousStation(radiosList) +{ + var model = radiosList.model; + var currentIndex = getCenterIndex(radiosList.currentIndex); + + for (var i = currentIndex; i >= 0; i--) { + if (i != currentIndex && model.get(i).station >= 0) + return i - middleRange; + } + + return -1; +} diff --git a/RadioTuner/debian/changelog b/RadioTuner/debian/changelog new file mode 100755 index 0000000..630283b --- /dev/null +++ b/RadioTuner/debian/changelog @@ -0,0 +1,5 @@ +radiotuner (1.0-maemo1) unstable; urgency=low + + * Initial release. + + -- Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org> Fri, 16 Aug 2010 10:20:34 -0300 diff --git a/RadioTuner/debian/compat b/RadioTuner/debian/compat new file mode 100755 index 0000000..7ed6ff8 --- /dev/null +++ b/RadioTuner/debian/compat @@ -0,0 +1 @@ +5 diff --git a/RadioTuner/debian/control b/RadioTuner/debian/control new file mode 100755 index 0000000..5af8b26 --- /dev/null +++ b/RadioTuner/debian/control @@ -0,0 +1,12 @@ +Source: radiotuner +Section: user/apps +Priority: optional +Maintainer: Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org> +Build-Depends: debhelper (>= 4) +Standards-Version: 3.8.1 + +Package: radiotuner +Architecture: any +Depends: libqt4-declarative +Maemo-Display-Name: RadioTuner +Description: radiotuner diff --git a/RadioTuner/debian/copyright b/RadioTuner/debian/copyright new file mode 100644 index 0000000..1205881 --- /dev/null +++ b/RadioTuner/debian/copyright @@ -0,0 +1,44 @@ +This package was debianized by Anselmo Melo <anselmo.melo@openbossa.org> on +Tue, 24 Aug 2010 11:08:33 -0300. + +Upstream Author: Ian Andrade <ian.andrade@openbossa.org> + +Copyright: 2010 Nokia Corporation and/or its subsidiary(-ies). + All rights reserved. + Contact: Nokia Corporation (qt-info@nokia.com) + +License: + You may use this file under the terms of the BSD license as follows: + + "Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor + the names of its contributors may be used to endorse or promote + products derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE." + + +The Debian packaging is (C) 2010, Anselmo Melo <anselmo.melo@openbossa.org> and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. diff --git a/RadioTuner/debian/rules b/RadioTuner/debian/rules new file mode 100755 index 0000000..38067b9 --- /dev/null +++ b/RadioTuner/debian/rules @@ -0,0 +1,43 @@ +#!/usr/bin/make -f + +configure: + dh_testdir + +build: build-stamp + /usr/bin/qmake + make + +build-stamp: configure + dh_testdir + +clean: + dh_testdir + dh_testroot + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + install -D -m 755 $(CURDIR)/build/radiotuner $(CURDIR)/debian/radiotuner/usr/bin/radiotuner + install -D -m 644 $(CURDIR)/radiotuner.desktop $(CURDIR)/debian/radiotuner/usr/share/applications/hildon/radiotuner.desktop + install -D -m 644 $(CURDIR)/icons/radiotuner.png $(CURDIR)/debian/radiotuner/usr/share/pixmaps/radiotuner.png + +binary-indep: build install + +binary-arch: build install + dh_testdir + dh_testroot + dh_link + 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 diff --git a/RadioTuner/icons/radiotuner.png b/RadioTuner/icons/radiotuner.png Binary files differnew file mode 100755 index 0000000..cd582c2 --- /dev/null +++ b/RadioTuner/icons/radiotuner.png diff --git a/RadioTuner/icons/radiotuner.svg b/RadioTuner/icons/radiotuner.svg new file mode 100755 index 0000000..ce5099b --- /dev/null +++ b/RadioTuner/icons/radiotuner.svg @@ -0,0 +1,372 @@ +<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
+<svg version="1.1" baseProfile="basic" id="Layer_1"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="44px" height="44px"
+ viewBox="0 0 44 44" xml:space="preserve">
+<g>
+
+ <image overflow="visible" width="64" height="64" xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAawBrAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA +EAMCAwYAAAG3AAAB9gAAAlD/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX +Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa +JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIAEEAQQMBIgACEQEDEQH/ +xAB+AAEBAQEBAQAAAAAAAAAAAAAABQEEAwcBAQAAAAAAAAAAAAAAAAAAAAAQAAICAgEEAwAAAAAA +AAAAAAMEAQIAIEAQMBEzExQ0EQABAwEIAwEAAAAAAAAAAAABABECIRAgMDFBkTIDQFFxEhIBAAAA +AAAAAAAAAAAAAAAAQP/aAAwDAQACEQMRAAAA+gAAAAAHIdSLhb2JpaTaQAzRwT73ITG4e1iPYNAA +BzyrvkSrPB3mgAAAAA//2gAIAQIAAQUA5P8A/9oACAEDAAEFAOT/AP/aAAgBAQABBQDmO1P4k5s+ +YufYNkMnjE2i2Lo2l5yYmJ6J/o1aTgkWrNZxX37MqVNBB2HZX37nXoaoESDN2//aAAgBAgIGPwBP +/9oACAEDAgY/AE//2gAIAQEBBj8A8z9dZLDMBVmd1zO65ndcyhCRcG6ezqFdQmOdsLxnCk/XtNIM +RZD7fcUnoUYyDFQ+4DSFdChKXGOWJ//Z" transform="matrix(0.6719 0 0 0.6719 0.8379 0.7168)">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAChJREFUeNrs0DEBAAAIA6D1T7g2 +WsJPiEDCE23HAgAAAAAAAHBiBRgAqcoDiGqbQ48AAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC1JREFUeNrs0LERADAIxDCO/Qf8 +bZIRoEeqXbmKI5K8TddWAQAAAAAAAJMvwADifAOKLF2kFAAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADZJREFUeNrsz7ERACAMA7Ec+w/o +bcIKlECk2sW7Cu6UpE9267VjggULFvxZMAAAAAAAM20BBgDNLAOYeYgAQgAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC5JREFUeNrs0LERADAIxDCO/Qf8 +bZIBaOiRaleuAgCYkrxN11YBAAAAAJz0BRgA4bEDisH5euIAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADJJREFUeNrs0TENADAMA8Eo/AGa +TUKhY1vdzb9YrgIA+ECSOen6tWHtWwAAAADgSivAAJlWA4ycopDZAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADlJREFUeNrs0rEJADAIBEDJ/gM6 +jJCQCWwV7uA7i38wAgAAWpl5f7q7s23YmMJV5c0AAAAA2OQJMACBwAoH/EC0bQAAAABJRU5ErkJg +gg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC5JREFUeNrs0DENADAMA7Dyx5cj +bFoY0yQbgmcAAIDnkmzbNQEAAADAJ04AAQYA96UHAzZz76IAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC5JREFUeNrs0DENADAMA7Dyx5cj +bFoY0yQbgmcAAIDnkmzbNQEAAADAJ04AAQYA96UHAzZz76IAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADdJREFUeNrs07EJADAMA7CQozr1 +i/x/S0seyNoOEng3GEcAAAAAAADwj9rrdF73SFPgE4yuAAMAOY4HE5Sez3MAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAbBJREFUeNrslstOwzAQRTOmQq0q +FfH4NcQOtixYADs+AbFhwVsgBOIhxKdRFqRNWgGxmYkTGoWYOsROI+ETTeM4lXt1cz2N5zkcDofD +4XA4HP8X0PnS/sqyELm5CGeEYkEAkGfFD+XvMZBXc8n19ksfKgneW1oUeYGihAsMZ0gTfF9nx/Ie +zbVx0MKi8Y5CNOg+iq2FnrD9uOdRbI+xuHb7r4XamO5iR28+iMRZWxVhvSuiVlowcWxZ9Cd+fOCZ +Yx3gvqksmDgh0biUlcKDk8NJFdH6S9ZOfT/O12bPfK7FlA3Nqix+5lNEzB3kLnUjnpRxwcS5P7CW +ayuCiQsUzTPOVK3IpsMpl4OhEad5pqwKJq5QtAl3a3E45XoYgKluYayt6Yre6HZLt73Ikw6zOiKR +5yYIoEqOaxdM3KJoTj1Wt2z3YR3ughDKOixm5XDKPYnWeJ/gmZqpYOIhDKf+lcsOMRnX0iV+4zEc +xR1krdMpVMRBugteAxzO8jQi4T8TnHe7MYKl6DHwXG6zWW6cYOJ5PC58+odBAI0UnIqevFKq49A4 +Vjttsa7YjA6Hgi8BBgCGvyfJ9T2SBwAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAe1JREFUeNrsl0tOwzAYhG3UFVSl +EjfjLZBALBACCQk4CGLFhh0H4GZAmxZ2eLCTOP3j2G4T7LYS/tDfBCU20/H4AWOJRCKRSCQSicT/ +hc974W1niC4duxrtvY94FMFthaLNc+gLGs8PP8beL9QL5ZxLGIwW6NAnZcP1YNcYOnj+WFXlDeRN +XmULGO3hqc6CtWhrx/JDyA+hhZX3ghWl3xNl2X7P71EU7e9PgvUkAbHF59xCboKMRO0ngMOa/Vx0 +vWOXSHQQGSwSlAM5e23DWw0xGV4zMjoqRbFmYVbBBCuOpGiXe9Q34XCvEZOqrS6EFaw4Vk5bJpqw +TSrDPVU/xP2680UfwQUrTj4zvpBzhnsgPlrbLxCJHuvIqRStrq/DAWaLP6ybgakDcL2DOA5TzkYZ +9zlnOi4srtNVI7pgxflowm15rYrBUZFXCR8XUjRd8rzrLVw5D3C8bMvLdn+WafjzDEd6b7IvHt1h +zeV4yoXFuXrZt+RqR1xGJChX2bTItCW3+cbizDqbuxb3WCSupWh1fR5swXQNHc/C0RxmRh6F7exR +jgDdznWtVLDidlJMIueOVx1dV5Rhl+jisN882bU5YnK2ZJ76m/Dl9376zdfCYc2dFBTtf7pYKBfn +Obk2kTB5JBF56PglEiH5FWAAdPQ+FOhjRE0AAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZ9JREFUeNrsWMtOwzAQdKqeCOX9 +P3wFQhyQ+DQEBz6CCwd+BwlK4NYMjaA02Xiza6+LhLRTrdTYjTOdHW+9DcHhcDgcDofD4XD8G1Tc +xPPZMSwLI2EcQDh/ea00686spGi0PzEaX5PqAr34HVvPP50eqQSal1COU036XE4K51pipUiBm1Oy +n2lT3ie5Cc4W9L7oHPrR2QLh8eQQZoWtKg6usXmPabVzCLeEqDa1IHlGyhowbjoYVRPXAB2HQWFW +uel0gvlSA5sxFGGqEgl+4ywBwRqc4lmEVwEqv0HhVzCEEL2zVB3OIMgrztvCUCX0fkslNd6wJTws +ba4Ekvzmiz8zv0pkkpJLG8rX4RZ5qUVKtlDSw/QhkOqtrJq8SWGsEpD9NlVLNVUkragJltAop/tB +QXwOJQ8/VAekHIImzhWwHejZ8/DFW1N1Knexwrb12QZG0b2+257AB2mj6LXptHa5bAaN4cNBjRKq +5dTfrJ7uavkR7WzvFzV0vR/Yg9ZOCHO4fh9/kbtFjRIE1f9L7Aq3+3ss3Zvm88/5OCi+BBgAvdKP +uoL3YIkAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAaZJREFUeNrsV81ugkAQnlH+BCFq +YjkYX6E+WKvvYW+KfTJjg5f6AF7qpaII290NbQSNFYMtJPMlZHcUZr/5ZQAgEAgEAoFAIBAIBEIC +vPRnHEUsimMAxgo5jGX1cFkzDCyEcLjfS+3R4QDs3I2IaQWJLI3je/z+LZHTj2LKCN/34XEwuIq4 +8ps3YuFhIecN3THJoz1mjBbnzOfzq/Uq98q1VPiP9lnDgyCA9Xp9td7afxdRvV7/iWIlCNdq+SgQ +YbihOBGxOoRlHufwcikIVyolTnp2FQjXqpYSLMesUgrChbw4NF3H7BxQ/qLjocKSdYmLw8/HZgNv +iwXoug6dTkeujuOAqqpyBigd4QfXxdl0yoLdDsxGA6xmE/r9Pth8bbVaYBgG2LYNiqLkfsXehbDA +82h0khWvnsc+t9tUW2q32+Bw8r1eDxqmCRqPgjBG1TSwuCzuwQLq4aZ5+Gk4PHvyy3jM3lcrSU54 +vdvtymi4rgsGj1DTsmRamdyA77QSLS3O0db+pKa8yYTtwxBCfmHylSFW4Xmx+ssleLNZ2eqbQLgL +vgQYADk7dnHinppHAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAh5JREFUeNrsVUtrFEEQrn5kZg6L +OZk97S25SvDqyaM/QAUJAS8ePPmHPAQF8ZyDkBAEwV+xIngM3p3sTHdXqmpnkl3zcId0iGJ9UEw/ +prq/+qq6G0ChUCgUCoVCoVAoFAqF4m5grpt8t/cWrfVgrQXDZtiM2NNnz81dEPbXTVrrYDKZQFVV +0IYIiAChbSGmBIcHB0iAGCMk6otJPwAmJKM+kAO1U2LfJHM7uy/N7REmRTfGG7B+b12SQdvT5kSG +iDVNI2T7bxsCRLKWA6I+WyCCicYCGZPmfz9+eI/N7AQS+7SNjL96/cZkIUy5h6qsYDQagXW+Kwe7 +0sLYqS3BcFBErCWiPDab1ZQp+p7UFGiTT+G+Xpm4kXJfPZvs5yhIR2XlnJUSiWteFK2qkhQO0Mwq +ykqbjzCr1G8OPfkhJ9rMy6j3h4V12Pgwo3OD1rQZLpNB/uaGa/2RMJ/+Xum/ASsqfFPCuNC6uNbX +z58wq8JsfAkPVVr+7/z69mK/H3v0+InJQpgX5HtXNhFlcLCy4neBZDoPJmdJvNjZNXX9C+q6lose +B6h8RrDLEL90Zy8i9+Vl5G/Md60xHmw/XErXz+NjdN5DWZbn9/TvqkoyltM+b6fOFkok59N8Ge6P +x5fW27fpFItiDYqikPvVUiDe+3kAKcqDIRY7S6EbS7dL+Cpsbm1deXB+fJ8iJ8JKNpZV5vY/hS9H ++wgKxX+EUwEGANQXhd/zL8rOAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAATNJREFUeNrslUuKhDAURV/8ggPB +hbgaxZHgrhwKgvsRcR2O/H9TJNBFY7e2lp/qpt+BgCS85OZy8wRAEARBEARBEARBEAR5D2RtMU1T +Op8zTZP8WsFJktDv5imlUBQFH2VZbjrIsixyueA4junS2jiOUNc1ZFnGv9klXsW27c2XkdYW+75f +LVZVFQzDgKqqIM/zWyKxKpg59xOyLIOmadztYRgOOX1YcNd1mzfSdR2apuFOXyn6sMPPx0AIKIoC +kiRxp6dpul9w27a7N2TxYNlnta/U3+bwZwRB4NlmkTrb6dMdnneRD7fPyvUlDs/dZuNor94k2HGc +Lw09iqLdp4qi+OzrTPQR4dLeAtd1F/9KYRhuUnKr4DU8z1u8TBAElDnNHuFZ8XgLvu//UeUI8k94 +CDAAdeSeE6238s4AAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMxJREFUeNrs1MEKgkAQBuAZd8V8 +LqlHEpKCDDLwIHj1UEcPvkHhs22tBw+WJrHSBP8HA4uwy8/uOEQAAAAAAAAAADALOzzLDD/EUdSv +87ZlaYFfQseb9axN+e0+O4de4MX60Oz7zltCL9RmXWhP6b8I3LcaB4FxfbC35B+dNQ2z1vSpxAS2 +TnXNKlzRVIkKbB0vV/a0T2MlLrB1qKrnTYf0rkQGtvZlyawUDUvClBi1K4pugpyTxIibElO2Wcbf +3PDP5WlqCADAmYcAAwAedB4ZpZ0OJAAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASBJREFUeNrslM1OwlAQRmfsJZT3 +MsSFvoUGiX8LHgHCjkTcNRF2msAKowv/nq0jc9vGC7alltjW5DvJSUlp08OQDhEAAAAAAAAAAAAA +KASXuWnWPRQ9Ss41svXh7OOTawtW7o+6Ijm1hX5MTO/tvXCHKRt8+ho9JDg5lrSU3GApP+GDff+i +3vMLi+dRpNlpqEeT6FkrDVbOV08s7TaFjuKYfd63Vh6s9BdL/p7cpuRoz8XTpsQ6gpWLh0cW3yc1 +zNB+34kMY2sLVi5ncybTInakH0bT5thag210EHAyxVT9zoa/wdAfcXU7tWvvbjDIXWJS9VrbxfVk +wrK1HVxJbVKwcjMeM633dKZNC7bRwyFTa/3CpfmfmI5GQgCA5vIlwABmU3i3IT8bIAAAAABJRU5E +rkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPpJREFUeNrslUEOgjAQRSEUwXMZ +ggdwY+IBTPQEGjaA7lihh9B4AAPxZuq4MhqktYUWDflvA2lL+2baDpYFAAAAAAAAAAAA8BtsUecp +GFG1bVJe7L8VPobBS7iiTpxviPM+LUrbuPBhHNI3QTl5qm1/PmfnQjoYJuq8DVy+CMlnWiZoLcJ3 +hyln7WM8qe1Kuwx7nkCxfnVqfGw0CBNzlDNnQlJa+OoNFa+TmhDpFiaXSU9ETcaQ7kvn+63m11EV +1DL8ViWaLN658DzLPgr6fr0iHTZGylodi82W+1faRZGJpLYTFrFMEm4weRwbD6YT8jTtRyAA9JWH +AAMAAENQBiryo2kAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALpJREFUeNrs1UsOwiAUBVBI3JGE +LsXOYF8wgP1Q63akfLRDPyWmqQrNPUOY3PdyA4QAAAAAAAAAAPwHLV1exjHHGB/OjozRagOfhyGn +p8BrMc7p1wM75zYLXMK77uNhDqXLME0kpVRVh4uB5/42FdjPG/5BJbbbcAhtbfjqPcmtdbipwL65 +Dd87nCv7mouBT33/8qBbazOltM7A7wghFtMaY3J1gUuklIvDaK1ra9c6Sql9DAKwVzcBBgA4sFFJ +K3MT5wAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcNJREFUeNrslcFuwjAMhp20iB44 +jBdEjO00adLeZmi9sO7InrBt4jlOUtptVJQFITT/FSRNwPrs/EkARCKRSCQSiUQikUgkEomuIzU2 +Wb5tUSsNStPPXEvP/Wajrgmcj2ajFNwtlzCbzcAYC0hjn/s9WkRA+tAXWGu5H8cQ6d2GvgsSxjYP +j+rywPQsFgsoiqJbjAhi2pYhuSVoQx/XWmN8y8kYgrec7Ef1jobnDP+Hx8P80/OLSgKMocpZlpEj +vCVowE/O5+ORQ/UthiTce9vwWGsoSUrC0LuDTlZhp1g9jZ1PTo9OkC5Jl2zm+nlOcRA0vWNOcTPN +FU8GzNWg5Wuahjg1nGNCZG479LuDRGcV4+dSAbNXrQ+sFJ69UfrAEL0dE7ApgWm3N3UNfLQpNc0O +PVvwNo3AvHIeGEOb2MPIG8NZ4m8V9i3jB2vE4y9dhSlY3dRsDR2rO3HTeWthDxiCDQ4WSQrsjh+r +aencbXfmtvOXDIRqxgsGu8onu5p/U1VVqE48HYY+HvoZuz5MugXzqcCr1epo8N1uhz+wMcL3/MrA +38YuBTym9Xp9NJmyLPGQAA4rf0vabl9vjlkk+lf6EmAAK5N90aPWUYsAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUNJREFUeNrsk8FOhDAQhqewB0l0 +E05wVV/IA/FgYuLJRzPGoPFFXJ+Em3EpbafOdGFjNK6bDYc9/B+BTqct/P2nEAEAAAAAAAAA2If2 +6TG+PLfxmDQtdo4aQ3Vd0/vqLQZmMnJpG0IgllbROMbNnjQ35TXHOiaxd0Nax8HLfE/OWuIo7/ED +3d7dm1kFV1VFZVmSyXLpml+ihmFIrd4q3nu/Fe+c28yxfYqZRazM7/u1xEHyll7bh3jV3Jh5BAtF +UdDZckl5vkiCv5NcFGGT4Kn/c8yJw+qu905c9WkD6v7n+oO8bGA+h8cP/10AIxvJ/13PfEKRQxKs +Qr2zqT11BfFYkX3Jdg02zbXRktu+T6XWkh9Ecn/bGZ9xCud1+Pzi0hyiseu6mGUbP0xSpqLlJ9Rj +wiGd4ekYAQAAAAAAAMBx8CXAACEV8n0EgSQqAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEJJREFUeNrs0EEKACAIBMCE/v/l +ukdEUVDBzMmDLmpKAAAA/Com+8rm/DMLt1llUEcnZ/ngfPiwuPl9AAAAOKoKMAD0swYKT21SnQAA +AABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFRJREFUeNrszjEKwCAUREE9rfew +trXwpBYWPwcIgSQQkDBTL+xLCQAAgF8aY0TvPXZqyneiSym51hpzzrTWOm1aa3d+4un3q+CPxCYd +AAAAcO0QYAC6IBWLZwon2gAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeNrszrENwCAMRUHoPFUy +O0xFR5SWDhBUd6XlL72UAAAA4JK8Mnoj+sx/aS2Pm/92LXjXM8TXxXgAAAA46hNgACKSDAMBEx1Q +AAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFxJREFUeNrs0j0OQEAQgNHdzs81 +CXfCMVnd6lAoFCQi75WTKb5JJgQAAAB+q6+r/KWeeHex28OP/qtLrmbDnGJblzmfFsYlxVeDn9RU +xbk9TMsa/TIAAACfswkwAFG9E38SjkJJAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGNJREFUeNrs0kEKgCAQQFFnWXbZ +xG6R1GFTl2aEC9vURpD4D9zICF8YpQAAAAAAv7RMY7pOT03yNmBz8HoEsSX8kf/lN84HMfp+X+a3 +fNckuIVZD1X87qOwzwAAAACA7pwCDACRNRcXTWYeWgAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGFJREFUeNrs0tEKgDAIhWF93tyg +Pcqw9bANFkFRd9HFYMT/3QgiBwVFAAAAAAC/tJbSFvc20k76NuA5N4tRj/ot+Y62ENTPw6/uZKZd +Fu7hefxWq8wpKf8MAAAAABjOLsAAV8oYgTKsQxgAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAI1JREFUeNrs0r8KwjAQx/Ec+KrS +N2h1jEY7OKSIS/FJNX/O9kDHDi4W+X7guIRk+F2IcwAAAACAv9Q0W+3aVteUabN0OI53OYWjBY4x +qog4VbWazT3n/FnXWq3e+1KKde+97HedVq2uTPdzSm643uSbwPKLVzqHg+o02DM9bIDQX4T/DAAA +AABYnZcAAwDfq0TzRZyBWAAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADpJREFUeNrs0DEKACAMA8D2/4+u +H1BoF0W4mzKEDIkAAACAS3LQrcZWHfJuI386qhoHAAAAwFtLgAEA4fQGAEmzi60AAAAASUVORK5C +YII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD9JREFUeNrs0jEKACAMBDD7/0fX +1UFQUFEwma7TUdpSAAAAgM9kZ85BPiIWF4iJ3Pbkpv4rF0uPCwAAvKUKMABvIw35zK0SuwAAAABJ +RU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEFJREFUeNrszrEJwEAMA0BnP6/r ++ZQ21fMfSBPuOlkgXAUAAAD8xLUquzvPnKRm5vXe5w8fyGI/mzcAAADO3AIMAA9kCgNAA3KrAAAA +AElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAERJREFUeNrs0rEJACAMBEADzuH+ +czmHoLXpBG3krvzA80VKAQAAAD4RFzrm5b7ng/Po3J9v0Wrdsj5G+B0AAIBjS4ABAMVjBwNkzZWC +AAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE9JREFUeNrsz0EKgCAQQFGFPJDd +/wzVfQyqTSARgpsIeW85M4v5IQAAAACDiD3Hc5qO1n4pe/zVw62Qt5L1CsiPyHp2L7YPQgEAAAZ0 +CjAAAtQSA++7PAsAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFRJREFUeNrs0jEKgDAMBdAWrFdS +77/UK1lB6eAgotRJkPfGJIR8SAgAAADAT8Sn5tSnrWXJMZSXEj89uNWYarBrtlzWOKTu1Jhvan4H +AADgtV2AAQAAmxIDJ7C++AAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUeNrs0kEKwDAIBMD4vKQP +Tl5X23OgJTkVyszRBVGxFAAAAOAn4i08Wsszc7lZ7z0+HXhVrTWfFpizuZb3QcYY4XcAAAC2XQIM +AJf8FgM8D6BNAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGhJREFUeNrs0j0KgDAMhuFk6tyz +9AyiQ49bVBDxZom1u3+TIO8DWb5ASCAiAAAAAADgJ/SqmVLyGKOEEERVb4eVUvTThZ/KOfvZAUev +EqnlbjJOsw591zIza/mybsrvAAAAAMBruwADAIMVIAM8FpKKAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADJJREFUeNrsz7ERAAAEBEH9N01u +FMDYjf7DiwAAAACeyeHnsM8F9ZAeezoSAABgmRJgAHbZDPRmJgVXAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUeNrs0LENwCAMBEDjjkXZ +jfnoIcoCUZoQirvmC3/xcgQAAABsUp6OrbV155wzxhjRey9/D85XpcyotZ7/4Q+tQ3YAAACw0SXA +AOE/CyY/qzOJAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUeNrs0aERACAMBMFEQC/0 +Xwy9gABLB8xkdt2pFx8BAAAAFJE/Rkdv5+25droCAACgvivAAD1pBAJ+8xdmAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEZJREFUeNrs0rENwCAQA0BoCHNF +MHfmggaaMAMkulvA/pdDAAAAgJPUnEa90vhU6XJI4bgj9H6PXx94Wo92DAAA8H9TgAEAipcI9XgK +l6wAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFFJREFUeNrs0iEOgDAMBdA1IYyz +ITgsgrMxzLDDgAICec81/aL5aUoAAADwkDhbTkOu7TyvJd4+uLsK1FS/0/BdxtwfWljKFp4dAADg +/3YBBgCTYwoFqs4cLwAAAABJRU5ErkJggg==">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAExJREFUeNrs0jEOgCAMBVDwqKTn +Ipy0GAcd3cSEvDe1+UvTthQAAABYpL6FETEz8+l77/XvgY+tNvyV1tq86+uCY4zq2QEAAPZ3CjAA +4BQOBSxfJnMAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGVJREFUeNrs0rsNgDAMhOFzIDAA +jETGQDBaCoTEkMRsABUPof9rz8XpZAkAAAAAgIfYWZjS4F3Xq20bmQXlnO3twvXlQV0pxkYhhO8v +fJd5Gl3u2ssuL0XLuhnPDgAAAAD/dwgwAMj3ECiNBcTnAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADVJREFUeNrs0jEKADAIA0D9/6Pt +B7oUBYfezZEQMAIAAAC4y4dsLfXOHDYHpV8BAAD4zxFgAIBiAgPEeFGrAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC9JREFUeNrs0EEJAEAIAEEjCPav +cBVP7OBLZmALbAQAAACw5FX+yQkAAADOawEGAIYWA6FTXWSyAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFxJREFUeNrs0uEJgCAURlGT9rH9 +p8iJiibINOwF5/wWvXyYEgBAv6Xl0FbKMSNmr3UZDp4V2xq+vr1Ar9ZhcoTYJ/fnaN/h7t0cYd1f +u9YdXjgSwQAAAMBXTgEGAPwTGaBWbmInAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAD5JREFUeNrs0LkRADAIBDHov2hc +g18CSzlzO0QAAKzLjdvq2M4HYUebZoPzYmid2qiGL/8XDAAAAACXDQEGAMPACP9fhvJ2AAAAAElF +TkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEBJREFUeNrs07EJADAIAEHJ/gO6 +jSEDxFIQ7sAqzSMmAgCAeZlZb0RPRHfvZ9vpCBa8Ibj7eOs2DAAAAPxcAQYA4jQVN0qi8wIAAAAA +SUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADdJREFUeNrsz8EJACAMBMFg/83E +BhULSAGHM3CvfDZVAAAA8Kvdfd6m+0p7SLDg9GAAACDIFWAA4o4GMYVxjgoAAAAASUVORK5CYII=">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAC9JREFUeNrs1DEBAAAIwzD8m4YH +E4NEQZ+tCgAAAL7qJVhwcnDc6FwPAAAcMQIMAPPkJ9mZanvfAAAAAElFTkSuQmCC">
+ </image>
+
+ <image overflow="visible" width="44" height="44" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsSAAALEgHS3X78AAAA +GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUeNrs0rENADAIAzDU/7/N +AfSCdkfYa5aAUgUAAACbJelXdqYdo/C6wr/9jvwwAAAwyBVgANetB7sP7F7pAAAAAElFTkSuQmCC">
+ </image>
+</g>
+</svg>
diff --git a/RadioTuner/images/.DS_Store b/RadioTuner/images/.DS_Store Binary files differdeleted file mode 100644 index 5008ddf..0000000 --- a/RadioTuner/images/.DS_Store +++ /dev/null diff --git a/RadioTuner/images/placeholder_n900_bar.png b/RadioTuner/images/placeholder_n900_bar.png Binary files differdeleted file mode 100644 index ae34d72..0000000 --- a/RadioTuner/images/placeholder_n900_bar.png +++ /dev/null diff --git a/RadioTuner/images/top.png b/RadioTuner/images/top.png Binary files differdeleted file mode 100755 index defa47c..0000000 --- a/RadioTuner/images/top.png +++ /dev/null diff --git a/RadioTuner/main_n900.qml b/RadioTuner/main_n900.qml new file mode 100755 index 0000000..7bd67fc --- /dev/null +++ b/RadioTuner/main_n900.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** This file is part of RadioTuner +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +** COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +** POSSIBILITY OF SUCH DAMAGE." +** +****************************************************************************/ + +import Qt 4.7 +import "content" + +RadioTuner { + property string folder: "images/n900/"; + + width: 800 + height: 480 +} diff --git a/RadioTuner/main_s60.qml b/RadioTuner/main_s60.qml new file mode 100755 index 0000000..f57dc20 --- /dev/null +++ b/RadioTuner/main_s60.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** This file is part of RadioTuner +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions +** are met: +** +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +** COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +** POSSIBILITY OF SUCH DAMAGE." +** +****************************************************************************/ + +import Qt 4.7 +import "content" + +RadioTuner { + property string folder: "images/s60/"; + + width: 640 + height: 360 +} diff --git a/RadioTuner/radiotuner.desktop b/RadioTuner/radiotuner.desktop new file mode 100755 index 0000000..77beeb4 --- /dev/null +++ b/RadioTuner/radiotuner.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Radio Tuner +Categories=Applications +Exec=/usr/bin/radiotuner +Icon=radiotuner +X-Icon-path=/usr/share/pixmaps/ +X-Osso-Type=application/x-executable diff --git a/RadioTuner/radiotuner.pro b/RadioTuner/radiotuner.pro new file mode 100644 index 0000000..5d88636 --- /dev/null +++ b/RadioTuner/radiotuner.pro @@ -0,0 +1,2 @@ +TEMPLATE = subdirs +SUBDIRS = build diff --git a/RadioTuner/rangemodel.js b/RadioTuner/rangemodel.js deleted file mode 100644 index 88aa557..0000000 --- a/RadioTuner/rangemodel.js +++ /dev/null @@ -1,93 +0,0 @@ -var startRange = 860; -var finalRange = 2090; -var middleRange = 11; -var k = 0; -var actualItem = 0; -var stationsArray = []; -var indexArray = []; - -function createModel(stationsModel){ - createArray(stationsModel); - - var component = createComponent("RadioModel.qml"); - var object = component.createObject(); - populateModel(object); - - return object -} - -function populateModel(model){ - for(var i=startRange;i<=finalRange;i++) { - var range = i/10.0; - var stationName = "none"; - var stationDial = hasStation(range, k); - if(stationDial != -1) - stationName = stationsArray[range]; - var object = {stationRange:range, kind:setKind(i), station:stationDial, stationName:stationName} - model.append(object); - k++ - } -} - -function createArray(model){ - for(var i=0;i<=model.count-1;i++) { - var object = new Object(); - stationsArray[model.get(i).dial] = model.get(i).name; - } - -} - -function setKind(index){ - - if(index%10 == 0) { - return "high" - } - else if(index%5 == 0) { - return "medium" - } - - return "low" -} - -function hasStation(range, k){ - if(stationsArray[range] != undefined){ - var object = new Object(); - object.index = k; - object.dial = range; - object.name = stationsArray[range] - indexArray.push(object); - return range - } - return -1 -} - -function gotoradioIndex(index){ - return indexArray[index].index - middleRange -} - -function setStationName(index){ - return indexArray[index].name -} - -function setStationDial(index){ - return indexArray[index].dial -} - -function gotoNextStation(list, stationText, dialText){ - actualItem++ - if(actualItem > indexArray.length-1) - actualItem = indexArray.length-1 - list.currentIndex = indexArray[actualItem].index - middleRange; - stationText.text = setStationName(actualItem); - dialText.text = setStationDial(actualItem); -} - -function gotoPreviousStation(list, stationText, dialText){ - actualItem-- - if(actualItem < 0) - actualItem = 0 - list.currentIndex = indexArray[actualItem].index - middleRange; - stationText.text = setStationName(actualItem); - dialText.text = setStationDial(actualItem); -} - |