From 926820f520d9c4ce14c3703d9caf80fa2601113b Mon Sep 17 00:00:00 2001 From: Antoine Gatineau <43171889+infra-monkey@users.noreply.github.com> Date: Wed, 2 Mar 2022 10:42:09 +0100 Subject: [PATCH] Code-improvement (#32) --- CMakeLists.txt | 33 +------ README.md | 2 + kcm_webcam_settings.spec | 76 --------------- metadata.desktop | 0 src/CMakeLists.txt | 46 +++++++++ .../QWebcamSettings.cpp | 2 +- QWebcamSettings.h => src/QWebcamSettings.h | 0 UdevHelper.cpp => src/UdevHelper.cpp | 0 UdevHelper.h => src/UdevHelper.h | 0 VideoDevice.cpp => src/VideoDevice.cpp | 93 ++++++++++++------- VideoDevice.h => src/VideoDevice.h | 2 +- helpers.cpp => src/helpers.cpp | 0 helpers.h => src/helpers.h | 0 {package => src/package}/contents/ui/main.qml | 0 {package => src/package}/metadata.desktop | 0 udevhelper.actions => src/udevhelper.actions | 0 16 files changed, 110 insertions(+), 144 deletions(-) delete mode 100644 kcm_webcam_settings.spec delete mode 100644 metadata.desktop create mode 100644 src/CMakeLists.txt rename QWebcamSettings.cpp => src/QWebcamSettings.cpp (99%) rename QWebcamSettings.h => src/QWebcamSettings.h (100%) rename UdevHelper.cpp => src/UdevHelper.cpp (100%) rename UdevHelper.h => src/UdevHelper.h (100%) rename VideoDevice.cpp => src/VideoDevice.cpp (87%) rename VideoDevice.h => src/VideoDevice.h (98%) rename helpers.cpp => src/helpers.cpp (100%) rename helpers.h => src/helpers.h (100%) rename {package => src/package}/contents/ui/main.qml (100%) rename {package => src/package}/metadata.desktop (100%) rename udevhelper.actions => src/udevhelper.actions (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 54c3da1..86a00d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,36 +36,7 @@ remove_definitions( -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_BYTEARRAY ) -set(QWebcamSettings_SRCS - QWebcamSettings.cpp - VideoDevice.cpp - helpers.cpp -) - -kauth_install_actions(kcm.webcam.settings.udevhelper udevhelper.actions) -add_executable(udevhelper UdevHelper.cpp UdevHelper.h helpers.cpp helpers.h) -target_link_libraries(udevhelper KF5::Auth) -install(TARGETS udevhelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR}) -kauth_install_helper_files(udevhelper kcm.webcam.settings.udevhelper root) - -add_library(kcm_webcam_settings MODULE ${QWebcamSettings_SRCS}) - -target_link_libraries(kcm_webcam_settings - KF5::ConfigCore - KF5::CoreAddons - KF5::Declarative - KF5::I18n - KF5::PlasmaQuick - KF5::QuickAddons - KF5::Auth - Qt5::Multimedia -) -target_compile_options (kcm_webcam_settings PUBLIC -fexceptions) -kcoreaddons_desktop_to_json(kcm_webcam_settings "package/metadata.desktop") - -install(TARGETS kcm_webcam_settings DESTINATION ${KDE_INSTALL_PLUGINDIR}/kcms) -install(FILES package/metadata.desktop RENAME kcm_webcam_settings.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) # Install the desktop file -install(DIRECTORY translate/locale DESTINATION ${CMAKE_INSTALL_DATADIR}) +add_subdirectory(src) -kpackage_install_package(package kcm_webcam_settings kcms) # Install our QML kpackage. +install(DIRECTORY translate/locale DESTINATION ${CMAKE_INSTALL_DATADIR}) diff --git a/README.md b/README.md index e3bda71..10fc019 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,8 @@ The resolution and pixel format is defined through v4l2 but the applications don The settings are set system wide. This means that if multiple users are configured on the system and define different settings, the last one to modify the settings will define it for everyone. +The Zoom Client will not use the settings defined in this module if "HD" is checked in the zoom camera settings. + # Security and permissions The kcm need root permission to write the udev rules. diff --git a/kcm_webcam_settings.spec b/kcm_webcam_settings.spec deleted file mode 100644 index 7177288..0000000 --- a/kcm_webcam_settings.spec +++ /dev/null @@ -1,76 +0,0 @@ -%global kf5_version 5.85.0 -%global qt5_version 5.15.2 -Name: {{{ git_dir_name }}} -Version: 0.0.4 -Release: 6 -Summary: KDE Plasma system-settings module to configure your webcam -License: GPLv3+ -URL: https://github.com/infra-monkey/kcm_webcam_settings -Source: {{{ git_dir_pack }}} -#BuildArch: x86_64 -BuildRequires: cmake >= 3.16 -BuildRequires: kf5-ki18n-devel >= %{kf5_version} -BuildRequires: kf5-kcmutils-devel >= %{kf5_version} -BuildRequires: kf5-kdeclarative-devel >= %{kf5_version} -BuildRequires: qt5-qtsvg-devel >= %{qt5_version} -BuildRequires: kf5-plasma-devel >= %{kf5_version} -BuildRequires: qt5-qtmultimedia-devel >= %{qt5_version} -BuildRequires: kf5-rpm-macros >= %{kf5_version_min} -Requires: v4l-utils -Requires: kf5-ki18n >= %{kf5_version} -Requires: kf5-kcmutils >= %{kf5_version} -Requires: kf5-kdeclarative >= %{kf5_version} -Requires: qt5-qtsvg >= %{qt5_version} -Requires: kf5-plasma >= %{kf5_version} -Requires: qt5-qtmultimedia >= %{qt5_version} - -%description -This module for systemsettings in KDE Plasma 5.23+ allows to configure Video4Linux (Webcam devices) settings such as brightness, saturation, auto-focus or even absolute zomm when the controles are exposed by the device. The default resolution and pixel format can also be adjusted. Note that not all software will respect the resolution and format. - -%prep -{{{ git_dir_setup_macro }}} - -%build -%cmake_kf5 -%cmake_build - -%install -%cmake_install - -%files -%{_datadir}/polkit-1/actions/kcm.webcam.settings.udevhelper.policy -%{_kf5_libexecdir}/kauth/udevhelper -%{_datadir}/dbus-1/system.d/kcm.webcam.settings.udevhelper.conf -%{_datadir}/dbus-1/system-services/kcm.webcam.settings.udevhelper.service -%{_qt5_plugindir}/kcms/kcm_webcam_settings.so -%{_datadir}/kservices5/kcm_webcam_settings.desktop -%{_datadir}/kpackage/kcms/kcm_webcam_settings -%{_datadir}/kpackage/kcms/kcm_webcam_settings/metadata.desktop -%{_datadir}/kpackage/kcms/kcm_webcam_settings/contents -%{_datadir}/kpackage/kcms/kcm_webcam_settings/contents/ui -%{_datadir}/kpackage/kcms/kcm_webcam_settings/contents/ui/main.qml -%{_datadir}/kpackage/kcms/kcm_webcam_settings/metadata.json -%{_datadir}/locale/fr -%{_datadir}/locale/fr/LC_MESSAGES -%{_datadir}/locale/fr/LC_MESSAGES/kcm_webcam_settings.mo - -%changelog -* Mon Feb 20 2022 Antoine Gatineau - 0.0.4 -- Enhancement: allow preview of the webcam output in the ui -- Bug: Digital Zoom not applicable in some cases -- Enhancement: Add FR internationalization - -* Mon Feb 15 2022 Antoine Gatineau - 0.0.3 -- Enhancement: add settings for autofocus and focus -- Enhancement: move the device selection from a dropdown menu to a listview. -- Enhancement: add device information. -- Fix: some resolutions are duplicated in the format selection menu. -- Fix: spec file uses hardcoded path for the %files section - -* Mon Feb 09 2022 Antoine Gatineau - 0.0.2 -- Fix: systemsettings would crash if no webcam is connected -- Enhancement: update v4l2 controls on the fly when the cursor is moved -- Enhancement: enable packaging on multiple architectures/versions in fedora copr - -* Mon Feb 07 2022 Antoine Gatineau - 0.0.1 -- Initial version of the package \ No newline at end of file diff --git a/metadata.desktop b/metadata.desktop deleted file mode 100644 index e69de29..0000000 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..b912c13 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,46 @@ +# SPDX-FileCopyrightText: Year Author +# +# SPDX-License-Identifier: BSD-2-Clause + +# cmake_minimum_required(VERSION 3.16) + +# project(webcamkcm) + +# set(QT_MIN_VERSION "5.15.0") +# set(KF5_MIN_VERSION "5.85.0") + +# find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) +# set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) + +set(QWebcamSettings_SRCS + QWebcamSettings.cpp + VideoDevice.cpp + helpers.cpp +) + +kauth_install_actions(kcm.webcam.settings.udevhelper udevhelper.actions) +add_executable(udevhelper UdevHelper.cpp UdevHelper.h helpers.cpp helpers.h) +target_link_libraries(udevhelper KF5::Auth) +install(TARGETS udevhelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR}) +kauth_install_helper_files(udevhelper kcm.webcam.settings.udevhelper root) + +add_library(kcm_webcam_settings MODULE ${QWebcamSettings_SRCS}) + +target_link_libraries(kcm_webcam_settings + KF5::ConfigCore + KF5::CoreAddons + KF5::Declarative + KF5::I18n + KF5::PlasmaQuick + KF5::QuickAddons + KF5::Auth + Qt5::Multimedia +) +target_compile_options (kcm_webcam_settings PUBLIC -fexceptions) +kcoreaddons_desktop_to_json(kcm_webcam_settings "package/metadata.desktop") + +install(TARGETS kcm_webcam_settings DESTINATION ${KDE_INSTALL_PLUGINDIR}/kcms) +install(FILES package/metadata.desktop RENAME kcm_webcam_settings.desktop DESTINATION ${KDE_INSTALL_KSERVICES5DIR}) # Install the desktop file + + +kpackage_install_package(package kcm_webcam_settings kcms) # Install our QML kpackage. diff --git a/QWebcamSettings.cpp b/src/QWebcamSettings.cpp similarity index 99% rename from QWebcamSettings.cpp rename to src/QWebcamSettings.cpp index 60d3821..1e697c7 100644 --- a/QWebcamSettings.cpp +++ b/src/QWebcamSettings.cpp @@ -29,7 +29,7 @@ QWebcamSettings::QWebcamSettings(QObject *parent, const QVariantList &args) qCDebug(webcam_settings_kcm) << "QWebcamSettings::QWebcamSettings"; KAboutData *aboutData = new KAboutData(QStringLiteral("kcm_webcam_settings"), i18nc("@title", "Webcam"), - QStringLiteral("0.0.1"), + QStringLiteral("0.0.5"), QStringLiteral(""), KAboutLicense::LicenseKey::GPL_V3, i18nc("@info:credit", "Copyright 2021 Antoine Gatineau")); diff --git a/QWebcamSettings.h b/src/QWebcamSettings.h similarity index 100% rename from QWebcamSettings.h rename to src/QWebcamSettings.h diff --git a/UdevHelper.cpp b/src/UdevHelper.cpp similarity index 100% rename from UdevHelper.cpp rename to src/UdevHelper.cpp diff --git a/UdevHelper.h b/src/UdevHelper.h similarity index 100% rename from UdevHelper.h rename to src/UdevHelper.h diff --git a/VideoDevice.cpp b/src/VideoDevice.cpp similarity index 87% rename from VideoDevice.cpp rename to src/VideoDevice.cpp index 79905f0..9edc9eb 100644 --- a/VideoDevice.cpp +++ b/src/VideoDevice.cpp @@ -21,29 +21,45 @@ VideoDevice::VideoDevice(const QCameraInfo camerainfo,QString device_serial, QSt m_device_vendor_id = QString(device_vendorid); m_device_model_id = QString(device_modelid); m_device_path = QString(camerainfo.deviceName()); + m_ctrl_brightness_visible = false; + m_ctrl_contrast_visible = false; + m_ctrl_sharpness_visible = false; + m_ctrl_saturation_visible = false; + m_ctrl_zoom_absolute_supported = false; + m_ctrl_zoom_optical_visible = false; + m_ctrl_zoom_digital_visible = false; + m_ctrl_auto_focus_visible = false; + m_ctrl_focus_visible = false; qCDebug(webcam_settings_kcm) << "VideoDevice::VideoDevice" << m_device_name << m_device_path << m_device_vendor_id << m_device_model_id; initializeCtrls(); initializeFormats(); } -VideoDevice::~VideoDevice() {} +VideoDevice::~VideoDevice() { + delete m_current_camera; +} void VideoDevice::initializeCtrls() { qCDebug(webcam_settings_kcm) << "VideoDevice::initializeCtrls"; - for (const QString & label: m_ctrl_list){ - initializeCtrl(label); + std::string cmd = std::string("v4l2-ctl -d " + m_device_path.toStdString() + " --list-ctrls"); + QString output = QString::fromStdString(exec_cmd(cmd)); + QStringList lines = output.split("\n"); + for (const QString & line : lines) { + for (const QString & label: m_ctrl_list){ + if (line.contains(label)){ + initializeCtrl(label,line); + } + } } - - + // initialize non-v4l2 controls + initializeCtrl("zoom_optical",""); + initializeCtrl("zoom_digital",""); } -void VideoDevice::initializeCtrl(const QString ctrl_label) { +void VideoDevice::initializeCtrl(const QString ctrl_label, const QString line) { bool is_defined; - std::string line,cmd; if (m_is_dummy_device){ is_defined = false; } else { - cmd = std::string("v4l2-ctl -d " + m_device_path.toStdString() + " --list-ctrls | grep " + ctrl_label.toStdString()); - line = exec_cmd(cmd); if (line.size() == 0) { is_defined = false; } else { @@ -58,9 +74,9 @@ void VideoDevice::initializeCtrl(const QString ctrl_label) { m_ctrl_brightness["step"] = 0; if (!is_defined){return;} m_ctrl_brightness["value"] = m_current_camera->imageProcessing()->brightness(); - m_ctrl_brightness["min"] = static_cast(stoi(get_str_between_two_str(line,std::string("min="),std::string(" ")))); - m_ctrl_brightness["max"] = static_cast(stoi(get_str_between_two_str(line,std::string("max="),std::string(" ")))); - m_ctrl_brightness["step"] = static_cast(stoi(get_str_between_two_str(line,std::string("step="),std::string(" ")))); + m_ctrl_brightness["min"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("min="),std::string(" ")))); + m_ctrl_brightness["max"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("max="),std::string(" ")))); + m_ctrl_brightness["step"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("step="),std::string(" ")))); qCDebug(webcam_settings_kcm) << "VideoDevice::initializeCtrl Brightness: value: " << QString::number(m_ctrl_brightness["value"]) << "min: " << m_ctrl_brightness["min"] << "max: " << m_ctrl_brightness["max"] @@ -74,9 +90,9 @@ void VideoDevice::initializeCtrl(const QString ctrl_label) { m_ctrl_contrast["step"] = 0; if (!is_defined){return;} m_ctrl_contrast["value"] = m_current_camera->imageProcessing()->contrast(); - m_ctrl_contrast["min"] = static_cast(stoi(get_str_between_two_str(line,std::string("min="),std::string(" ")))); - m_ctrl_contrast["max"] = static_cast(stoi(get_str_between_two_str(line,std::string("max="),std::string(" ")))); - m_ctrl_contrast["step"] = static_cast(stoi(get_str_between_two_str(line,std::string("step="),std::string(" ")))); + m_ctrl_contrast["min"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("min="),std::string(" ")))); + m_ctrl_contrast["max"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("max="),std::string(" ")))); + m_ctrl_contrast["step"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("step="),std::string(" ")))); qCDebug(webcam_settings_kcm) << "VideoDevice::initializeCtrl Contrast: value: " << QString::number(m_ctrl_contrast["value"]) << "min: " << m_ctrl_contrast["min"] << "max: " << m_ctrl_contrast["max"] @@ -90,9 +106,9 @@ void VideoDevice::initializeCtrl(const QString ctrl_label) { m_ctrl_sharpness["step"] = 0; if (!is_defined){return;} m_ctrl_sharpness["value"] = m_current_camera->imageProcessing()->sharpeningLevel(); - m_ctrl_sharpness["min"] = static_cast(stoi(get_str_between_two_str(line,std::string("min="),std::string(" ")))); - m_ctrl_sharpness["max"] = static_cast(stoi(get_str_between_two_str(line,std::string("max="),std::string(" ")))); - m_ctrl_sharpness["step"] = static_cast(stoi(get_str_between_two_str(line,std::string("step="),std::string(" ")))); + m_ctrl_sharpness["min"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("min="),std::string(" ")))); + m_ctrl_sharpness["max"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("max="),std::string(" ")))); + m_ctrl_sharpness["step"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("step="),std::string(" ")))); qCDebug(webcam_settings_kcm) << "VideoDevice::initializeCtrl Sharpness: value: " << QString::number(m_ctrl_sharpness["value"]) << "min: " << m_ctrl_sharpness["min"] << "max: " << m_ctrl_sharpness["max"] @@ -106,9 +122,9 @@ void VideoDevice::initializeCtrl(const QString ctrl_label) { m_ctrl_saturation["step"] = 0; if (!is_defined){return;} m_ctrl_saturation["value"] = m_current_camera->imageProcessing()->contrast(); - m_ctrl_saturation["min"] = static_cast(stoi(get_str_between_two_str(line,std::string("min="),std::string(" ")))); - m_ctrl_saturation["max"] = static_cast(stoi(get_str_between_two_str(line,std::string("max="),std::string(" ")))); - m_ctrl_saturation["step"] = static_cast(stoi(get_str_between_two_str(line,std::string("step="),std::string(" ")))); + m_ctrl_saturation["min"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("min="),std::string(" ")))); + m_ctrl_saturation["max"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("max="),std::string(" ")))); + m_ctrl_saturation["step"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("step="),std::string(" ")))); qCDebug(webcam_settings_kcm) << "VideoDevice::initializeCtrl Saturation: value: " << QString::number(m_ctrl_saturation["value"]) << "min: " << m_ctrl_saturation["min"] << "max: " << m_ctrl_saturation["max"] @@ -168,8 +184,8 @@ void VideoDevice::initializeCtrl(const QString ctrl_label) { m_ctrl_auto_focus["value"] = 0; m_ctrl_auto_focus["default"] = 0; if (!is_defined){return;} - m_ctrl_auto_focus["value"] = stoi(get_str_between_two_str(line,std::string("value="),std::string(" "))); - m_ctrl_auto_focus["default"] = stoi(get_str_between_two_str(line,std::string("default="),std::string(" "))); + m_ctrl_auto_focus["value"] = stoi(get_str_between_two_str(line.toStdString(),std::string("value="),std::string(" "))); + m_ctrl_auto_focus["default"] = stoi(get_str_between_two_str(line.toStdString(),std::string("default="),std::string(" "))); qCDebug(webcam_settings_kcm) << "VideoDevice::initializeCtrl Auto Focus: value: " << m_ctrl_auto_focus["value"] << "default: " << m_ctrl_auto_focus["default"]; } @@ -181,11 +197,11 @@ void VideoDevice::initializeCtrl(const QString ctrl_label) { m_ctrl_focus["max"] = 0; m_ctrl_focus["step"] = 0; if (!is_defined){return;} - m_ctrl_focus["value"] = static_cast(stoi(get_str_between_two_str(line,std::string("value="),std::string(" ")))); - m_ctrl_focus["default"] = static_cast(stoi(get_str_between_two_str(line,std::string("default="),std::string(" ")))); - m_ctrl_focus["min"] = static_cast(stoi(get_str_between_two_str(line,std::string("min="),std::string(" ")))); - m_ctrl_focus["max"] = static_cast(stoi(get_str_between_two_str(line,std::string("max="),std::string(" ")))); - m_ctrl_focus["step"] = static_cast(stoi(get_str_between_two_str(line,std::string("step="),std::string(" ")))); + m_ctrl_focus["value"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("value="),std::string(" ")))); + m_ctrl_focus["default"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("default="),std::string(" ")))); + m_ctrl_focus["min"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("min="),std::string(" ")))); + m_ctrl_focus["max"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("max="),std::string(" ")))); + m_ctrl_focus["step"] = static_cast(stoi(get_str_between_two_str(line.toStdString(),std::string("step="),std::string(" ")))); qCDebug(webcam_settings_kcm) << "VideoDevice::initializeCtrl Focus Absolute: value: " << QString::number(m_ctrl_focus["value"]) << "min: " << m_ctrl_focus["min"] << "max: " << m_ctrl_focus["max"] @@ -197,7 +213,7 @@ void VideoDevice::initializeCtrl(const QString ctrl_label) { void VideoDevice::initializeFormats() { qCDebug(webcam_settings_kcm) << "VideoDevice::initializeFormats"; qCDebug(webcam_settings_kcm) << "Initializing pixel formats for video device with path " << m_device_path; - + std::string current_fmt,current_resolution,current_width,current_height; if (m_is_dummy_device){ QStringList list = QStringList(); list.append("UNKOWN"); @@ -211,12 +227,19 @@ void VideoDevice::initializeFormats() { } else { int i = 0; std::string cmd; - cmd = std::string("v4l2-ctl -d " + m_device_path.toStdString() + " --get-fmt-video | grep \"Pixel Format\""); - std::string current_fmt = get_str_between_two_str(exec_cmd(cmd)," \'","\' "); - cmd = std::string("v4l2-ctl -d " + m_device_path.toStdString() + " --get-fmt-video | grep \"Width/Height\""); - std::string current_resolution = get_str_between_two_str(exec_cmd(cmd),": ","\n"); - std::string current_width = get_str_left_of_substr(current_resolution,"/"); - std::string current_height = get_str_right_of_substr(current_resolution,"/"); + cmd = std::string("v4l2-ctl -d " + m_device_path.toStdString() + " --get-fmt-video"); + QString cmdoutput = QString::fromStdString(exec_cmd(cmd)); + QStringList lines = cmdoutput.split("\n"); + for (const QString & line : lines) { + if (line.contains("Pixel Format")) { + current_fmt = get_str_between_two_str(line.toStdString()," \'","\' "); + } + if (line.contains("Width/Height")) { + current_resolution = get_str_between_two_str(line.toStdString(),": ","\n"); + current_width = get_str_left_of_substr(current_resolution,"/"); + current_height = get_str_right_of_substr(current_resolution,"/"); + } + } qCDebug(webcam_settings_kcm) << "Current format " << QString::fromStdString(current_fmt) << QString::fromStdString(current_width) << QString::fromStdString(current_height); diff --git a/VideoDevice.h b/src/VideoDevice.h similarity index 98% rename from VideoDevice.h rename to src/VideoDevice.h index 9967d54..1508fae 100644 --- a/VideoDevice.h +++ b/src/VideoDevice.h @@ -23,7 +23,7 @@ class VideoDevice : public QObject { QString getVideoDeviceSerialId(){return m_device_serial;}; QString getVideoDevicePath(){return m_device_path;}; void initializeCtrls(); - void initializeCtrl(const QString); + void initializeCtrl(const QString, const QString); void initializeFormats(); QStringList getFormatList(){return m_format_list;}; bool setFormatIndex(int); diff --git a/helpers.cpp b/src/helpers.cpp similarity index 100% rename from helpers.cpp rename to src/helpers.cpp diff --git a/helpers.h b/src/helpers.h similarity index 100% rename from helpers.h rename to src/helpers.h diff --git a/package/contents/ui/main.qml b/src/package/contents/ui/main.qml similarity index 100% rename from package/contents/ui/main.qml rename to src/package/contents/ui/main.qml diff --git a/package/metadata.desktop b/src/package/metadata.desktop similarity index 100% rename from package/metadata.desktop rename to src/package/metadata.desktop diff --git a/udevhelper.actions b/src/udevhelper.actions similarity index 100% rename from udevhelper.actions rename to src/udevhelper.actions