From 8c18130960801ba1c9bdf39316aac3801e879a6a Mon Sep 17 00:00:00 2001 From: Henrik Persson Date: Fri, 16 Sep 2016 09:47:02 +0200 Subject: Radio application using the QtIvi am/fm tuner A very basic sample of a radio application Change-Id: I7d26482726791356f558b0182b99df37af9d465b Reviewed-by: Nedim Hadzic --- imports/shared/service/tuner/RadioService.qml | 61 +++++++++++++++++++ imports/shared/service/tuner/TunerService.qml | 84 +++++++++++++++++++++++++++ imports/shared/service/tuner/qmldir | 2 + 3 files changed, 147 insertions(+) create mode 100644 imports/shared/service/tuner/RadioService.qml create mode 100644 imports/shared/service/tuner/TunerService.qml create mode 100644 imports/shared/service/tuner/qmldir (limited to 'imports') 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 -- cgit v1.2.3