Skip to content

Commit

Permalink
Merge pull request #322 from RichardTea/glscope
Browse files Browse the repository at this point in the history
New OpenGL-based Oscilloscope
  • Loading branch information
docsteer authored Apr 28, 2024
2 parents 7223a92 + 0bfb548 commit 701b7a2
Show file tree
Hide file tree
Showing 50 changed files with 5,380 additions and 2,762 deletions.
29 changes: 20 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,9 @@ set(SACNVIEW_HEADER_PATHS
set(SACNVIEW_HEADERS
src/ui/mdimainwindow.h
src/sacn/securesacn.h
src/widgets/monitorspinbox.h
src/widgets/qpushbutton_rightclick.h
src/widgets/qspinbox_resizetocontent.h
src/ui/newversiondialog.h
src/ui/scopewindow.h
src/ui/universeview.h
src/sacn/sacnsynchronization.h
src/models/sacnsynclistmodel.h
Expand All @@ -78,7 +76,6 @@ set(SACNVIEW_HEADERS
src/sacn/sacnsender.h
src/ui/configureperchanpriodlg.h
src/widgets/gridwidget.h
src/widgets/scopewidget.h
src/ui/aboutdialog.h
src/sacn/sacneffectengine.h
src/models/sacnuniverselistmodel.h
Expand All @@ -102,13 +99,15 @@ set(SACNVIEW_HEADERS
src/ui/multiview.h
src/models/sacnsourcetablemodel.h
src/models/csvmodelexport.h
src/widgets/glscopewidget.h
src/widgets/steppedspinbox.h
)

set(SACNVIEW_SOURCES
sacnview.natvis
src/commandline.cpp
src/firewallcheck.cpp
src/ipc.cpp
src/main.cpp
src/preferences.cpp
src/models/sacnsynclistmodel.cpp
src/models/sacndiscoveredsourcelistmodel.cpp
Expand All @@ -133,7 +132,6 @@ set(SACNVIEW_SOURCES
src/ui/configureperchanpriodlg.cpp
src/ui/newversiondialog.cpp
src/ui/mdimainwindow.cpp
src/ui/scopewindow.cpp
src/ui/universeview.cpp
src/ui/nicselectdialog.cpp
src/ui/preferencesdialog.cpp
Expand All @@ -145,21 +143,24 @@ set(SACNVIEW_SOURCES
src/ui/bigdisplay.cpp
src/ui/addmultidialog.cpp
src/ui/multiview.cpp
src/widgets/monitorspinbox.cpp
src/ui/glscopewindow.cpp
src/widgets/qpushbutton_rightclick.cpp
src/widgets/qspinbox_resizetocontent.cpp
src/widgets/steppedspinbox.cpp
src/widgets/universedisplay.cpp
src/widgets/gridwidget.cpp
src/widgets/scopewidget.cpp
src/widgets/clssnapshot.cpp
src/widgets/grideditwidget.cpp
src/widgets/glscopewidget.cpp
src/models/sacnsourcetablemodel.cpp
src/models/csvmodelexport.cpp
)

# Prepend the path to all sources
LIST(TRANSFORM SACNVIEW_SOURCES PREPEND ${CMAKE_CURRENT_LIST_DIR}/)

set(SACNVIEW_FORMS
ui/mdimainwindow.ui
ui/scopewindow.ui
ui/universeview.ui
ui/nicselectdialog.ui
ui/preferencesdialog.ui
Expand Down Expand Up @@ -199,8 +200,18 @@ set(CMAKE_AUTORCC ON)
# Find Qt 5.15 or Qt 6
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui Network Multimedia Widgets REQUIRED)
set(SACNVIEW_QT_LIBRARIES
Qt::Core Qt::Gui Qt::Network Qt::Multimedia Qt::Widgets
)

# Qt 6 moved some components
if (Qt6_FOUND)
find_package(Qt6 COMPONENTS OpenGLWidgets REQUIRED)
list(APPEND SACNVIEW_QT_LIBRARIES Qt::OpenGLWidgets)
endif()

add_executable(sACNView WIN32
src/main.cpp
${SACNVIEW_HEADERS}
${SACNVIEW_SOURCES}
${SACNVIEW_FORMS}
Expand All @@ -219,7 +230,7 @@ set_target_properties(sACNView PROPERTIES
)

# Link Qt libraries
target_link_libraries(sACNView PRIVATE Qt::Core Qt::Gui Qt::Network Qt::Multimedia Qt::Widgets)
target_link_libraries(sACNView PRIVATE ${SACNVIEW_QT_LIBRARIES})

# Link PCap/WinPCap libraries
target_link_libraries(sACNView PRIVATE ${PCAP_LIBS})
Expand Down
17 changes: 10 additions & 7 deletions sACNView.pro
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@

QT += core gui network multimedia widgets

greaterThan(QT_MAJOR_VERSION, 5) {
QT += openglwidgets
}

TARGET = sACNView
TEMPLATE = app
DESCRIPTION = $$shell_quote("A tool for sending and receiving the Streaming ACN control protocol")
Expand Down Expand Up @@ -89,12 +93,12 @@ INCLUDEPATH += src \

SOURCES += src/main.cpp\
src/sacn/securesacn.cpp \
src/widgets/monitorspinbox.cpp \
src/widgets/steppedspinbox.cpp \
src/widgets/qpushbutton_rightclick.cpp \
src/widgets/qspinbox_resizetocontent.cpp \
src/ui/newversiondialog.cpp \
src/ui/mdimainwindow.cpp \
src/ui/scopewindow.cpp \
src/ui/glscopewindow.cpp \
src/ui/universeview.cpp \
src/ui/multiview.cpp \
src/sacn/sacnsynchronization.cpp \
Expand All @@ -114,7 +118,7 @@ SOURCES += src/main.cpp\
src/sacn/sacnsender.cpp \
src/ui/configureperchanpriodlg.cpp \
src/widgets/gridwidget.cpp \
src/widgets/scopewidget.cpp \
src/widgets/glscopewidget.cpp \
src/ui/aboutdialog.cpp \
src/sacn/sacneffectengine.cpp \
src/models/sacnuniverselistmodel.cpp \
Expand All @@ -138,11 +142,11 @@ SOURCES += src/main.cpp\

HEADERS += src/ui/mdimainwindow.h \
src/sacn/securesacn.h \
src/widgets/monitorspinbox.h \
src/widgets/steppedspinbox.h \
src/widgets/qpushbutton_rightclick.h \
src/widgets/qspinbox_resizetocontent.h \
src/ui/newversiondialog.h \
src/ui/scopewindow.h \
src/ui/glscopewindow.h \
src/ui/universeview.h \
src/ui/multiview.h \
src/sacn/sacnsynchronization.h \
Expand All @@ -164,7 +168,7 @@ HEADERS += src/ui/mdimainwindow.h \
src/sacn/sacnsender.h \
src/ui/configureperchanpriodlg.h \
src/widgets/gridwidget.h \
src/widgets/scopewidget.h \
src/widgets/glscopewidget.h \
src/ui/aboutdialog.h \
src/sacn/sacneffectengine.h \
src/models/sacnuniverselistmodel.h \
Expand All @@ -189,7 +193,6 @@ HEADERS += src/ui/mdimainwindow.h \
src/widgets/grideditwidget.h

FORMS += ui/mdimainwindow.ui \
ui/scopewindow.ui \
ui/universeview.ui \
ui/multiview.ui \
ui/nicselectdialog.ui \
Expand Down
12 changes: 12 additions & 0 deletions sacnview.natvis
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="CID">
<DisplayString>{{{(m_cid[0]),nvoXb}{(m_cid[1]),nvoXb}{(m_cid[2]),nvoXb}{(m_cid[3]),nvoXb}-{(m_cid[4]),nvoXb}{(m_cid[5]),nvoXb}-{(m_cid[6]),nvoXb}{(m_cid[7]),nvoXb}-{(m_cid[8]),nvoXb}{(m_cid[9]),nvoXb}-{(m_cid[10]),nvoXb}{(m_cid[11]),nvoXb}{(m_cid[12]),nvoXb}{(m_cid[13]),nvoXb}{(m_cid[14]),nvoXb}{(m_cid[15]),nvoXb}}}</DisplayString>
</Type>
<Type Name="DCID">
<DisplayString>{m_cid}</DisplayString>
</Type>
<Type Name="QHostAddress">
<DisplayString>{{ IPv4Addr = {(((uint32_t*)d.d)[8]>>24)&amp;0xff,d}.{(((uint32_t*)d.d)[8]>>16)&amp;0xff,d}.{(((uint32_t*)d.d)[8]>>8)&amp;0xff,d}.{(((uint32_t*)d.d)[8]>>0)&amp;0xff,d} }}</DisplayString>
</Type>
</AutoVisualizer>
11 changes: 11 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,15 @@
#include <QStatusBar>
#include <QStyleFactory>
#include <QStandardPaths>
#include <QSurfaceFormat>

#include "themes.h"
#include "sacnsender.h"
#include "newversiondialog.h"
#include "firewallcheck.h"
#include "ipc.h"
#include "translations/translationdialog.h"

#ifdef USE_BREAKPAD
#include "crash_handler.h"
#include "crash_test.h"
Expand All @@ -46,6 +49,13 @@ int main(int argc, char *argv[])
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);

// Share the OpenGL Contexts
QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
{
QSurfaceFormat format;
QSurfaceFormat::setDefaultFormat(format);
}

QApplication a(argc, argv);

a.setApplicationName(APP_NAME);
Expand Down Expand Up @@ -165,6 +175,7 @@ int main(int argc, char *argv[])

int result = a.exec();

w->saveSubWindows();
delete w;

Preferences::Instance().savePreferences();
Expand Down
Loading

0 comments on commit 701b7a2

Please sign in to comment.