diff options
author | Henrik Persson <henrik.persson@intunio.se> | 2016-09-16 09:47:02 +0200 |
---|---|---|
committer | Henrik Persson <henrik.persson@intunio.se> | 2016-10-05 07:58:36 +0000 |
commit | 8c18130960801ba1c9bdf39316aac3801e879a6a (patch) | |
tree | 97ee0cbe23ae69b437bc11e106b0a38d9bdd9eb6 /imports | |
parent | 800bcbfaaaba19fec02a3f37974389b12989574f (diff) |
Radio application using the QtIvi am/fm tuner
A very basic sample of a radio application
Change-Id: I7d26482726791356f558b0182b99df37af9d465b
Reviewed-by: Nedim Hadzic <nedim.hadzic@pelagicore.com>
Diffstat (limited to 'imports')
-rw-r--r-- | imports/shared/service/tuner/RadioService.qml | 61 | ||||
-rw-r--r-- | imports/shared/service/tuner/TunerService.qml | 84 | ||||
-rw-r--r-- | imports/shared/service/tuner/qmldir | 2 |
3 files changed, 147 insertions, 0 deletions
diff --git a/imports/shared/service/tuner/RadioService.qml b/imports/shared/service/tuner/RadioService.qml new file mode 100644 index 0000000..0d6f662 --- /dev/null +++ b/imports/shared/service/tuner/RadioService.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite licenses may use +** this file in accordance with the commercial license agreement provided +** with the Software or, alternatively, in accordance with the terms +** contained in a written agreement between you and The Qt Company. For +** licensing terms and conditions see https://www.qt.io/terms-conditions. +** For further information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +pragma Singleton +import QtQuick 2.0 +import QtMultimedia 5.0 +import "." 1.0 + +QtObject { + id: root + + property QtObject player: QtObject { + id: player + + property bool playback: false + property real volume: 1.0 + } + + property alias volume: player.volume + property bool playing: player.playback + + function play() { + player.playback = true + } + + function pause() { + player.playback = false + } + + function togglePlay() { + player.playback = !player.playback + } +} diff --git a/imports/shared/service/tuner/TunerService.qml b/imports/shared/service/tuner/TunerService.qml new file mode 100644 index 0000000..0ee1024 --- /dev/null +++ b/imports/shared/service/tuner/TunerService.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2016 Pelagicore AG +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Neptune IVI UI. +** +** $QT_BEGIN_LICENSE:GPL-QTAS$ +** Commercial License Usage +** Licensees holding valid commercial Qt Automotive Suite licenses may use +** this file in accordance with the commercial license agreement provided +** with the Software or, alternatively, in accordance with the terms +** contained in a written agreement between you and The Qt Company. For +** licensing terms and conditions see https://www.qt.io/terms-conditions. +** For further information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +** SPDX-License-Identifier: GPL-3.0 +** +****************************************************************************/ + +pragma Singleton +import QtQuick 2.0 +import QtIvi 1.0 +import QtIvi.Media 1.0 + +QtObject { + id: root + + property AmFmTuner tunerControl: AmFmTuner { + discoveryMode: AmFmTuner.AutoDiscovery + + onStationChanged: root.station.current = station + } + + property var station: QtObject{ + property var current + } + + property QtObject band: QtObject { + readonly property var value: tunerControl.band + } + + property QtObject frequency: QtObject { + property real minimum: convertHzToMHz(tunerControl.minimumFrequency) + property real maximum: convertHzToMHz(tunerControl.maximumFrequency) + property real current: convertHzToMHz(tunerControl.frequency) + } + + function setFrequency(frequency) { + var newFrequency = Math.round(frequency * 10) * 100000 // Round to get a nice number in the MHz interval + tunerControl.setFrequency(newFrequency); + } + + function stepUp() { + tunerControl.stepUp() + } + + function stepDown() { + tunerControl.stepDown() + } + + function seekUp() { + tunerControl.seekUp() + } + + function seekDown() { + tunerControl.seekDown() + } + + function convertHzToMHz(frequency) { + return frequency * 0.000001 + } +} diff --git a/imports/shared/service/tuner/qmldir b/imports/shared/service/tuner/qmldir new file mode 100644 index 0000000..dea013c --- /dev/null +++ b/imports/shared/service/tuner/qmldir @@ -0,0 +1,2 @@ +singleton TunerService 1.0 TunerService.qml +singleton RadioService 1.0 RadioService.qml |