From e9b72b442a1af01723b584749fab2b6137fefb46 Mon Sep 17 00:00:00 2001 From: Bruno Herbelin Date: Tue, 25 Oct 2022 00:29:22 +0200 Subject: [PATCH] Cleanup source tree Move all C++ source files in the src subfolder. Adapted the cmake process accordingly and cleanup. --- CMakeLists.txt | 509 ++++++------------ imgui.ini | 25 - ActionManager.cpp => src/ActionManager.cpp | 0 ActionManager.h => src/ActionManager.h | 0 BaseToolkit.cpp => src/BaseToolkit.cpp | 0 BaseToolkit.h => src/BaseToolkit.h | 0 .../BoundingBoxVisitor.cpp | 0 .../BoundingBoxVisitor.h | 0 src/CMakeLists.txt | 272 ++++++++++ CloneSource.cpp => src/CloneSource.cpp | 0 CloneSource.h => src/CloneSource.h | 0 Connection.cpp => src/Connection.cpp | 0 Connection.h => src/Connection.h | 0 ControlManager.cpp => src/ControlManager.cpp | 0 ControlManager.h => src/ControlManager.h | 0 CopyVisitor.cpp => src/CopyVisitor.cpp | 0 CopyVisitor.h => src/CopyVisitor.h | 0 CountVisitor.cpp => src/CountVisitor.cpp | 0 CountVisitor.h => src/CountVisitor.h | 0 Decorations.cpp => src/Decorations.cpp | 0 Decorations.h => src/Decorations.h | 0 DelayFilter.cpp => src/DelayFilter.cpp | 0 DelayFilter.h => src/DelayFilter.h | 0 DeviceSource.cpp => src/DeviceSource.cpp | 0 DeviceSource.h => src/DeviceSource.h | 0 DialogToolkit.cpp => src/DialogToolkit.cpp | 0 DialogToolkit.h => src/DialogToolkit.h | 0 DrawVisitor.cpp => src/DrawVisitor.cpp | 0 DrawVisitor.h => src/DrawVisitor.h | 0 FileDialog.cpp => src/FileDialog.cpp | 0 FileDialog.h => src/FileDialog.h | 0 FrameBuffer.cpp => src/FrameBuffer.cpp | 0 FrameBuffer.h => src/FrameBuffer.h | 0 .../FrameBufferFilter.cpp | 0 .../FrameBufferFilter.h | 0 FrameGrabber.cpp => src/FrameGrabber.cpp | 0 FrameGrabber.h => src/FrameGrabber.h | 0 GarbageVisitor.cpp => src/GarbageVisitor.cpp | 0 GarbageVisitor.h => src/GarbageVisitor.h | 0 GeometryView.cpp => src/GeometryView.cpp | 0 GeometryView.h => src/GeometryView.h | 0 GlmToolkit.cpp => src/GlmToolkit.cpp | 0 GlmToolkit.h => src/GlmToolkit.h | 0 GstToolkit.cpp => src/GstToolkit.cpp | 0 GstToolkit.h => src/GstToolkit.h | 0 ImGuiToolkit.cpp => src/ImGuiToolkit.cpp | 0 ImGuiToolkit.h => src/ImGuiToolkit.h | 2 +- ImGuiVisitor.cpp => src/ImGuiVisitor.cpp | 0 ImGuiVisitor.h => src/ImGuiVisitor.h | 0 ImageFilter.cpp => src/ImageFilter.cpp | 0 ImageFilter.h => src/ImageFilter.h | 0 .../ImageProcessingShader.cpp | 0 .../ImageProcessingShader.h | 0 ImageShader.cpp => src/ImageShader.cpp | 2 +- ImageShader.h => src/ImageShader.h | 0 InfoVisitor.cpp => src/InfoVisitor.cpp | 0 InfoVisitor.h => src/InfoVisitor.h | 0 Interpolator.cpp => src/Interpolator.cpp | 0 Interpolator.h => src/Interpolator.h | 0 LayerView.cpp => src/LayerView.cpp | 0 LayerView.h => src/LayerView.h | 0 Log.cpp => src/Log.cpp | 0 Log.h => src/Log.h | 0 Loopback.cpp => src/Loopback.cpp | 0 Loopback.h => src/Loopback.h | 0 MediaPlayer.cpp => src/MediaPlayer.cpp | 0 MediaPlayer.h => src/MediaPlayer.h | 0 MediaSource.cpp => src/MediaSource.cpp | 0 MediaSource.h => src/MediaSource.h | 0 Mesh.cpp => src/Mesh.cpp | 0 Mesh.h => src/Mesh.h | 0 Metronome.cpp => src/Metronome.cpp | 0 Metronome.h => src/Metronome.h | 0 Mixer.cpp => src/Mixer.cpp | 0 Mixer.h => src/Mixer.h | 0 MixingGroup.cpp => src/MixingGroup.cpp | 0 MixingGroup.h => src/MixingGroup.h | 0 MixingView.cpp => src/MixingView.cpp | 0 MixingView.h => src/MixingView.h | 0 .../MultiFileRecorder.cpp | 0 .../MultiFileRecorder.h | 0 .../MultiFileSource.cpp | 0 MultiFileSource.h => src/MultiFileSource.h | 0 NetworkSource.cpp => src/NetworkSource.cpp | 0 NetworkSource.h => src/NetworkSource.h | 0 NetworkToolkit.cpp => src/NetworkToolkit.cpp | 0 NetworkToolkit.h => src/NetworkToolkit.h | 0 Overlay.cpp => src/Overlay.cpp | 0 Overlay.h => src/Overlay.h | 0 PatternSource.cpp => src/PatternSource.cpp | 0 PatternSource.h => src/PatternSource.h | 0 PickingVisitor.cpp => src/PickingVisitor.cpp | 0 PickingVisitor.h => src/PickingVisitor.h | 0 Primitives.cpp => src/Primitives.cpp | 0 Primitives.h => src/Primitives.h | 0 Recorder.cpp => src/Recorder.cpp | 0 Recorder.h => src/Recorder.h | 0 RenderSource.cpp => src/RenderSource.cpp | 0 RenderSource.h => src/RenderSource.h | 0 RenderView.cpp => src/RenderView.cpp | 0 RenderView.h => src/RenderView.h | 0 .../RenderingManager.cpp | 0 RenderingManager.h => src/RenderingManager.h | 0 Resource.cpp => src/Resource.cpp | 0 Resource.h => src/Resource.h | 0 Scene.cpp => src/Scene.cpp | 0 Scene.h => src/Scene.h | 0 Screenshot.cpp => src/Screenshot.cpp | 0 Screenshot.h => src/Screenshot.h | 0 SearchVisitor.cpp => src/SearchVisitor.cpp | 0 SearchVisitor.h => src/SearchVisitor.h | 0 Selection.cpp => src/Selection.cpp | 0 Selection.h => src/Selection.h | 0 Session.cpp => src/Session.cpp | 0 Session.h => src/Session.h | 0 SessionCreator.cpp => src/SessionCreator.cpp | 0 SessionCreator.h => src/SessionCreator.h | 0 SessionParser.cpp => src/SessionParser.cpp | 0 SessionParser.h => src/SessionParser.h | 0 SessionSource.cpp => src/SessionSource.cpp | 0 SessionSource.h => src/SessionSource.h | 0 SessionVisitor.cpp => src/SessionVisitor.cpp | 0 SessionVisitor.h => src/SessionVisitor.h | 0 Settings.cpp => src/Settings.cpp | 0 Settings.h => src/Settings.h | 0 Shader.cpp => src/Shader.cpp | 0 Shader.h => src/Shader.h | 0 Source.cpp => src/Source.cpp | 0 Source.h => src/Source.h | 0 SourceCallback.cpp => src/SourceCallback.cpp | 0 SourceCallback.h => src/SourceCallback.h | 0 SourceList.cpp => src/SourceList.cpp | 0 SourceList.h => src/SourceList.h | 0 .../SrtReceiverSource.cpp | 0 .../SrtReceiverSource.h | 0 Stream.cpp => src/Stream.cpp | 0 Stream.h => src/Stream.h | 0 StreamSource.cpp => src/StreamSource.cpp | 0 StreamSource.h => src/StreamSource.h | 0 Streamer.cpp => src/Streamer.cpp | 0 Streamer.h => src/Streamer.h | 0 SystemToolkit.cpp => src/SystemToolkit.cpp | 0 SystemToolkit.h => src/SystemToolkit.h | 0 TextureView.cpp => src/TextureView.cpp | 0 TextureView.h => src/TextureView.h | 0 Timeline.cpp => src/Timeline.cpp | 0 Timeline.h => src/Timeline.h | 0 TransitionView.cpp => src/TransitionView.cpp | 0 TransitionView.h => src/TransitionView.h | 0 UpdateCallback.cpp => src/UpdateCallback.cpp | 0 UpdateCallback.h => src/UpdateCallback.h | 0 .../UserInterfaceManager.cpp | 0 .../UserInterfaceManager.h | 0 VideoBroadcast.cpp => src/VideoBroadcast.cpp | 0 VideoBroadcast.h => src/VideoBroadcast.h | 0 View.cpp => src/View.cpp | 0 View.h => src/View.h | 0 Visitor.h => src/Visitor.h | 0 defines.h => src/defines.h | 0 main.cpp => src/main.cpp | 0 snippets.cpp => src/snippets.cpp | 0 .../tinyxml2Toolkit.cpp | 0 tinyxml2Toolkit.h => src/tinyxml2Toolkit.h | 0 vimix.entitlements | 12 - 164 files changed, 425 insertions(+), 397 deletions(-) delete mode 100644 imgui.ini rename ActionManager.cpp => src/ActionManager.cpp (100%) rename ActionManager.h => src/ActionManager.h (100%) rename BaseToolkit.cpp => src/BaseToolkit.cpp (100%) rename BaseToolkit.h => src/BaseToolkit.h (100%) rename BoundingBoxVisitor.cpp => src/BoundingBoxVisitor.cpp (100%) rename BoundingBoxVisitor.h => src/BoundingBoxVisitor.h (100%) create mode 100644 src/CMakeLists.txt rename CloneSource.cpp => src/CloneSource.cpp (100%) rename CloneSource.h => src/CloneSource.h (100%) rename Connection.cpp => src/Connection.cpp (100%) rename Connection.h => src/Connection.h (100%) rename ControlManager.cpp => src/ControlManager.cpp (100%) rename ControlManager.h => src/ControlManager.h (100%) rename CopyVisitor.cpp => src/CopyVisitor.cpp (100%) rename CopyVisitor.h => src/CopyVisitor.h (100%) rename CountVisitor.cpp => src/CountVisitor.cpp (100%) rename CountVisitor.h => src/CountVisitor.h (100%) rename Decorations.cpp => src/Decorations.cpp (100%) rename Decorations.h => src/Decorations.h (100%) rename DelayFilter.cpp => src/DelayFilter.cpp (100%) rename DelayFilter.h => src/DelayFilter.h (100%) rename DeviceSource.cpp => src/DeviceSource.cpp (100%) rename DeviceSource.h => src/DeviceSource.h (100%) rename DialogToolkit.cpp => src/DialogToolkit.cpp (100%) rename DialogToolkit.h => src/DialogToolkit.h (100%) rename DrawVisitor.cpp => src/DrawVisitor.cpp (100%) rename DrawVisitor.h => src/DrawVisitor.h (100%) rename FileDialog.cpp => src/FileDialog.cpp (100%) rename FileDialog.h => src/FileDialog.h (100%) rename FrameBuffer.cpp => src/FrameBuffer.cpp (100%) rename FrameBuffer.h => src/FrameBuffer.h (100%) rename FrameBufferFilter.cpp => src/FrameBufferFilter.cpp (100%) rename FrameBufferFilter.h => src/FrameBufferFilter.h (100%) rename FrameGrabber.cpp => src/FrameGrabber.cpp (100%) rename FrameGrabber.h => src/FrameGrabber.h (100%) rename GarbageVisitor.cpp => src/GarbageVisitor.cpp (100%) rename GarbageVisitor.h => src/GarbageVisitor.h (100%) rename GeometryView.cpp => src/GeometryView.cpp (100%) rename GeometryView.h => src/GeometryView.h (100%) rename GlmToolkit.cpp => src/GlmToolkit.cpp (100%) rename GlmToolkit.h => src/GlmToolkit.h (100%) rename GstToolkit.cpp => src/GstToolkit.cpp (100%) rename GstToolkit.h => src/GstToolkit.h (100%) rename ImGuiToolkit.cpp => src/ImGuiToolkit.cpp (100%) rename ImGuiToolkit.h => src/ImGuiToolkit.h (99%) rename ImGuiVisitor.cpp => src/ImGuiVisitor.cpp (100%) rename ImGuiVisitor.h => src/ImGuiVisitor.h (100%) rename ImageFilter.cpp => src/ImageFilter.cpp (100%) rename ImageFilter.h => src/ImageFilter.h (100%) rename ImageProcessingShader.cpp => src/ImageProcessingShader.cpp (100%) rename ImageProcessingShader.h => src/ImageProcessingShader.h (100%) rename ImageShader.cpp => src/ImageShader.cpp (99%) rename ImageShader.h => src/ImageShader.h (100%) rename InfoVisitor.cpp => src/InfoVisitor.cpp (100%) rename InfoVisitor.h => src/InfoVisitor.h (100%) rename Interpolator.cpp => src/Interpolator.cpp (100%) rename Interpolator.h => src/Interpolator.h (100%) rename LayerView.cpp => src/LayerView.cpp (100%) rename LayerView.h => src/LayerView.h (100%) rename Log.cpp => src/Log.cpp (100%) rename Log.h => src/Log.h (100%) rename Loopback.cpp => src/Loopback.cpp (100%) rename Loopback.h => src/Loopback.h (100%) rename MediaPlayer.cpp => src/MediaPlayer.cpp (100%) rename MediaPlayer.h => src/MediaPlayer.h (100%) rename MediaSource.cpp => src/MediaSource.cpp (100%) rename MediaSource.h => src/MediaSource.h (100%) rename Mesh.cpp => src/Mesh.cpp (100%) rename Mesh.h => src/Mesh.h (100%) rename Metronome.cpp => src/Metronome.cpp (100%) rename Metronome.h => src/Metronome.h (100%) rename Mixer.cpp => src/Mixer.cpp (100%) rename Mixer.h => src/Mixer.h (100%) rename MixingGroup.cpp => src/MixingGroup.cpp (100%) rename MixingGroup.h => src/MixingGroup.h (100%) rename MixingView.cpp => src/MixingView.cpp (100%) rename MixingView.h => src/MixingView.h (100%) rename MultiFileRecorder.cpp => src/MultiFileRecorder.cpp (100%) rename MultiFileRecorder.h => src/MultiFileRecorder.h (100%) rename MultiFileSource.cpp => src/MultiFileSource.cpp (100%) rename MultiFileSource.h => src/MultiFileSource.h (100%) rename NetworkSource.cpp => src/NetworkSource.cpp (100%) rename NetworkSource.h => src/NetworkSource.h (100%) rename NetworkToolkit.cpp => src/NetworkToolkit.cpp (100%) rename NetworkToolkit.h => src/NetworkToolkit.h (100%) rename Overlay.cpp => src/Overlay.cpp (100%) rename Overlay.h => src/Overlay.h (100%) rename PatternSource.cpp => src/PatternSource.cpp (100%) rename PatternSource.h => src/PatternSource.h (100%) rename PickingVisitor.cpp => src/PickingVisitor.cpp (100%) rename PickingVisitor.h => src/PickingVisitor.h (100%) rename Primitives.cpp => src/Primitives.cpp (100%) rename Primitives.h => src/Primitives.h (100%) rename Recorder.cpp => src/Recorder.cpp (100%) rename Recorder.h => src/Recorder.h (100%) rename RenderSource.cpp => src/RenderSource.cpp (100%) rename RenderSource.h => src/RenderSource.h (100%) rename RenderView.cpp => src/RenderView.cpp (100%) rename RenderView.h => src/RenderView.h (100%) rename RenderingManager.cpp => src/RenderingManager.cpp (100%) rename RenderingManager.h => src/RenderingManager.h (100%) rename Resource.cpp => src/Resource.cpp (100%) rename Resource.h => src/Resource.h (100%) rename Scene.cpp => src/Scene.cpp (100%) rename Scene.h => src/Scene.h (100%) rename Screenshot.cpp => src/Screenshot.cpp (100%) rename Screenshot.h => src/Screenshot.h (100%) rename SearchVisitor.cpp => src/SearchVisitor.cpp (100%) rename SearchVisitor.h => src/SearchVisitor.h (100%) rename Selection.cpp => src/Selection.cpp (100%) rename Selection.h => src/Selection.h (100%) rename Session.cpp => src/Session.cpp (100%) rename Session.h => src/Session.h (100%) rename SessionCreator.cpp => src/SessionCreator.cpp (100%) rename SessionCreator.h => src/SessionCreator.h (100%) rename SessionParser.cpp => src/SessionParser.cpp (100%) rename SessionParser.h => src/SessionParser.h (100%) rename SessionSource.cpp => src/SessionSource.cpp (100%) rename SessionSource.h => src/SessionSource.h (100%) rename SessionVisitor.cpp => src/SessionVisitor.cpp (100%) rename SessionVisitor.h => src/SessionVisitor.h (100%) rename Settings.cpp => src/Settings.cpp (100%) rename Settings.h => src/Settings.h (100%) rename Shader.cpp => src/Shader.cpp (100%) rename Shader.h => src/Shader.h (100%) rename Source.cpp => src/Source.cpp (100%) rename Source.h => src/Source.h (100%) rename SourceCallback.cpp => src/SourceCallback.cpp (100%) rename SourceCallback.h => src/SourceCallback.h (100%) rename SourceList.cpp => src/SourceList.cpp (100%) rename SourceList.h => src/SourceList.h (100%) rename SrtReceiverSource.cpp => src/SrtReceiverSource.cpp (100%) rename SrtReceiverSource.h => src/SrtReceiverSource.h (100%) rename Stream.cpp => src/Stream.cpp (100%) rename Stream.h => src/Stream.h (100%) rename StreamSource.cpp => src/StreamSource.cpp (100%) rename StreamSource.h => src/StreamSource.h (100%) rename Streamer.cpp => src/Streamer.cpp (100%) rename Streamer.h => src/Streamer.h (100%) rename SystemToolkit.cpp => src/SystemToolkit.cpp (100%) rename SystemToolkit.h => src/SystemToolkit.h (100%) rename TextureView.cpp => src/TextureView.cpp (100%) rename TextureView.h => src/TextureView.h (100%) rename Timeline.cpp => src/Timeline.cpp (100%) rename Timeline.h => src/Timeline.h (100%) rename TransitionView.cpp => src/TransitionView.cpp (100%) rename TransitionView.h => src/TransitionView.h (100%) rename UpdateCallback.cpp => src/UpdateCallback.cpp (100%) rename UpdateCallback.h => src/UpdateCallback.h (100%) rename UserInterfaceManager.cpp => src/UserInterfaceManager.cpp (100%) rename UserInterfaceManager.h => src/UserInterfaceManager.h (100%) rename VideoBroadcast.cpp => src/VideoBroadcast.cpp (100%) rename VideoBroadcast.h => src/VideoBroadcast.h (100%) rename View.cpp => src/View.cpp (100%) rename View.h => src/View.h (100%) rename Visitor.h => src/Visitor.h (100%) rename defines.h => src/defines.h (100%) rename main.cpp => src/main.cpp (100%) rename snippets.cpp => src/snippets.cpp (100%) rename tinyxml2Toolkit.cpp => src/tinyxml2Toolkit.cpp (100%) rename tinyxml2Toolkit.h => src/tinyxml2Toolkit.h (100%) delete mode 100644 vimix.entitlements diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a8b0cb..bc8f28d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,15 @@ +##### +##### This file is part of vimix - video live mixer +##### **Copyright** (C) 2019-2022 Bruno Herbelin +##### cmake_minimum_required(VERSION 3.8.2) project(vimix VERSION 0.0.1 LANGUAGES CXX C) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -# use git +##### +##### Use git to read version from tags +##### find_package (Git) if(GIT_EXECUTABLE) execute_process( @@ -26,18 +32,26 @@ if(GIT_EXECUTABLE) add_definitions(-DVIMIX_VERSION_MINOR=${VIMIX_VERSION_MINOR}) add_definitions(-DVIMIX_VERSION_PATCH=${VIMIX_VERSION_PATCH}) message(STATUS "Compiling vimix version ${VIMIX_VERSION_MAJOR}.${VIMIX_VERSION_MINOR}.${VIMIX_VERSION_PATCH}") - else() - message(STATUS "Compiling vimix (unknown version)") endif() endif() -set(CMAKE_INCLUDE_CURRENTDIR ON) -# Find the cmake modules +##### +##### Find the cmake modules +##### + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /usr/share/cmake ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ) include(MacroLogFeature) include(MacroFindGStreamerLibrary) + +##### +##### Configure cmake +##### + +set(BUILD_STATIC_LIBS ON) +set(CMAKE_INCLUDE_CURRENTDIR ON) + if(UNIX) if (APPLE) add_definitions(-DAPPLE) @@ -48,12 +62,18 @@ if(UNIX) set(CMAKE_OSX_ARCHITECTURES "x86_64") set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14") + # CPACK + set(CPACK_SYSTEM_NAME "OSX_${CMAKE_OSX_DEPLOYMENT_TARGET}_${CMAKE_OSX_ARCHITECTURES}") + # find icu4c in OSX (pretty well hidden...) set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:/usr/local/opt/icu4c/lib/pkgconfig") else() add_definitions(-DLINUX) + # CPACK + set(CPACK_SYSTEM_NAME "${CMAKE_HOST_SYSTEM_NAME}") + # linux opengl set(OpenGL_GL_PREFERENCE "GLVND") @@ -68,29 +88,27 @@ elseif(WIN32) add_definitions(-DMINGW32) endif() -# static sub packages in ext -set(BUILD_STATIC_LIBS ON) - ##### ##### Dependencies ##### +# # Basics +# set(CMAKE_THREAD_PREFER_PTHREAD TRUE) find_package(Threads REQUIRED) -find_package(GLIB2) -macro_log_feature(GLIB2_FOUND "GLib" "GTK general-purpose utility library" "http://www.gtk.org" TRUE) - -find_package(GObject) -macro_log_feature(GOBJECT_FOUND "GObject" "GTK object-oriented framework" "http://www.gtk.org" TRUE) - -find_package(PNG REQUIRED) -macro_log_feature(PNG_FOUND "PNG" "Portable Network Graphics" "http://www.libpng.org" TRUE) +find_package(ZLIB REQUIRED) # # GSTREAMER # +find_package(GLIB2 REQUIRED) +macro_log_feature(GLIB2_FOUND "GLib" "GTK general-purpose utility library" "http://www.gtk.org" TRUE) + +find_package(GObject REQUIRED) +macro_log_feature(GOBJECT_FOUND "GObject" "GTK object-oriented framework" "http://www.gtk.org" TRUE) + find_package(GStreamer 1.0.0 COMPONENTS base) macro_log_feature(GSTREAMER_FOUND "GStreamer" "Open Source Multiplatform Multimedia Framework" @@ -115,6 +133,17 @@ macro_log_feature(GSTREAMER_GL_LIBRARY_FOUND "GStreamerPluginsBase" "GStreamer o # Various preprocessor definitions for GST add_definitions(-DGST_DISABLE_XML -DGST_DISABLE_LOADSAVE) +include_directories( + ${GLIB2_INCLUDE_DIR} + ${GSTREAMER_INCLUDE_DIR} + ${GSTREAMER_AUDIO_INCLUDE_DIR} + ${GSTREAMER_VIDEO_INCLUDE_DIR} + ${GSTREAMER_BASE_INCLUDE_DIR} + ${GSTREAMER_APP_INCLUDE_DIR} + ${GSTREAMER_PBUTILS_INCLUDE_DIR} + ${GSTREAMER_GL_INCLUDE_DIR} +) + # # ICU4C # @@ -123,8 +152,17 @@ if (PKG_CONFIG_FOUND) else () find_package(ICU REQUIRED COMPONENTS i18n io uc) endif () + macro_log_feature(ICU_FOUND "ICU" "International Components for Unicode" "http://site.icu-project.org" TRUE) +include_directories( + ${ICU_INCLUDE_DIRS} +) + +link_directories( + ${ICU_LIBRARY_DIRS} +) + # # GLFW3 # @@ -133,15 +171,24 @@ if (PKG_CONFIG_FOUND) else () find_package(glfw3 3.2 REQUIRED) endif() + macro_log_feature(GLFW3_FOUND "glfw3" "Open Source multi-platform library for OpenGL" "http://www.glfw.org" TRUE) +include_directories( + ${GLFW3_INCLUDE_DIRS} +) + +link_directories( + ${GLFW3_LIBRARY_DIRS} +) + # # GLM # if (PKG_CONFIG_FOUND) pkg_check_modules(GLM QUIET glm>=0.9.9) else () - find_package(glm QUIET) + find_package(glm 0.9.9 QUIET) endif() if (GLM_FOUND) @@ -152,13 +199,17 @@ else () message(STATUS "Compiling 'GLM' OpenGL mathematics https://glm.g-truc.net -- ${CMAKE_CURRENT_SOURCE_DIR}/ext/glm") endif() +include_directories( + ${GLM_INCLUDE_DIRS} +) + # # TINY XML 2 # if (PKG_CONFIG_FOUND) pkg_check_modules(TINYXML2 QUIET tinyxml2>=8.0) else () - find_package(tinyxml2 QUIET) + find_package(tinyxml2 8.0 QUIET) endif() if (TINYXML2_FOUND) @@ -170,6 +221,10 @@ else () message(STATUS "Compiling 'TinyXML2' from https://github.com/leethomason/tinyxml2.git -- ${TINYXML2_INCLUDE_DIRS}") endif() +include_directories( + ${TINYXML2_INCLUDE_DIRS} +) + # # STB # @@ -186,6 +241,10 @@ else () message(STATUS "Including 'STB' single-file image and audio processing from https://github.com/nothings/stb -- ${STB_INCLUDE_DIRS}") endif() +include_directories( + ${STB_INCLUDE_DIRS} +) + # # Ableton LINK # @@ -198,46 +257,62 @@ else () message(STATUS "Compiling 'Ableton Link' from https://github.com/Ableton/link -- ${CMAKE_CURRENT_SOURCE_DIR}/ext/link") endif() +include_directories( + ${link_HEADERS} +) + + # # FILE DIALOG: use tinyfiledialog for all except Linux # -if(UNIX) - if (APPLE) - set(TINYFD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd) - add_library(TINYFD "${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd/tinyfiledialogs.c") - message(STATUS "Compiling 'TinyFileDialog' from https://git.code.sf.net/p/tinyfiledialogs/code -- ${TINYFD_INCLUDE_DIR}.") - set(TINYFD_LIBRARY TINYFD) - endif() -else() +if(APPLE OR WIN32) + set(TINYFD_LIBRARIES TINYFD) set(TINYFD_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd) + include_directories( + ${TINYFD_INCLUDE_DIR} + ) add_library(TINYFD "${CMAKE_CURRENT_SOURCE_DIR}/ext/tfd/tinyfiledialogs.c") message(STATUS "Compiling 'TinyFileDialog' from https://git.code.sf.net/p/tinyfiledialogs/code -- ${TINYFD_INCLUDE_DIR}.") - set(TINYFD_LIBRARY TINYFD) endif() # # DIRENT (windows only) if(WIN32) set(DIRENT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/Dirent/include) + include_directories( + ${DIRENT_INCLUDE_DIR} + ) message(STATUS "Including 'Dirent' from https://github.com/tronkko/dirent -- ${DIRENT_INCLUDE_DIR}.") endif() +# show message about found libs +macro_display_feature_log() + ##### -##### Custom built libraries +##### Locally built libraries ##### # # GLAD # +set(GLAD_LIBRARIES GLAD) set(GLAD_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/include) +include_directories( + ${GLAD_INCLUDE_DIRS} +) add_library(GLAD "${CMAKE_CURRENT_SOURCE_DIR}/ext/glad/src/glad.c") message(STATUS "Including 'GLAD' Open source multi-language OpenGL loader https://glad.dav1d.de -- ${GLAD_INCLUDE_DIRS}") # # DEAR IMGUI # +set(IMGUI_LIBRARIES IMGUI IMGUITEXTEDIT) set(IMGUI_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui) set(IMGUI_BACKEND_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui/examples) +include_directories( + ${IMGUI_INCLUDE_DIRS} + ${IMGUI_BACKEND_INCLUDE_DIRS} +) set(IMGUI_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui/imgui.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ext/imgui//imgui_demo.cpp @@ -249,9 +324,18 @@ set(IMGUI_SRCS add_library(IMGUI "${IMGUI_SRCS}") target_compile_definitions(IMGUI PRIVATE "IMGUI_IMPL_OPENGL_LOADER_GLAD") target_compile_definitions(IMGUI PRIVATE "IMGUI_USE_STB_SPRINTF") -set(IMGUI_LIBRARIES IMGUI) message(STATUS "Compiling 'Dear ImGui' from https://github.com/ocornut/imgui.git -- ${IMGUI_INCLUDE_DIRS}") +# +# ImGui Color Text Editor +# +set(IMGUITEXTEDIT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit) +include_directories( + ${IMGUITEXTEDIT_INCLUDE_DIR} +) +add_library(IMGUITEXTEDIT "${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit/TextEditor.cpp") +message(STATUS "Compiling 'ImGuiColorTextEdit' from https://github.com/BalazsJako/ImGuiColorTextEdit -- ${IMGUITEXTEDIT_INCLUDE_DIR}") + # # OSCPack @@ -270,29 +354,29 @@ set(OSCPACK_SRCS ${OSCPACK_PLATFORM_DIR}/NetworkingUtils.cpp ${OSCPACK_PLATFORM_DIR}/UdpSocket.cpp ) +set(OSCPACK_LIBRARIES OSCPACK) set(OSCPACK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/OSCPack) +include_directories( + ${OSCPACK_INCLUDE_DIR} +) add_library(OSCPACK "${OSCPACK_SRCS}") message(STATUS "Compiling 'OSCPack' from http://www.rossbencina.com/code/oscpack -- ${OSCPACK_INCLUDE_DIR}") -# -# ImGui Color Text Editor -# -set(IMGUITEXTEDIT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit) -set(IMGUITEXTEDIT_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/ext/ImGuiColorTextEdit/TextEditor.cpp -) -message(STATUS "Including 'ImGuiColorTextEdit' from https://github.com/BalazsJako/ImGuiColorTextEdit -- ${IMGUITEXTEDIT_INCLUDE_DIR}") -## -## Fonts -## +##### +##### Ressources +##### + +# +# Fonts +# file(GLOB_RECURSE ROBOTO_REGULAR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Regular.ttf") if(NOT ROBOTO_REGULAR) file(GLOB_RECURSE ROBOTO_REGULAR "/usr/share/fonts/*/Roboto-Regular.ttf") message(STATUS "Copy ${ROBOTO_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts") file(COPY ${ROBOTO_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts) - set(ROBOTO_REGULAR "./rsc/fonts/Roboto-Regular.ttf") + set(ROBOTO_REGULAR ${CMAKE_SOURCE_DIR}"/rsc/fonts/Roboto-Regular.ttf") endif() file(GLOB_RECURSE ROBOTO_BOLD RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Bold.ttf") @@ -300,7 +384,7 @@ if(NOT ROBOTO_BOLD) file(GLOB_RECURSE ROBOTO_BOLD "/usr/share/fonts/*/Roboto-Bold.ttf") message(STATUS "Copy ${ROBOTO_BOLD} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts") file(COPY ${ROBOTO_BOLD} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts) - set(ROBOTO_BOLD "./rsc/fonts/Roboto-Bold.ttf") + set(ROBOTO_BOLD ${CMAKE_CURRENT_SOURCE_DIR}"/rsc/fonts/Roboto-Bold.ttf") endif() file(GLOB_RECURSE ROBOTO_ITALIC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Roboto-Italic.ttf") @@ -308,15 +392,15 @@ if(NOT ROBOTO_ITALIC) file(GLOB_RECURSE ROBOTO_ITALIC "/usr/share/fonts/*/Roboto-Italic.ttf") message(STATUS "Copy ${ROBOTO_ITALIC} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts") file(COPY ${ROBOTO_ITALIC} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts) - set(ROBOTO_ITALIC "./rsc/fonts/Roboto-Italic.ttf") + set(ROBOTO_ITALIC ${CMAKE_CURRENT_SOURCE_DIR}"/rsc/fonts/Roboto-Italic.ttf") endif() -file(GLOB_RECURSE HACK_REGULAR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "Hack-Regular.ttf") +file(GLOB_RECURSE HACK_REGULAR RELATIVE ${CMAKE_SOURCE_DIR} "Hack-Regular.ttf") if(NOT HACK_REGULAR) file(GLOB_RECURSE HACK_REGULAR "/usr/share/fonts/*/Hack-Regular.ttf") message(STATUS "Copy ${HACK_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts") file(COPY ${HACK_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts) - set(HACK_REGULAR "./rsc/fonts/Hack-Regular.ttf") + set(HACK_REGULAR "${CMAKE_SOURCE_DIR}/../rsc/fonts/Hack-Regular.ttf") endif() file(GLOB_RECURSE AWESOME_SOLID RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "fa-solid-900.ttf") @@ -324,7 +408,7 @@ if(NOT AWESOME_SOLID) file(GLOB_RECURSE AWESOME_SOLID "/usr/share/fonts/*/fa-solid-900.ttf") message(STATUS "Copy ${AWESOME_SOLID} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts") file(COPY ${AWESOME_SOLID} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts) - set(AWESOME_SOLID "./rsc/fonts/fa-solid-900.ttf") + set(AWESOME_SOLID ${CMAKE_CURRENT_SOURCE_DIR}"/rsc/fonts/fa-solid-900.ttf") endif() @@ -333,128 +417,23 @@ if(NOT AWESOME_REGULAR) file(GLOB_RECURSE AWESOME_REGULAR "/usr/share/fonts/*/fa-regular-400.ttf") message(STATUS "Copy ${AWESOME_REGULAR} to ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts") file(COPY ${AWESOME_REGULAR} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts) - set(AWESOME_REGULAR "./rsc/fonts/fa-regular-400.ttf") + set(AWESOME_REGULAR "../rsc/fonts/fa-regular-400.ttf") endif() -# All done -macro_display_feature_log() - -##### -##### Application -##### - -# Setup the environment include_directories( - ${GSTREAMER_INCLUDE_DIR} - ${GSTREAMER_AUDIO_INCLUDE_DIR} - ${GSTREAMER_VIDEO_INCLUDE_DIR} - ${GSTREAMER_BASE_INCLUDE_DIR} - ${GSTREAMER_APP_INCLUDE_DIR} - ${GSTREAMER_PBUTILS_INCLUDE_DIR} - ${GSTREAMER_GL_INCLUDE_DIR} - ${GLFW3_INCLUDE_DIRS} - ${ICU_INCLUDE_DIRS} - ${GLM_INCLUDE_DIRS} - ${GLIB2_INCLUDE_DIR} - ${GLAD_INCLUDE_DIRS} - ${IMGUI_INCLUDE_DIRS} - ${IMGUI_BACKEND_INCLUDE_DIRS} - ${IMGUITEXTEDIT_INCLUDE_DIR} - ${TINYXML2_INCLUDE_DIRS} - ${TINYFD_INCLUDE_DIR} - ${STB_INCLUDE_DIRS} - ${DIRENT_INCLUDE_DIR} - ${OSCPACK_INCLUDE_DIR} - ${link_HEADERS} -) - -link_directories( - ${GLFW3_LIBRARY_DIRS} - ${ICU_LIBRARY_DIRS} + "${CMAKE_CURRENT_SOURCE_DIR}/rsc/fonts" ) -set(VMIX_BINARY "vimix") -set(VMIX_SRCS - main.cpp - Log.cpp - BaseToolkit.cpp - Shader.cpp - ImageShader.cpp - ImageProcessingShader.cpp - UpdateCallback.cpp - Scene.cpp - Primitives.cpp - Mesh.cpp - Decorations.cpp - View.cpp - RenderView.cpp - GeometryView.cpp - MixingView.cpp - MixingGroup.cpp - LayerView.cpp - TextureView.cpp - TransitionView.cpp - Source.cpp - CloneSource.cpp - RenderSource.cpp - SourceCallback.cpp - SourceList.cpp - Session.cpp - Selection.cpp - SessionSource.cpp - SessionVisitor.cpp - Interpolator.cpp - SessionCreator.cpp - SessionParser.cpp - Mixer.cpp - FrameGrabber.cpp - Recorder.cpp - Streamer.cpp - Loopback.cpp - Settings.cpp - Screenshot.cpp - Resource.cpp - Timeline.cpp - Stream.cpp - MediaPlayer.cpp - MediaSource.cpp - StreamSource.cpp - PatternSource.cpp - DeviceSource.cpp - NetworkSource.cpp - MultiFileSource.cpp - FrameBuffer.cpp - FrameBufferFilter.cpp - ImageFilter.cpp - DelayFilter.cpp - RenderingManager.cpp - UserInterfaceManager.cpp - PickingVisitor.cpp - BoundingBoxVisitor.cpp - DrawVisitor.cpp - SearchVisitor.cpp - ImGuiToolkit.cpp - ImGuiVisitor.cpp - InfoVisitor.cpp - CountVisitor.cpp - GstToolkit.cpp - GlmToolkit.cpp - SystemToolkit.cpp - DialogToolkit.cpp - tinyxml2Toolkit.cpp - NetworkToolkit.cpp - Connection.cpp - ActionManager.cpp - Overlay.cpp - Metronome.cpp - ControlManager.cpp - VideoBroadcast.cpp - SrtReceiverSource.cpp - MultiFileRecorder.cpp -) +# +# CMake RC module +# +# Include the CMake RC module +include(CMakeRC) +message(STATUS "Using 'CMakeRC ' from https://github.com/vector-of-bool/cmrc.git -- ${CMAKE_MODULE_PATH}.") +# set the files to package set(VMIX_RSC_FILES ${HACK_REGULAR} ${ROBOTO_REGULAR} @@ -559,7 +538,7 @@ set(VMIX_RSC_FILES ./rsc/mesh/icon_sequence.ply ./rsc/mesh/icon_receive.ply ./rsc/mesh/h_line.ply - ./rsc/mesh/h_mark.ply + ./rsc/mesh/h_mark.ply ./rsc/shaders/filters/default.glsl ./rsc/shaders/filters/bloom.glsl ./rsc/shaders/filters/bokeh.glsl @@ -606,86 +585,12 @@ set(VMIX_RSC_FILES ./rsc/shaders/filters/logo.glsl ) -# Include the CMake RC module -include(CMakeRC) cmrc_add_resource_library(vmix-resources ALIAS vmix::rc NAMESPACE vmix WHENCE rsc ${VMIX_RSC_FILES}) -message(STATUS "Using 'CMakeRC ' from https://github.com/vector-of-bool/cmrc.git -- ${CMAKE_MODULE_PATH}.") - -### DEFINE THE TARGET (OS specific) - -IF(APPLE) - - # set icon - set(MACOSX_BUNDLE_ICON vimix.icns) - set(MACOSX_BUNDLE_ICON_FILE ${CMAKE_SOURCE_DIR}/osx/${MACOSX_BUNDLE_ICON}) - # set where in the bundle to put the icns file - set_source_files_properties(${MACOSX_BUNDLE_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) - - # create the application - add_executable(${VMIX_BINARY} MACOSX_BUNDLE - ${VMIX_SRCS} - ${IMGUITEXTEDIT_SRC} - ${MACOSX_BUNDLE_ICON_FILE} - ) - - # set the Info.plist file - set(MACOSX_BUNDLE_PLIST_FILE ${CMAKE_SOURCE_DIR}/osx/Info.plist) - set_target_properties(${VMIX_BINARY} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${MACOSX_BUNDLE_PLIST_FILE}) - - set(PLATFORM_LIBS - "-framework CoreFoundation" - "-framework Appkit" - ) - -ELSE(APPLE) - - link_directories (${GTK3_LIBRARY_DIRS}) - - add_executable(${VMIX_BINARY} - ${VMIX_SRCS} - ${IMGUITEXTEDIT_SRC} - ) - - set(PLATFORM_LIBS - GTK::GTK - ) - -ENDIF(APPLE) - -### COMPILE THE TARGET (all OS) - -set_property(TARGET ${VMIX_BINARY} PROPERTY CXX_STANDARD 17) -set_property(TARGET ${VMIX_BINARY} PROPERTY C_STANDARD 11) - -target_compile_definitions(${VMIX_BINARY} PUBLIC "IMGUI_IMPL_OPENGL_LOADER_GLAD") - -target_link_libraries(${VMIX_BINARY} LINK_PRIVATE - vmix::rc - ${GLM_LIBRARIES} - GLAD - OSCPACK - ${IMGUI_LIBRARIES} - ${TINYFD_LIBRARY} - ${GLFW3_LIBRARIES} - ${TINYXML2_LIBRARIES} - ${ICU_LIBRARIES} - ${CMAKE_DL_LIBS} - ${GOBJECT_LIBRARIES} - ${GSTREAMER_LIBRARY} - ${GSTREAMER_BASE_LIBRARY} - ${GSTREAMER_APP_LIBRARY} - ${GSTREAMER_AUDIO_LIBRARY} - ${GSTREAMER_VIDEO_LIBRARY} - ${GSTREAMER_PBUTILS_LIBRARY} - ${GSTREAMER_GL_LIBRARY} - Threads::Threads - PNG::PNG - Ableton::Link - ${PLATFORM_LIBS} -) -### DEFINE THE PACKAGING (all OS) +##### +##### DEFINE THE PACKAGING (all OS) +##### SET(CPACK_PACKAGE_NAME "vimix") SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "vimix\nReal-time video mixing for live performance.") @@ -702,127 +607,15 @@ SET(CPACK_SOURCE_IGNORE_FILES "/\\\\.gitignore$" "/\\\\.gitmodules$" ) - - -# optimize size ? -SET(CPACK_STRIP_FILES TRUE) - -### DEFINE THE PACKAGING (OS specific) - -IF(APPLE) - - # Bundle target - set(CPACK_GENERATOR DragNDrop) - set(CPACK_BINARY_DRAGNDROP ON) - - # OSX cpack info - set(CPACK_SYSTEM_NAME "OSX_${CMAKE_OSX_DEPLOYMENT_TARGET}_${CMAKE_OSX_ARCHITECTURES}") - - install(TARGETS ${VMIX_BINARY} - CONFIGURATIONS Release RelWithDebInfo - BUNDLE DESTINATION . COMPONENT Runtime - RUNTIME DESTINATION bin COMPONENT Runtime - ) - - # create GST plugins directory in Bundle Resources subfolder - set(plugin_dest_dir vimix.app/Contents/Resources/) - - ### TODO configure auto to find installation dir of gst - - message(STATUS "install gst-plugins ${PKG_GSTREAMER_PLUGIN_DIR}") - message(STATUS "install gst-plugins-base ${PKG_GSTREAMER_BASE_PLUGIN_DIR}") - - if (PKG_CONFIG_FOUND) - pkg_check_modules(PKG_GSTREAMER_PLUGINS_BAD gstreamer-plugins-bad-${GSTREAMER_ABI_VERSION}) - set(PKG_GSTREAMER_BAD_PLUGIN_DIR ${PKG_GSTREAMER_PLUGINS_BAD_LIBDIR}/gstreamer-${GSTREAMER_ABI_VERSION}) - message(STATUS "install gst-plugins-bad ${PKG_GSTREAMER_BAD_PLUGIN_DIR}") - endif() - - - # intall the gst-plugin-scanner program (used by plugins at load time) - set(PKG_GSTREAMER_SCANNER "${PKG_GSTREAMER_PREFIX}/libexec/gstreamer-1.0/gst-plugin-scanner") - message(STATUS "install gst-plugin-scanner ${PKG_GSTREAMER_SCANNER}") - install(FILES "${PKG_GSTREAMER_SCANNER}" - DESTINATION "${plugin_dest_dir}" - PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - COMPONENT Runtime - ) - - # Install the gst-plugins (all those installed with brew ) - install(DIRECTORY "${PKG_GSTREAMER_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) - install(DIRECTORY "${PKG_GSTREAMER_BASE_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) - install(DIRECTORY "${PKG_GSTREAMER_BAD_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) - - install(DIRECTORY "/usr/local/Cellar/gst-plugins-good/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) - install(DIRECTORY "/usr/local/Cellar/gst-plugins-ugly/1.18.4_1/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) - install(DIRECTORY "/usr/local/Cellar/gst-libav/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) - - # install locally recompiled & installed gst-plugins (because not included in brew package) - install(FILES "/usr/local/lib/gstreamer-1.0/libgstapplemedia.dylib" - "/usr/local/lib/gstreamer-1.0/libgstde265.dylib" - "/usr/local/lib/gstreamer-1.0/libgstx265.dylib" - DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime) - - # install frei0r plugins (dependencies of gstreamer-1.0/libgstfrei0r.dylib plugin) - install(FILES "/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/lissajous0r.so" - "/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/rgbnoise.so" - DESTINATION "${plugin_dest_dir}/frei0r-1" COMPONENT Runtime) - - - # ICU DATA LIB GST dependency : undocumented and hacked here : seems to work -# install(FILES "${ICU_LINK_LIBRARIES}" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime) - install(FILES "/usr/local/Cellar/icu4c/69.1/lib/libicudata.69.1.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" RENAME "libicudata.69.dylib" COMPONENT Runtime) - message(STATUS "install ${ICU_LINK_LIBRARIES} from ${ICU_LIBRARY_DIRS}") - - # package runtime fixup bundle - set(APPS "\${CMAKE_INSTALL_PREFIX}/vimix.app") - install(CODE " - file(GLOB_RECURSE GSTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/gstreamer-1.0/*.dylib\") - list(APPEND LIBS_PATH \"\${ICU_LIBRARY_DIRS}\") - include(BundleUtilities) - set(BU_CHMOD_BUNDLE_ITEMS TRUE) - fixup_bundle(\"${APPS}\" \"\${GSTPLUGINS}\" \"${LIBS_PATH}\") - " - COMPONENT Runtime - ) - - set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist") - set(APPLE_CODESIGN_IDENTITY "" CACHE STRING "") - string(LENGTH "${APPLE_CODESIGN_IDENTITY}" APPLE_CODESIGN_IDENTITY_LENGHT) - if( ${APPLE_CODESIGN_IDENTITY_LENGHT} LESS 40 ) - message(STATUS "Not signing bundle. Specify APPLE_CODESIGN_IDENTITY to cmake before running cpack to sign") - else() - install(CODE " - execute_process(COMMAND - codesign -vvv --deep --force - --entitlements \"${APPLE_CODESIGN_ENTITLEMENTS}\" - --sign \"${APPLE_CODESIGN_IDENTITY}\" - \"${APPS}\" ) - " - COMPONENT Runtime - ) - endif() - -# # package runtime fixup bundle and codesign -# set(BUNDLE_NAME "vimix.app") -# set(BUNDLE_LIBS_DIR "${plugin_dest_dir}/gstreamer-1.0") -# set(BUNDLE_DIRS "${ICU_LIBRARY_DIRS}") -# set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist") - -# configure_file(cmake/modules/BundleInstall.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" @ONLY) -# install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" COMPONENT Runtime) - -ELSE(APPLE) - - install(TARGETS ${VMIX_BINARY} - CONFIGURATIONS Release RelWithDebInfo - RUNTIME DESTINATION bin COMPONENT Runtime - ) - -ENDIF(APPLE) - -# Package full name set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}_${CPACK_SYSTEM_NAME}") +set(CPACK_STRIP_FILES TRUE) + + +##### +##### Build Application +##### +add_subdirectory(src) + # To Create a package, run "cpack" include(CPack) diff --git a/imgui.ini b/imgui.ini deleted file mode 100644 index 9488db2..0000000 --- a/imgui.ini +++ /dev/null @@ -1,25 +0,0 @@ -[Window][Debug##Default] -Pos=60,60 -Size=400,400 -Collapsed=0 - -[Window][v-mix] -Pos=40,40 -Size=300,300 -Collapsed=0 - -[Window][Media Player] -Pos=8,678 -Size=947,624 -Collapsed=0 - -[Window][Text Editor] -Pos=696,206 -Size=800,600 -Collapsed=0 - -[Window][Image properties] -Pos=511,51 -Size=172,256 -Collapsed=0 - diff --git a/ActionManager.cpp b/src/ActionManager.cpp similarity index 100% rename from ActionManager.cpp rename to src/ActionManager.cpp diff --git a/ActionManager.h b/src/ActionManager.h similarity index 100% rename from ActionManager.h rename to src/ActionManager.h diff --git a/BaseToolkit.cpp b/src/BaseToolkit.cpp similarity index 100% rename from BaseToolkit.cpp rename to src/BaseToolkit.cpp diff --git a/BaseToolkit.h b/src/BaseToolkit.h similarity index 100% rename from BaseToolkit.h rename to src/BaseToolkit.h diff --git a/BoundingBoxVisitor.cpp b/src/BoundingBoxVisitor.cpp similarity index 100% rename from BoundingBoxVisitor.cpp rename to src/BoundingBoxVisitor.cpp diff --git a/BoundingBoxVisitor.h b/src/BoundingBoxVisitor.h similarity index 100% rename from BoundingBoxVisitor.h rename to src/BoundingBoxVisitor.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..724629f --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,272 @@ + +##### +##### VIMIX TARGET BINARY +##### + +set(VMIX_BINARY "vimix") +set(VMIX_SRCS + main.cpp + Log.cpp + BaseToolkit.cpp + Shader.cpp + ImageShader.cpp + ImageProcessingShader.cpp + UpdateCallback.cpp + Scene.cpp + Primitives.cpp + Mesh.cpp + Decorations.cpp + View.cpp + RenderView.cpp + GeometryView.cpp + MixingView.cpp + MixingGroup.cpp + LayerView.cpp + TextureView.cpp + TransitionView.cpp + Source.cpp + CloneSource.cpp + RenderSource.cpp + SourceCallback.cpp + SourceList.cpp + Session.cpp + Selection.cpp + SessionSource.cpp + SessionVisitor.cpp + Interpolator.cpp + SessionCreator.cpp + SessionParser.cpp + Mixer.cpp + FrameGrabber.cpp + Recorder.cpp + Streamer.cpp + Loopback.cpp + Settings.cpp + Screenshot.cpp + Resource.cpp + Timeline.cpp + Stream.cpp + MediaPlayer.cpp + MediaSource.cpp + StreamSource.cpp + PatternSource.cpp + DeviceSource.cpp + NetworkSource.cpp + MultiFileSource.cpp + FrameBuffer.cpp + FrameBufferFilter.cpp + ImageFilter.cpp + DelayFilter.cpp + RenderingManager.cpp + UserInterfaceManager.cpp + PickingVisitor.cpp + BoundingBoxVisitor.cpp + DrawVisitor.cpp + SearchVisitor.cpp + ImGuiToolkit.cpp + ImGuiVisitor.cpp + InfoVisitor.cpp + CountVisitor.cpp + GstToolkit.cpp + GlmToolkit.cpp + SystemToolkit.cpp + DialogToolkit.cpp + tinyxml2Toolkit.cpp + NetworkToolkit.cpp + Connection.cpp + ActionManager.cpp + Overlay.cpp + Metronome.cpp + ControlManager.cpp + VideoBroadcast.cpp + SrtReceiverSource.cpp + MultiFileRecorder.cpp +) + +##### +##### DEFINE THE TARGET (OS specific) +##### + +IF(APPLE) + + # set icon + set(MACOSX_BUNDLE_ICON vimix.icns) + set(MACOSX_BUNDLE_ICON_FILE ${CMAKE_SOURCE_DIR}/osx/${MACOSX_BUNDLE_ICON}) + # set where in the bundle to put the icns file + set_source_files_properties(${MACOSX_BUNDLE_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources) + + # create the application + add_executable(${VMIX_BINARY} MACOSX_BUNDLE + ${VMIX_SRCS} + ${MACOSX_BUNDLE_ICON_FILE} + ) + + # set the Info.plist file + set(MACOSX_BUNDLE_PLIST_FILE ${CMAKE_SOURCE_DIR}/osx/Info.plist) + set_target_properties(${VMIX_BINARY} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${MACOSX_BUNDLE_PLIST_FILE}) + + set(PLATFORM_LIBS + "-framework CoreFoundation" + "-framework Appkit" + ) + +ELSE(APPLE) + + link_directories (${GTK3_LIBRARY_DIRS}) + + add_executable(${VMIX_BINARY} + ${VMIX_SRCS} + ) + + set(PLATFORM_LIBS + GTK::GTK + ) + +ENDIF(APPLE) + +##### +##### COMPILE THE TARGET (all OS) +##### + +set_property(TARGET ${VMIX_BINARY} PROPERTY CXX_STANDARD 17) +set_property(TARGET ${VMIX_BINARY} PROPERTY C_STANDARD 11) + +target_compile_definitions(${VMIX_BINARY} PUBLIC "IMGUI_IMPL_OPENGL_LOADER_GLAD") + +target_link_libraries(${VMIX_BINARY} LINK_PRIVATE + ${PLATFORM_LIBS} + ${GLM_LIBRARIES} + ${GLAD_LIBRARIES} + ${OSCPACK_LIBRARIES} + ${IMGUI_LIBRARIES} + ${TINYFD_LIBRARIES} + ${GLFW3_LIBRARIES} + ${TINYXML2_LIBRARIES} + ${ICU_LIBRARIES} + ${CMAKE_DL_LIBS} + ${GOBJECT_LIBRARIES} + ${GSTREAMER_LIBRARY} + ${GSTREAMER_BASE_LIBRARY} + ${GSTREAMER_APP_LIBRARY} + ${GSTREAMER_AUDIO_LIBRARY} + ${GSTREAMER_VIDEO_LIBRARY} + ${GSTREAMER_PBUTILS_LIBRARY} + ${GSTREAMER_GL_LIBRARY} + Threads::Threads + ZLIB::ZLIB + Ableton::Link + vmix::rc +) + +##### +##### DEFINE THE APPLICATION PACKAGING (OS specific) +##### + +IF(APPLE) + + # Bundle target + set(CPACK_GENERATOR DragNDrop) + set(CPACK_BINARY_DRAGNDROP ON) + + install(TARGETS ${VMIX_BINARY} + CONFIGURATIONS Release RelWithDebInfo + BUNDLE DESTINATION . COMPONENT Runtime + RUNTIME DESTINATION bin COMPONENT Runtime + ) + + # create GST plugins directory in Bundle Resources subfolder + set(plugin_dest_dir vimix.app/Contents/Resources/) + + ### TODO configure auto to find installation dir of gst + + message(STATUS "install gst-plugins ${PKG_GSTREAMER_PLUGIN_DIR}") + message(STATUS "install gst-plugins-base ${PKG_GSTREAMER_BASE_PLUGIN_DIR}") + + if (PKG_CONFIG_FOUND) + pkg_check_modules(PKG_GSTREAMER_PLUGINS_BAD gstreamer-plugins-bad-${GSTREAMER_ABI_VERSION}) + set(PKG_GSTREAMER_BAD_PLUGIN_DIR ${PKG_GSTREAMER_PLUGINS_BAD_LIBDIR}/gstreamer-${GSTREAMER_ABI_VERSION}) + message(STATUS "install gst-plugins-bad ${PKG_GSTREAMER_BAD_PLUGIN_DIR}") + endif() + + + # intall the gst-plugin-scanner program (used by plugins at load time) + set(PKG_GSTREAMER_SCANNER "${PKG_GSTREAMER_PREFIX}/libexec/gstreamer-1.0/gst-plugin-scanner") + message(STATUS "install gst-plugin-scanner ${PKG_GSTREAMER_SCANNER}") + install(FILES "${PKG_GSTREAMER_SCANNER}" + DESTINATION "${plugin_dest_dir}" + PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + COMPONENT Runtime + ) + + # Install the gst-plugins (all those installed with brew ) + install(DIRECTORY "${PKG_GSTREAMER_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) + install(DIRECTORY "${PKG_GSTREAMER_BASE_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) + install(DIRECTORY "${PKG_GSTREAMER_BAD_PLUGIN_DIR}" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) + + install(DIRECTORY "/usr/local/Cellar/gst-plugins-good/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) + install(DIRECTORY "/usr/local/Cellar/gst-plugins-ugly/1.18.4_1/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) + install(DIRECTORY "/usr/local/Cellar/gst-libav/1.18.4/lib/gstreamer-1.0" DESTINATION "${plugin_dest_dir}" COMPONENT Runtime) + + # install locally recompiled & installed gst-plugins (because not included in brew package) + install(FILES "/usr/local/lib/gstreamer-1.0/libgstapplemedia.dylib" + "/usr/local/lib/gstreamer-1.0/libgstde265.dylib" + "/usr/local/lib/gstreamer-1.0/libgstx265.dylib" + DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime) + + # install frei0r plugins (dependencies of gstreamer-1.0/libgstfrei0r.dylib plugin) + install(FILES "/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/lissajous0r.so" + "/usr/local/Cellar/frei0r/1.7.0/lib/frei0r-1/rgbnoise.so" + DESTINATION "${plugin_dest_dir}/frei0r-1" COMPONENT Runtime) + + + # ICU DATA LIB GST dependency : undocumented and hacked here : seems to work +# install(FILES "${ICU_LINK_LIBRARIES}" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" COMPONENT Runtime) + install(FILES "/usr/local/Cellar/icu4c/69.1/lib/libicudata.69.1.dylib" DESTINATION "${plugin_dest_dir}/gstreamer-1.0" RENAME "libicudata.69.dylib" COMPONENT Runtime) + message(STATUS "install ${ICU_LINK_LIBRARIES} from ${ICU_LIBRARY_DIRS}") + + # package runtime fixup bundle + set(APPS "\${CMAKE_INSTALL_PREFIX}/vimix.app") + install(CODE " + file(GLOB_RECURSE GSTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/${plugin_dest_dir}/gstreamer-1.0/*.dylib\") + list(APPEND LIBS_PATH \"\${ICU_LIBRARY_DIRS}\") + include(BundleUtilities) + set(BU_CHMOD_BUNDLE_ITEMS TRUE) + fixup_bundle(\"${APPS}\" \"\${GSTPLUGINS}\" \"${LIBS_PATH}\") + " + COMPONENT Runtime + ) + + set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist") + set(APPLE_CODESIGN_IDENTITY "" CACHE STRING "") + string(LENGTH "${APPLE_CODESIGN_IDENTITY}" APPLE_CODESIGN_IDENTITY_LENGHT) + if( ${APPLE_CODESIGN_IDENTITY_LENGHT} LESS 40 ) + message(STATUS "Not signing bundle. Specify APPLE_CODESIGN_IDENTITY to cmake before running cpack to sign") + else() + install(CODE " + execute_process(COMMAND + codesign -vvv --deep --force + --entitlements \"${APPLE_CODESIGN_ENTITLEMENTS}\" + --sign \"${APPLE_CODESIGN_IDENTITY}\" + \"${APPS}\" ) + " + COMPONENT Runtime + ) + endif() + +# # package runtime fixup bundle and codesign +# set(BUNDLE_NAME "vimix.app") +# set(BUNDLE_LIBS_DIR "${plugin_dest_dir}/gstreamer-1.0") +# set(BUNDLE_DIRS "${ICU_LIBRARY_DIRS}") +# set(APPLE_CODESIGN_ENTITLEMENTS "${CMAKE_CURRENT_SOURCE_DIR}/osx/entitlements.plist") + +# configure_file(cmake/modules/BundleInstall.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" @ONLY) +# install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/BundleInstall.cmake" COMPONENT Runtime) + +ELSE(APPLE) + + install(TARGETS ${VMIX_BINARY} + CONFIGURATIONS Release RelWithDebInfo + RUNTIME DESTINATION bin COMPONENT Runtime + ) + +ENDIF(APPLE) diff --git a/CloneSource.cpp b/src/CloneSource.cpp similarity index 100% rename from CloneSource.cpp rename to src/CloneSource.cpp diff --git a/CloneSource.h b/src/CloneSource.h similarity index 100% rename from CloneSource.h rename to src/CloneSource.h diff --git a/Connection.cpp b/src/Connection.cpp similarity index 100% rename from Connection.cpp rename to src/Connection.cpp diff --git a/Connection.h b/src/Connection.h similarity index 100% rename from Connection.h rename to src/Connection.h diff --git a/ControlManager.cpp b/src/ControlManager.cpp similarity index 100% rename from ControlManager.cpp rename to src/ControlManager.cpp diff --git a/ControlManager.h b/src/ControlManager.h similarity index 100% rename from ControlManager.h rename to src/ControlManager.h diff --git a/CopyVisitor.cpp b/src/CopyVisitor.cpp similarity index 100% rename from CopyVisitor.cpp rename to src/CopyVisitor.cpp diff --git a/CopyVisitor.h b/src/CopyVisitor.h similarity index 100% rename from CopyVisitor.h rename to src/CopyVisitor.h diff --git a/CountVisitor.cpp b/src/CountVisitor.cpp similarity index 100% rename from CountVisitor.cpp rename to src/CountVisitor.cpp diff --git a/CountVisitor.h b/src/CountVisitor.h similarity index 100% rename from CountVisitor.h rename to src/CountVisitor.h diff --git a/Decorations.cpp b/src/Decorations.cpp similarity index 100% rename from Decorations.cpp rename to src/Decorations.cpp diff --git a/Decorations.h b/src/Decorations.h similarity index 100% rename from Decorations.h rename to src/Decorations.h diff --git a/DelayFilter.cpp b/src/DelayFilter.cpp similarity index 100% rename from DelayFilter.cpp rename to src/DelayFilter.cpp diff --git a/DelayFilter.h b/src/DelayFilter.h similarity index 100% rename from DelayFilter.h rename to src/DelayFilter.h diff --git a/DeviceSource.cpp b/src/DeviceSource.cpp similarity index 100% rename from DeviceSource.cpp rename to src/DeviceSource.cpp diff --git a/DeviceSource.h b/src/DeviceSource.h similarity index 100% rename from DeviceSource.h rename to src/DeviceSource.h diff --git a/DialogToolkit.cpp b/src/DialogToolkit.cpp similarity index 100% rename from DialogToolkit.cpp rename to src/DialogToolkit.cpp diff --git a/DialogToolkit.h b/src/DialogToolkit.h similarity index 100% rename from DialogToolkit.h rename to src/DialogToolkit.h diff --git a/DrawVisitor.cpp b/src/DrawVisitor.cpp similarity index 100% rename from DrawVisitor.cpp rename to src/DrawVisitor.cpp diff --git a/DrawVisitor.h b/src/DrawVisitor.h similarity index 100% rename from DrawVisitor.h rename to src/DrawVisitor.h diff --git a/FileDialog.cpp b/src/FileDialog.cpp similarity index 100% rename from FileDialog.cpp rename to src/FileDialog.cpp diff --git a/FileDialog.h b/src/FileDialog.h similarity index 100% rename from FileDialog.h rename to src/FileDialog.h diff --git a/FrameBuffer.cpp b/src/FrameBuffer.cpp similarity index 100% rename from FrameBuffer.cpp rename to src/FrameBuffer.cpp diff --git a/FrameBuffer.h b/src/FrameBuffer.h similarity index 100% rename from FrameBuffer.h rename to src/FrameBuffer.h diff --git a/FrameBufferFilter.cpp b/src/FrameBufferFilter.cpp similarity index 100% rename from FrameBufferFilter.cpp rename to src/FrameBufferFilter.cpp diff --git a/FrameBufferFilter.h b/src/FrameBufferFilter.h similarity index 100% rename from FrameBufferFilter.h rename to src/FrameBufferFilter.h diff --git a/FrameGrabber.cpp b/src/FrameGrabber.cpp similarity index 100% rename from FrameGrabber.cpp rename to src/FrameGrabber.cpp diff --git a/FrameGrabber.h b/src/FrameGrabber.h similarity index 100% rename from FrameGrabber.h rename to src/FrameGrabber.h diff --git a/GarbageVisitor.cpp b/src/GarbageVisitor.cpp similarity index 100% rename from GarbageVisitor.cpp rename to src/GarbageVisitor.cpp diff --git a/GarbageVisitor.h b/src/GarbageVisitor.h similarity index 100% rename from GarbageVisitor.h rename to src/GarbageVisitor.h diff --git a/GeometryView.cpp b/src/GeometryView.cpp similarity index 100% rename from GeometryView.cpp rename to src/GeometryView.cpp diff --git a/GeometryView.h b/src/GeometryView.h similarity index 100% rename from GeometryView.h rename to src/GeometryView.h diff --git a/GlmToolkit.cpp b/src/GlmToolkit.cpp similarity index 100% rename from GlmToolkit.cpp rename to src/GlmToolkit.cpp diff --git a/GlmToolkit.h b/src/GlmToolkit.h similarity index 100% rename from GlmToolkit.h rename to src/GlmToolkit.h diff --git a/GstToolkit.cpp b/src/GstToolkit.cpp similarity index 100% rename from GstToolkit.cpp rename to src/GstToolkit.cpp diff --git a/GstToolkit.h b/src/GstToolkit.h similarity index 100% rename from GstToolkit.h rename to src/GstToolkit.h diff --git a/ImGuiToolkit.cpp b/src/ImGuiToolkit.cpp similarity index 100% rename from ImGuiToolkit.cpp rename to src/ImGuiToolkit.cpp diff --git a/ImGuiToolkit.h b/src/ImGuiToolkit.h similarity index 99% rename from ImGuiToolkit.h rename to src/ImGuiToolkit.h index 8ef12dc..193ea38 100644 --- a/ImGuiToolkit.h +++ b/src/ImGuiToolkit.h @@ -10,7 +10,7 @@ #define IMGUI_DEFINE_MATH_OPERATORS #endif -#include "rsc/fonts/IconsFontAwesome5.h" +#include "IconsFontAwesome5.h" namespace ImGuiToolkit { diff --git a/ImGuiVisitor.cpp b/src/ImGuiVisitor.cpp similarity index 100% rename from ImGuiVisitor.cpp rename to src/ImGuiVisitor.cpp diff --git a/ImGuiVisitor.h b/src/ImGuiVisitor.h similarity index 100% rename from ImGuiVisitor.h rename to src/ImGuiVisitor.h diff --git a/ImageFilter.cpp b/src/ImageFilter.cpp similarity index 100% rename from ImageFilter.cpp rename to src/ImageFilter.cpp diff --git a/ImageFilter.h b/src/ImageFilter.h similarity index 100% rename from ImageFilter.h rename to src/ImageFilter.h diff --git a/ImageProcessingShader.cpp b/src/ImageProcessingShader.cpp similarity index 100% rename from ImageProcessingShader.cpp rename to src/ImageProcessingShader.cpp diff --git a/ImageProcessingShader.h b/src/ImageProcessingShader.h similarity index 100% rename from ImageProcessingShader.h rename to src/ImageProcessingShader.h diff --git a/ImageShader.cpp b/src/ImageShader.cpp similarity index 99% rename from ImageShader.cpp rename to src/ImageShader.cpp index 782a5d7..6dfb872 100644 --- a/ImageShader.cpp +++ b/src/ImageShader.cpp @@ -22,7 +22,7 @@ #include "defines.h" #include "Visitor.h" #include "Resource.h" -#include "rsc/fonts/IconsFontAwesome5.h" +#include "IconsFontAwesome5.h" #include "ImageShader.h" diff --git a/ImageShader.h b/src/ImageShader.h similarity index 100% rename from ImageShader.h rename to src/ImageShader.h diff --git a/InfoVisitor.cpp b/src/InfoVisitor.cpp similarity index 100% rename from InfoVisitor.cpp rename to src/InfoVisitor.cpp diff --git a/InfoVisitor.h b/src/InfoVisitor.h similarity index 100% rename from InfoVisitor.h rename to src/InfoVisitor.h diff --git a/Interpolator.cpp b/src/Interpolator.cpp similarity index 100% rename from Interpolator.cpp rename to src/Interpolator.cpp diff --git a/Interpolator.h b/src/Interpolator.h similarity index 100% rename from Interpolator.h rename to src/Interpolator.h diff --git a/LayerView.cpp b/src/LayerView.cpp similarity index 100% rename from LayerView.cpp rename to src/LayerView.cpp diff --git a/LayerView.h b/src/LayerView.h similarity index 100% rename from LayerView.h rename to src/LayerView.h diff --git a/Log.cpp b/src/Log.cpp similarity index 100% rename from Log.cpp rename to src/Log.cpp diff --git a/Log.h b/src/Log.h similarity index 100% rename from Log.h rename to src/Log.h diff --git a/Loopback.cpp b/src/Loopback.cpp similarity index 100% rename from Loopback.cpp rename to src/Loopback.cpp diff --git a/Loopback.h b/src/Loopback.h similarity index 100% rename from Loopback.h rename to src/Loopback.h diff --git a/MediaPlayer.cpp b/src/MediaPlayer.cpp similarity index 100% rename from MediaPlayer.cpp rename to src/MediaPlayer.cpp diff --git a/MediaPlayer.h b/src/MediaPlayer.h similarity index 100% rename from MediaPlayer.h rename to src/MediaPlayer.h diff --git a/MediaSource.cpp b/src/MediaSource.cpp similarity index 100% rename from MediaSource.cpp rename to src/MediaSource.cpp diff --git a/MediaSource.h b/src/MediaSource.h similarity index 100% rename from MediaSource.h rename to src/MediaSource.h diff --git a/Mesh.cpp b/src/Mesh.cpp similarity index 100% rename from Mesh.cpp rename to src/Mesh.cpp diff --git a/Mesh.h b/src/Mesh.h similarity index 100% rename from Mesh.h rename to src/Mesh.h diff --git a/Metronome.cpp b/src/Metronome.cpp similarity index 100% rename from Metronome.cpp rename to src/Metronome.cpp diff --git a/Metronome.h b/src/Metronome.h similarity index 100% rename from Metronome.h rename to src/Metronome.h diff --git a/Mixer.cpp b/src/Mixer.cpp similarity index 100% rename from Mixer.cpp rename to src/Mixer.cpp diff --git a/Mixer.h b/src/Mixer.h similarity index 100% rename from Mixer.h rename to src/Mixer.h diff --git a/MixingGroup.cpp b/src/MixingGroup.cpp similarity index 100% rename from MixingGroup.cpp rename to src/MixingGroup.cpp diff --git a/MixingGroup.h b/src/MixingGroup.h similarity index 100% rename from MixingGroup.h rename to src/MixingGroup.h diff --git a/MixingView.cpp b/src/MixingView.cpp similarity index 100% rename from MixingView.cpp rename to src/MixingView.cpp diff --git a/MixingView.h b/src/MixingView.h similarity index 100% rename from MixingView.h rename to src/MixingView.h diff --git a/MultiFileRecorder.cpp b/src/MultiFileRecorder.cpp similarity index 100% rename from MultiFileRecorder.cpp rename to src/MultiFileRecorder.cpp diff --git a/MultiFileRecorder.h b/src/MultiFileRecorder.h similarity index 100% rename from MultiFileRecorder.h rename to src/MultiFileRecorder.h diff --git a/MultiFileSource.cpp b/src/MultiFileSource.cpp similarity index 100% rename from MultiFileSource.cpp rename to src/MultiFileSource.cpp diff --git a/MultiFileSource.h b/src/MultiFileSource.h similarity index 100% rename from MultiFileSource.h rename to src/MultiFileSource.h diff --git a/NetworkSource.cpp b/src/NetworkSource.cpp similarity index 100% rename from NetworkSource.cpp rename to src/NetworkSource.cpp diff --git a/NetworkSource.h b/src/NetworkSource.h similarity index 100% rename from NetworkSource.h rename to src/NetworkSource.h diff --git a/NetworkToolkit.cpp b/src/NetworkToolkit.cpp similarity index 100% rename from NetworkToolkit.cpp rename to src/NetworkToolkit.cpp diff --git a/NetworkToolkit.h b/src/NetworkToolkit.h similarity index 100% rename from NetworkToolkit.h rename to src/NetworkToolkit.h diff --git a/Overlay.cpp b/src/Overlay.cpp similarity index 100% rename from Overlay.cpp rename to src/Overlay.cpp diff --git a/Overlay.h b/src/Overlay.h similarity index 100% rename from Overlay.h rename to src/Overlay.h diff --git a/PatternSource.cpp b/src/PatternSource.cpp similarity index 100% rename from PatternSource.cpp rename to src/PatternSource.cpp diff --git a/PatternSource.h b/src/PatternSource.h similarity index 100% rename from PatternSource.h rename to src/PatternSource.h diff --git a/PickingVisitor.cpp b/src/PickingVisitor.cpp similarity index 100% rename from PickingVisitor.cpp rename to src/PickingVisitor.cpp diff --git a/PickingVisitor.h b/src/PickingVisitor.h similarity index 100% rename from PickingVisitor.h rename to src/PickingVisitor.h diff --git a/Primitives.cpp b/src/Primitives.cpp similarity index 100% rename from Primitives.cpp rename to src/Primitives.cpp diff --git a/Primitives.h b/src/Primitives.h similarity index 100% rename from Primitives.h rename to src/Primitives.h diff --git a/Recorder.cpp b/src/Recorder.cpp similarity index 100% rename from Recorder.cpp rename to src/Recorder.cpp diff --git a/Recorder.h b/src/Recorder.h similarity index 100% rename from Recorder.h rename to src/Recorder.h diff --git a/RenderSource.cpp b/src/RenderSource.cpp similarity index 100% rename from RenderSource.cpp rename to src/RenderSource.cpp diff --git a/RenderSource.h b/src/RenderSource.h similarity index 100% rename from RenderSource.h rename to src/RenderSource.h diff --git a/RenderView.cpp b/src/RenderView.cpp similarity index 100% rename from RenderView.cpp rename to src/RenderView.cpp diff --git a/RenderView.h b/src/RenderView.h similarity index 100% rename from RenderView.h rename to src/RenderView.h diff --git a/RenderingManager.cpp b/src/RenderingManager.cpp similarity index 100% rename from RenderingManager.cpp rename to src/RenderingManager.cpp diff --git a/RenderingManager.h b/src/RenderingManager.h similarity index 100% rename from RenderingManager.h rename to src/RenderingManager.h diff --git a/Resource.cpp b/src/Resource.cpp similarity index 100% rename from Resource.cpp rename to src/Resource.cpp diff --git a/Resource.h b/src/Resource.h similarity index 100% rename from Resource.h rename to src/Resource.h diff --git a/Scene.cpp b/src/Scene.cpp similarity index 100% rename from Scene.cpp rename to src/Scene.cpp diff --git a/Scene.h b/src/Scene.h similarity index 100% rename from Scene.h rename to src/Scene.h diff --git a/Screenshot.cpp b/src/Screenshot.cpp similarity index 100% rename from Screenshot.cpp rename to src/Screenshot.cpp diff --git a/Screenshot.h b/src/Screenshot.h similarity index 100% rename from Screenshot.h rename to src/Screenshot.h diff --git a/SearchVisitor.cpp b/src/SearchVisitor.cpp similarity index 100% rename from SearchVisitor.cpp rename to src/SearchVisitor.cpp diff --git a/SearchVisitor.h b/src/SearchVisitor.h similarity index 100% rename from SearchVisitor.h rename to src/SearchVisitor.h diff --git a/Selection.cpp b/src/Selection.cpp similarity index 100% rename from Selection.cpp rename to src/Selection.cpp diff --git a/Selection.h b/src/Selection.h similarity index 100% rename from Selection.h rename to src/Selection.h diff --git a/Session.cpp b/src/Session.cpp similarity index 100% rename from Session.cpp rename to src/Session.cpp diff --git a/Session.h b/src/Session.h similarity index 100% rename from Session.h rename to src/Session.h diff --git a/SessionCreator.cpp b/src/SessionCreator.cpp similarity index 100% rename from SessionCreator.cpp rename to src/SessionCreator.cpp diff --git a/SessionCreator.h b/src/SessionCreator.h similarity index 100% rename from SessionCreator.h rename to src/SessionCreator.h diff --git a/SessionParser.cpp b/src/SessionParser.cpp similarity index 100% rename from SessionParser.cpp rename to src/SessionParser.cpp diff --git a/SessionParser.h b/src/SessionParser.h similarity index 100% rename from SessionParser.h rename to src/SessionParser.h diff --git a/SessionSource.cpp b/src/SessionSource.cpp similarity index 100% rename from SessionSource.cpp rename to src/SessionSource.cpp diff --git a/SessionSource.h b/src/SessionSource.h similarity index 100% rename from SessionSource.h rename to src/SessionSource.h diff --git a/SessionVisitor.cpp b/src/SessionVisitor.cpp similarity index 100% rename from SessionVisitor.cpp rename to src/SessionVisitor.cpp diff --git a/SessionVisitor.h b/src/SessionVisitor.h similarity index 100% rename from SessionVisitor.h rename to src/SessionVisitor.h diff --git a/Settings.cpp b/src/Settings.cpp similarity index 100% rename from Settings.cpp rename to src/Settings.cpp diff --git a/Settings.h b/src/Settings.h similarity index 100% rename from Settings.h rename to src/Settings.h diff --git a/Shader.cpp b/src/Shader.cpp similarity index 100% rename from Shader.cpp rename to src/Shader.cpp diff --git a/Shader.h b/src/Shader.h similarity index 100% rename from Shader.h rename to src/Shader.h diff --git a/Source.cpp b/src/Source.cpp similarity index 100% rename from Source.cpp rename to src/Source.cpp diff --git a/Source.h b/src/Source.h similarity index 100% rename from Source.h rename to src/Source.h diff --git a/SourceCallback.cpp b/src/SourceCallback.cpp similarity index 100% rename from SourceCallback.cpp rename to src/SourceCallback.cpp diff --git a/SourceCallback.h b/src/SourceCallback.h similarity index 100% rename from SourceCallback.h rename to src/SourceCallback.h diff --git a/SourceList.cpp b/src/SourceList.cpp similarity index 100% rename from SourceList.cpp rename to src/SourceList.cpp diff --git a/SourceList.h b/src/SourceList.h similarity index 100% rename from SourceList.h rename to src/SourceList.h diff --git a/SrtReceiverSource.cpp b/src/SrtReceiverSource.cpp similarity index 100% rename from SrtReceiverSource.cpp rename to src/SrtReceiverSource.cpp diff --git a/SrtReceiverSource.h b/src/SrtReceiverSource.h similarity index 100% rename from SrtReceiverSource.h rename to src/SrtReceiverSource.h diff --git a/Stream.cpp b/src/Stream.cpp similarity index 100% rename from Stream.cpp rename to src/Stream.cpp diff --git a/Stream.h b/src/Stream.h similarity index 100% rename from Stream.h rename to src/Stream.h diff --git a/StreamSource.cpp b/src/StreamSource.cpp similarity index 100% rename from StreamSource.cpp rename to src/StreamSource.cpp diff --git a/StreamSource.h b/src/StreamSource.h similarity index 100% rename from StreamSource.h rename to src/StreamSource.h diff --git a/Streamer.cpp b/src/Streamer.cpp similarity index 100% rename from Streamer.cpp rename to src/Streamer.cpp diff --git a/Streamer.h b/src/Streamer.h similarity index 100% rename from Streamer.h rename to src/Streamer.h diff --git a/SystemToolkit.cpp b/src/SystemToolkit.cpp similarity index 100% rename from SystemToolkit.cpp rename to src/SystemToolkit.cpp diff --git a/SystemToolkit.h b/src/SystemToolkit.h similarity index 100% rename from SystemToolkit.h rename to src/SystemToolkit.h diff --git a/TextureView.cpp b/src/TextureView.cpp similarity index 100% rename from TextureView.cpp rename to src/TextureView.cpp diff --git a/TextureView.h b/src/TextureView.h similarity index 100% rename from TextureView.h rename to src/TextureView.h diff --git a/Timeline.cpp b/src/Timeline.cpp similarity index 100% rename from Timeline.cpp rename to src/Timeline.cpp diff --git a/Timeline.h b/src/Timeline.h similarity index 100% rename from Timeline.h rename to src/Timeline.h diff --git a/TransitionView.cpp b/src/TransitionView.cpp similarity index 100% rename from TransitionView.cpp rename to src/TransitionView.cpp diff --git a/TransitionView.h b/src/TransitionView.h similarity index 100% rename from TransitionView.h rename to src/TransitionView.h diff --git a/UpdateCallback.cpp b/src/UpdateCallback.cpp similarity index 100% rename from UpdateCallback.cpp rename to src/UpdateCallback.cpp diff --git a/UpdateCallback.h b/src/UpdateCallback.h similarity index 100% rename from UpdateCallback.h rename to src/UpdateCallback.h diff --git a/UserInterfaceManager.cpp b/src/UserInterfaceManager.cpp similarity index 100% rename from UserInterfaceManager.cpp rename to src/UserInterfaceManager.cpp diff --git a/UserInterfaceManager.h b/src/UserInterfaceManager.h similarity index 100% rename from UserInterfaceManager.h rename to src/UserInterfaceManager.h diff --git a/VideoBroadcast.cpp b/src/VideoBroadcast.cpp similarity index 100% rename from VideoBroadcast.cpp rename to src/VideoBroadcast.cpp diff --git a/VideoBroadcast.h b/src/VideoBroadcast.h similarity index 100% rename from VideoBroadcast.h rename to src/VideoBroadcast.h diff --git a/View.cpp b/src/View.cpp similarity index 100% rename from View.cpp rename to src/View.cpp diff --git a/View.h b/src/View.h similarity index 100% rename from View.h rename to src/View.h diff --git a/Visitor.h b/src/Visitor.h similarity index 100% rename from Visitor.h rename to src/Visitor.h diff --git a/defines.h b/src/defines.h similarity index 100% rename from defines.h rename to src/defines.h diff --git a/main.cpp b/src/main.cpp similarity index 100% rename from main.cpp rename to src/main.cpp diff --git a/snippets.cpp b/src/snippets.cpp similarity index 100% rename from snippets.cpp rename to src/snippets.cpp diff --git a/tinyxml2Toolkit.cpp b/src/tinyxml2Toolkit.cpp similarity index 100% rename from tinyxml2Toolkit.cpp rename to src/tinyxml2Toolkit.cpp diff --git a/tinyxml2Toolkit.h b/src/tinyxml2Toolkit.h similarity index 100% rename from tinyxml2Toolkit.h rename to src/tinyxml2Toolkit.h diff --git a/vimix.entitlements b/vimix.entitlements deleted file mode 100644 index 2a59cad..0000000 --- a/vimix.entitlements +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.cs.disable-library-validation - - com.apple.security.device.camera - - com.apple.security.personal-information.photos-library - - -