Skip to content

Commit dffdb84

Browse files
committed
Import existing source into plugin template
1 parent 4f26f66 commit dffdb84

File tree

86 files changed

+16357
-83
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+16357
-83
lines changed

.github/workflows/push.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ on:
66
- master
77
- main
88
- 'release/**'
9+
- ci-test
910
tags:
1011
- '*'
1112
permissions:
1213
contents: write
1314
jobs:
1415
check-format:
1516
name: Check Formatting 🔍
16-
if: github.ref_name == 'master' || github.ref_name == 'main'
17+
if: github.ref_name == 'master' || github.ref_name == 'main' || github.ref_name == 'ci-test'
1718
uses: ./.github/workflows/check-format.yaml
1819
permissions:
1920
contents: read

CMakeLists.txt

Lines changed: 107 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,15 @@ cmake_minimum_required(VERSION 3.28...3.30)
33
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/common/bootstrap.cmake" NO_POLICY_SCOPE)
44

55
project(${_name} VERSION ${_version})
6+
add_compile_definitions(PLUGIN_NAME="${_name}" PLUGIN_VERSION="${_version}")
67

7-
option(ENABLE_FRONTEND_API "Use obs-frontend-api for UI functionality" ON)
8-
option(ENABLE_QT "Use Qt functionality" ON)
8+
set(ENABLE_FRONTEND_API ON)
9+
set(ENABLE_QT ON)
10+
option(ENABLE_SERIALPORT "Enable UART connected camera support" OFF)
11+
option(ENABLE_ONVIF "Enable ONVIF camera support" OFF)
12+
option(USE_SDL2_STATIC "Use SDL2 static library" ON)
13+
option(ENABLE_JOYSTICK "Enable Joystick support" OFF)
14+
option(ENABLE_USB_CAM "Enable USB camera support" OFF)
915

1016
include(compilerconfig)
1117
include(defaults)
@@ -22,8 +28,8 @@ if(ENABLE_FRONTEND_API)
2228
endif()
2329

2430
if(ENABLE_QT)
25-
find_package(Qt6 COMPONENTS Widgets Core)
26-
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets)
31+
find_package(Qt6 COMPONENTS Widgets Core Svg Network Xml)
32+
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets Qt6::Svg Qt6::Network Qt6::Xml)
2733
target_compile_options(
2834
${CMAKE_PROJECT_NAME}
2935
PRIVATE $<$<C_COMPILER_ID:Clang,AppleClang>:-Wno-quoted-include-in-framework-header -Wno-comma>
@@ -34,6 +40,102 @@ if(ENABLE_QT)
3440
)
3541
endif()
3642

37-
target_sources(${CMAKE_PROJECT_NAME} PRIVATE src/plugin-main.c)
43+
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src)
44+
target_sources(
45+
${CMAKE_PROJECT_NAME}
46+
PRIVATE src/ptz-controls.ui
47+
src/settings.ui
48+
src/ptz-controls.qrc
49+
src/ptz.c
50+
src/ptz-controls.cpp
51+
src/ptz-device.cpp
52+
src/settings.cpp
53+
src/ptz-visca.cpp
54+
src/ptz-visca-udp.cpp
55+
src/ptz-visca-tcp.cpp
56+
src/protocol-helpers.cpp
57+
src/ptz-action-source.c
58+
src/circularlistview.cpp
59+
src/touch-control.cpp
60+
src/imported/qt-wrappers.cpp
61+
src/imported/obs-app.cpp
62+
src/imported/properties-view.cpp
63+
src/imported/vertical-scroll-area.cpp
64+
src/imported/double-slider.cpp
65+
src/imported/slider-ignorewheel.cpp
66+
src/imported/spinbox-ignorewheel.cpp
67+
src/ptz.h
68+
src/ptz-controls.hpp
69+
src/ptz-device.hpp
70+
src/settings.hpp
71+
src/ptz-visca.hpp
72+
src/ptz-visca-udp.hpp
73+
src/ptz-visca-tcp.hpp
74+
src/protocol-helpers.hpp
75+
src/circularlistview.hpp
76+
src/touch-control.hpp
77+
src/imported/qt-wrappers.hpp
78+
src/imported/obs-app.hpp
79+
src/imported/properties-view.hpp
80+
src/imported/properties-view.moc.hpp
81+
src/imported/vertical-scroll-area.hpp
82+
src/imported/double-slider.hpp
83+
src/imported/slider-ignorewheel.hpp
84+
src/imported/spinbox-ignorewheel.hpp)
85+
86+
if(ENABLE_SERIALPORT)
87+
find_package(Qt${_QT_VERSION} COMPONENTS SerialPort)
88+
if(Qt${_QT_VERSION}SerialPort_FOUND)
89+
add_compile_definitions(ENABLE_SERIALPORT)
90+
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt::SerialPort)
91+
target_sources(
92+
${CMAKE_PROJECT_NAME}
93+
PRIVATE src/uart-wrapper.cpp src/uart-wrapper.hpp src/ptz-visca-uart.cpp
94+
src/ptz-visca-uart.hpp src/ptz-pelco.cpp src/ptz-pelco.hpp)
95+
endif()
96+
endif()
97+
98+
if(ENABLE_JOYSTICK)
99+
if(USE_SDL2_STATIC)
100+
find_package(SDL2 COMPONENTS SDL2-static REQUIRED)
101+
set(SDL2_TARGET SDL2::SDL2-static)
102+
else()
103+
find_package(SDL2 REQUIRED)
104+
set(SDL2_TARGET SDL2::SDL2)
105+
endif()
106+
if(SDL2_FOUND)
107+
add_compile_definitions(ENABLE_JOYSTICK SDL_SUPPORTED)
108+
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ${SDL2_INCLUDE_DIRS})
109+
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE ${SDL2_TARGET})
110+
target_sources(
111+
${CMAKE_PROJECT_NAME}
112+
PRIVATE src/imported/qjoysticks/QJoysticks.cpp
113+
src/imported/qjoysticks/QJoysticks.h
114+
src/imported/qjoysticks/JoysticksCommon.h
115+
src/imported/qjoysticks/SDL_Joysticks.cpp
116+
src/imported/qjoysticks/SDL_Joysticks.h
117+
src/imported/qjoysticks/qjoysticks-res.qrc
118+
src/imported/qjoysticks/VirtualJoystick.cpp
119+
src/imported/qjoysticks/VirtualJoystick.h)
120+
endif()
121+
endif()
122+
123+
if(ENABLE_USB_CAM)
124+
add_compile_definitions(ENABLE_USB_CAM)
125+
target_sources(
126+
${CMAKE_PROJECT_NAME}
127+
PRIVATE src/ptz-usb-cam.cpp
128+
src/ptz-usb-cam.hpp
129+
)
130+
endif()
131+
132+
if(ENABLE_ONVIF)
133+
add_compile_definitions(ENABLE_ONVIF)
134+
target_sources(
135+
${CMAKE_PROJECT_NAME}
136+
PRIVATE src/ptz-onvif.cpp
137+
src/ptz-onvif.hpp
138+
)
139+
endif()
38140

39141
set_target_properties_plugin(${CMAKE_PROJECT_NAME} PROPERTIES OUTPUT_NAME ${_name})

src/circularlistview.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#include <QListView>
2+
#include "circularlistview.hpp"
3+
4+
void CircularListView::cursorUp()
5+
{
6+
auto next = moveCursor(MoveUp, Qt::NoModifier);
7+
if (next.isValid())
8+
setCurrentIndex(next);
9+
}
10+
11+
void CircularListView::cursorDown()
12+
{
13+
auto next = moveCursor(MoveDown, Qt::NoModifier);
14+
if (next.isValid())
15+
setCurrentIndex(next);
16+
}
17+
18+
QModelIndex CircularListView::moveCursor(QAbstractItemView::CursorAction action,
19+
Qt::KeyboardModifiers modifiers)
20+
{
21+
auto m = model();
22+
auto index = currentIndex();
23+
if (m && m->rowCount() > 0 && index.isValid()) {
24+
auto last = m->rowCount() - 1;
25+
if ((index.row() <= 0) && (action == MoveUp))
26+
return m->index(last, index.column(), index.parent());
27+
if ((index.row() >= last) && (action == MoveDown))
28+
return m->index(0, index.column(), index.parent());
29+
}
30+
return QListView::moveCursor(action, modifiers);
31+
}

src/circularlistview.hpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#pragma once
2+
#include <QListView>
3+
4+
class CircularListView : public QListView {
5+
Q_OBJECT
6+
7+
public:
8+
CircularListView(QWidget *parent = nullptr) : QListView(parent){};
9+
10+
public slots:
11+
void cursorUp();
12+
void cursorDown();
13+
14+
protected:
15+
QModelIndex moveCursor(QAbstractItemView::CursorAction action,
16+
Qt::KeyboardModifiers modifiers);
17+
};

src/icons/focus_auto.svg

Lines changed: 80 additions & 0 deletions
Loading

src/icons/focus_far.svg

Lines changed: 84 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)