starting to build
This commit is contained in:
parent
61aef5c48f
commit
7b82202c51
6 changed files with 75 additions and 77 deletions
|
@ -5,7 +5,7 @@ set(APP_NAME ${PROJECT_NAME})
|
||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
|
|
||||||
set(QT_MIN_VERSION 6.6.0)
|
set(QT_MIN_VERSION 6.6.0)
|
||||||
set(KF_MIN_VERSION 6.00)
|
set(KF_MIN_VERSION 6.0.0)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
@ -18,6 +18,9 @@ find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
|
set(QT_QML_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/qml)
|
||||||
|
set(QML_IMPORT_PATH ${QT_QML_OUTPUT_DIRECTORY} CACHE PATH "Extra QML import paths to make Qt Creator happy")
|
||||||
|
|
||||||
include(KDEInstallDirs)
|
include(KDEInstallDirs)
|
||||||
include(KDECMakeSettings)
|
include(KDECMakeSettings)
|
||||||
include(KDECompilerSettings NO_POLICY_SCOPE)
|
include(KDECompilerSettings NO_POLICY_SCOPE)
|
||||||
|
@ -30,15 +33,19 @@ kde_enable_exceptions()
|
||||||
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Core5Compat Quick Test Gui Qml QuickControls2 Widgets Sql QmlImportScanner WebEngineQuick)
|
find_package(Qt6 ${QT_MIN_VERSION} REQUIRED NO_MODULE COMPONENTS Core Core5Compat Quick Test Gui Qml QuickControls2 Widgets Sql QmlImportScanner WebEngineQuick)
|
||||||
find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS Kirigami CoreAddons I18n)
|
find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS Kirigami CoreAddons I18n)
|
||||||
|
|
||||||
|
# find_package(KF6FileMetaData ${KF6_MIN_VERSION})
|
||||||
|
# set_package_properties(KF6FileMetaData PROPERTIES TYPE REQUIRED
|
||||||
|
# URL "https://api.kde.org/frameworks/kfilemetadata/html/index.html")
|
||||||
|
|
||||||
find_package(FFmpeg)
|
find_package(FFmpeg)
|
||||||
set_package_properties(FFmpeg PROPERTIES TYPE REQUIRED)
|
set_package_properties(FFmpeg PROPERTIES TYPE REQUIRED)
|
||||||
|
|
||||||
find_package(Libmpv)
|
# find_package(Libmpv)
|
||||||
set_package_properties(Libmpv PROPERTIES TYPE REQUIRED)
|
# set_package_properties(Libmpv PROPERTIES TYPE REQUIRED)
|
||||||
|
|
||||||
find_package(MpvQt)
|
# find_package(MpvQt)
|
||||||
set_package_properties(MpvQt PROPERTIES TYPE REQUIRED
|
# set_package_properties(MpvQt PROPERTIES TYPE REQUIRED
|
||||||
URL "https://invent.kde.org/libraries/mpvqt")
|
# URL "https://invent.kde.org/libraries/mpvqt")
|
||||||
|
|
||||||
find_package(YouTubeDl)
|
find_package(YouTubeDl)
|
||||||
set_package_properties(YouTubeDl PROPERTIES TYPE RUNTIME)
|
set_package_properties(YouTubeDl PROPERTIES TYPE RUNTIME)
|
||||||
|
@ -100,8 +107,9 @@ target_link_libraries(${APP_NAME}_lib INTERFACE
|
||||||
KF6::Kirigami
|
KF6::Kirigami
|
||||||
KF6::I18n
|
KF6::I18n
|
||||||
KF6::CoreAddons
|
KF6::CoreAddons
|
||||||
MpvQt::MpvQt
|
# KF6::FileMetaData
|
||||||
mpv
|
# MpvQt::MpvQt
|
||||||
|
# mpv
|
||||||
ssl
|
ssl
|
||||||
crypto
|
crypto
|
||||||
)
|
)
|
||||||
|
|
|
@ -36,6 +36,7 @@ mkShell rec {
|
||||||
qt6.qtwebengine
|
qt6.qtwebengine
|
||||||
qt6.qtimageformats
|
qt6.qtimageformats
|
||||||
kdePackages.kirigami
|
kdePackages.kirigami
|
||||||
|
# kdePackages.kfilemetadata
|
||||||
# libsForQt5.breeze-icons
|
# libsForQt5.breeze-icons
|
||||||
# libsForQt5.breeze-qt5
|
# libsForQt5.breeze-qt5
|
||||||
kdePackages.qqc2-desktop-style
|
kdePackages.qqc2-desktop-style
|
||||||
|
|
|
@ -14,8 +14,8 @@ target_sources(lumina
|
||||||
# cpp/imagesqlmodel.cpp cpp/imagesqlmodel.h
|
# cpp/imagesqlmodel.cpp cpp/imagesqlmodel.h
|
||||||
# cpp/filemanager.cpp cpp/filemanager.h
|
# cpp/filemanager.cpp cpp/filemanager.h
|
||||||
# cpp/presentationsqlmodel.cpp cpp/presentationsqlmodel.h
|
# cpp/presentationsqlmodel.cpp cpp/presentationsqlmodel.h
|
||||||
cpp/mpv/mpvitem.h cpp/mpv/mpvitem.cpp
|
# cpp/mpv/mpvitem.h cpp/mpv/mpvitem.cpp
|
||||||
cpp/mpv/mpvproperties.h
|
# cpp/mpv/mpvproperties.h
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_options (lumina PUBLIC -fexceptions)
|
target_compile_options (lumina PUBLIC -fexceptions)
|
||||||
|
|
10
src/main.cpp
10
src/main.cpp
|
@ -23,7 +23,7 @@
|
||||||
#include <QQuickStyle>
|
#include <QQuickStyle>
|
||||||
#include <QSurfaceFormat>
|
#include <QSurfaceFormat>
|
||||||
|
|
||||||
#include <QtGui/QOpenGLFramebufferObject>
|
// #include <QtGui/QOpenGLFramebufferObject>
|
||||||
|
|
||||||
#include <QtQuick/QQuickWindow>
|
#include <QtQuick/QQuickWindow>
|
||||||
#include <QtQuick/QQuickView>
|
#include <QtQuick/QQuickView>
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
#include <qsqlquery.h>
|
#include <qsqlquery.h>
|
||||||
#include <qstringliteral.h>
|
#include <qstringliteral.h>
|
||||||
|
|
||||||
#include "cpp/mpv/mpvitem.h"
|
// #include "cpp/mpv/mpvitem.h"
|
||||||
#include "cpp/mpv/mpvproperties.h"
|
// #include "cpp/mpv/mpvproperties.h"
|
||||||
// #include "cpp/serviceitemmodel.h"
|
// #include "cpp/serviceitemmodel.h"
|
||||||
// #include "cpp/slidemodel.h"
|
// #include "cpp/slidemodel.h"
|
||||||
// #include "cpp/songsqlmodel.h"
|
// #include "cpp/songsqlmodel.h"
|
||||||
|
@ -221,8 +221,8 @@ int main(int argc, char *argv[])
|
||||||
// apparently mpv needs this class set
|
// apparently mpv needs this class set
|
||||||
// let's register mpv as well
|
// let's register mpv as well
|
||||||
std::setlocale(LC_NUMERIC, "C");
|
std::setlocale(LC_NUMERIC, "C");
|
||||||
qmlRegisterType<MpvItem>("mpv", 1, 0, "MpvItem");
|
// qmlRegisterType<MpvItem>("mpv", 1, 0, "MpvItem");
|
||||||
qmlRegisterSingletonInstance("org.presenter", 1, 0, "MpvProperties", MpvProperties::self());
|
// qmlRegisterSingletonInstance("org.presenter", 1, 0, "MpvProperties", MpvProperties::self());
|
||||||
|
|
||||||
//register our models
|
//register our models
|
||||||
// qmlRegisterType<SongProxyModel>("org.presenter", 1, 0, "SongProxyModel");
|
// qmlRegisterType<SongProxyModel>("org.presenter", 1, 0, "SongProxyModel");
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import QtQuick 2.15
|
import QtQuick
|
||||||
import QtQuick.Dialogs 1.3
|
/* import QtQuick.Dialogs */
|
||||||
import QtQuick.Controls 2.15 as Controls
|
import QtQuick.Controls as Controls
|
||||||
import Qt.labs.platform 1.1 as Labs
|
import Qt.labs.platform as Labs
|
||||||
import QtQuick.Window 2.15
|
import QtQuick.Window
|
||||||
import QtQuick.Layouts 1.15
|
import QtQuick.Layouts
|
||||||
import QtMultimedia 5.15
|
import QtMultimedia
|
||||||
/* import QtAudioEngine 1.15 */
|
/* import QtAudioEngine 1.15 */
|
||||||
import org.kde.kirigami 2.13 as Kirigami
|
import org.kde.kirigami 2.13 as Kirigami
|
||||||
import "./presenter" as Presenter
|
import "./presenter" as Presenter
|
||||||
|
@ -198,11 +198,11 @@ Kirigami.ApplicationWindow {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
|
|
||||||
FileDialog {
|
Labs.FileDialog {
|
||||||
id: saveFileDialog
|
id: saveFileDialog
|
||||||
title: "Save"
|
title: "Save"
|
||||||
folder: shortcuts.home
|
folder: shortcuts.home
|
||||||
/* fileMode: FileDialog.SaveFile */
|
/* fileMode: Labs.FileDialog.SaveFile */
|
||||||
defaultSuffix: ".pres"
|
defaultSuffix: ".pres"
|
||||||
selectExisting: false
|
selectExisting: false
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
|
@ -218,11 +218,11 @@ Kirigami.ApplicationWindow {
|
||||||
id: fileHelper
|
id: fileHelper
|
||||||
}
|
}
|
||||||
|
|
||||||
FileDialog {
|
Labs.FileDialog {
|
||||||
id: loadFileDialog
|
id: loadFileDialog
|
||||||
title: "Load"
|
title: "Load"
|
||||||
folder: shortcuts.home
|
folder: shortcuts.home
|
||||||
/* fileMode: FileDialog.SaveFile */
|
/* fileMode: Labs.FileDialog.SaveFile */
|
||||||
defaultSuffix: ".pres"
|
defaultSuffix: ".pres"
|
||||||
selectExisting: true
|
selectExisting: true
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
|
@ -233,11 +233,11 @@ Kirigami.ApplicationWindow {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FileDialog {
|
Labs.FileDialog {
|
||||||
id: soundFileDialog
|
id: soundFileDialog
|
||||||
title: "Pick a Sound Effect"
|
title: "Pick a Sound Effect"
|
||||||
folder: shortcuts.home
|
folder: shortcuts.home
|
||||||
/* fileMode: FileDialog.SaveFile */
|
/* fileMode: Labs.FileDialog.SaveFile */
|
||||||
selectExisting: true
|
selectExisting: true
|
||||||
onAccepted: {
|
onAccepted: {
|
||||||
soundEffect = loadFileDialog.fileUrl;
|
soundEffect = loadFileDialog.fileUrl;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import QtQuick 2.15
|
import QtQuick 2.15
|
||||||
import QtQuick.Controls 2.15 as Controls
|
import QtQuick.Controls 2.15 as Controls
|
||||||
import QtQuick.Layouts 1.15
|
import QtQuick.Layouts 1.15
|
||||||
import QtMultimedia 5.15
|
import QtMultimedia
|
||||||
/* import QtAudioEngine 1.15 */
|
/* import QtAudioEngine 1.15 */
|
||||||
import QtWebEngine 1.10
|
import QtWebEngine 1.10
|
||||||
import QtGraphicalEffects 1.15
|
import QtGraphicalEffects 1.15
|
||||||
|
@ -53,27 +53,14 @@ Item {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: "black"
|
color: "black"
|
||||||
|
|
||||||
MpvObject {
|
Video {
|
||||||
id: mpv
|
id: video
|
||||||
/* objectName: "mpv" */
|
/* objectName: "mpv" */
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
useHwdec: true
|
/* useHwdec: true */
|
||||||
enableAudio: !preview
|
muted: preview
|
||||||
Component.onCompleted: mpvLoadingTimer.start()
|
Component.onCompleted: mpvLoadingTimer.start()
|
||||||
onFileLoaded: {
|
loops: itemType == "song" ? MediaPlayer.Infinite : vidLoop ? MediaPlayer.Infinite : 1
|
||||||
/* showPassiveNotification(videoSource + " has been loaded"); */
|
|
||||||
if (itemType == "song") {
|
|
||||||
mpv.setProperty("loop", "inf");
|
|
||||||
} else if (vidLoop) {
|
|
||||||
mpv.setProperty("loop", "inf");
|
|
||||||
} else {
|
|
||||||
mpv.setProperty("loop", "no");
|
|
||||||
}
|
|
||||||
/* showPassiveNotification(mpv.getProperty("loop")); */
|
|
||||||
mpv.setProperty("sid", "no");
|
|
||||||
|
|
||||||
}
|
|
||||||
/* onIsPlayingChanged: showPassiveNotification(mpv.getProperty("pause")) */
|
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: playArea
|
id: playArea
|
||||||
|
@ -84,32 +71,32 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {
|
/* Timer { */
|
||||||
id: mpvLoadingTimer
|
/* id: mpvLoadingTimer */
|
||||||
interval: 500
|
/* interval: 500 */
|
||||||
onTriggered: {
|
/* onTriggered: { */
|
||||||
/* showPassiveNotification("YIPPEEE!") */
|
/* /\* showPassiveNotification("YIPPEEE!") *\/ */
|
||||||
mpv.stop();
|
/* mpv.stop(); */
|
||||||
if (vidStartTime > 0 && vidStartTime < vidEndTime) {
|
/* if (vidStartTime > 0 && vidStartTime < vidEndTime) { */
|
||||||
/* mpv.seek(vidStartTime); */
|
/* /\* mpv.seek(vidStartTime); *\/ */
|
||||||
let start = "+" + vidStartTime;
|
/* let start = "+" + vidStartTime; */
|
||||||
let end = "+" + vidEndTime;
|
/* let end = "+" + vidEndTime; */
|
||||||
mpv.setProperty("start", start);
|
/* mpv.setProperty("start", start); */
|
||||||
mpv.setProperty("end", end);
|
/* mpv.setProperty("end", end); */
|
||||||
Utils.dbg("Setting position to: " + mpv.position);
|
/* Utils.dbg("Setting position to: " + mpv.position); */
|
||||||
} else {
|
/* } else { */
|
||||||
mpv.setProperty("start", "none");
|
/* mpv.setProperty("start", "none"); */
|
||||||
mpv.setProperty("end", "none");
|
/* mpv.setProperty("end", "none"); */
|
||||||
}
|
/* } */
|
||||||
mpv.loadFile(videoSource.toString());
|
/* mpv.loadFile(videoSource.toString()); */
|
||||||
Utils.dbg("Setting position to: " + vidStartTime + " and end is " + vidEndTime);
|
/* Utils.dbg("Setting position to: " + vidStartTime + " and end is " + vidEndTime); */
|
||||||
if (editMode) {
|
/* if (editMode) { */
|
||||||
console.log("WHY AREN'T YOU PASUING!");
|
/* console.log("WHY AREN'T YOU PASUING!"); */
|
||||||
pauseTimer.restart();
|
/* pauseTimer.restart(); */
|
||||||
}
|
/* } */
|
||||||
blackTimer.restart();
|
/* blackTimer.restart(); */
|
||||||
}
|
/* } */
|
||||||
}
|
/* } */
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
id: pauseTimer
|
id: pauseTimer
|
||||||
|
@ -132,13 +119,15 @@ Item {
|
||||||
visible: false
|
visible: false
|
||||||
}
|
}
|
||||||
|
|
||||||
MpvObject {
|
MediaPlayer {
|
||||||
id: audio
|
id: audio
|
||||||
useHwdec: true
|
audioOutput: AudioOutput {}
|
||||||
enableAudio: true
|
/* useHwdec: true */
|
||||||
|
/* enableAudio: true */
|
||||||
|
|
||||||
// embeded mpv allows to set commandline propertys using the options/<name>
|
// embeded mpv allows to set commandline propertys using the options/<name>
|
||||||
// syntax. This could be abstracted later, but for now this works.
|
// syntax. This could be abstracted later, but for now this works.
|
||||||
Component.onCompleted: audio.setProperty("options/audio-display", "no");
|
/* Component.onCompleted: audio.setProperty("options/audio-display", "no"); */
|
||||||
}
|
}
|
||||||
|
|
||||||
Image {
|
Image {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue