diff options
-rw-r--r-- | app/app.pri | 4 | ||||
-rw-r--r-- | app/app.pro | 17 | ||||
-rw-r--r-- | app/main.cpp | 33 | ||||
-rwxr-xr-x | autobuild/agl/autobuild | 110 | ||||
-rwxr-xr-x | autobuild/linux/autobuild | 110 | ||||
-rw-r--r-- | mediaplayer.pro | 1 | ||||
-rw-r--r-- | package/mediaplayer.desktop | 11 | ||||
-rw-r--r-- | package/mediaplayer.svg | 111 | ||||
-rw-r--r-- | package/package.pro | 29 |
9 files changed, 142 insertions, 284 deletions
diff --git a/app/app.pri b/app/app.pri deleted file mode 100644 index 399d71f..0000000 --- a/app/app.pri +++ /dev/null @@ -1,4 +0,0 @@ -TEMPLATE = app -QMAKE_LFLAGS += "-Wl,--hash-style=gnu -Wl,--as-needed" - -DESTDIR = $${OUT_PWD}/../package/root/bin diff --git a/app/app.pro b/app/app.pro index f497fee..d14bdb6 100644 --- a/app/app.pro +++ b/app/app.pro @@ -1,17 +1,18 @@ +TEMPLATE = app TARGET = mediaplayer -QT = quickcontrols2 websockets +QT = qml quickcontrols2 +CONFIG += c++11 link_pkgconfig -SOURCES = main.cpp - -CONFIG += link_pkgconfig PKGCONFIG += qtappfw-mediaplayer -CONFIG(release, debug|release) { - QMAKE_POST_LINK = $(STRIP) --strip-unneeded $(TARGET) -} +SOURCES = main.cpp RESOURCES += \ mediaplayer.qrc \ images/images.qrc -include(app.pri) +target.path = /usr/bin +target.files += $${OUT_PWD}/$${TARGET} +target.CONFIG = no_check_exist executable + +INSTALLS += target diff --git a/app/main.cpp b/app/main.cpp index d72c492..771ce3a 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -15,11 +15,7 @@ * limitations under the License. */ -#include <QtCore/QCommandLineParser> #include <QtCore/QDebug> -#include <QtCore/QDir> -#include <QtCore/QStandardPaths> -#include <QtCore/QUrlQuery> #include <QtGui/QGuiApplication> #include <QtQml/QQmlApplicationEngine> #include <QtQml/QQmlContext> @@ -34,39 +30,16 @@ int main(int argc, char *argv[]) { QString graphic_role = QString("music"); - QGuiApplication app(argc, argv); QQuickStyle::setStyle("AGL"); QQmlApplicationEngine engine; QQmlContext *context = engine.rootContext(); + context->setContextProperty("AlbumArt", ""); + context->setContextProperty("mediaplayer", new Mediaplayer(context)); - QCommandLineParser parser; - parser.addPositionalArgument("port", app.translate("main", "port for binding")); - parser.addPositionalArgument("secret", app.translate("main", "secret for binding")); - parser.addHelpOption(); - parser.addVersionOption(); - parser.process(app); - QStringList positionalArguments = parser.positionalArguments(); - - if (positionalArguments.length() == 2) { - int port = positionalArguments.takeFirst().toInt(); - QString secret = positionalArguments.takeFirst(); - QUrl bindingAddress; - bindingAddress.setScheme(QStringLiteral("ws")); - bindingAddress.setHost(QStringLiteral("localhost")); - bindingAddress.setPort(port); - bindingAddress.setPath(QStringLiteral("/api")); - QUrlQuery query; - query.addQueryItem(QStringLiteral("token"), secret); - bindingAddress.setQuery(query); - context->setContextProperty(QStringLiteral("bindingAddress"), bindingAddress); - - context->setContextProperty("AlbumArt", ""); - context->setContextProperty("mediaplayer", new Mediaplayer(bindingAddress, context)); + engine.load(QUrl(QStringLiteral("qrc:/MediaPlayer.qml"))); - engine.load(QUrl(QStringLiteral("qrc:/MediaPlayer.qml"))); - } return app.exec(); } diff --git a/autobuild/agl/autobuild b/autobuild/agl/autobuild deleted file mode 100755 index bbbc13e..0000000 --- a/autobuild/agl/autobuild +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/make -f -# Copyright (C) 2015 - 2018 "IoT.bzh" -# Copyright (C) 2020 Konsulko Group -# Author "Romain Forlot" <romain.forlot@iot.bzh> -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -THISFILE := $(lastword $(MAKEFILE_LIST)) -ROOT_DIR := $(abspath $(dir $(THISFILE))/../..) - -# Build directories -# Note that the debug directory is defined in relation to the release -# directory (BUILD_DIR), this needs to be kept in mind if over-riding -# it and building that widget types, the specific widget type variable -# (e.g. BUILD_DIR_DEBUG) may also need to be specified to yield the -# desired output hierarchy. -BUILD_DIR = $(ROOT_DIR)/build -BUILD_DIR_DEBUG = $(abspath $(BUILD_DIR)/../build-debug) - -# Output directory variable for use in pattern rules. -# This is intended for internal use only, hence the explicit override -# definition. -override OUTPUT_DIR = $(BUILD_DIR) - -# Final install directory for widgets -DEST = $(OUTPUT_DIR) - -# Default build type for release builds -BUILD_TYPE = release - -.PHONY: all help update install distclean -.PHONY: clean clean-release clean-debug clean-all -.PHONY: configure configure-release configure-debug -.PHONY: build build-release build-debug build-all -.PHONY: package package-release package-debug package-all - -help: - @echo "List of targets available:" - @echo "" - @echo "- all" - @echo "- help" - @echo "- clean" - @echo "- distclean" - @echo "- configure" - @echo "- build: compilation, link and prepare files for package into a widget" - @echo "- package: output a widget file '*.wgt'" - @echo "- install: install in $(DEST) directory" - @echo "" - @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt" - @echo "Don't use your build dir as DEST as wgt file is generated at this location" - -all: package-all - -# Target specific variable over-rides so static pattern rules can be -# used for the various type-specific targets. - -configure-debug build-debug package-debug clean-debug: OUTPUT_DIR = $(BUILD_DIR_DEBUG) -configure-debug build-debug package-debug: BUILD_TYPE = debug - -clean-release clean-debug: - @if [ -d $(OUTPUT_DIR) ]; then \ - $(MAKE) -C $(OUTPUT_DIR) $(CLEAN_ARGS) clean; \ - else \ - echo Nothing to clean; \ - fi - -clean: clean-release - -clean-all: clean-release clean-debug - -distclean: clean-all - -configure-release configure-debug: - @mkdir -p $(OUTPUT_DIR) - @if [ ! -f $(OUTPUT_DIR)/Makefile ]; then \ - (cd $(OUTPUT_DIR) && qmake CONFIG+=$(BUILD_TYPE) $(CONFIGURE_ARGS) $(ROOT_DIR)); \ - fi - -configure: configure-release - -build-release build-debug: build-%: configure-% - @$(MAKE) -C $(OUTPUT_DIR) $(BUILD_ARGS) all - -build: build-release - -build-all: build-release build-debug - -package-release package-debug: package-%: build-% - @cp $(OUTPUT_DIR)/package/*.wgt $(OUTPUT_DIR)/ - @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \ - mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \ - fi - - -package: package-release - -package-all: package-release package-debug - -install: build - @$(MAKE) -C $(BUILD_DIR) $(INSTALL_ARGS) install diff --git a/autobuild/linux/autobuild b/autobuild/linux/autobuild deleted file mode 100755 index bbbc13e..0000000 --- a/autobuild/linux/autobuild +++ /dev/null @@ -1,110 +0,0 @@ -#!/usr/bin/make -f -# Copyright (C) 2015 - 2018 "IoT.bzh" -# Copyright (C) 2020 Konsulko Group -# Author "Romain Forlot" <romain.forlot@iot.bzh> -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -THISFILE := $(lastword $(MAKEFILE_LIST)) -ROOT_DIR := $(abspath $(dir $(THISFILE))/../..) - -# Build directories -# Note that the debug directory is defined in relation to the release -# directory (BUILD_DIR), this needs to be kept in mind if over-riding -# it and building that widget types, the specific widget type variable -# (e.g. BUILD_DIR_DEBUG) may also need to be specified to yield the -# desired output hierarchy. -BUILD_DIR = $(ROOT_DIR)/build -BUILD_DIR_DEBUG = $(abspath $(BUILD_DIR)/../build-debug) - -# Output directory variable for use in pattern rules. -# This is intended for internal use only, hence the explicit override -# definition. -override OUTPUT_DIR = $(BUILD_DIR) - -# Final install directory for widgets -DEST = $(OUTPUT_DIR) - -# Default build type for release builds -BUILD_TYPE = release - -.PHONY: all help update install distclean -.PHONY: clean clean-release clean-debug clean-all -.PHONY: configure configure-release configure-debug -.PHONY: build build-release build-debug build-all -.PHONY: package package-release package-debug package-all - -help: - @echo "List of targets available:" - @echo "" - @echo "- all" - @echo "- help" - @echo "- clean" - @echo "- distclean" - @echo "- configure" - @echo "- build: compilation, link and prepare files for package into a widget" - @echo "- package: output a widget file '*.wgt'" - @echo "- install: install in $(DEST) directory" - @echo "" - @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt" - @echo "Don't use your build dir as DEST as wgt file is generated at this location" - -all: package-all - -# Target specific variable over-rides so static pattern rules can be -# used for the various type-specific targets. - -configure-debug build-debug package-debug clean-debug: OUTPUT_DIR = $(BUILD_DIR_DEBUG) -configure-debug build-debug package-debug: BUILD_TYPE = debug - -clean-release clean-debug: - @if [ -d $(OUTPUT_DIR) ]; then \ - $(MAKE) -C $(OUTPUT_DIR) $(CLEAN_ARGS) clean; \ - else \ - echo Nothing to clean; \ - fi - -clean: clean-release - -clean-all: clean-release clean-debug - -distclean: clean-all - -configure-release configure-debug: - @mkdir -p $(OUTPUT_DIR) - @if [ ! -f $(OUTPUT_DIR)/Makefile ]; then \ - (cd $(OUTPUT_DIR) && qmake CONFIG+=$(BUILD_TYPE) $(CONFIGURE_ARGS) $(ROOT_DIR)); \ - fi - -configure: configure-release - -build-release build-debug: build-%: configure-% - @$(MAKE) -C $(OUTPUT_DIR) $(BUILD_ARGS) all - -build: build-release - -build-all: build-release build-debug - -package-release package-debug: package-%: build-% - @cp $(OUTPUT_DIR)/package/*.wgt $(OUTPUT_DIR)/ - @if [ "$(abspath $(DEST))" != "$(abspath $(OUTPUT_DIR))" ]; then \ - mkdir -p $(DEST) && cp $(OUTPUT_DIR)/*.wgt $(DEST); \ - fi - - -package: package-release - -package-all: package-release package-debug - -install: build - @$(MAKE) -C $(BUILD_DIR) $(INSTALL_ARGS) install diff --git a/mediaplayer.pro b/mediaplayer.pro index 579a952..e6d6e34 100644 --- a/mediaplayer.pro +++ b/mediaplayer.pro @@ -1,3 +1,2 @@ TEMPLATE = subdirs SUBDIRS = app package -package.depends += app diff --git a/package/mediaplayer.desktop b/package/mediaplayer.desktop new file mode 100644 index 0000000..dc83713 --- /dev/null +++ b/package/mediaplayer.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Name=Mediaplayer +Comment=Mediaplayer +GenericName=Mediaplayer +Exec=mediaplayer +Icon=mediaplayer +Terminal=false +Type=Application +Categories=System; +StartupNotify=true diff --git a/package/mediaplayer.svg b/package/mediaplayer.svg new file mode 100644 index 0000000..b6ec056 --- /dev/null +++ b/package/mediaplayer.svg @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:i="&ns_ai;" + 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" + version="1.1" + id="Multimedia_Inactive" + x="0px" + y="0px" + viewBox="0 0 300 300" + style="enable-background:new 0 0 300 300;" + xml:space="preserve" + inkscape:version="0.91 r13725" + sodipodi:docname="music_inactive.svg"><metadata + id="metadata3511"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs3509" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1573" + inkscape:window-height="876" + id="namedview3507" + showgrid="false" + inkscape:zoom="0.78666667" + inkscape:cx="-90.254237" + inkscape:cy="150" + inkscape:window-x="0" + inkscape:window-y="27" + inkscape:window-maximized="0" + inkscape:current-layer="Multimedia_Inactive" /><style + type="text/css" + id="style3476"> + .st0{fill:#FFFFFF;} + .st1{font-family:'Roboto-Regular';} + .st2{font-size:25px;} + .st3{letter-spacing:6;} + .st4{fill:url(#SVGID_1_);} + .st5{fill:url(#SVGID_2_);} + .st6{fill:url(#SVGID_3_);} +</style><switch + id="switch3478" + transform="matrix(1.3307804,0,0,1.3314313,-62.924861,-27.945794)"><g + i:extraneous="self" + id="g3480"><g + id="g3482"><g + id="g3484"><linearGradient + id="SVGID_1_" + gradientUnits="userSpaceOnUse" + x1="4.0481" + y1="287.94919" + x2="320.4859" + y2="-15.4029" + gradientTransform="matrix(1,0.00546456,-0.00546456,1,-2.0192,-3.0212)"><stop + offset="0" + style="stop-color:#00ADDC" + id="stop3487" /><stop + offset="1" + style="stop-color:#6BFBFF" + id="stop3489" /></linearGradient><path + class="st4" + d="m 160,238.8 c -0.2,0 -0.4,0 -0.6,0 C 101.4,238.5 54.5,191.1 54.8,133.1 55.2,75.3 102.3,28.5 160,28.5 c 0.2,0 0.4,0 0.6,0 58,0.3 104.9,47.7 104.6,105.7 l 0,0 C 264.8,192 217.7,238.8 160,238.8 Z m 0,-206.6 c -55.7,0 -101.2,45.2 -101.5,100.9 -0.3,55.9 45,101.7 100.9,102 0.2,0 0.4,0 0.6,0 55.7,0 101.2,-45.2 101.5,-100.9 0.3,-55.9 -45,-101.7 -100.9,-102 -0.2,0 -0.4,0 -0.6,0 z" + id="path3491" + style="fill:url(#SVGID_1_)" + inkscape:connector-curvature="0" /><linearGradient + id="SVGID_2_" + gradientUnits="userSpaceOnUse" + x1="140.72141" + y1="202.2363" + x2="187.02119" + y2="68.704903"><stop + offset="0" + style="stop-color:#00ADDC" + id="stop3494" /><stop + offset="1" + style="stop-color:#6BFBFF" + id="stop3496" /></linearGradient><path + class="st5" + d="m 114.7,190.9 c -6.4,0 -12,-2.6 -14.8,-7.5 -2.9,-4.9 -5.4,-14.5 9.6,-23.2 4.8,-2.8 17.1,-3.9 20.8,-4 l 0.1,3.6 c -4.6,0.1 -15.5,1.4 -19.1,3.5 -9.4,5.4 -12.1,11.5 -8.3,18.3 3.8,6.6 14.6,7.6 24,2.2 6.6,-3.8 10.6,-10.5 10.7,-17.9 l -0.1,-0.7 0,-69.8 71.9,-14.2 0.1,71.3 c 0,6.7 -3.3,16.4 -12.5,21.8 -11.1,6.4 -24.1,4.8 -28.9,-3.5 -2.9,-4.9 -5.4,-14.5 9.6,-23.2 4.4,-2.5 14.4,-3.8 18.8,-3.9 l 0.1,3.6 c -4.2,0.1 -13.5,1.4 -17.1,3.5 -6.4,3.7 -13.1,9.9 -8.3,18.3 3.8,6.6 14.6,7.6 24,2.2 7.9,-4.5 10.7,-12.8 10.7,-18.5 l -0.1,-0.8 0,-66.4 -64.7,12.7 0,66.8 0.1,0.7 c 0,8.7 -4.7,16.6 -12.5,21.1 -4.7,2.7 -9.6,4 -14.1,4 z" + id="path3498" + style="fill:url(#SVGID_2_)" + inkscape:connector-curvature="0" /><linearGradient + id="SVGID_3_" + gradientUnits="userSpaceOnUse" + x1="145.50549" + y1="203.8951" + x2="191.8053" + y2="70.363701"><stop + offset="0" + style="stop-color:#00ADDC" + id="stop3501" /><stop + offset="1" + style="stop-color:#6BFBFF" + id="stop3503" /></linearGradient><polygon + class="st6" + points="196.5,113.7 155.8,123.3 155,119.8 195.6,110.2 " + id="polygon3505" + style="fill:url(#SVGID_3_)" /></g></g></g></switch></svg>
\ No newline at end of file diff --git a/package/package.pro b/package/package.pro index 614096f..8ff91c8 100644 --- a/package/package.pro +++ b/package/package.pro @@ -1,24 +1,11 @@ +TEMPLATE = aux -DISTFILES = icon.svg config.xml +icon.path = /usr/share/icons/hicolor/scalable +icon.files += $$_PRO_FILE_PWD_/mediaplayer.svg +icon.CONFIG = no_check_exist -copy_icon.target = $$OUT_PWD/root/icon.svg -copy_icon.depends = $$_PRO_FILE_PWD_/icon.svg -copy_icon.commands = $(COPY_FILE) \"$$replace(copy_icon.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_icon.target, /, $$QMAKE_DIR_SEP)\" -QMAKE_EXTRA_TARGETS += copy_icon -PRE_TARGETDEPS += $$copy_icon.target +desktop.path = /usr/share/applications +desktop.files = $$_PRO_FILE_PWD_/mediaplayer.desktop +desktop.CONFIG = no_check_exist -copy_config.target = $$OUT_PWD/root/config.xml -copy_config.depends = $$_PRO_FILE_PWD_/config.xml -copy_config.commands = $(COPY_FILE) \"$$replace(copy_config.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_config.target, /, $$QMAKE_DIR_SEP)\" -QMAKE_EXTRA_TARGETS += copy_config -PRE_TARGETDEPS += $$copy_config.target - -WGT_TYPE = -CONFIG(debug, debug|release) { - WGT_TYPE = -debug -} - -wgt.target = package -wgt.commands = wgtpkg-pack -f -o mediaplayer$${WGT_TYPE}.wgt root - -QMAKE_EXTRA_TARGETS += wgt +INSTALLS += desktop icon |