Skip to content

Commit ebdd25f

Browse files
committed
Import obs-ptz source into plugin template
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
1 parent b4c9b4a commit ebdd25f

File tree

86 files changed

+16345
-114
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

+16345
-114
lines changed

CMakeLists.txt

Lines changed: 97 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ 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="${_git_version}")
67

78
option(ENABLE_FRONTEND_API "Use obs-frontend-api for UI functionality" ON)
89
option(ENABLE_QT "Use Qt functionality" ON)
@@ -22,8 +23,8 @@ if(ENABLE_FRONTEND_API)
2223
endif()
2324

2425
if(ENABLE_QT)
25-
find_package(Qt6 COMPONENTS Widgets Core)
26-
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets)
26+
find_package(Qt6 COMPONENTS Widgets Core Svg Network Xml)
27+
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE Qt6::Core Qt6::Widgets Qt6::Svg Qt6::Network Qt6::Xml)
2728
target_compile_options(
2829
${CMAKE_PROJECT_NAME}
2930
PRIVATE $<$<C_COMPILER_ID:Clang,AppleClang>:-Wno-quoted-include-in-framework-header -Wno-comma>
@@ -34,6 +35,99 @@ if(ENABLE_QT)
3435
)
3536
endif()
3637

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

39133
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)