├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── questions-and-feedbacks.md ├── actions │ ├── set-suffix │ │ └── action.yml │ └── upload │ │ └── action.yml └── workflows │ └── build.yml ├── .gitignore ├── .gitmodules ├── Blux.jucer ├── Builds ├── LinuxMakefile │ ├── Blux.AppDir │ │ ├── .DirIcon │ │ ├── AppRun │ │ ├── blux.desktop │ │ ├── blux.png │ │ └── usr │ │ │ └── lib │ │ │ ├── libServus.so │ │ │ ├── libServus.so.1.6.0 │ │ │ ├── libServus.so.6 │ │ │ ├── libartnet.so │ │ │ ├── libartnet.so.1 │ │ │ └── libartnet.so.1.0.0 │ └── Makefile ├── MacOSX_CI │ ├── Blux.xcodeproj │ │ ├── project.pbxproj │ │ └── project.xcworkspace │ │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ ├── Icon.icns │ ├── Info-App.plist │ └── RecentFilesMenuTemplate.nib ├── Raspberry │ ├── Blux.AppDir │ │ ├── .DirIcon │ │ ├── AppRun │ │ ├── blux.desktop │ │ ├── blux.png │ │ └── usr │ │ │ └── lib │ │ │ ├── libBLT.2.5.so.8.6 │ │ │ ├── libBLTlite.2.5.so.8.6 │ │ │ ├── libSDL2-2.0.so.0 │ │ │ ├── libSDL2-2.0.so.0.10.0 │ │ │ ├── libSDL2.a │ │ │ ├── libSDL2.so │ │ │ ├── libSDL2main.a │ │ │ ├── libServus.so │ │ │ ├── libServus.so.1.6.0 │ │ │ ├── libServus.so.6 │ │ │ ├── libartnet.so │ │ │ ├── libartnet.so.1 │ │ │ ├── libartnet.so.1.0.0 │ │ │ ├── libbcm_host.so │ │ │ ├── libhidapi-hidraw.so │ │ │ ├── libhidapi-hidraw.so.0 │ │ │ ├── libhidapi-hidraw.so.0.0.0 │ │ │ ├── libvchiq_arm.so │ │ │ └── libvcos.so │ └── Makefile ├── Raspberry64 │ ├── Blux.AppDir │ │ ├── .DirIcon │ │ ├── AppRun │ │ ├── blux.desktop │ │ ├── blux.png │ │ └── usr │ │ │ └── lib │ │ │ ├── libSDL2-2.0.so.0 │ │ │ ├── libSDL2-2.0.so.0.9.0 │ │ │ ├── libSDL2.so │ │ │ ├── libServus.so │ │ │ ├── libServus.so.6 │ │ │ ├── libbluetooth.so.3 │ │ │ ├── libbluetooth.so.3.18.16 │ │ │ ├── libhidapi-hidraw.so │ │ │ ├── libhidapi-hidraw.so.0 │ │ │ └── libhidapi-hidraw.so.0.0.0 │ └── Makefile ├── VisualStudio2022 │ ├── Blux.sln │ ├── Blux_App.vcxproj │ ├── Blux_App.vcxproj.filters │ ├── icon.ico │ ├── packages.config │ └── resources.rc └── VisualStudio2022_CI │ ├── Blux.sln │ ├── Blux_App.vcxproj │ ├── Blux_App.vcxproj.filters │ ├── icon.ico │ ├── packages.config │ ├── packages │ └── Microsoft.Web.WebView2.1.0.902.49 │ │ ├── .signature.p7s │ │ ├── LICENSE.txt │ │ ├── Microsoft.Web.WebView2.1.0.902.49.nupkg │ │ ├── WebView2.idl │ │ ├── WebView2.tlb │ │ ├── build │ │ ├── Common.targets │ │ ├── Microsoft.Web.WebView2.targets │ │ └── native │ │ │ ├── Microsoft.Web.WebView2.targets │ │ │ ├── arm64 │ │ │ ├── WebView2Loader.dll │ │ │ ├── WebView2Loader.dll.lib │ │ │ └── WebView2LoaderStatic.lib │ │ │ ├── include │ │ │ ├── WebView2.h │ │ │ └── WebView2EnvironmentOptions.h │ │ │ ├── x64 │ │ │ ├── WebView2Loader.dll │ │ │ ├── WebView2Loader.dll.lib │ │ │ └── WebView2LoaderStatic.lib │ │ │ └── x86 │ │ │ ├── WebView2Loader.dll │ │ │ ├── WebView2Loader.dll.lib │ │ │ └── WebView2LoaderStatic.lib │ │ ├── lib │ │ ├── net45 │ │ │ ├── Microsoft.Web.WebView2.Core.dll │ │ │ ├── Microsoft.Web.WebView2.Core.xml │ │ │ ├── Microsoft.Web.WebView2.WinForms.dll │ │ │ ├── Microsoft.Web.WebView2.WinForms.xml │ │ │ ├── Microsoft.Web.WebView2.Wpf.dll │ │ │ └── Microsoft.Web.WebView2.Wpf.xml │ │ └── netcoreapp3.0 │ │ │ ├── Microsoft.Web.WebView2.Core.dll │ │ │ ├── Microsoft.Web.WebView2.Core.xml │ │ │ ├── Microsoft.Web.WebView2.WinForms.dll │ │ │ ├── Microsoft.Web.WebView2.WinForms.xml │ │ │ ├── Microsoft.Web.WebView2.Wpf.dll │ │ │ └── Microsoft.Web.WebView2.Wpf.xml │ │ ├── runtimes │ │ ├── win-arm64 │ │ │ └── native │ │ │ │ └── WebView2Loader.dll │ │ ├── win-x64 │ │ │ └── native │ │ │ │ └── WebView2Loader.dll │ │ └── win-x86 │ │ │ └── native │ │ │ └── WebView2Loader.dll │ │ └── tools │ │ └── VisualStudioToolsManifest.xml │ └── resources.rc ├── External ├── asio │ ├── asio.cpp │ ├── asio.h │ ├── asiodrvr.cpp │ ├── asiodrvr.h │ ├── asiosys.h │ ├── combase.cpp │ ├── combase.h │ ├── debugmessage.cpp │ ├── dllentry.cpp │ ├── iasiodrv.h │ ├── register.cpp │ └── wxdebug.h ├── dnssd │ ├── include │ │ └── dns_sd.h │ └── lib │ │ └── dnssd.lib └── servus │ ├── include │ └── servus │ │ ├── api.h │ │ ├── avahi │ │ └── servus.h │ │ ├── defines.h │ │ ├── definesDarwin.h │ │ ├── definesDarwin.h.in │ │ ├── definesLinux.h │ │ ├── definesLinux.h.in │ │ ├── definesWin32.h │ │ ├── definesWin32.h.in │ │ ├── dnssd │ │ └── servus.h │ │ ├── listener.h │ │ ├── md5 │ │ └── md5.hh │ │ ├── none │ │ └── servus.h │ │ ├── result.h │ │ ├── serializable.h │ │ ├── servus.h │ │ ├── types.h │ │ ├── uint128_t.h │ │ ├── uri.h │ │ └── version.h │ └── lib │ ├── linux │ ├── libServus.so │ ├── libServus.so.1.6.0 │ └── libServus.so.6 │ ├── osx │ ├── debug │ │ └── libServus.a │ └── release │ │ └── libServus.a │ ├── raspberry │ ├── libServus.so │ ├── libServus.so.1.6.0 │ └── libServus.so.6 │ ├── raspberry64 │ └── libServus.so │ ├── silicon │ ├── debug │ │ └── libServus.a │ └── release │ │ └── libServus.a │ └── win │ └── x64 │ ├── debug │ └── Servus.lib │ └── release │ └── Servus.lib ├── JuceLibraryCode ├── AppConfig.h ├── BinaryData.cpp ├── BinaryData.h ├── JuceHeader.h ├── ReadMe.txt ├── include_juce_audio_basics.cpp ├── include_juce_audio_basics.mm ├── include_juce_audio_devices.cpp ├── include_juce_audio_devices.mm ├── include_juce_audio_formats.cpp ├── include_juce_audio_formats.mm ├── include_juce_audio_processors.cpp ├── include_juce_audio_processors.mm ├── include_juce_audio_processors_ara.cpp ├── include_juce_audio_processors_lv2_libs.cpp ├── include_juce_audio_utils.cpp ├── include_juce_audio_utils.mm ├── include_juce_core.cpp ├── include_juce_core.mm ├── include_juce_cryptography.cpp ├── include_juce_cryptography.mm ├── include_juce_data_structures.cpp ├── include_juce_data_structures.mm ├── include_juce_dmx.cpp ├── include_juce_events.cpp ├── include_juce_events.mm ├── include_juce_graphics.cpp ├── include_juce_graphics.mm ├── include_juce_gui_basics.cpp ├── include_juce_gui_basics.mm ├── include_juce_gui_extra.cpp ├── include_juce_gui_extra.mm ├── include_juce_opengl.cpp ├── include_juce_opengl.mm ├── include_juce_organicui.cpp ├── include_juce_organicui2.cpp ├── include_juce_organicui2b.cpp ├── include_juce_organicui3.cpp ├── include_juce_organicui4.cpp ├── include_juce_osc.cpp ├── include_juce_serial.cpp ├── include_juce_simpleweb.cpp ├── include_juce_simpleweb2.cpp └── include_juce_timeline.cpp ├── LICENSE ├── Package ├── Blux.pkgproj └── bg.png ├── README.md ├── Resources ├── colorsource │ ├── multipoint.png │ ├── node.png │ ├── patterns │ │ ├── noise.png │ │ ├── point.png │ │ ├── rainbow.png │ │ ├── solidcolor.png │ │ └── strobe.png │ ├── picture.png │ ├── script.png │ ├── timeline.png │ └── video.png ├── crash.png ├── crash.psd ├── default.bluxlayout ├── fx.png ├── icon.png ├── icon128.png ├── icon2.png ├── icon3.png ├── link.png └── seq.png ├── Source ├── Audio │ ├── AudioManager.cpp │ ├── AudioManager.h │ └── ui │ │ ├── AudioManagerHardwareEditor.cpp │ │ └── AudioManagerHardwareEditor.h ├── ChainViz │ ├── ChainViz.cpp │ ├── ChainViz.h │ ├── ChainVizTarget.cpp │ └── ChainVizTarget.h ├── Color │ ├── ColorIncludes.cpp │ ├── ColorIncludes.h │ ├── ColorSource │ │ ├── ColorSource.cpp │ │ ├── ColorSource.h │ │ ├── ColorSourceFactory.cpp │ │ ├── ColorSourceFactory.h │ │ ├── ColorSourceLibrary.cpp │ │ ├── ColorSourceLibrary.h │ │ ├── sources │ │ │ ├── node │ │ │ │ ├── NodeColorSource.cpp │ │ │ │ └── NodeColorSource.h │ │ │ ├── pattern │ │ │ │ ├── PatternColorSource.cpp │ │ │ │ └── PatternColorSource.h │ │ │ ├── picture │ │ │ │ ├── PictureColorSource.cpp │ │ │ │ └── PictureColorSource.h │ │ │ ├── script │ │ │ │ ├── ScriptColorSource.cpp │ │ │ │ └── ScriptColorSource.h │ │ │ └── video │ │ │ │ ├── VideoColorSource.cpp │ │ │ │ └── VideoColorSource.h │ │ └── ui │ │ │ ├── ColorSourceChooser.cpp │ │ │ ├── ColorSourceChooser.h │ │ │ ├── ColorSourceGridUI.cpp │ │ │ ├── ColorSourceGridUI.h │ │ │ ├── ColorSourceLibraryGridUI.cpp │ │ │ ├── ColorSourceLibraryGridUI.h │ │ │ ├── ColorViz.cpp │ │ │ └── ColorViz.h │ └── PixelShape │ │ ├── PixelShape.cpp │ │ ├── PixelShape.h │ │ └── ui │ │ ├── PixelShapeChooser.cpp │ │ ├── PixelShapeChooser.h │ │ ├── PixelShapeEditor.cpp │ │ └── PixelShapeEditor.h ├── Common │ ├── Action │ │ ├── Action.cpp │ │ ├── Action.h │ │ ├── ActionManager.cpp │ │ └── ActionManager.h │ ├── CommonClasses │ │ ├── ComponentType.h │ │ └── SceneListener.h │ ├── CommonIncludes.cpp │ ├── CommonIncludes.h │ ├── Helpers │ │ ├── ColorHelpers.cpp │ │ ├── ColorHelpers.h │ │ ├── FastNoiseLite.h │ │ ├── SceneHelpers.cpp │ │ ├── SceneHelpers.h │ │ ├── TimedEffectHiresTimer.cpp │ │ └── TimedEffectHiresTimer.h │ ├── MIDI │ │ ├── MIDIDevice.cpp │ │ ├── MIDIDevice.h │ │ ├── MIDIDeviceParameter.cpp │ │ ├── MIDIDeviceParameter.h │ │ ├── MIDIManager.cpp │ │ ├── MIDIManager.h │ │ ├── MTCReceiver.cpp │ │ ├── MTCReceiver.h │ │ ├── MTCSender.cpp │ │ ├── MTCSender.h │ │ └── ui │ │ │ ├── MIDIDeviceChooser.cpp │ │ │ ├── MIDIDeviceChooser.h │ │ │ ├── MIDIDeviceParameterUI.cpp │ │ │ └── MIDIDeviceParameterUI.h │ ├── ParameterLink │ │ ├── ParameterLink.cpp │ │ ├── ParameterLink.h │ │ └── ui │ │ │ ├── LinkableParameterEditor.cpp │ │ │ └── LinkableParameterEditor.h │ ├── Serial │ │ └── lib │ │ │ ├── cobs │ │ │ ├── cobs.cpp │ │ │ └── cobs.h │ │ │ └── serial │ │ │ ├── impl │ │ │ ├── list_ports │ │ │ │ ├── list_ports_linux.cc │ │ │ │ ├── list_ports_osx.cc │ │ │ │ └── list_ports_win.cc │ │ │ ├── unix.cc │ │ │ └── win.cc │ │ │ └── serial.cc │ ├── Spatializer │ │ ├── SpatItem.cpp │ │ ├── SpatItem.h │ │ ├── SpatManager.cpp │ │ ├── SpatManager.h │ │ └── ui │ │ │ ├── SpatItemViewUI.cpp │ │ │ ├── SpatItemViewUI.h │ │ │ ├── SpatManagerView.cpp │ │ │ └── SpatManagerView.h │ └── Zeroconf │ │ ├── ZeroconfManager.cpp │ │ └── ZeroconfManager.h ├── Effect │ ├── Effect.cpp │ ├── Effect.h │ ├── EffectIncludes.cpp │ ├── EffectIncludes.h │ ├── EffectManager.cpp │ ├── EffectManager.h │ ├── Filter │ │ ├── Filter.cpp │ │ ├── Filter.h │ │ ├── FilterManager.cpp │ │ ├── FilterManager.h │ │ ├── filters │ │ │ ├── group │ │ │ │ ├── GroupFilter.cpp │ │ │ │ └── GroupFilter.h │ │ │ ├── id │ │ │ │ ├── IDFilter.cpp │ │ │ │ └── IDFilter.h │ │ │ └── layout │ │ │ │ ├── LayoutFilter.cpp │ │ │ │ ├── LayoutFilter.h │ │ │ │ └── ui │ │ │ │ ├── LayoutFilterStageView.cpp │ │ │ │ ├── LayoutFilterStageView.h │ │ │ │ ├── LayoutFilterStageViewUI.cpp │ │ │ │ └── LayoutFilterStageViewUI.h │ │ └── ui │ │ │ ├── FilterEditor.cpp │ │ │ ├── FilterEditor.h │ │ │ ├── FilterManagerEditor.cpp │ │ │ └── FilterManagerEditor.h │ ├── GlobalEffectManager.cpp │ ├── GlobalEffectManager.h │ ├── actions │ │ ├── EffectAction.cpp │ │ └── EffectAction.h │ ├── effects │ │ ├── color │ │ │ ├── ColorEffect.cpp │ │ │ ├── ColorEffect.h │ │ │ ├── gradientmap │ │ │ │ ├── ColorGradientMapEffect.cpp │ │ │ │ └── ColorGradientMapEffect.h │ │ │ ├── hsv │ │ │ │ ├── HSVAdjustEffect.cpp │ │ │ │ └── HSVAdjustEffect.h │ │ │ ├── override │ │ │ │ ├── ColorSourceOverrideEffect.cpp │ │ │ │ ├── ColorSourceOverrideEffect.h │ │ │ │ └── ui │ │ │ │ │ ├── ColorSourceOverrideEffectEditor.cpp │ │ │ │ │ └── ColorSourceOverrideEffectEditor.h │ │ │ └── remap │ │ │ │ ├── ColorPositionRemapEffect.cpp │ │ │ │ └── ColorPositionRemapEffect.h │ │ ├── customcomponent │ │ │ ├── CustomComponentEffect.cpp │ │ │ └── CustomComponentEffect.h │ │ ├── orientation │ │ │ ├── OrientationEffect.cpp │ │ │ └── OrientationEffect.h │ │ ├── override │ │ │ ├── CurveMapEffect.cpp │ │ │ ├── CurveMapEffect.h │ │ │ ├── FreezeEffect.cpp │ │ │ ├── FreezeEffect.h │ │ │ ├── OverrideEffect.cpp │ │ │ ├── OverrideEffect.h │ │ │ ├── PointEffect.cpp │ │ │ └── PointEffect.h │ │ ├── script │ │ │ ├── ScriptEffect.cpp │ │ │ └── ScriptEffect.h │ │ ├── smooth │ │ │ ├── DampingEffect.cpp │ │ │ ├── DampingEffect.h │ │ │ ├── SmoothingEffect.cpp │ │ │ └── SmoothingEffect.h │ │ └── time │ │ │ ├── TimedEffect.cpp │ │ │ ├── TimedEffect.h │ │ │ ├── automation │ │ │ ├── AutomationEffect.cpp │ │ │ ├── AutomationEffect.h │ │ │ └── ui │ │ │ │ ├── AutomationEffectEditor.cpp │ │ │ │ └── AutomationEffectEditor.h │ │ │ └── noise │ │ │ ├── NoiseEffect.cpp │ │ │ └── NoiseEffect.h │ └── ui │ │ ├── EffectChainVizUI.cpp │ │ ├── EffectChainVizUI.h │ │ ├── EffectEditor.cpp │ │ ├── EffectEditor.h │ │ ├── EffectManagerEditor.cpp │ │ ├── EffectManagerEditor.h │ │ ├── GlobalEffectManagerUI.cpp │ │ └── GlobalEffectManagerUI.h ├── Engine │ ├── BluxEngine.cpp │ ├── BluxEngine.h │ ├── GenericAction.cpp │ └── GenericAction.h ├── Interface │ ├── Interface.cpp │ ├── Interface.h │ ├── InterfaceIncludes.cpp │ ├── InterfaceIncludes.h │ ├── InterfaceManager.cpp │ ├── InterfaceManager.h │ ├── interfaces │ │ ├── bento │ │ │ ├── BentoInterface.cpp │ │ │ └── BentoInterface.h │ │ ├── dmx │ │ │ ├── DMXInterface.cpp │ │ │ ├── DMXInterface.h │ │ │ └── ui │ │ │ │ ├── DMXChannelView.cpp │ │ │ │ ├── DMXChannelView.h │ │ │ │ ├── DMXInterfaceUI.cpp │ │ │ │ └── DMXInterfaceUI.h │ │ ├── midi │ │ │ ├── MIDIInterface.cpp │ │ │ ├── MIDIInterface.h │ │ │ ├── MIDIMapping.cpp │ │ │ ├── MIDIMapping.h │ │ │ ├── MIDIMappingManager.cpp │ │ │ ├── MIDIMappingManager.h │ │ │ └── ui │ │ │ │ ├── MIDIMappingEditor.cpp │ │ │ │ └── MIDIMappingEditor.h │ │ ├── osc │ │ │ ├── OSCInterface.cpp │ │ │ ├── OSCInterface.h │ │ │ ├── custom │ │ │ │ ├── CustomOSCInterface.cpp │ │ │ │ └── CustomOSCInterface.h │ │ │ └── ui │ │ │ │ ├── OSCInputEditor.cpp │ │ │ │ ├── OSCInputEditor.h │ │ │ │ ├── OSCOutputEditor.cpp │ │ │ │ └── OSCOutputEditor.h │ │ └── serial │ │ │ ├── SerialInterface.cpp │ │ │ └── SerialInterface.h │ └── ui │ │ ├── InterfaceManagerUI.cpp │ │ ├── InterfaceManagerUI.h │ │ ├── InterfaceUI.cpp │ │ └── InterfaceUI.h ├── Main.cpp ├── Main.h ├── MainComponent.cpp ├── MainComponent.h ├── MainComponentCommands.cpp ├── MainIncludes.cpp ├── MainIncludes.h ├── Object │ ├── Component │ │ ├── ComponentManager.cpp │ │ ├── ComponentManager.h │ │ ├── ObjectComponent.cpp │ │ ├── ObjectComponent.h │ │ ├── components │ │ │ ├── color │ │ │ │ ├── ColorComponent.cpp │ │ │ │ ├── ColorComponent.h │ │ │ │ └── ui │ │ │ │ │ ├── ColorComponentEditor.cpp │ │ │ │ │ └── ColorComponentEditor.h │ │ │ ├── custom │ │ │ │ ├── CustomComponent.cpp │ │ │ │ └── CustomComponent.h │ │ │ ├── dimmer │ │ │ │ ├── DimmerComponent.cpp │ │ │ │ └── DimmerComponent.h │ │ │ ├── orientation │ │ │ │ ├── Matrix3x3.hpp │ │ │ │ ├── OrientationComponent.cpp │ │ │ │ ├── OrientationComponent.h │ │ │ │ ├── Quaternion.hpp │ │ │ │ ├── Vector2.hpp │ │ │ │ └── Vector3.hpp │ │ │ └── shutter │ │ │ │ ├── ShutterComponent.cpp │ │ │ │ └── ShutterComponent.h │ │ └── ui │ │ │ ├── ComponentManagerEditor.cpp │ │ │ ├── ComponentManagerEditor.h │ │ │ ├── ObjectComponentEditor.cpp │ │ │ └── ObjectComponentEditor.h │ ├── Group │ │ ├── Group.cpp │ │ ├── Group.h │ │ ├── GroupManager.cpp │ │ ├── GroupManager.h │ │ ├── groups │ │ │ ├── object │ │ │ │ ├── ObjectGroup.cpp │ │ │ │ ├── ObjectGroup.h │ │ │ │ └── ui │ │ │ │ │ ├── ObjectGroupUI.cpp │ │ │ │ │ └── ObjectGroupUI.h │ │ │ └── virtual │ │ │ │ ├── VirtualGroup.cpp │ │ │ │ └── VirtualGroup.h │ │ └── ui │ │ │ ├── GroupManagerUI.cpp │ │ │ ├── GroupManagerUI.h │ │ │ ├── GroupUI.cpp │ │ │ └── GroupUI.h │ ├── Layout │ │ ├── StageLayout.cpp │ │ ├── StageLayout.h │ │ ├── StageLayoutManager.cpp │ │ ├── StageLayoutManager.h │ │ └── ui │ │ │ ├── Object2DView.cpp │ │ │ ├── Object2DView.h │ │ │ ├── StageLayout2DView.cpp │ │ │ ├── StageLayout2DView.h │ │ │ ├── StageLayoutManagerUI.cpp │ │ │ ├── StageLayoutManagerUI.h │ │ │ ├── StageLayoutUI.cpp │ │ │ └── StageLayoutUI.h │ ├── Object.cpp │ ├── Object.h │ ├── ObjectIncludes.cpp │ ├── ObjectIncludes.h │ ├── ObjectManager.cpp │ ├── ObjectManager.h │ ├── actions │ │ ├── ObjectAction.cpp │ │ └── ObjectAction.h │ └── ui │ │ ├── ObjectChainVizUI.cpp │ │ ├── ObjectChainVizUI.h │ │ ├── ObjectCustomView.cpp │ │ ├── ObjectCustomView.h │ │ ├── ObjectGridUI.cpp │ │ ├── ObjectGridUI.h │ │ ├── ObjectManagerGridUI.cpp │ │ ├── ObjectManagerGridUI.h │ │ ├── ObjectManagerUI.cpp │ │ ├── ObjectManagerUI.h │ │ ├── ObjectUI.cpp │ │ └── ObjectUI.h ├── Scene │ ├── Scene.cpp │ ├── Scene.h │ ├── SceneIncludes.cpp │ ├── SceneIncludes.h │ ├── SceneManager.cpp │ ├── SceneManager.h │ ├── actions │ │ ├── SceneAction.cpp │ │ └── SceneAction.h │ └── ui │ │ ├── SceneManagerUI.cpp │ │ ├── SceneManagerUI.h │ │ ├── SceneUI.cpp │ │ └── SceneUI.h ├── Sequence │ ├── BluxSequence.cpp │ ├── BluxSequence.h │ ├── BluxSequenceManager.cpp │ ├── BluxSequenceManager.h │ ├── GlobalSequenceManager.cpp │ ├── GlobalSequenceManager.h │ ├── SequenceIncludes.cpp │ ├── SequenceIncludes.h │ ├── actions │ │ ├── SequenceAction.cpp │ │ └── SequenceAction.h │ ├── layers │ │ ├── action │ │ │ ├── ActionLayer.cpp │ │ │ ├── ActionLayer.h │ │ │ ├── ActionTrigger.cpp │ │ │ └── ActionTrigger.h │ │ ├── automation │ │ │ ├── AutomationLayer.cpp │ │ │ └── AutomationLayer.h │ │ ├── colorsource │ │ │ ├── ColorSourceLayer.cpp │ │ │ └── ColorSourceLayer.h │ │ ├── effect │ │ │ ├── EffectBlock.cpp │ │ │ ├── EffectBlock.h │ │ │ ├── EffectBlockManager.cpp │ │ │ ├── EffectBlockManager.h │ │ │ ├── EffectLayer.cpp │ │ │ ├── EffectLayer.h │ │ │ └── ui │ │ │ │ ├── EffectBlockManagerUI.cpp │ │ │ │ ├── EffectBlockManagerUI.h │ │ │ │ ├── EffectBlockUI.cpp │ │ │ │ ├── EffectBlockUI.h │ │ │ │ ├── EffectLayerTimeline.cpp │ │ │ │ └── EffectLayerTimeline.h │ │ └── rawdata │ │ │ ├── RawDataBlock.cpp │ │ │ ├── RawDataBlock.h │ │ │ ├── RawDataBlockManager.cpp │ │ │ ├── RawDataBlockManager.h │ │ │ ├── RawDataLayer.cpp │ │ │ ├── RawDataLayer.h │ │ │ └── ui │ │ │ ├── RawDataBlockManagerUI.cpp │ │ │ ├── RawDataBlockManagerUI.h │ │ │ ├── RawDataBlockUI.cpp │ │ │ ├── RawDataBlockUI.h │ │ │ ├── RawDataLayerPanel.cpp │ │ │ ├── RawDataLayerPanel.h │ │ │ ├── RawDataLayerTimeline.cpp │ │ │ └── RawDataLayerTimeline.h │ └── ui │ │ ├── BluxSequenceChainVizUI.cpp │ │ ├── BluxSequenceChainVizUI.h │ │ ├── BluxSequenceEditor.cpp │ │ ├── BluxSequenceEditor.h │ │ ├── GlobalSequenceManagerUI.cpp │ │ └── GlobalSequenceManagerUI.h ├── UI │ ├── AssetManager.cpp │ ├── AssetManager.h │ ├── BluxInspector.cpp │ └── BluxInspector.h └── Viz │ ├── Viz.cpp │ └── Viz.h ├── install.iss └── setup.ico /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: benkuper 2 | patreon: benkuper 3 | custom: ["https://www.paypal.me/benkuper"] 4 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Environment** 11 | - OS: [e.g. Windows 10, MacOS 10.14] 12 | - Version [e.g. 1.7.2] 13 | 14 | **Describe the bug** 15 | A clear and concise description of what the bug is. 16 | 17 | **To Reproduce** 18 | Steps to reproduce the behavior: 19 | 1. 20 | 2. 21 | 3. 22 | 4. 23 | 24 | **Expected behavior** 25 | A clear and concise description of what you expected to happen. 26 | 27 | **Additional context** 28 | Add any other context about the problem here. 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/questions-and-feedbacks.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Questions and Feedbacks 3 | about: General purpose issue 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/actions/set-suffix/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Set Variables' 2 | description: 'Set app version suffix' 3 | inputs: 4 | os: 5 | description: 'OS designator' 6 | required: true 7 | outputs: 8 | suffix: 9 | description: 'Suffix for the compiled version' 10 | value: ${{ steps.main.outputs.suffix }} 11 | 12 | config: 13 | description: 'Config to use (Win only)' 14 | value: ${{ steps.main.outputs.config }} 15 | 16 | dep: 17 | description: 'Dependency file suffix' 18 | value: ${{ steps.main.outputs.dep }} 19 | 20 | runs: 21 | using: "composite" 22 | steps: 23 | - id: main 24 | run: | 25 | if [[ $GITHUB_REF == *"refs/tags/"* ]] 26 | then 27 | echo "Found Tag : ${GITHUB_REF#refs/tags/}" 28 | echo "::set-output name=suffix::${{ inputs.os }}-${GITHUB_REF#refs/tags/}" 29 | echo "::set-output name=config::Release" 30 | echo "::set-output name=dep::release" 31 | else 32 | echo "::set-output name=suffix::${{ inputs.os }}-bleedingedge" 33 | echo "::set-output name=config::Release" 34 | echo "::set-output name=dep::release" 35 | fi 36 | shell: bash 37 | -------------------------------------------------------------------------------- /.github/actions/upload/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Upload' 2 | description: 'Upload package to server' 3 | inputs: 4 | url: 5 | description: 'Upload URL' 6 | required: true 7 | pass: 8 | description: 'Upload password' 9 | required: true 10 | pkg-name: 11 | description: 'Name of the file to upload' 12 | required: true 13 | 14 | runs: 15 | using: "composite" 16 | steps: 17 | - run: curl -X POST -F "appFile=@${{ inputs.pkg-name }}" -F "pass=${{ inputs.pass }}" ${{ inputs.url }} 18 | shell: bash 19 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Modules/juce_organicui"] 2 | path = Modules/juce_organicui 3 | url = http://github.com/benkuper/juce_organicui 4 | [submodule "Modules/juce_timeline"] 5 | path = Modules/juce_timeline 6 | url = http://github.com/benkuper/juce_timeline 7 | [submodule "Modules/juce_simpleweb"] 8 | path = Modules/juce_simpleweb 9 | url = http://github.com/benkuper/juce_simpleweb 10 | [submodule "Modules/juce_dmx"] 11 | path = Modules/juce_dmx 12 | url = https://github.com/benkuper/juce_dmx 13 | [submodule "Modules/juce_serial"] 14 | path = Modules/juce_serial 15 | url = https://github.com/benkuper/juce_serial 16 | -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/.DirIcon: -------------------------------------------------------------------------------- 1 | chataigne.png -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/AppRun: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/LinuxMakefile/Blux.AppDir/AppRun -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/blux.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Blux 3 | Exec=Blux 4 | Icon=blux 5 | Type=Application 6 | Categories=AudioVideo;Art; 7 | Comment=Another way of playing with lights 8 | Comment[fr]=Une autre manière de jouer avec des lumières 9 | MimeType=text/blux; 10 | Name[en]=Blux 11 | Terminal=false 12 | StartupNotify=true 13 | NoDisplay=false 14 | Name[en_US]=blux.desktop 15 | -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/blux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/LinuxMakefile/Blux.AppDir/blux.png -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/usr/lib/libServus.so: -------------------------------------------------------------------------------- 1 | libServus.so.6 -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/usr/lib/libServus.so.1.6.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/LinuxMakefile/Blux.AppDir/usr/lib/libServus.so.1.6.0 -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/usr/lib/libServus.so.6: -------------------------------------------------------------------------------- 1 | libServus.so.1.6.0 -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/usr/lib/libartnet.so: -------------------------------------------------------------------------------- 1 | ELF -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/usr/lib/libartnet.so.1: -------------------------------------------------------------------------------- 1 | ELF -------------------------------------------------------------------------------- /Builds/LinuxMakefile/Blux.AppDir/usr/lib/libartnet.so.1.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/LinuxMakefile/Blux.AppDir/usr/lib/libartnet.so.1.0.0 -------------------------------------------------------------------------------- /Builds/MacOSX_CI/Blux.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Builds/MacOSX_CI/Icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/MacOSX_CI/Icon.icns -------------------------------------------------------------------------------- /Builds/MacOSX_CI/Info-App.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | NSAppTransportSecurity 7 | 8 | NSAllowsArbitraryLoads 9 | 10 | 11 | CFBundleExecutable 12 | ${EXECUTABLE_NAME} 13 | CFBundleIconFile 14 | Icon.icns 15 | CFBundleIdentifier 16 | benkuper.Blux 17 | CFBundleName 18 | Blux 19 | CFBundleDisplayName 20 | Blux 21 | CFBundlePackageType 22 | APPL 23 | CFBundleSignature 24 | ???? 25 | CFBundleShortVersionString 26 | 1.2.1b8 27 | CFBundleVersion 28 | 1.2.1b8 29 | NSHumanReadableCopyright 30 | Ben Kuper 31 | NSHighResolutionCapable 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Builds/MacOSX_CI/RecentFilesMenuTemplate.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/MacOSX_CI/RecentFilesMenuTemplate.nib -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/.DirIcon: -------------------------------------------------------------------------------- 1 | chataigne.png -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/AppRun: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/AppRun -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/blux.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Blux 3 | Exec=Blux 4 | Icon=blux 5 | Type=Application 6 | Categories=AudioVideo;Art; 7 | Comment=Another way of playing with lights 8 | Comment[fr]=Une autre manière de jouer avec des lumières 9 | MimeType=text/blux; 10 | Name[en]=Blux 11 | Terminal=false 12 | StartupNotify=true 13 | NoDisplay=false 14 | Name[en_US]=blux.desktop 15 | -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/blux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/blux.png -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libBLT.2.5.so.8.6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libBLT.2.5.so.8.6 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libBLTlite.2.5.so.8.6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libBLTlite.2.5.so.8.6 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2-2.0.so.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2-2.0.so.0 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2-2.0.so.0.10.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2-2.0.so.0.10.0 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2.a -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2.so -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2main.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libSDL2main.a -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libServus.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libServus.so -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libServus.so.1.6.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libServus.so.1.6.0 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libServus.so.6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libServus.so.6 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libartnet.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libartnet.so -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libartnet.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libartnet.so.1 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libartnet.so.1.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libartnet.so.1.0.0 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libbcm_host.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libbcm_host.so -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libhidapi-hidraw.so: -------------------------------------------------------------------------------- 1 | libhidapi-hidraw.so.0.0.0 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libhidapi-hidraw.so.0: -------------------------------------------------------------------------------- 1 | libhidapi-hidraw.so.0.0.0 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libhidapi-hidraw.so.0.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libhidapi-hidraw.so.0.0.0 -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libvchiq_arm.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libvchiq_arm.so -------------------------------------------------------------------------------- /Builds/Raspberry/Blux.AppDir/usr/lib/libvcos.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry/Blux.AppDir/usr/lib/libvcos.so -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/.DirIcon: -------------------------------------------------------------------------------- 1 | chataigne.png -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/AppRun: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry64/Blux.AppDir/AppRun -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/blux.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Blux 3 | Exec=Blux 4 | Icon=blux 5 | Type=Application 6 | Categories=AudioVideo;Art; 7 | Comment=Another way of playing with lights 8 | Comment[fr]=Une autre manière de jouer avec des lumières 9 | MimeType=text/blux; 10 | Name[en]=Blux 11 | Terminal=false 12 | StartupNotify=true 13 | NoDisplay=false 14 | Name[en_US]=blux.desktop 15 | -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/blux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry64/Blux.AppDir/blux.png -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libSDL2-2.0.so.0: -------------------------------------------------------------------------------- 1 | libSDL2-2.0.so.0.9.0 -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libSDL2-2.0.so.0.9.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry64/Blux.AppDir/usr/lib/libSDL2-2.0.so.0.9.0 -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libSDL2.so: -------------------------------------------------------------------------------- 1 | libSDL2-2.0.so.0.9.0 -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libServus.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry64/Blux.AppDir/usr/lib/libServus.so -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libServus.so.6: -------------------------------------------------------------------------------- 1 | libServus.so -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libbluetooth.so.3: -------------------------------------------------------------------------------- 1 | libbluetooth.so.3.18.16 -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libbluetooth.so.3.18.16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry64/Blux.AppDir/usr/lib/libbluetooth.so.3.18.16 -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libhidapi-hidraw.so: -------------------------------------------------------------------------------- 1 | libhidapi-hidraw.so.0.0.0 -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libhidapi-hidraw.so.0: -------------------------------------------------------------------------------- 1 | libhidapi-hidraw.so.0.0.0 -------------------------------------------------------------------------------- /Builds/Raspberry64/Blux.AppDir/usr/lib/libhidapi-hidraw.so.0.0.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/Raspberry64/Blux.AppDir/usr/lib/libhidapi-hidraw.so.0.0.0 -------------------------------------------------------------------------------- /Builds/VisualStudio2022/Blux.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio Version 17 4 | 5 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Blux - App", "Blux_App.vcxproj", "{06571C71-5085-34F3-9DDC-62152A110C97}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|x64 = Debug|x64 10 | Release|x64 = Release|x64 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {06571C71-5085-34F3-9DDC-62152A110C97}.Debug|x64.ActiveCfg = Debug|x64 14 | {06571C71-5085-34F3-9DDC-62152A110C97}.Debug|x64.Build.0 = Debug|x64 15 | {06571C71-5085-34F3-9DDC-62152A110C97}.Release|x64.ActiveCfg = Release|x64 16 | {06571C71-5085-34F3-9DDC-62152A110C97}.Release|x64.Build.0 = Release|x64 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /Builds/VisualStudio2022/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022/icon.ico -------------------------------------------------------------------------------- /Builds/VisualStudio2022/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Builds/VisualStudio2022/resources.rc: -------------------------------------------------------------------------------- 1 | #pragma code_page(65001) 2 | 3 | #ifdef JUCE_USER_DEFINED_RC_FILE 4 | #include JUCE_USER_DEFINED_RC_FILE 5 | #else 6 | 7 | #undef WIN32_LEAN_AND_MEAN 8 | #define WIN32_LEAN_AND_MEAN 9 | #include 10 | 11 | VS_VERSION_INFO VERSIONINFO 12 | FILEVERSION 1,2,1b8,0 13 | BEGIN 14 | BLOCK "StringFileInfo" 15 | BEGIN 16 | BLOCK "040904E4" 17 | BEGIN 18 | VALUE "CompanyName", "Ben Kuper\0" 19 | VALUE "LegalCopyright", "Ben Kuper\0" 20 | VALUE "FileDescription", "Blux\0" 21 | VALUE "FileVersion", "1.2.1b8\0" 22 | VALUE "ProductName", "Blux\0" 23 | VALUE "ProductVersion", "1.2.1b8\0" 24 | END 25 | END 26 | 27 | BLOCK "VarFileInfo" 28 | BEGIN 29 | VALUE "Translation", 0x409, 1252 30 | END 31 | END 32 | 33 | #endif 34 | 35 | IDI_ICON1 ICON DISCARDABLE "icon.ico" 36 | IDI_ICON2 ICON DISCARDABLE "icon.ico" -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/Blux.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio Version 17 4 | 5 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Blux - App", "Blux_App.vcxproj", "{06571C71-5085-34F3-9DDC-62152A110C97}" 6 | EndProject 7 | Global 8 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 9 | Debug|x64 = Debug|x64 10 | Release|x64 = Release|x64 11 | EndGlobalSection 12 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 13 | {06571C71-5085-34F3-9DDC-62152A110C97}.Debug|x64.ActiveCfg = Debug|x64 14 | {06571C71-5085-34F3-9DDC-62152A110C97}.Debug|x64.Build.0 = Debug|x64 15 | {06571C71-5085-34F3-9DDC-62152A110C97}.Release|x64.ActiveCfg = Release|x64 16 | {06571C71-5085-34F3-9DDC-62152A110C97}.Release|x64.Build.0 = Release|x64 17 | EndGlobalSection 18 | GlobalSection(SolutionProperties) = preSolution 19 | HideSolutionNode = FALSE 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/icon.ico -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/.signature.p7s -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/Microsoft.Web.WebView2.1.0.902.49.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/Microsoft.Web.WebView2.1.0.902.49.nupkg -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/WebView2.tlb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/WebView2.tlb -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/Common.targets: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/Common.targets -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/Microsoft.Web.WebView2.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | managed 8 | 9 | 10 | 11 | 13 | $(MSBuildThisFileDirectory)..\ 14 | 15 | 16 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/Microsoft.Web.WebView2.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | native 7 | 8 | 9 | 10 | 12 | $(MSBuildThisFileDirectory)..\..\ 13 | 14 | 15 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/arm64/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/arm64/WebView2Loader.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/arm64/WebView2Loader.dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/arm64/WebView2Loader.dll.lib -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/arm64/WebView2LoaderStatic.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/arm64/WebView2LoaderStatic.lib -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x64/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x64/WebView2Loader.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x64/WebView2Loader.dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x64/WebView2Loader.dll.lib -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x64/WebView2LoaderStatic.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x64/WebView2LoaderStatic.lib -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x86/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x86/WebView2Loader.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x86/WebView2Loader.dll.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x86/WebView2Loader.dll.lib -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x86/WebView2LoaderStatic.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/build/native/x86/WebView2LoaderStatic.lib -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/net45/Microsoft.Web.WebView2.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/net45/Microsoft.Web.WebView2.Core.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/net45/Microsoft.Web.WebView2.WinForms.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/net45/Microsoft.Web.WebView2.WinForms.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/net45/Microsoft.Web.WebView2.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/net45/Microsoft.Web.WebView2.Wpf.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/netcoreapp3.0/Microsoft.Web.WebView2.Core.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/netcoreapp3.0/Microsoft.Web.WebView2.Core.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/netcoreapp3.0/Microsoft.Web.WebView2.WinForms.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/netcoreapp3.0/Microsoft.Web.WebView2.WinForms.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/netcoreapp3.0/Microsoft.Web.WebView2.Wpf.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/lib/netcoreapp3.0/Microsoft.Web.WebView2.Wpf.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/runtimes/win-arm64/native/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/runtimes/win-arm64/native/WebView2Loader.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/runtimes/win-x64/native/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/runtimes/win-x64/native/WebView2Loader.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/runtimes/win-x86/native/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/runtimes/win-x86/native/WebView2Loader.dll -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/packages/Microsoft.Web.WebView2.1.0.902.49/tools/VisualStudioToolsManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Builds/VisualStudio2022_CI/resources.rc: -------------------------------------------------------------------------------- 1 | #pragma code_page(65001) 2 | 3 | #ifdef JUCE_USER_DEFINED_RC_FILE 4 | #include JUCE_USER_DEFINED_RC_FILE 5 | #else 6 | 7 | #undef WIN32_LEAN_AND_MEAN 8 | #define WIN32_LEAN_AND_MEAN 9 | #include 10 | 11 | VS_VERSION_INFO VERSIONINFO 12 | FILEVERSION 1,2,1b8,0 13 | BEGIN 14 | BLOCK "StringFileInfo" 15 | BEGIN 16 | BLOCK "040904E4" 17 | BEGIN 18 | VALUE "CompanyName", "Ben Kuper\0" 19 | VALUE "LegalCopyright", "Ben Kuper\0" 20 | VALUE "FileDescription", "Blux\0" 21 | VALUE "FileVersion", "1.2.1b8\0" 22 | VALUE "ProductName", "Blux\0" 23 | VALUE "ProductVersion", "1.2.1b8\0" 24 | END 25 | END 26 | 27 | BLOCK "VarFileInfo" 28 | BEGIN 29 | VALUE "Translation", 0x409, 1252 30 | END 31 | END 32 | 33 | #endif 34 | 35 | IDI_ICON1 ICON DISCARDABLE "icon.ico" 36 | IDI_ICON2 ICON DISCARDABLE "icon.ico" -------------------------------------------------------------------------------- /External/asio/debugmessage.cpp: -------------------------------------------------------------------------------- 1 | #include "asiosys.h" 2 | 3 | #if DEBUG 4 | #if MAC 5 | #include 6 | void DEBUGGERMESSAGE(char *string) 7 | { 8 | c2pstr(string); 9 | DebugStr((unsigned char *)string); 10 | } 11 | #else 12 | #error debugmessage 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /External/dnssd/lib/dnssd.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/dnssd/lib/dnssd.lib -------------------------------------------------------------------------------- /External/servus/include/servus/api.h: -------------------------------------------------------------------------------- 1 | // generated by CommonLibrary.cmake, do not edit. 2 | 3 | /** 4 | * @file include/servus/api.h 5 | * Defines export visibility macros for library Servus. 6 | */ 7 | 8 | #ifndef SERVUS_API_H 9 | #define SERVUS_API_H 10 | 11 | #include 12 | 13 | #if defined(_MSC_VER) || defined(__declspec) 14 | # define SERVUS_DLLEXPORT __declspec(dllexport) 15 | # define SERVUS_DLLIMPORT __declspec(dllimport) 16 | #else // _MSC_VER 17 | # define SERVUS_DLLEXPORT 18 | # define SERVUS_DLLIMPORT 19 | #endif // _MSC_VER 20 | 21 | #if defined(SERVUS_STATIC) 22 | # define SERVUS_API 23 | #elif defined(SERVUS_SHARED) 24 | # define SERVUS_API SERVUS_DLLEXPORT 25 | #else 26 | # define SERVUS_API SERVUS_DLLIMPORT 27 | #endif 28 | 29 | #if defined(SERVUS_SHARED_INL) 30 | # define SERVUS_INL SERVUS_DLLEXPORT 31 | #else 32 | # define SERVUS_INL SERVUS_DLLIMPORT 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /External/servus/include/servus/defines.h: -------------------------------------------------------------------------------- 1 | // generated by CommonFindPackage.cmake, do not edit. 2 | 3 | /** 4 | * @file include/servus/defines.h 5 | * Includes compile-time defines of Servus. 6 | */ 7 | 8 | #ifndef SERVUS_DEFINES_H 9 | #define SERVUS_DEFINES_H 10 | 11 | #ifdef __APPLE__ 12 | # include 13 | #elif defined (__linux__) 14 | # include 15 | #elif defined (_WIN32) 16 | # include 17 | #else 18 | # error Unknown OS 19 | #endif 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /External/servus/include/servus/definesDarwin.h: -------------------------------------------------------------------------------- 1 | // generated by CommonFindPackage.cmake, do not edit. 2 | 3 | #ifndef Servus_DEFINES_Darwin_H 4 | #define Servus_DEFINES_Darwin_H 5 | 6 | #ifndef SERVUS_USE_DNSSD 7 | # define SERVUS_USE_DNSSD 1 8 | #endif 9 | #ifndef SERVUS_USE_THREADS 10 | # define SERVUS_USE_THREADS 1 11 | #endif 12 | #ifndef Darwin 13 | # define Darwin 1 14 | #endif 15 | #ifndef SERVUS_USE_CXX11 16 | # define SERVUS_USE_CXX11 1 17 | #endif 18 | #ifndef SERVUS_LITTLEENDIAN 19 | # define SERVUS_LITTLEENDIAN 1 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /External/servus/include/servus/definesDarwin.h.in: -------------------------------------------------------------------------------- 1 | // generated by CommonFindPackage.cmake, do not edit. 2 | 3 | #ifndef Servus_DEFINES_Darwin_H 4 | #define Servus_DEFINES_Darwin_H 5 | 6 | #ifndef SERVUS_USE_DNSSD 7 | # define SERVUS_USE_DNSSD 1 8 | #endif 9 | #ifndef SERVUS_USE_THREADS 10 | # define SERVUS_USE_THREADS 1 11 | #endif 12 | #ifndef Darwin 13 | # define Darwin 1 14 | #endif 15 | #ifndef SERVUS_USE_CXX11 16 | # define SERVUS_USE_CXX11 1 17 | #endif 18 | #ifndef SERVUS_LITTLEENDIAN 19 | # define SERVUS_LITTLEENDIAN 1 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /External/servus/include/servus/definesLinux.h: -------------------------------------------------------------------------------- 1 | // generated by CommonFindPackage.cmake, do not edit. 2 | 3 | #ifndef Servus_DEFINES_Linux_H 4 | #define Servus_DEFINES_Linux_H 5 | 6 | #ifndef SERVUS_USE_AVAHI_CLIENT 7 | # define SERVUS_USE_AVAHI_CLIENT 1 8 | #endif 9 | #ifndef SERVUS_USE_THREADS 10 | # define SERVUS_USE_THREADS 1 11 | #endif 12 | #ifndef Linux 13 | # define Linux 1 14 | #endif 15 | #ifndef SERVUS_USE_CXX11 16 | # define SERVUS_USE_CXX11 1 17 | #endif 18 | #ifndef SERVUS_LITTLEENDIAN 19 | # define SERVUS_LITTLEENDIAN 1 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /External/servus/include/servus/definesLinux.h.in: -------------------------------------------------------------------------------- 1 | // generated by CommonFindPackage.cmake, do not edit. 2 | 3 | #ifndef Servus_DEFINES_Linux_H 4 | #define Servus_DEFINES_Linux_H 5 | 6 | #ifndef SERVUS_USE_AVAHI_CLIENT 7 | # define SERVUS_USE_AVAHI_CLIENT 1 8 | #endif 9 | #ifndef SERVUS_USE_THREADS 10 | # define SERVUS_USE_THREADS 1 11 | #endif 12 | #ifndef Linux 13 | # define Linux 1 14 | #endif 15 | #ifndef SERVUS_USE_CXX11 16 | # define SERVUS_USE_CXX11 1 17 | #endif 18 | #ifndef SERVUS_LITTLEENDIAN 19 | # define SERVUS_LITTLEENDIAN 1 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /External/servus/include/servus/definesWin32.h: -------------------------------------------------------------------------------- 1 | // generated by CommonFindPackage.cmake, do not edit. 2 | 3 | #ifndef Servus_DEFINES_Win32_H 4 | #define Servus_DEFINES_Win32_H 5 | 6 | #ifndef SERVUS_USE_DNSSD 7 | # define SERVUS_USE_DNSSD 1 8 | #endif 9 | #ifndef SERVUS_USE_THREADS 10 | # define SERVUS_USE_THREADS 1 11 | #endif 12 | #ifndef Win32 13 | # define Win32 1 14 | #endif 15 | #ifndef SERVUS_USE_CXX11 16 | # define SERVUS_USE_CXX11 1 17 | #endif 18 | #ifndef SERVUS_LITTLEENDIAN 19 | # define SERVUS_LITTLEENDIAN 1 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /External/servus/include/servus/definesWin32.h.in: -------------------------------------------------------------------------------- 1 | // generated by CommonFindPackage.cmake, do not edit. 2 | 3 | #ifndef Servus_DEFINES_Win32_H 4 | #define Servus_DEFINES_Win32_H 5 | 6 | #ifndef SERVUS_USE_DNSSD 7 | # define SERVUS_USE_DNSSD 1 8 | #endif 9 | #ifndef SERVUS_USE_THREADS 10 | # define SERVUS_USE_THREADS 1 11 | #endif 12 | #ifndef Win32 13 | # define Win32 1 14 | #endif 15 | #ifndef SERVUS_USE_CXX11 16 | # define SERVUS_USE_CXX11 1 17 | #endif 18 | #ifndef SERVUS_LITTLEENDIAN 19 | # define SERVUS_LITTLEENDIAN 1 20 | #endif 21 | 22 | #endif 23 | -------------------------------------------------------------------------------- /External/servus/lib/linux/libServus.so: -------------------------------------------------------------------------------- 1 | libServus.so.6 -------------------------------------------------------------------------------- /External/servus/lib/linux/libServus.so.1.6.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/linux/libServus.so.1.6.0 -------------------------------------------------------------------------------- /External/servus/lib/linux/libServus.so.6: -------------------------------------------------------------------------------- 1 | libServus.so.1.6.0 -------------------------------------------------------------------------------- /External/servus/lib/osx/debug/libServus.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/osx/debug/libServus.a -------------------------------------------------------------------------------- /External/servus/lib/osx/release/libServus.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/osx/release/libServus.a -------------------------------------------------------------------------------- /External/servus/lib/raspberry/libServus.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/raspberry/libServus.so -------------------------------------------------------------------------------- /External/servus/lib/raspberry/libServus.so.1.6.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/raspberry/libServus.so.1.6.0 -------------------------------------------------------------------------------- /External/servus/lib/raspberry/libServus.so.6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/raspberry/libServus.so.6 -------------------------------------------------------------------------------- /External/servus/lib/raspberry64/libServus.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/raspberry64/libServus.so -------------------------------------------------------------------------------- /External/servus/lib/silicon/debug/libServus.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/silicon/debug/libServus.a -------------------------------------------------------------------------------- /External/servus/lib/silicon/release/libServus.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/silicon/release/libServus.a -------------------------------------------------------------------------------- /External/servus/lib/win/x64/debug/Servus.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/win/x64/debug/Servus.lib -------------------------------------------------------------------------------- /External/servus/lib/win/x64/release/Servus.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/External/servus/lib/win/x64/release/Servus.lib -------------------------------------------------------------------------------- /JuceLibraryCode/ReadMe.txt: -------------------------------------------------------------------------------- 1 | 2 | Important Note!! 3 | ================ 4 | 5 | The purpose of this folder is to contain files that are auto-generated by the Projucer, 6 | and ALL files in this folder will be mercilessly DELETED and completely re-written whenever 7 | the Projucer saves your project. 8 | 9 | Therefore, it's a bad idea to make any manual changes to the files in here, or to 10 | put any of your own files in here if you don't want to lose them. (Of course you may choose 11 | to add the folder's contents to your version-control system so that you can re-merge your own 12 | modifications after the Projucer has saved its changes). 13 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_basics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_devices.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_devices.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_formats.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_formats.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_processors.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_processors.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_processors_ara.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_processors_lv2_libs.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_audio_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_core.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_core.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_cryptography.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_cryptography.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_data_structures.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_data_structures.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_dmx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_events.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_events.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_graphics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_graphics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_basics.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_basics.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_extra.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_gui_extra.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_opengl.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_opengl.mm: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_organicui.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_organicui2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_organicui2b.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_organicui3.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_organicui4.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_osc.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_serial.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_simpleweb.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_simpleweb2.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /JuceLibraryCode/include_juce_timeline.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | IMPORTANT! This file is auto-generated each time you save your 4 | project - if you alter its contents, your changes may be overwritten! 5 | 6 | */ 7 | 8 | #include "AppConfig.h" 9 | #include 10 | -------------------------------------------------------------------------------- /Package/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Package/bg.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Blux 2 | A new way of controlling stage lights and other devices 3 | 4 | Official Website : https://benjamin.kuperberg.fr/blux 5 | 6 | Working on Windows x64, Mac OS, Linux x64 and Raspberry Pi 7 | 8 | ## Troubleshooting 9 | Blux is now on Discord, join and meet the community: 10 | https://discord.gg/mWH7fZvubm 11 | 12 | ## The Badge Zone 13 | Build Status : [![Build Status](https://github.com/benkuper/Blux/actions/workflows/build.yml/badge.svg)](https://github.com/benkuper/Blux/actions/workflows/build.yml) 14 | -------------------------------------------------------------------------------- /Resources/colorsource/multipoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/multipoint.png -------------------------------------------------------------------------------- /Resources/colorsource/node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/node.png -------------------------------------------------------------------------------- /Resources/colorsource/patterns/noise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/patterns/noise.png -------------------------------------------------------------------------------- /Resources/colorsource/patterns/point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/patterns/point.png -------------------------------------------------------------------------------- /Resources/colorsource/patterns/rainbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/patterns/rainbow.png -------------------------------------------------------------------------------- /Resources/colorsource/patterns/solidcolor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/patterns/solidcolor.png -------------------------------------------------------------------------------- /Resources/colorsource/patterns/strobe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/patterns/strobe.png -------------------------------------------------------------------------------- /Resources/colorsource/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/picture.png -------------------------------------------------------------------------------- /Resources/colorsource/script.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/script.png -------------------------------------------------------------------------------- /Resources/colorsource/timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/timeline.png -------------------------------------------------------------------------------- /Resources/colorsource/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/colorsource/video.png -------------------------------------------------------------------------------- /Resources/crash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/crash.png -------------------------------------------------------------------------------- /Resources/crash.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/crash.psd -------------------------------------------------------------------------------- /Resources/fx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/fx.png -------------------------------------------------------------------------------- /Resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/icon.png -------------------------------------------------------------------------------- /Resources/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/icon128.png -------------------------------------------------------------------------------- /Resources/icon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/icon2.png -------------------------------------------------------------------------------- /Resources/icon3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/icon3.png -------------------------------------------------------------------------------- /Resources/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/link.png -------------------------------------------------------------------------------- /Resources/seq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Resources/seq.png -------------------------------------------------------------------------------- /Source/Audio/AudioManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AudioManager.h 5 | Created: 27 Apr 2018 12:03:27pm 6 | Author: Ben 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #define AUDIO_INPUT_GRAPH_ID AudioProcessorGraph::NodeID(1) 14 | #define AUDIO_OUTPUT_GRAPH_ID AudioProcessorGraph::NodeID(2) 15 | 16 | class AudioModuleHardwareSettings : 17 | public ControllableContainer 18 | { 19 | public: 20 | AudioModuleHardwareSettings(AudioDeviceManager * am); 21 | ~AudioModuleHardwareSettings() {} 22 | AudioDeviceManager * am; 23 | 24 | InspectableEditor * getEditorInternal(bool isRoot, Array inspectables = {}) override; 25 | }; 26 | 27 | class AudioManager : 28 | public ControllableContainer 29 | { 30 | public: 31 | juce_DeclareSingleton(AudioManager, true); 32 | 33 | AudioManager(); 34 | ~AudioManager(); 35 | 36 | AudioModuleHardwareSettings hs; 37 | AudioDeviceManager am; 38 | AudioProcessorPlayer player; 39 | AudioProcessorGraph graph; 40 | 41 | var getJSONData() override; 42 | void loadJSONDataInternal(var data) override; 43 | }; 44 | -------------------------------------------------------------------------------- /Source/Audio/ui/AudioManagerHardwareEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AudioManagerEditor.h 5 | Created: 27 Apr 2018 12:04:23pm 6 | Author: Ben 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "../AudioManager.h" 14 | 15 | class AudioManagerHardwareEditor : 16 | public GenericControllableContainerEditor 17 | { 18 | public: 19 | AudioManagerHardwareEditor(AudioModuleHardwareSettings * hs, bool isRoot); 20 | ~AudioManagerHardwareEditor(); 21 | 22 | AudioModuleHardwareSettings * hs; 23 | AudioDeviceSelectorComponent selector; 24 | 25 | void setCollapsed(bool value, bool force = false, bool animate = true, bool doNotRebuild = false) override; 26 | void resizedInternalContent(Rectangle &r) override; 27 | }; -------------------------------------------------------------------------------- /Source/ChainViz/ChainVizTarget.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ChainVizTarget.cpp 5 | Created: 31 Oct 2020 10:49:00am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "ChainVizTarget.h" 12 | #include "ChainViz.h" 13 | #include "Object/ObjectIncludes.h" 14 | 15 | ChainVizTarget::~ChainVizTarget() 16 | { 17 | } 18 | 19 | 20 | ChainVizComponent* ChainVizTarget::createVizComponent(Object* o, ComponentType ct, ChainVizType type) { 21 | return new ChainVizComponent(this, o, ct, type); 22 | } 23 | -------------------------------------------------------------------------------- /Source/ChainViz/ChainVizTarget.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ChainVizTarget.h 5 | Created: 31 Oct 2020 10:47:53am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "Common/CommonClasses/ComponentType.h" 14 | 15 | class ChainVizComponent; 16 | class Object; 17 | 18 | class ChainVizTarget 19 | { 20 | public: 21 | enum ChainVizType { OBJECT_START, OBJECT_END, OBJECT_EFFECT, SCENE_EFFECT, GROUP_EFFECT, GLOBAL_EFFECT, SEQUENCE_EFFECT, CHAINVIZ_TYPE_MAX }; 22 | 23 | virtual ~ChainVizTarget(); 24 | virtual ChainVizComponent* createVizComponent(Object * o, ComponentType ct, ChainVizType type); 25 | }; -------------------------------------------------------------------------------- /Source/Color/ColorIncludes.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorIncludes.cpp 5 | Created: 9 Sep 2021 7:04:56pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "ColorIncludes.h" 12 | #include "Object/ObjectIncludes.h" 13 | 14 | #include "ColorSource/ColorSource.cpp" 15 | #include "ColorSource/ColorSourceFactory.cpp" 16 | #include "ColorSource/ColorSourceLibrary.cpp" 17 | #include "ColorSource/sources/node/NodeColorSource.cpp" 18 | #include "ColorSource/sources/pattern/PatternColorSource.cpp" 19 | #include "ColorSource/sources/picture/PictureColorSource.cpp" 20 | #include "ColorSource/sources/script/ScriptColorSource.cpp" 21 | #include "ColorSource/sources/video/VideoColorSource.cpp" 22 | #include "ColorSource/ui/ColorSourceChooser.cpp" 23 | #include "ColorSource/ui/ColorSourceGridUI.cpp" 24 | #include "ColorSource/ui/ColorSourceLibraryGridUI.cpp" 25 | #include "ColorSource/ui/ColorViz.cpp" 26 | #include "PixelShape/PixelShape.cpp" 27 | #include "PixelShape/ui/PixelShapeChooser.cpp" 28 | #include "PixelShape/ui/PixelShapeEditor.cpp" -------------------------------------------------------------------------------- /Source/Color/ColorIncludes.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorIncludes.h 5 | Created: 9 Sep 2021 7:04:56pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | #include "JuceHeader.h" 13 | 14 | #include "Common/CommonIncludes.h" 15 | #include "ColorSource/ColorSource.h" 16 | 17 | #include "PixelShape/PixelShape.h" 18 | #include "PixelShape/ui/PixelShapeChooser.h" 19 | #include "PixelShape/ui/PixelShapeEditor.h" 20 | 21 | #include "ColorSource/sources/node/NodeColorSource.h" 22 | #include "ColorSource/sources/pattern/PatternColorSource.h" 23 | #include "ColorSource/sources/picture/PictureColorSource.h" 24 | 25 | #include "ColorSource/ColorSourceFactory.h" 26 | #include "ColorSource/ColorSourceLibrary.h" 27 | 28 | #include "ColorSource/sources/script/ScriptColorSource.h" 29 | #include "ColorSource/sources/video/VideoColorSource.h" 30 | 31 | #include "ColorSource/ui/ColorSourceChooser.h" 32 | #include "ColorSource/ui/ColorSourceGridUI.h" 33 | #include "ColorSource/ui/ColorSourceLibraryGridUI.h" 34 | #include "ColorSource/ui/ColorViz.h" 35 | -------------------------------------------------------------------------------- /Source/Color/ColorSource/ColorSourceFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceFactory.h 5 | Created: 7 Nov 2020 5:26:47pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorSourceFactory : 14 | public Factory 15 | { 16 | public: 17 | juce_DeclareSingleton(ColorSourceFactory, true) 18 | 19 | ColorSourceFactory(); 20 | ~ColorSourceFactory(); 21 | 22 | void updateDefinitions(); 23 | }; -------------------------------------------------------------------------------- /Source/Color/ColorSource/ColorSourceLibrary.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceLibrary.cpp 5 | Created: 2 Nov 2020 7:13:43pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | juce_ImplementSingleton(ColorSourceLibrary) 12 | 13 | 14 | ColorSourceLibrary::ColorSourceLibrary() : 15 | BaseManager("Color Templates") 16 | { 17 | gridThumbSize = addIntParameter("Thumb Size", "Size of thumbnails in grid view", 64, 32, 256); 18 | managerFactory = ColorSourceFactory::getInstance(); 19 | } 20 | 21 | ColorSourceLibrary::~ColorSourceLibrary() 22 | { 23 | } 24 | -------------------------------------------------------------------------------- /Source/Color/ColorSource/ColorSourceLibrary.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceLibrary.h 5 | Created: 2 Nov 2020 7:13:43pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorSourceLibrary : 14 | public BaseManager 15 | { 16 | public: 17 | juce_DeclareSingleton(ColorSourceLibrary, true); 18 | 19 | ColorSourceLibrary(); 20 | ~ColorSourceLibrary(); 21 | 22 | //ui 23 | IntParameter* gridThumbSize; 24 | }; -------------------------------------------------------------------------------- /Source/Color/ColorSource/sources/node/NodeColorSource.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | NodeColorSource.cpp 5 | Created: 2 Nov 2020 6:19:59pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | NodeColorSource::NodeColorSource(var params) : 12 | ColorSource(getTypeString(), params) 13 | { 14 | } 15 | 16 | NodeColorSource::~NodeColorSource() 17 | { 18 | } 19 | 20 | void NodeColorSource::fillColorsForObjectInternal(Array& colors, Object* o, ColorComponent* comp, int id, float time) 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /Source/Color/ColorSource/sources/node/NodeColorSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | NodeColorSource.h 5 | Created: 2 Nov 2020 6:19:59pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class NodeColorSource : 14 | public ColorSource 15 | { 16 | public: 17 | NodeColorSource(var params = var()); 18 | ~NodeColorSource(); 19 | 20 | //NodeManager nodeManager; 21 | 22 | virtual void fillColorsForObjectInternal(Array& colors, Object* o, ColorComponent* comp, int id, float time) override; 23 | 24 | String getTypeString() const override { return "Node"; } 25 | static NodeColorSource* create(var params) { return new NodeColorSource(params); } 26 | }; -------------------------------------------------------------------------------- /Source/Color/ColorSource/sources/picture/PictureColorSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | PictureColorSource.h 5 | Created: 2 Nov 2020 6:20:22pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class PictureColorSource : 14 | public TimedColorSource 15 | { 16 | public: 17 | PictureColorSource(var params = var()); 18 | ~PictureColorSource(); 19 | 20 | FloatParameter* brightness; 21 | FloatParameter* saturation; 22 | FloatParameter* hue; 23 | FileParameter* pictureFile; 24 | Image picture; 25 | 26 | void onContainerParameterChangedInternal(Parameter*) override; 27 | virtual void fillColorsForObjectTimeInternal(Array& colors, Object* o, ColorComponent* comp, int id, float time, float originalTime) override; 28 | 29 | String getTypeString() const override { return "Picture"; } 30 | static PictureColorSource* create(var params) { return new PictureColorSource(params); } 31 | }; -------------------------------------------------------------------------------- /Source/Color/ColorSource/sources/script/ScriptColorSource.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ScriptColorSource.cpp 5 | Created: 2 Nov 2020 6:20:28pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | ScriptColorSource::ScriptColorSource(var params) : 12 | TimedColorSource(getTypeString(), params) 13 | { 14 | } 15 | 16 | ScriptColorSource::~ScriptColorSource() 17 | { 18 | } 19 | 20 | void ScriptColorSource::fillColorsForObjectTimeInternal(Array& colors, Object* o, ColorComponent* comp, int id, float time, float originalTime) 21 | { 22 | } 23 | -------------------------------------------------------------------------------- /Source/Color/ColorSource/sources/script/ScriptColorSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ScriptColorSource.h 5 | Created: 2 Nov 2020 6:20:28pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ScriptColorSource : 14 | public TimedColorSource 15 | { 16 | public: 17 | ScriptColorSource(var params = var()); 18 | ~ScriptColorSource(); 19 | 20 | //NodeManager nodeManager; 21 | 22 | virtual void fillColorsForObjectTimeInternal(Array& colors, Object* o, ColorComponent* comp, int id, float time, float originalTime) override; 23 | 24 | String getTypeString() const override { return "Script"; } 25 | static ScriptColorSource* create(var params) { return new ScriptColorSource(params); } 26 | }; -------------------------------------------------------------------------------- /Source/Color/ColorSource/ui/ColorSourceChooser.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceChooser.h 5 | Created: 8 Nov 2020 10:04:28am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorSourceChooser : 14 | public TextButton 15 | { 16 | public: 17 | ColorSourceChooser(); 18 | ~ColorSourceChooser(); 19 | 20 | void clicked() override; 21 | 22 | class ChooserListener 23 | { 24 | public: 25 | /** Destructor. */ 26 | virtual ~ChooserListener() {} 27 | virtual void sourceChosen(const String &type, ColorSource * templateRef) {} 28 | }; 29 | 30 | ListenerList chooserListeners; 31 | void addChooserListener(ChooserListener* newListener) { chooserListeners.add(newListener); } 32 | void removeChooserListener(ChooserListener* listener) { chooserListeners.remove(listener); } 33 | 34 | }; 35 | 36 | 37 | class ColorSourceMenu : 38 | public PopupMenu 39 | { 40 | public: 41 | ColorSourceMenu(); 42 | ~ColorSourceMenu() {} 43 | }; -------------------------------------------------------------------------------- /Source/Color/ColorSource/ui/ColorSourceGridUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceGridUI.h 5 | Created: 3 Nov 2020 11:22:38am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorSourceGridUI : 14 | public BaseItemMinimalUI 15 | { 16 | public: 17 | ColorSourceGridUI(ColorSource* item); 18 | ~ColorSourceGridUI(); 19 | 20 | Image img; 21 | 22 | void paint(Graphics &g) override; 23 | 24 | void mouseDown(const MouseEvent& e) override; 25 | }; -------------------------------------------------------------------------------- /Source/Color/ColorSource/ui/ColorSourceLibraryGridUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceLibraryGridUI.h 5 | Created: 3 Nov 2020 11:21:01am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorSourceLibraryGridUI : 14 | public BaseManagerShapeShifterUI, 15 | public ContainerAsyncListener 16 | { 17 | public: 18 | ColorSourceLibraryGridUI(const String& name); 19 | ~ColorSourceLibraryGridUI(); 20 | 21 | std::unique_ptr thumbSizeUI; 22 | 23 | void resizedInternalHeader(Rectangle& r) override; 24 | void resizedInternalContent(Rectangle &r) override; 25 | 26 | void newMessage(const ContainerAsyncEvent& e) override; 27 | 28 | 29 | static ColorSourceLibraryGridUI* create(const String& name) { return new ColorSourceLibraryGridUI(name); } 30 | }; -------------------------------------------------------------------------------- /Source/Color/ColorSource/ui/ColorViz.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceViz.h 5 | Created: 8 Nov 2020 10:01:59am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorViz : 14 | public InspectableEditor, 15 | public Timer 16 | { 17 | public: 18 | ColorViz(ColorComponent* comp); //replace with ColorProvider 2 children classes, one for Component and one for color source 19 | ~ColorViz(); 20 | 21 | ColorComponent* comp; 22 | 23 | void paint(Graphics& g) override; 24 | void timerCallback() override; 25 | 26 | void visibilityChanged() override; 27 | }; -------------------------------------------------------------------------------- /Source/Color/PixelShape/ui/PixelShapeChooser.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | PixelShapeChooser.cpp 5 | Created: 8 Nov 2020 10:06:49am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | PixelShapeChooser::PixelShapeChooser() : 12 | TextButton("No Shape") 13 | { 14 | } 15 | 16 | PixelShapeChooser::~PixelShapeChooser() 17 | { 18 | } 19 | 20 | void PixelShapeChooser::clicked() 21 | { 22 | PopupMenu m; 23 | 24 | const int numTypes = 3; 25 | const String typeNames[numTypes]{"Point", "Line", "Circle" }; 26 | for (int i = 0; i < numTypes; i++) m.addItem(i + 1, typeNames[i]); 27 | 28 | m.showMenuAsync(PopupMenu::Options(), [this, typeNames](int result) 29 | { 30 | if (result == 0) return; 31 | this->chooserListeners.call(&ChooserListener::shapeChosen, typeNames[result - 1]); 32 | } 33 | ); 34 | } 35 | -------------------------------------------------------------------------------- /Source/Color/PixelShape/ui/PixelShapeChooser.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | PixelShapeChooser.h 5 | Created: 8 Nov 2020 10:06:49am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class PixelShapeChooser : 14 | public TextButton 15 | { 16 | public: 17 | PixelShapeChooser(); 18 | ~PixelShapeChooser(); 19 | 20 | void clicked() override; 21 | 22 | class ChooserListener 23 | { 24 | public: 25 | /** Destructor. */ 26 | virtual ~ChooserListener() {} 27 | virtual void shapeChosen(const String &type) {} 28 | }; 29 | 30 | ListenerList chooserListeners; 31 | void addChooserListener(ChooserListener* newListener) { chooserListeners.add(newListener); } 32 | void removeChooserListener(ChooserListener* listener) { chooserListeners.remove(listener); } 33 | }; 34 | -------------------------------------------------------------------------------- /Source/Color/PixelShape/ui/PixelShapeEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | PixelShapeEditor.cpp 5 | Created: 8 Nov 2020 10:06:45am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | -------------------------------------------------------------------------------- /Source/Color/PixelShape/ui/PixelShapeEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | PixelShapeEditor.h 5 | Created: 8 Nov 2020 10:06:45am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | -------------------------------------------------------------------------------- /Source/Common/Action/Action.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Action.cpp 5 | Created: 8 Oct 2020 3:33:09pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | Action::Action(var params) : 12 | BaseItem(params.getProperty("type","Action").toString()) 13 | { 14 | typeString = params.getProperty("type", "Action").toString(); 15 | showInspectorOnSelect = false; 16 | } 17 | 18 | Action::~Action() 19 | { 20 | 21 | } 22 | 23 | void Action::trigger() 24 | { 25 | if (!enabled->boolValue()) return; 26 | triggerInternal(); 27 | } 28 | 29 | void Action::setValue(var value) 30 | { 31 | if (!enabled->boolValue()) return; 32 | setValueInternal(value); 33 | } 34 | -------------------------------------------------------------------------------- /Source/Common/Action/Action.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Action.h 5 | Created: 8 Oct 2020 3:33:09pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Action : 14 | public BaseItem 15 | { 16 | public: 17 | Action(var params = var()); 18 | virtual ~Action(); 19 | 20 | String typeString; 21 | 22 | void trigger(); 23 | virtual void triggerInternal() {} 24 | 25 | void setValue(var value); 26 | virtual void setValueInternal(var value) {} 27 | 28 | String getTypeString() const override { return typeString; } 29 | }; -------------------------------------------------------------------------------- /Source/Common/Action/ActionManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ActionManager.h 5 | Created: 12 Oct 2020 10:55:26am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ActionFactory : 14 | public Factory 15 | { 16 | public: 17 | juce_DeclareSingleton(ActionFactory, true) 18 | ActionFactory(); 19 | 20 | }; 21 | 22 | class ActionManager : 23 | public BaseManager 24 | { 25 | public: 26 | ActionManager(const String &name = "Actions"); 27 | ~ActionManager(); 28 | 29 | void triggerAll(); 30 | void setValueAll(var value); 31 | }; -------------------------------------------------------------------------------- /Source/Common/CommonClasses/ComponentType.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ComponentType.h 5 | Created: 9 Sep 2021 9:29:10pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "JuceHeader.h" 14 | 15 | enum ComponentType { DIMMER, COLOR, SHUTTER, ORIENTATION, CUSTOM, TYPES_MAX }; 16 | const String componentTypeNames[TYPES_MAX]{ "Dimmer", "Color", "Shutter", "Orientation", "Custom" }; 17 | 18 | -------------------------------------------------------------------------------- /Source/Common/CommonClasses/SceneListener.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SceneListener.h 5 | Created: 10 Sep 2021 12:21:49pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Scene; 14 | class SceneListener 15 | { 16 | public: 17 | /** Destructor. */ 18 | virtual ~SceneListener() {} 19 | virtual void askForLoadScene(Scene* i, float loadTime) {} 20 | }; 21 | 22 | class SceneManagerEvent 23 | { 24 | public: 25 | enum Type { SCENE_LOAD_START, SCENE_LOAD_END }; 26 | 27 | SceneManagerEvent(Type t) : type(t) {} 28 | Type type; 29 | }; 30 | 31 | typedef QueuedNotifier::Listener AsyncSceneListener; -------------------------------------------------------------------------------- /Source/Common/Helpers/ColorHelpers.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorHelpers.h 5 | Created: 11 Aug 2023 5:07:09pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | 14 | class ColorHelpers 15 | { 16 | public: 17 | static HashMap temperatureColorMap; 18 | static void init(); 19 | static Colour getColorForTemperature(float temperature); 20 | 21 | static var getRGBWFromRGB(Colour val, float temperature); 22 | static var getRGBWAFromRGB(Colour val, float temperature); 23 | }; -------------------------------------------------------------------------------- /Source/Common/Helpers/SceneHelpers.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SceneHelpers.h 5 | Created: 9 Oct 2020 10:10:15am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class SceneHelpers 14 | { 15 | public: 16 | static var getParamsSceneData(ControllableContainer * i, Array excludeParams = Array(), bool recursive = false); 17 | static void lerpSceneParams(ControllableContainer * i, var startData, var endData, float weight, bool recursive = false); 18 | static void lerpSceneParam(ControllableContainer* container, Parameter * p, var startData, var endData, float weight); 19 | 20 | }; -------------------------------------------------------------------------------- /Source/Common/Helpers/TimedEffectHiresTimer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | TimedEffectHiresTimer.cpp 5 | Created: 12 Apr 2023 1:09:44pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Common/CommonIncludes.h" 12 | 13 | juce_ImplementSingleton(TimedEffectHiResTimer); 14 | 15 | TimedEffectHiResTimer::TimedEffectHiResTimer() 16 | { 17 | startTimer(50); 18 | } 19 | 20 | void TimedEffectHiResTimer::hiResTimerCallback() 21 | { 22 | timerListeners.call(&TimerListener::hiResTimerCallback); 23 | } 24 | -------------------------------------------------------------------------------- /Source/Common/Helpers/TimedEffectHiresTimer.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | TimedEffectHiresTimer.h 5 | Created: 12 Apr 2023 1:09:44pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class TimedEffectHiResTimer : 14 | public HighResolutionTimer 15 | { 16 | public: 17 | juce_DeclareSingleton(TimedEffectHiResTimer, true); 18 | 19 | TimedEffectHiResTimer(); 20 | ~TimedEffectHiResTimer() {} 21 | 22 | virtual void hiResTimerCallback() override; 23 | 24 | class TimerListener 25 | { 26 | public: 27 | /** Destructor. */ 28 | virtual ~TimerListener() {} 29 | virtual void hiResTimerCallback() {} 30 | }; 31 | 32 | ListenerList timerListeners; 33 | void addTimerListener(TimerListener* newListener) { timerListeners.add(newListener); } 34 | void removeTimerListener(TimerListener* listener) { timerListeners.remove(listener); } 35 | }; -------------------------------------------------------------------------------- /Source/Common/MIDI/ui/MIDIDeviceParameterUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | MIDIDeviceParameterUI.h 5 | Created: 20 Dec 2016 3:06:05pm 6 | Author: Ben 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class MIDIDeviceParameterUI : 14 | public ParameterUI, 15 | public MIDIDeviceChooser::ChooserListener 16 | { 17 | public: 18 | MIDIDeviceParameterUI(Array midiParam); 19 | ~MIDIDeviceParameterUI(); 20 | 21 | Array midiParams; 22 | MIDIDeviceParameter* midiParam; 23 | MIDIDeviceChooser chooser; 24 | 25 | void resized() override; 26 | 27 | void valueChanged(const var &value) override; 28 | 29 | void midiDeviceInSelected(MIDIInputDevice * d) override; 30 | void midiDeviceOutSelected(MIDIOutputDevice * d) override; 31 | }; -------------------------------------------------------------------------------- /Source/Common/Serial/lib/cobs/cobs.h: -------------------------------------------------------------------------------- 1 | #ifndef COBS_H 2 | #define COBS_H 3 | 4 | #include 5 | #include 6 | 7 | size_t cobs_encode(const uint8_t* input, size_t length, uint8_t* output); 8 | size_t cobs_decode(const uint8_t* input, size_t length, uint8_t* output); 9 | 10 | #endif -------------------------------------------------------------------------------- /Source/Common/Spatializer/SpatItem.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SpatItem.cpp 5 | Created: 24 Dec 2023 10:04:48am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Common/CommonIncludes.h" 12 | #include "Object/ObjectIncludes.h" 13 | 14 | SpatItem::SpatItem(var params) 15 | { 16 | setHasCustomColor(true); 17 | 18 | viewUIPosition->setPoint(-1, -1); 19 | viewUISize->setPoint(2, 2); 20 | viewUIPosition->hideInEditor = false; 21 | viewUISize->hideInEditor = false; 22 | } 23 | 24 | SpatItem::~SpatItem() 25 | { 26 | 27 | } 28 | 29 | Point SpatItem::getObjectPosition(Object* o) 30 | { 31 | if (o == nullptr) return Point(0, 0); 32 | 33 | Vector3D oPos = o->stagePosition->getVector(); 34 | Point pos(oPos.x, oPos.z); 35 | 36 | return (pos - viewUIPosition->getPoint()) / viewUISize->getPoint(); 37 | } 38 | -------------------------------------------------------------------------------- /Source/Common/Spatializer/SpatItem.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SpatItem.h 5 | Created: 24 Dec 2023 10:04:48am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Object; 14 | 15 | 16 | class SpatItem : 17 | public BaseItem 18 | { 19 | public: 20 | SpatItem(var params = var()); 21 | ~SpatItem(); 22 | 23 | Point getObjectPosition(Object* o); 24 | 25 | DECLARE_TYPE("Spat") 26 | }; -------------------------------------------------------------------------------- /Source/Common/Spatializer/SpatManager.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SpatManager.cpp 5 | Created: 24 Dec 2023 10:04:41am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Common/CommonIncludes.h" 12 | 13 | SpatManager::SpatManager() : 14 | BaseManager("Spatializer") 15 | { 16 | selectItemWhenCreated = false; 17 | } 18 | 19 | SpatManager::~SpatManager() 20 | { 21 | } 22 | -------------------------------------------------------------------------------- /Source/Common/Spatializer/SpatManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SpatManager.h 5 | Created: 24 Dec 2023 10:04:41am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class SpatManager : 14 | public BaseManager 15 | { 16 | public: 17 | SpatManager(); 18 | ~SpatManager(); 19 | }; -------------------------------------------------------------------------------- /Source/Common/Spatializer/ui/SpatItemViewUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SpatItemViewUI.cpp 5 | Created: 24 Dec 2023 10:05:26am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Common/CommonIncludes.h" 12 | 13 | SpatItemViewUI::SpatItemViewUI(SpatItem* item) : 14 | BaseItemMinimalUI(item) 15 | { 16 | autoHideWhenDragging = false; 17 | drawEmptyDragIcon = true; 18 | syncWithItemSize = true; 19 | 20 | setSize(item->viewUISize->getPoint().x, item->viewUISize->getPoint().y); 21 | } 22 | 23 | SpatItemViewUI::~SpatItemViewUI() 24 | { 25 | } 26 | 27 | void SpatItemViewUI::paint(Graphics& g) 28 | { 29 | Colour c = item->itemColor->getColor(); 30 | g.fillAll(c.withAlpha(.2f)); 31 | g.setColour(c); 32 | g.drawRect(getLocalBounds(), 1); 33 | } 34 | -------------------------------------------------------------------------------- /Source/Common/Spatializer/ui/SpatItemViewUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SpatItemViewUI.h 5 | Created: 24 Dec 2023 10:05:26am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class SpatItemViewUI : 14 | public BaseItemMinimalUI 15 | { 16 | public: 17 | SpatItemViewUI(SpatItem* item); 18 | ~SpatItemViewUI(); 19 | 20 | void paint(Graphics& g) override; 21 | }; -------------------------------------------------------------------------------- /Source/Common/Spatializer/ui/SpatManagerView.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SpatManagerView.cpp 5 | Created: 24 Dec 2023 10:05:15am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Common/CommonIncludes.h" 12 | 13 | SpatManagerView::SpatManagerView(SpatManager* manager) : 14 | BaseManagerViewUI(manager->niceName, manager) 15 | { 16 | transparentBG = true; 17 | autoFilterHitTestOnItems = true; 18 | validateHitTestOnNoItem = false; 19 | 20 | useCheckersAsUnits = true; 21 | updatePositionOnDragMove = true; 22 | 23 | addExistingItems(); 24 | } 25 | 26 | SpatManagerView::~SpatManagerView() 27 | { 28 | } 29 | -------------------------------------------------------------------------------- /Source/Common/Spatializer/ui/SpatManagerView.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SpatManagerView.h 5 | Created: 24 Dec 2023 10:05:15am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class SpatManagerView : 14 | public BaseManagerViewUI 15 | { 16 | public: 17 | SpatManagerView(SpatManager* manager); 18 | ~SpatManagerView(); 19 | 20 | }; -------------------------------------------------------------------------------- /Source/Effect/Filter/Filter.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Filter.h 5 | Created: 26 Sep 2020 2:13:22pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ObjectComponent; 14 | class Object; 15 | 16 | struct FilterResult 17 | { 18 | int id = -1; 19 | float weight = 1; 20 | }; 21 | 22 | class Filter : 23 | public BaseItem 24 | { 25 | public: 26 | Filter(const String &name = "Filter"); 27 | virtual ~Filter(); 28 | 29 | 30 | enum IDMode { NO_CHANGE, LOCAL, LOCAL_REVERSE, RANDOMIZED }; 31 | EnumParameter* idMode; 32 | BoolParameter* invert; 33 | BoolParameter* excludeFromScenes; 34 | 35 | virtual bool isAffectingObject(Object* o); 36 | FilterResult getFilteredResultForComponent(Object* o, ObjectComponent * c); 37 | virtual FilterResult getFilteredResultForComponentInternal(Object* o, ObjectComponent* c); 38 | 39 | var getSceneData(); 40 | void updateSceneData(var& sceneData); 41 | void lerpFromSceneData(var startData, var endData, float weight); 42 | }; -------------------------------------------------------------------------------- /Source/Effect/Filter/FilterManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | FilterManager.h 5 | Created: 26 Sep 2020 2:13:19pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class FilterManager : 14 | public BaseManager 15 | { 16 | public: 17 | FilterManager(); 18 | ~FilterManager(); 19 | 20 | Factory factory; 21 | 22 | enum WeightOperator { MIN, MAX, MULTIPLY}; 23 | EnumParameter* weightOperator; 24 | 25 | var getSceneData(); 26 | void updateSceneData(var& sceneData); 27 | void lerpFromSceneData(var startData, var endData, float weight); 28 | 29 | bool isAffectingObject(Object* o); 30 | FilterResult getFilteredResultForComponent(Object* o, ObjectComponent* c); 31 | 32 | InspectableEditor* getEditorInternal(bool isRoot, Array inspectables = {}) override; 33 | 34 | var getJSONData() override; 35 | void loadJSONDataManagerInternal(var data) override; 36 | }; -------------------------------------------------------------------------------- /Source/Effect/Filter/filters/group/GroupFilter.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GroupFilter.h 5 | Created: 7 Oct 2020 4:11:09pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class GroupFilter : 14 | public Filter 15 | { 16 | public: 17 | GroupFilter(); 18 | ~GroupFilter(); 19 | 20 | ControllableContainer groups; 21 | 22 | void controllableAdded(Controllable*) override; 23 | 24 | bool isAffectingObject(Object* o) override; 25 | virtual FilterResult getFilteredResultForComponentInternal(Object* o, ObjectComponent* c) override; 26 | 27 | var getJSONData() override; 28 | void loadJSONDataItemInternal(var data) override; 29 | 30 | String getTypeString() const override { return "Filter by Group"; } 31 | static GroupFilter* create(var params) { return new GroupFilter(); } 32 | }; -------------------------------------------------------------------------------- /Source/Effect/Filter/filters/id/IDFilter.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | IDFilter.h 5 | Created: 3 Oct 2020 10:31:42am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class IDFilter : 14 | public Filter 15 | { 16 | public: 17 | IDFilter(); 18 | ~IDFilter(); 19 | 20 | ControllableContainer ids; 21 | 22 | bool isAffectingObject(Object* o) override; 23 | virtual FilterResult getFilteredResultForComponentInternal(Object* o, ObjectComponent * c) override; 24 | 25 | void controllableAdded(Controllable* c) override; 26 | 27 | var getJSONData() override; 28 | void loadJSONDataInternal(var data) override; 29 | 30 | String getTypeString() const override { return "Filter by ID"; } 31 | static IDFilter* create(var params) { return new IDFilter(); } 32 | }; -------------------------------------------------------------------------------- /Source/Effect/Filter/ui/FilterEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | FilterEditor.cpp 5 | Created: 26 Sep 2020 7:50:49pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | -------------------------------------------------------------------------------- /Source/Effect/Filter/ui/FilterEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | FilterEditor.h 5 | Created: 26 Sep 2020 7:50:49pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | -------------------------------------------------------------------------------- /Source/Effect/Filter/ui/FilterManagerEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | FilterManagerEditor.cpp 5 | Created: 26 Sep 2020 7:50:44pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | FilterManagerEditor::FilterManagerEditor(FilterManager* manager, bool isRoot) : 12 | GenericManagerEditor(manager, isRoot) 13 | { 14 | //if (manager->componentSelector.allowedComponents.size() > 1) 15 | //{ 16 | // componentSelectorUI.reset(new ComponentSelectorUI(&manager->componentSelector)); 17 | // addAndMakeVisible(componentSelectorUI.get()); 18 | //} 19 | } 20 | 21 | FilterManagerEditor::~FilterManagerEditor() 22 | { 23 | } 24 | 25 | void FilterManagerEditor::resizedInternalHeader(Rectangle& r) 26 | { 27 | GenericManagerEditor::resizedInternalHeader(r); 28 | //if(componentSelectorUI != nullptr) componentSelectorUI->setBounds(r.removeFromRight(100).reduced(2)); 29 | } 30 | -------------------------------------------------------------------------------- /Source/Effect/Filter/ui/FilterManagerEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | FilterManagerEditor.h 5 | Created: 26 Sep 2020 7:50:44pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | //class ComponentSelectorUI; 14 | 15 | class FilterManagerEditor : 16 | public GenericManagerEditor 17 | { 18 | public: 19 | FilterManagerEditor(FilterManager * manager , bool isRoot); 20 | ~FilterManagerEditor(); 21 | 22 | //std::unique_ptr componentSelectorUI; 23 | 24 | void resizedInternalHeader(Rectangle& r) override; 25 | }; -------------------------------------------------------------------------------- /Source/Effect/actions/EffectAction.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectAction.h 5 | Created: 8 Oct 2020 3:31:34pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class EffectAction : 14 | public Action 15 | { 16 | public: 17 | EffectAction(var params); 18 | ~EffectAction(); 19 | 20 | enum ActionType { ENABLE_EFFECT, DISABLE_EFFECT, SET_EFFECT_WEIGHT }; 21 | ActionType actionType; 22 | 23 | TargetParameter* effect; 24 | FloatParameter* weight; 25 | 26 | void triggerInternal() override; 27 | void setValueInternal(var value) override; 28 | 29 | static void showMenuAndGetEffect(ControllableContainer*, std::function returnFunc); 30 | 31 | static EffectAction* create(var params) { return new EffectAction(params); } 32 | }; -------------------------------------------------------------------------------- /Source/Effect/effects/color/ColorEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorEffect.h 5 | Created: 9 Nov 2020 12:53:03pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorComponent; 14 | 15 | class ColorEffect : 16 | public Effect 17 | { 18 | public: 19 | ColorEffect(const String& name = "ColorEffect", var params = var()); 20 | virtual ~ColorEffect(); 21 | 22 | bool fillWithOriginalColors; 23 | 24 | void processComponentInternal(Object* o, ObjectComponent* c, const HashMap& values, HashMap& targetValues, int id, float time = -1) override; 25 | 26 | virtual void processedEffectColorsInternal(Array& colors, Object* o, ColorComponent* c,int id, float time = -1) {} 27 | 28 | }; -------------------------------------------------------------------------------- /Source/Effect/effects/color/gradientmap/ColorGradientMapEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorGradientMapEffect.h 5 | Created: 2 Nov 2020 6:25:49pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class GradientRemapEffect : 14 | public ColorEffect 15 | { 16 | public: 17 | GradientRemapEffect(var params); 18 | ~GradientRemapEffect(); 19 | 20 | enum SourceChannel { BRIGHTNESS, HUE, SATURATION, RED, GREEN, BLUE, ALPHA, CHANNEL_MAX }; 21 | const String channelNames[CHANNEL_MAX]{ "Brightness", "Hue", "Saturation", "Red", "Green", "Blue", "Alpha" }; 22 | 23 | EnumParameter* sourceChannel; 24 | GradientColorManager gradient; 25 | 26 | void processedEffectColorsInternal(Array& colors, Object* o, ColorComponent* c, int id, float time = -1) override; 27 | 28 | String getTypeString() const override { return getTypeStringStatic(); } 29 | const static String getTypeStringStatic() { return "Gradient Remap"; } 30 | static GradientRemapEffect* create(var params) { return new GradientRemapEffect(params); } 31 | }; -------------------------------------------------------------------------------- /Source/Effect/effects/color/hsv/HSVAdjustEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | HSVAdjustEffect.h 5 | Created: 2 Nov 2020 6:24:15pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorSource; 14 | 15 | class HSVAdjustEffect : 16 | public ColorEffect 17 | { 18 | public: 19 | HSVAdjustEffect(var params); 20 | ~HSVAdjustEffect(); 21 | 22 | FloatParameter* hue; 23 | FloatParameter* saturation; 24 | FloatParameter* brightness; 25 | 26 | void processedEffectColorsInternal(Array& colors, Object* o, ColorComponent* c, int id, float time = -1); 27 | 28 | String getTypeString() const override { return getTypeStringStatic(); } 29 | const static String getTypeStringStatic() { return "HSV Adjust"; } 30 | static HSVAdjustEffect* create(var params) { return new HSVAdjustEffect(params); } 31 | }; -------------------------------------------------------------------------------- /Source/Effect/effects/color/override/ui/ColorSourceOverrideEffectEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceOverrideEffectEditor.h 5 | Created: 9 Nov 2020 4:23:18pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorSourceOverrideEffectEditor : 14 | public EffectEditor, 15 | public ColorSourceChooser::ChooserListener, 16 | public ColorSourceOverrideEffect::AsyncOverrideEffectListener 17 | { 18 | public: 19 | ColorSourceOverrideEffectEditor(ColorSourceOverrideEffect* cef, bool isRoot); 20 | ~ColorSourceOverrideEffectEditor(); 21 | 22 | ColorSourceOverrideEffect* overrideEffect; 23 | 24 | ColorSourceChooser colorChooser; 25 | void resizedInternalHeaderItemInternal(Rectangle& r) override; 26 | 27 | void sourceChosen(const String& type, ColorSource* templateRef) override; 28 | void newMessage(const ColorSourceOverrideEffect::OverrideEffectEvent & e) override; 29 | }; -------------------------------------------------------------------------------- /Source/Effect/effects/color/remap/ColorPositionRemapEffect.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorPositionRemapEffect.cpp 5 | Created: 2 Nov 2020 6:25:18pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | -------------------------------------------------------------------------------- /Source/Effect/effects/color/remap/ColorPositionRemapEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorPositionRemapEffect.h 5 | Created: 2 Nov 2020 6:25:18pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | -------------------------------------------------------------------------------- /Source/Effect/effects/customcomponent/CustomComponentEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | CustomComponentEffect.h 5 | Created: 20 Mar 2023 8:51:42am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class CustomComponentEffect : 14 | public Effect 15 | { 16 | public: 17 | CustomComponentEffect(var params = var()); 18 | virtual ~CustomComponentEffect(); 19 | 20 | IntParameter* numValues; 21 | Array customValues; 22 | 23 | SpinLock valuesLock; 24 | 25 | void rebuildValues(); 26 | 27 | void effectParamChanged(Controllable* p) override; 28 | 29 | void processComponentInternal(Object* o, ObjectComponent* c, const HashMap& values, HashMap& targetValues, int id, float time = -1) override; 30 | 31 | DECLARE_TYPE("Values Override") 32 | }; 33 | -------------------------------------------------------------------------------- /Source/Effect/effects/override/CurveMapEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | CurveMapEffect.h 5 | Created: 1 Oct 2020 12:31:17pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class CurveMapEffect : 14 | public Effect 15 | { 16 | public: 17 | CurveMapEffect(var params = var()); 18 | virtual ~CurveMapEffect(); 19 | 20 | Point2DParameter* inputRange; 21 | Point2DParameter* outputRange; 22 | Automation automation; 23 | 24 | void processComponentInternal(Object* o, ObjectComponent* c, const HashMap& values, HashMap& targetValues, int id, float time = -1) override; 25 | 26 | String getTypeString() const override { return getTypeStringStatic(); } 27 | const static String getTypeStringStatic() { return "Curve Map"; } 28 | static CurveMapEffect* create(var params) { return new CurveMapEffect(params); } 29 | }; 30 | -------------------------------------------------------------------------------- /Source/Effect/effects/override/OverrideEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | OverrideEffect.h 5 | Created: 1 Oct 2020 12:31:17pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class OverrideEffect : 14 | public Effect 15 | { 16 | public: 17 | OverrideEffect(const String &name = "Override", var params = var()); 18 | virtual ~OverrideEffect(); 19 | }; 20 | 21 | class OverrideFloatEffect : 22 | public OverrideEffect 23 | { 24 | public: 25 | OverrideFloatEffect(var params = var()); 26 | virtual ~OverrideFloatEffect(); 27 | 28 | FloatParameter* value; 29 | 30 | void processComponentInternal(Object* o, ObjectComponent* c, const HashMap& values, HashMap& targetValues, int id, float time = -1) override; 31 | 32 | String getTypeString() const override { return getTypeStringStatic(); } 33 | const static String getTypeStringStatic() { return "Override (Number)"; } 34 | static OverrideFloatEffect* create(var params) { return new OverrideFloatEffect(params); } 35 | }; 36 | -------------------------------------------------------------------------------- /Source/Effect/effects/override/PointEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | PointEffect.h 5 | Created: 23 Nov 2023 4:02:06pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class PointEffect : 14 | public Effect 15 | { 16 | public: 17 | PointEffect(const String& name = "Point", var params = var()); 18 | virtual ~PointEffect(); 19 | 20 | FloatParameter* position; 21 | FloatParameter* radius; 22 | Automation fadeCurve; 23 | }; 24 | 25 | class PointFloatEffect : 26 | public PointEffect 27 | { 28 | public: 29 | PointFloatEffect(var params = var()); 30 | virtual ~PointFloatEffect(); 31 | 32 | FloatParameter* value; 33 | 34 | void processComponentInternal(Object* o, ObjectComponent* c, const HashMap& values, HashMap& targetValues, int id, float time = -1) override; 35 | 36 | String getTypeString() const override { return getTypeStringStatic(); } 37 | const static String getTypeStringStatic() { return "Point"; } 38 | static PointFloatEffect* create(var params) { return new PointFloatEffect(params); } 39 | }; 40 | -------------------------------------------------------------------------------- /Source/Effect/effects/script/ScriptEffect.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ScriptEffect.cpp 5 | Created: 20 Nov 2021 10:06:39am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "ScriptEffect.h" 12 | -------------------------------------------------------------------------------- /Source/Effect/effects/script/ScriptEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ScriptEffect.h 5 | Created: 20 Nov 2021 10:06:39am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | //class ScriptEffect : 14 | // public Effect 15 | //{ 16 | //public: 17 | // ScriptEffect(const String& name = "Override", var params = var()); 18 | // virtual ~ScriptEffect(); 19 | // 20 | // 21 | // FloatParameter* value; 22 | // 23 | // void processComponentInternal(Object* o, ObjectComponent* c, const HashMap& values, HashMap& targetValues, int id, float time = -1) override; 24 | // 25 | // String getTypeString() const override { return getTypeStringStatic(); } 26 | // const static String getTypeStringStatic() { return "Script"; } 27 | // static OverrideFloatEffect* create(var params) { return new OverrideFloatEffect(params); } 28 | //}; 29 | -------------------------------------------------------------------------------- /Source/Effect/effects/smooth/DampingEffect.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | DampingEffect.cpp 5 | Created: 17 Jan 2022 11:53:24am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "DampingEffect.h" 12 | -------------------------------------------------------------------------------- /Source/Effect/effects/smooth/DampingEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | DampingEffect.h 5 | Created: 17 Jan 2022 11:53:24am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | -------------------------------------------------------------------------------- /Source/Effect/effects/time/TimedEffect.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/Source/Effect/effects/time/TimedEffect.h -------------------------------------------------------------------------------- /Source/Effect/effects/time/automation/AutomationEffect.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AutomationEffect.h 5 | Created: 4 Oct 2020 11:37:20pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class AutomationEffect : 14 | public TimedEffect 15 | { 16 | public: 17 | AutomationEffect(var params = var()); 18 | ~AutomationEffect(); 19 | 20 | enum AutomationType { SINE, PERLIN }; 21 | 22 | FloatParameter* length; 23 | Point2DParameter* range; 24 | BoolParameter* clipTime; 25 | BoolParameter* loop; 26 | 27 | Automation automation; 28 | 29 | void processComponentTimeInternal(Object* o, ObjectComponent* c, const HashMap& values, HashMap& targetValues, int id, float time = -1, float originalTime = -1) override; 30 | 31 | void effectParamChanged(Controllable* c)override; 32 | 33 | String getTypeString() const override { return getTypeStringStatic(); } 34 | const static String getTypeStringStatic() { return "Automation"; } 35 | 36 | static AutomationEffect* create(var params) { return new AutomationEffect(params); } 37 | 38 | }; -------------------------------------------------------------------------------- /Source/Effect/effects/time/automation/ui/AutomationEffectEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AutomationEffectEditor.cpp 5 | Created: 4 Oct 2020 11:38:03pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | -------------------------------------------------------------------------------- /Source/Effect/effects/time/automation/ui/AutomationEffectEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AutomationEffectEditor.h 5 | Created: 4 Oct 2020 11:38:03pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | -------------------------------------------------------------------------------- /Source/Effect/ui/EffectChainVizUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectChainVizUI.h 5 | Created: 30 Oct 2020 4:35:34pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Effect; 14 | 15 | class EffectChainVizUI : 16 | public BaseItemChainVizComponent, 17 | public Timer 18 | { 19 | public: 20 | EffectChainVizUI(Effect * e, Object* o, ComponentType ct, ChainVizTarget::ChainVizType type); 21 | ~EffectChainVizUI(); 22 | 23 | Effect* effect; 24 | WeakReference effectRef; 25 | 26 | std::unique_ptr weightUI; 27 | 28 | std::unique_ptr param; 29 | std::unique_ptr paramUI; 30 | 31 | virtual bool isReallyAffecting(); 32 | virtual String getVizLabel() const override; 33 | 34 | 35 | void resized() override; 36 | void timerCallback() override; 37 | }; -------------------------------------------------------------------------------- /Source/Effect/ui/EffectEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectEditor.cpp 5 | Created: 30 Sep 2020 12:38:54pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | EffectEditor::EffectEditor(Effect* effect, bool isRoot) : 12 | BaseItemEditor(effect, isRoot), 13 | effect(effect) 14 | { 15 | weightUI.reset(effect->weight->createSlider()); 16 | addAndMakeVisible(weightUI.get()); 17 | } 18 | 19 | EffectEditor::~EffectEditor() 20 | { 21 | } 22 | 23 | void EffectEditor::resizedInternalHeaderItemInternal(Rectangle& r) 24 | { 25 | weightUI->setBounds(r.removeFromRight(100).reduced(2)); 26 | } 27 | -------------------------------------------------------------------------------- /Source/Effect/ui/EffectEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectEditor.h 5 | Created: 30 Sep 2020 12:38:54pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class EffectEditor : 14 | public BaseItemEditor 15 | { 16 | public: 17 | EffectEditor(Effect* effect, bool isRoot); 18 | virtual ~EffectEditor(); 19 | 20 | Effect* effect; 21 | std::unique_ptr weightUI; 22 | 23 | void resizedInternalHeaderItemInternal(Rectangle& r) override; 24 | }; -------------------------------------------------------------------------------- /Source/Effect/ui/EffectManagerEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectManagerEditor.cpp 5 | Created: 30 Sep 2020 12:39:05pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Effect/EffectIncludes.h" 12 | 13 | EffectManagerEditor::EffectManagerEditor(EffectManager* manager, bool isRoot) : 14 | GenericManagerEditor(manager, isRoot) 15 | { 16 | weightUI.reset(manager->globalWeight->createSlider()); 17 | addAndMakeVisible(weightUI.get()); 18 | } 19 | 20 | void EffectManagerEditor::resizedInternalHeader(Rectangle& r) 21 | { 22 | GenericManagerEditor::resizedInternalHeader(r); 23 | r.removeFromRight(2); 24 | r.removeFromLeft(2); 25 | weightUI->setBounds(r.removeFromRight(100).reduced(2)); 26 | } 27 | -------------------------------------------------------------------------------- /Source/Effect/ui/EffectManagerEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectManagerEditor.h 5 | Created: 30 Sep 2020 12:39:05pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class EffectManagerEditor : public GenericManagerEditor 14 | { 15 | public: 16 | EffectManagerEditor(EffectManager* manager, bool isRoot = false); 17 | ~EffectManagerEditor() {} 18 | 19 | std::unique_ptr weightUI; 20 | 21 | void resizedInternalHeader(Rectangle& r) override; 22 | }; -------------------------------------------------------------------------------- /Source/Effect/ui/GlobalEffectManagerUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GlobalEffectManagerUI.cpp 5 | Created: 30 Sep 2020 1:37:01pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | GlobalEffectManagerUI::GlobalEffectManagerUI(const String& name) : 12 | BaseManagerShapeShifterUI(name, GlobalEffectManager::getInstance()) 13 | { 14 | setShowSearchBar(true); 15 | addExistingItems(); 16 | } 17 | 18 | GlobalEffectManagerUI::~GlobalEffectManagerUI() 19 | { 20 | } 21 | 22 | EffectGroupUI::EffectGroupUI(EffectGroup* item) : 23 | BaseItemUI(item) 24 | { 25 | weightUI.reset(item->effectManager.globalWeight->createSlider()); 26 | addAndMakeVisible(weightUI.get()); 27 | } 28 | 29 | void EffectGroupUI::resizedInternalHeader(Rectangle& r) 30 | { 31 | BaseItemUI::resizedInternalHeader(r); 32 | r.removeFromRight(2); 33 | r.removeFromLeft(2); 34 | weightUI->setBounds(r.removeFromRight(100)); 35 | } 36 | -------------------------------------------------------------------------------- /Source/Effect/ui/GlobalEffectManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GlobalEffectManagerUI.h 5 | Created: 30 Sep 2020 1:37:01pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class EffectGroupUI : public BaseItemUI 14 | { 15 | public: 16 | EffectGroupUI(EffectGroup* group); 17 | ~EffectGroupUI() {} 18 | 19 | std::unique_ptr weightUI; 20 | 21 | void resizedInternalHeader(Rectangle& r) override; 22 | }; 23 | 24 | class GlobalEffectManagerUI : 25 | public BaseManagerShapeShifterUI 26 | { 27 | public: 28 | GlobalEffectManagerUI(const String& name); 29 | ~GlobalEffectManagerUI(); 30 | 31 | static GlobalEffectManagerUI* create(const String& name) { return new GlobalEffectManagerUI(name); } 32 | }; -------------------------------------------------------------------------------- /Source/Engine/GenericAction.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GenericAction.h 5 | Created: 8 Oct 2020 3:33:47pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class GenericAction : 14 | public Action, 15 | public EngineListener 16 | { 17 | public: 18 | GenericAction(var params); 19 | ~GenericAction(); 20 | 21 | enum ActionType { SET_VALUE, TRIGGER }; 22 | ActionType actionType; 23 | TargetParameter* target; 24 | WeakReference value; 25 | var dataToLoad; 26 | var ghostValueData; // to keep when target is lost 27 | 28 | void setValueParameter(Parameter* p); 29 | 30 | virtual void triggerInternal() override; 31 | virtual void setValueInternal(var value) override; 32 | 33 | void onContainerParameterChanged(Parameter*) override; 34 | 35 | virtual void loadJSONDataInternal(var data) override; 36 | virtual void endLoadFile() override; 37 | 38 | static GenericAction* create(var params) { return new GenericAction(params); } 39 | }; -------------------------------------------------------------------------------- /Source/Interface/Interface.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Interface.cpp 5 | Created: 26 Sep 2020 1:50:32pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Interface.h" 12 | #include "Object/ObjectIncludes.h" 13 | #include "ui/InterfaceUI.h" 14 | 15 | Interface::Interface(String name, bool canHaveScripts) : 16 | BaseItem(name, true, canHaveScripts) 17 | { 18 | saveAndLoadRecursiveData = true; 19 | 20 | logIncomingData = addBoolParameter("Log Incoming", "Log incoming data", false); 21 | logOutgoingData = addBoolParameter("Log Outgoing", "Log outgoing data", false); 22 | 23 | inActivityTrigger.reset(new Trigger("IN Activity", "Incoming Activity Signal")); 24 | outActivityTrigger.reset(new Trigger("OUT Activity", "Outgoing Activity Signal")); 25 | } 26 | 27 | Interface::~Interface() 28 | { 29 | } 30 | 31 | void Interface::sendValuesForObject(Object* o) 32 | { 33 | if (!enabled->boolValue()) return; 34 | 35 | sendValuesForObjectInternal(o); 36 | } 37 | 38 | InterfaceUI* Interface::createUI() 39 | { 40 | return new InterfaceUI(this); 41 | } 42 | -------------------------------------------------------------------------------- /Source/Interface/Interface.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Interface.h 5 | Created: 26 Sep 2020 1:50:32pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Object; 14 | class ObjectComponent; 15 | class InterfaceUI; 16 | 17 | class Interface : 18 | public BaseItem 19 | { 20 | public: 21 | Interface(String name = "Interface", bool canHaveScript = false); 22 | virtual ~Interface(); 23 | 24 | BoolParameter* logIncomingData; 25 | BoolParameter* logOutgoingData; 26 | 27 | //Do not include in hierarchy to avoid going crazy on those listeners 28 | std::unique_ptr inActivityTrigger; 29 | std::unique_ptr outActivityTrigger; 30 | 31 | virtual void prepareSendValues() {} 32 | virtual void sendValuesForObject(Object* o); 33 | virtual void sendValuesForObjectInternal(Object* o) {} 34 | virtual void finishSendValues() {} 35 | 36 | virtual ControllableContainer* getInterfaceParams() { return new ControllableContainer("Interface parameters"); } 37 | 38 | virtual InterfaceUI* createUI(); 39 | }; -------------------------------------------------------------------------------- /Source/Interface/InterfaceIncludes.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | InterfaceIncludes.cpp 5 | Created: 9 Sep 2021 7:03:39pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "InterfaceIncludes.h" 12 | 13 | #include "Object/ObjectIncludes.h" 14 | 15 | #include "Interface.cpp" 16 | #include "InterfaceManager.cpp" 17 | #include "interfaces/bento/BentoInterface.cpp" 18 | #include "interfaces/dmx/DMXInterface.cpp" 19 | #include "interfaces/dmx/ui/DMXChannelView.cpp" 20 | #include "interfaces/dmx/ui/DMXInterfaceUI.cpp" 21 | 22 | #include "interfaces/midi/MIDIMapping.cpp" 23 | #include "interfaces/midi/MIDIMappingManager.cpp" 24 | #include "interfaces/midi/MIDIInterface.cpp" 25 | #include "interfaces/midi/ui/MIDIMappingEditor.cpp" 26 | 27 | #include "interfaces/osc/OSCInterface.cpp" 28 | #include "interfaces/osc/custom/CustomOSCInterface.cpp" 29 | #include "interfaces/osc/ui/OSCInputEditor.cpp" 30 | #include "interfaces/osc/ui/OSCOutputEditor.cpp" 31 | #include "interfaces/serial/SerialInterface.cpp" 32 | #include "ui/InterfaceManagerUI.cpp" 33 | #include "ui/InterfaceUI.cpp" -------------------------------------------------------------------------------- /Source/Interface/InterfaceManager.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | InterfaceManager.cpp 5 | Created: 26 Sep 2020 1:50:28pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "InterfaceManager.h" 12 | 13 | juce_ImplementSingleton(InterfaceManager) 14 | 15 | InterfaceManager::InterfaceManager() : 16 | BaseManager("Interfaces") 17 | { 18 | managerFactory = &factory; 19 | 20 | factory.defs.add(Factory::Definition::createDef("", "DMX", &DMXInterface::create)); 21 | factory.defs.add(Factory::Definition::createDef("", "OSC", &CustomOSCInterface::create)); 22 | factory.defs.add(Factory::Definition::createDef("", "Serial", &SerialInterface::create)); 23 | factory.defs.add(Factory::Definition::createDef("", "Bento", &BentoInterface::create)); 24 | factory.defs.add(Factory::Definition::createDef("", "MIDI", &MIDIInterface::create)); 25 | } 26 | 27 | InterfaceManager::~InterfaceManager() 28 | { 29 | } 30 | -------------------------------------------------------------------------------- /Source/Interface/InterfaceManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | InterfaceManager.h 5 | Created: 26 Sep 2020 1:50:28pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "Interface.h" 14 | 15 | class InterfaceManager : 16 | public BaseManager 17 | { 18 | public: 19 | juce_DeclareSingleton(InterfaceManager, true) 20 | 21 | InterfaceManager(); 22 | ~InterfaceManager(); 23 | 24 | Factory factory; 25 | }; -------------------------------------------------------------------------------- /Source/Interface/interfaces/dmx/ui/DMXInterfaceUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | DMXInterfaceUI.cpp 5 | Created: 8 Oct 2020 6:59:58pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | DMXInterfaceUI::DMXInterfaceUI(DMXInterface* i) : 12 | InterfaceUI(i), 13 | dmxInterface(i) 14 | { 15 | } 16 | 17 | DMXInterfaceUI::~DMXInterfaceUI() 18 | { 19 | } 20 | 21 | void DMXInterfaceUI::controllableFeedbackUpdateInternal(Controllable* c) 22 | { 23 | InterfaceUI::controllableFeedbackUpdateInternal(c); 24 | 25 | if (c == dmxInterface->channelTestingMode) 26 | { 27 | bgColor = dmxInterface->channelTestingMode->boolValue() ? Colours::hotpink.darker() : (BG_COLOR.brighter(.1f)); 28 | repaint(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/Interface/interfaces/dmx/ui/DMXInterfaceUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | DMXInterfaceUI.h 5 | Created: 8 Oct 2020 6:59:58pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class DMXInterfaceUI : 14 | public InterfaceUI 15 | { 16 | public: 17 | DMXInterfaceUI(DMXInterface* i); 18 | ~DMXInterfaceUI(); 19 | 20 | DMXInterface* dmxInterface; 21 | 22 | void controllableFeedbackUpdateInternal(Controllable* c) override; 23 | }; -------------------------------------------------------------------------------- /Source/Interface/interfaces/midi/MIDIMapping.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | MIDIMapping.h 5 | Created: 12 Oct 2020 11:07:59am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class MIDIMapping : 14 | public BaseItem 15 | { 16 | public: 17 | MIDIMapping(); 18 | ~MIDIMapping(); 19 | 20 | enum MappingMode{ TRIGGER, ONOFF, TOGGLE, CONTINUOUS }; 21 | EnumParameter * mode; 22 | 23 | enum MidiType { NOTE, CONTROLCHANGE }; 24 | EnumParameter* midiType; 25 | IntParameter* channel; 26 | IntParameter* pitchOrNumber; 27 | 28 | Point2DParameter* inputRange; 29 | Point2DParameter* outputRange; 30 | 31 | BoolParameter* learnMode; 32 | 33 | bool isValid; 34 | bool wasInRange; 35 | 36 | ActionManager actionManager; 37 | 38 | void handleNote(int channel, int pitch, int velocity); 39 | void handleCC(int channel, int number, int value); 40 | void handleValue(int value); 41 | 42 | InspectableEditor* getEditorInternal(bool isRoot, Array inspectables = {}) override; 43 | }; -------------------------------------------------------------------------------- /Source/Interface/interfaces/midi/MIDIMappingManager.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | MIDIMappingManager.cpp 5 | Created: 12 Oct 2020 11:07:45am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | MIDIMappingManager::MIDIMappingManager() : 12 | BaseManager("Mappings") 13 | { 14 | } 15 | 16 | MIDIMappingManager::~MIDIMappingManager() 17 | { 18 | } 19 | 20 | void MIDIMappingManager::handleNote(int channel, int pitch, int velocity) 21 | { 22 | for (auto& i : items) i->handleNote(channel, pitch, velocity); 23 | } 24 | 25 | void MIDIMappingManager::handleCC(int channel, int number, int value) 26 | { 27 | for (auto& i : items) i->handleCC(channel, number, value); 28 | } 29 | -------------------------------------------------------------------------------- /Source/Interface/interfaces/midi/MIDIMappingManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | MIDIMappingManager.h 5 | Created: 12 Oct 2020 11:07:45am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class MIDIMappingManager : 14 | public BaseManager 15 | { 16 | public: 17 | MIDIMappingManager(); 18 | ~MIDIMappingManager(); 19 | 20 | void handleNote(int channel, int pitch, int velocity); 21 | void handleCC(int channel, int number, int value); 22 | }; -------------------------------------------------------------------------------- /Source/Interface/interfaces/midi/ui/MIDIMappingEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | MIDIMappingEditor.cpp 5 | Created: 12 Oct 2020 12:30:31pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | MIDIMappingEditor::MIDIMappingEditor(MIDIMapping* item, bool isRoot) : 12 | BaseItemEditor(item, isRoot), 13 | midiMapping(item) 14 | { 15 | learnBT.reset(midiMapping->learnMode->createButtonToggle()); 16 | addAndMakeVisible(learnBT.get()); 17 | } 18 | 19 | MIDIMappingEditor::~MIDIMappingEditor() 20 | { 21 | } 22 | 23 | void MIDIMappingEditor::resizedInternalHeaderItemInternal(Rectangle& r) 24 | { 25 | learnBT->setBounds(r.removeFromRight(80).reduced(2)); 26 | } 27 | -------------------------------------------------------------------------------- /Source/Interface/interfaces/midi/ui/MIDIMappingEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | MIDIMappingEditor.h 5 | Created: 12 Oct 2020 12:30:31pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class MIDIMappingEditor : 14 | public BaseItemEditor 15 | { 16 | public: 17 | MIDIMappingEditor(MIDIMapping * item, bool isRoot); 18 | ~MIDIMappingEditor(); 19 | 20 | MIDIMapping* midiMapping; 21 | std::unique_ptr learnBT; 22 | 23 | void resizedInternalHeaderItemInternal(Rectangle& r) override; 24 | }; -------------------------------------------------------------------------------- /Source/Interface/interfaces/osc/ui/OSCInputEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | OSCInputEditor.cpp 5 | Created: 13 Oct 2020 9:44:13am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | OSCInputEditor::OSCInputEditor(EnablingControllableContainer* cc, bool isRoot) : 12 | EnablingControllableContainerEditor(cc, isRoot) 13 | { 14 | StringArray ips = NetworkHelpers::getLocalIPs(); 15 | ipLabel.setText("IPs : " + ips.joinIntoString(","), dontSendNotification); 16 | ipLabel.setColour(ipLabel.textColourId, TEXTNAME_COLOR); 17 | ipLabel.setFont(headerHeight - 6); 18 | addAndMakeVisible(&ipLabel); 19 | } 20 | 21 | OSCInputEditor::~OSCInputEditor() 22 | { 23 | } 24 | 25 | void OSCInputEditor::resizedInternalHeader(Rectangle& r) 26 | { 27 | ipLabel.setBounds(r.removeFromRight(jmin(ipLabel.getFont().getStringWidth(ipLabel.getText()), getWidth() - 100))); 28 | r.removeFromRight(2); 29 | EnablingControllableContainerEditor::resizedInternalHeader(r); 30 | } 31 | -------------------------------------------------------------------------------- /Source/Interface/interfaces/osc/ui/OSCInputEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | OSCInputEditor.h 5 | Created: 13 Oct 2020 9:44:13am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class OSCInputEditor : 14 | public EnablingControllableContainerEditor 15 | { 16 | public: 17 | OSCInputEditor(EnablingControllableContainer* cc, bool isRoot); 18 | ~OSCInputEditor(); 19 | 20 | 21 | void resizedInternalHeader(Rectangle& r) override; 22 | Label ipLabel; 23 | 24 | 25 | static InspectableEditor* create(bool isRoot, Array cc) { return new OSCInputEditor((EnablingControllableContainer*)cc[0], isRoot); } 26 | }; -------------------------------------------------------------------------------- /Source/Interface/interfaces/osc/ui/OSCOutputEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | OSCOutputEditor.h 5 | Created: 3 Mar 2019 12:15:43pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class OSCOutputEditor : 14 | public BaseItemEditor 15 | { 16 | public: 17 | OSCOutputEditor(OSCOutput * output, bool isRoot = false); 18 | ~OSCOutputEditor(); 19 | 20 | TextButton zeroconfMenu; 21 | 22 | void resizedInternalHeaderItemInternal(Rectangle &r) override; 23 | 24 | void showMenuAndSetupOutput(); 25 | 26 | // Inherited via Listener 27 | virtual void buttonClicked(Button *) override; 28 | }; -------------------------------------------------------------------------------- /Source/Interface/ui/InterfaceManagerUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | InterfaceManagerUI.cpp 5 | Created: 26 Sep 2020 7:48:12pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "InterfaceManagerUI.h" 12 | 13 | InterfaceManagerUI::InterfaceManagerUI(const String& name) : 14 | BaseManagerShapeShifterUI(name, InterfaceManager::getInstance()) 15 | { 16 | addExistingItems(); 17 | } 18 | 19 | InterfaceManagerUI::~InterfaceManagerUI() 20 | { 21 | } 22 | 23 | InterfaceUI* InterfaceManagerUI::createUIForItem(Interface* item) 24 | { 25 | return item->createUI(); 26 | } 27 | -------------------------------------------------------------------------------- /Source/Interface/ui/InterfaceManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | InterfaceManagerUI.h 5 | Created: 26 Sep 2020 7:48:12pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "../InterfaceManager.h" 14 | #include "InterfaceUI.h" 15 | 16 | class InterfaceManagerUI : 17 | public BaseManagerShapeShifterUI 18 | { 19 | public: 20 | InterfaceManagerUI(const String &name); 21 | ~InterfaceManagerUI(); 22 | 23 | InterfaceUI* createUIForItem(Interface* item) override; 24 | 25 | static InterfaceManagerUI* create(const String& name) { return new InterfaceManagerUI(name); } 26 | }; -------------------------------------------------------------------------------- /Source/Interface/ui/InterfaceUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | InterfaceUI.h 5 | Created: 26 Sep 2020 7:47:24pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class InterfaceUI : 14 | public BaseItemUI 15 | { 16 | public: 17 | InterfaceUI(Interface* item); 18 | virtual ~InterfaceUI(); 19 | 20 | std::unique_ptr inActivityUI; 21 | std::unique_ptr outActivityUI; 22 | 23 | void paintOverChildren(Graphics& g); 24 | virtual void resizedHeader(Rectangle& r) override; 25 | virtual void mouseDown(const MouseEvent &e) override; 26 | 27 | }; -------------------------------------------------------------------------------- /Source/Main.cpp: -------------------------------------------------------------------------------- 1 | #include "Main.h" 2 | #include "MainIncludes.h" 3 | 4 | BluxApplication::BluxApplication() : 5 | OrganicApplication(ProjectInfo::projectName, 6 | true, 7 | BluxAssetManager::getImage("icon3")) 8 | { 9 | } 10 | 11 | void BluxApplication::initialiseInternal(const String&) 12 | { 13 | engine.reset(new BluxEngine()); 14 | mainComponent.reset(new MainComponent()); 15 | 16 | 17 | //Call after engine init 18 | AppUpdater::getInstance()->setURLs("http://benjamin.kuperberg.fr/blux/releases/update.json", "http://benjamin.kuperberg.fr/blux/download/app/", "Blux"); 19 | HelpBox::getInstance()->helpURL = URL("http://benjamin.kuperberg.fr/blux/help/"); 20 | CrashDumpUploader::getInstance()->init("http://benjamin.kuperberg.fr/blux/support/crash_report.php", ImageCache::getFromMemory(BinaryData::crash_png, BinaryData::crash_pngSize)); 21 | 22 | DashboardManager::getInstance()->setupDownloadURL("http://benjamin.kuperberg.fr/download/dashboard/dashboard.php"); 23 | 24 | ShapeShifterManager::getInstance()->setDefaultFileData(BinaryData::default_bluxlayout); 25 | ShapeShifterManager::getInstance()->setLayoutInformations("bluxlayout", "Blux/layouts"); 26 | } 27 | -------------------------------------------------------------------------------- /Source/Main.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Main.h 5 | Created: 26 Sep 2020 10:00:55am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "JuceHeader.h" 14 | /* 15 | ============================================================================== 16 | 17 | This file contains the basic startup code for a JUCE application. 18 | 19 | ============================================================================== 20 | */ 21 | 22 | //============================================================================== 23 | class BluxApplication : public OrganicApplication 24 | { 25 | public: 26 | //============================================================================== 27 | BluxApplication(); 28 | 29 | void initialiseInternal(const String &commandLine) override; 30 | }; 31 | 32 | //============================================================================== 33 | // This macro generates the main() routine that launches the app. 34 | START_JUCE_APPLICATION(BluxApplication) -------------------------------------------------------------------------------- /Source/MainIncludes.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | MainIncludes.cpp 5 | Created: 9 Sep 2021 7:02:05pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "MainIncludes.h" 12 | 13 | #include "Object/ObjectIncludes.h" 14 | #include "Interface/InterfaceIncludes.h" 15 | #include "Scene/SceneIncludes.h" 16 | #include "Sequence/SequenceIncludes.h" 17 | #include "Color/ColorIncludes.h" 18 | #include "Effect/EffectIncludes.h" 19 | #include "ChainViz/ChainViz.h" 20 | 21 | #include "MainComponent.cpp" 22 | #include "MainComponentCommands.cpp" 23 | #include "Audio/AudioManager.cpp" 24 | #include "Audio/ui/AudioManagerHardwareEditor.cpp" 25 | #include "UI/AssetManager.cpp" 26 | #include "UI/BluxInspector.cpp" 27 | #include "Engine/BluxEngine.cpp" 28 | #include "Engine/GenericAction.cpp" -------------------------------------------------------------------------------- /Source/MainIncludes.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | MainIncludes.h 5 | Created: 9 Sep 2021 7:02:05pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "Common/CommonIncludes.h" 14 | 15 | #include "MainComponent.h" 16 | 17 | #include "Audio/AudioManager.h" 18 | #include "Audio/ui/AudioManagerHardwareEditor.h" 19 | 20 | #include "UI/AssetManager.h" 21 | #include "UI/BluxInspector.h" 22 | 23 | #include "Engine/BluxEngine.h" 24 | #include "Engine/GenericAction.h" -------------------------------------------------------------------------------- /Source/Object/Component/components/color/ui/ColorComponentEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorComponentEditor.h 5 | Created: 2 Nov 2020 7:35:32pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | 14 | class ColorComponentEditor : 15 | public ObjectComponentEditor, 16 | public ColorSourceChooser::ChooserListener, 17 | public PixelShapeChooser::ChooserListener, 18 | public ColorComponent::AsyncColorComponentListener 19 | { 20 | public: 21 | ColorComponentEditor(ColorComponent* comp, bool isRoot); 22 | ~ColorComponentEditor(); 23 | 24 | ColorComponent* comp; 25 | ColorSourceChooser colorChooser; 26 | PixelShapeChooser shapeChooser; 27 | 28 | void resizedInternalHeaderItemInternal(Rectangle& r) override; 29 | 30 | void sourceChosen(const String& type, ColorSource* templateRef) override; 31 | void shapeChosen(const String& type) override; 32 | 33 | void newMessage(const ColorComponent::ColorComponentEvent& e) override; 34 | }; -------------------------------------------------------------------------------- /Source/Object/Component/components/custom/CustomComponent.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | CustomComponent.h 5 | Created: 15 Mar 2023 7:33:19pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class CustomComponent : 14 | public ObjectComponent 15 | { 16 | public: 17 | CustomComponent(Object* o, var params); 18 | ~CustomComponent(); 19 | 20 | IntParameter* numValues; 21 | 22 | void onContainerParameterChangedInternal(Parameter* p) override; 23 | void rebuildValues(); 24 | 25 | var getJSONData() override; 26 | void loadJSONDataItemInternal(var data) override; 27 | 28 | String getTypeString() const override { return "Custom"; } 29 | static CustomComponent* create(Object* o, var params) { return new CustomComponent(o, params); } 30 | }; 31 | -------------------------------------------------------------------------------- /Source/Object/Component/components/dimmer/DimmerComponent.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | DimmerComponent.h 5 | Created: 26 Sep 2020 2:20:14pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class DimmerComponent : 14 | public ObjectComponent 15 | { 16 | public: 17 | DimmerComponent(Object* o, var params); 18 | ~DimmerComponent(); 19 | 20 | FloatParameter* value; 21 | BoolParameter* useFineValue; 22 | 23 | Automation curve; 24 | 25 | virtual void updateComputedValues(HashMap& values) override; 26 | virtual void fillInterfaceData(Interface* i, var data, var params) override;// (HashMap& channelValueMap, int startChannel, bool 27 | 28 | String getTypeString() const override { return "Dimmer"; } 29 | static DimmerComponent* create(Object* o, var params) { return new DimmerComponent(o, params); } 30 | }; 31 | -------------------------------------------------------------------------------- /Source/Object/Component/components/shutter/ShutterComponent.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ShutterComponent.cpp 5 | Created: 26 Sep 2020 2:21:24pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | #include "Object/ObjectIncludes.h" 11 | 12 | ShutterComponent::ShutterComponent(Object* o, var params) : 13 | ObjectComponent(o, getTypeString(), SHUTTER, params) 14 | { 15 | } 16 | 17 | ShutterComponent::~ShutterComponent() 18 | { 19 | } 20 | -------------------------------------------------------------------------------- /Source/Object/Component/components/shutter/ShutterComponent.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ShutterComponent.h 5 | Created: 26 Sep 2020 2:21:24pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ShutterComponent : 14 | public ObjectComponent 15 | { 16 | public: 17 | ShutterComponent(Object* o, var params); 18 | ~ShutterComponent(); 19 | 20 | String getTypeString() const override { return "Shutter"; } 21 | static ShutterComponent* create(Object * o, var params) { return new ShutterComponent(o, params); } 22 | }; -------------------------------------------------------------------------------- /Source/Object/Component/ui/ComponentManagerEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ComponentManagerEditor.cpp 5 | Created: 26 Sep 2020 7:52:06pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | -------------------------------------------------------------------------------- /Source/Object/Component/ui/ComponentManagerEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ComponentManagerEditor.h 5 | Created: 26 Sep 2020 7:52:06pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | -------------------------------------------------------------------------------- /Source/Object/Component/ui/ObjectComponentEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectComponentEditor.h 5 | Created: 26 Sep 2020 7:51:59pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ObjectComponentEditor : 14 | public BaseItemEditor 15 | { 16 | public: 17 | ObjectComponentEditor(ObjectComponent * component, bool isRoot, bool showComputedParams = true); 18 | virtual ~ObjectComponentEditor(); 19 | 20 | ObjectComponent* component; 21 | 22 | bool showComputedParams; 23 | OwnedArray computedUI; 24 | 25 | virtual void resizedInternalHeaderItemInternal(Rectangle& r) override; 26 | }; -------------------------------------------------------------------------------- /Source/Object/Group/GroupManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GroupManager.h 5 | Created: 29 Sep 2020 9:46:22pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Object; 14 | class ObjectComponent; 15 | 16 | class GroupManager : 17 | public BaseManager 18 | { 19 | public: 20 | juce_DeclareSingleton(GroupManager, true); 21 | 22 | GroupManager(); 23 | ~GroupManager(); 24 | 25 | Factory factory; 26 | 27 | Array getChainVizTargetsForObjectAndComponent(Object* o, ComponentType t); 28 | virtual void processComponent(Object* o, ObjectComponent* c, HashMap& values); 29 | 30 | var getSceneData(); 31 | void updateSceneData(var& sceneData); 32 | void lerpFromSceneData(var startData, var endData, float weight); 33 | }; -------------------------------------------------------------------------------- /Source/Object/Group/groups/object/ui/ObjectGroupUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectGroupUI.cpp 5 | Created: 6 Oct 2020 6:49:00pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | ObjectTargetEditor::ObjectTargetEditor(ObjectTarget* o, bool isRoot) : 12 | BaseItemEditor(o, isRoot), 13 | objectTarget(o) 14 | { 15 | targetUI.reset(o->target->createTargetUI()); 16 | addAndMakeVisible(targetUI.get()); 17 | } 18 | 19 | ObjectTargetEditor::~ObjectTargetEditor() 20 | { 21 | } 22 | 23 | void ObjectTargetEditor::resizedInternalHeaderItemInternal(Rectangle& r) 24 | { 25 | targetUI->setBounds(r.removeFromRight(200)); 26 | } 27 | -------------------------------------------------------------------------------- /Source/Object/Group/groups/object/ui/ObjectGroupUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectGroupUI.h 5 | Created: 6 Oct 2020 6:49:00pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ObjectTargetEditor : 14 | public BaseItemEditor 15 | { 16 | public: 17 | ObjectTargetEditor(ObjectTarget* o, bool isRoot); 18 | ~ObjectTargetEditor(); 19 | 20 | ObjectTarget* objectTarget; 21 | 22 | std::unique_ptr targetUI; 23 | 24 | void resizedInternalHeaderItemInternal(Rectangle& r) override; 25 | }; 26 | -------------------------------------------------------------------------------- /Source/Object/Group/groups/virtual/VirtualGroup.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | VirtualGroup.cpp 5 | Created: 29 Sep 2020 9:47:50pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | -------------------------------------------------------------------------------- /Source/Object/Group/groups/virtual/VirtualGroup.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | VirtualGroup.h 5 | Created: 29 Sep 2020 9:47:50pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | -------------------------------------------------------------------------------- /Source/Object/Group/ui/GroupManagerUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GroupManagerUI.cpp 5 | Created: 29 Sep 2020 9:46:32pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | GroupManagerUI::GroupManagerUI(const String& name) : 12 | BaseManagerShapeShifterUI(name, GroupManager::getInstance()) 13 | { 14 | setShowSearchBar(true); 15 | addExistingItems(); 16 | } 17 | 18 | GroupManagerUI::~GroupManagerUI() 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /Source/Object/Group/ui/GroupManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GroupManagerUI.h 5 | Created: 29 Sep 2020 9:46:32pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class GroupManagerUI : 14 | public BaseManagerShapeShifterUI 15 | { 16 | public: 17 | GroupManagerUI(const String &name); 18 | ~GroupManagerUI(); 19 | 20 | 21 | static GroupManagerUI* create(const String& name) { return new GroupManagerUI(name); } 22 | }; -------------------------------------------------------------------------------- /Source/Object/Group/ui/GroupUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GroupUI.h 5 | Created: 29 Sep 2020 9:46:46pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class GroupUI : 14 | public BaseItemUI 15 | { 16 | public: 17 | GroupUI(Group * item); 18 | ~GroupUI(); 19 | 20 | 21 | bool flashMode; 22 | std::unique_ptr weightUI; 23 | 24 | 25 | virtual void mouseDown(const MouseEvent& e) override; 26 | virtual void mouseDrag(const MouseEvent& e) override; 27 | virtual void mouseUp(const MouseEvent& e) override; 28 | 29 | virtual bool keyStateChanged(bool isDown) override; 30 | 31 | virtual void resizedInternalHeader(Rectangle& r) override; 32 | 33 | void itemDropped(const DragAndDropTarget::SourceDetails& details) override; 34 | }; -------------------------------------------------------------------------------- /Source/Object/Layout/StageLayout.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | StageLayout.h 5 | Created: 6 Oct 2020 9:37:41pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Object; 14 | 15 | class StageLayout : 16 | public BaseItem 17 | { 18 | public: 19 | StageLayout(); 20 | ~StageLayout(); 21 | 22 | var layoutData; 23 | 24 | void loadLayout(); 25 | void saveLayout(); 26 | 27 | Vector3D getObjectPosition(Object * o); 28 | 29 | var getJSONData() override; 30 | void loadJSONDataItemInternal(var data) override; 31 | }; -------------------------------------------------------------------------------- /Source/Object/Layout/StageLayoutManager.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | StageLayoutManager.cpp 5 | Created: 6 Oct 2020 9:50:16pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | juce_ImplementSingleton(StageLayoutManager) 12 | 13 | StageLayoutManager::StageLayoutManager() : 14 | BaseManager("Stage Layouts") 15 | { 16 | iconSize = addFloatParameter("Icon Size", "Size of icons in view", 80,32,256); 17 | showFilters = addBoolParameter("Show Filters", "If checked, this will show filters in view", true); 18 | lockObjectUIs = addBoolParameter("Lock Objects", "If checked, this will lock objects in place", false); 19 | lockFilterUIs = addBoolParameter("Lock Filters", "If checked, this will lock filters in place", false); 20 | showSpat = addBoolParameter("Show Spat", "If checked, this will show spatializers in view", true); 21 | } 22 | 23 | StageLayoutManager::~StageLayoutManager() 24 | { 25 | } 26 | -------------------------------------------------------------------------------- /Source/Object/Layout/StageLayoutManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | StageLayoutManager.h 5 | Created: 6 Oct 2020 9:50:16pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class StageLayoutManager : 14 | public BaseManager 15 | { 16 | public: 17 | juce_DeclareSingleton(StageLayoutManager, true); 18 | 19 | //ui 20 | FloatParameter* iconSize; 21 | BoolParameter * showFilters; 22 | BoolParameter* lockObjectUIs; 23 | BoolParameter* lockFilterUIs; 24 | BoolParameter* showSpat; 25 | 26 | StageLayoutManager(); 27 | ~StageLayoutManager(); 28 | }; -------------------------------------------------------------------------------- /Source/Object/Layout/ui/Object2DView.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Object2DView.cpp 5 | Created: 6 Oct 2020 10:03:37pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | Object2DView::Object2DView(Object* object) : 12 | ObjectGridUI(object) 13 | { 14 | transparentBG = true; 15 | autoHideWhenDragging = false; 16 | drawEmptyDragIcon = true; 17 | 18 | float s = StageLayoutManager::getInstance()->iconSize->floatValue(); 19 | setSize(s, s); 20 | } 21 | 22 | Object2DView::~Object2DView() 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /Source/Object/Layout/ui/Object2DView.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Object2DView.h 5 | Created: 6 Oct 2020 10:03:37pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Object2DView : 14 | public ObjectGridUI 15 | { 16 | public: 17 | Object2DView(Object* object); 18 | ~Object2DView(); 19 | }; -------------------------------------------------------------------------------- /Source/Object/Layout/ui/StageLayoutManagerUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | StageLayoutManagerUI.cpp 5 | Created: 6 Oct 2020 9:50:00pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | StageLayoutManagerUI::StageLayoutManagerUI(const String& name) : 12 | BaseManagerShapeShifterUI(name, StageLayoutManager::getInstance(), true) 13 | { 14 | addExistingItems(); 15 | } 16 | 17 | StageLayoutManagerUI::~StageLayoutManagerUI() 18 | { 19 | } 20 | -------------------------------------------------------------------------------- /Source/Object/Layout/ui/StageLayoutManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | StageLayoutManagerUI.h 5 | Created: 6 Oct 2020 9:50:00pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class StageLayoutManagerUI : 14 | public BaseManagerShapeShifterUI 15 | { 16 | public: 17 | StageLayoutManagerUI(const String& name); 18 | ~StageLayoutManagerUI(); 19 | 20 | 21 | static StageLayoutManagerUI* create(const String& name) { return new StageLayoutManagerUI(name); } 22 | }; -------------------------------------------------------------------------------- /Source/Object/Layout/ui/StageLayoutUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | StageLayoutUI.cpp 5 | Created: 9 Oct 2020 8:53:10pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | StageLayoutUI::StageLayoutUI(StageLayout* item) : 12 | BaseItemUI(item) 13 | { 14 | } 15 | 16 | StageLayoutUI::~StageLayoutUI() 17 | { 18 | } 19 | 20 | void StageLayoutUI::mouseDown(const MouseEvent& e) 21 | { 22 | BaseItemUI::mouseDown(e); 23 | 24 | if (e.mods.isRightButtonDown()) 25 | { 26 | PopupMenu m; 27 | m.addItem(1, "Save"); 28 | m.addItem(2, "Load"); 29 | 30 | m.showMenuAsync(PopupMenu::Options(), [this](int result) 31 | { 32 | if (result == 1) item->saveLayout(); 33 | else if (result == 2) item->loadLayout(); 34 | } 35 | ); 36 | } 37 | } -------------------------------------------------------------------------------- /Source/Object/Layout/ui/StageLayoutUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | StageLayoutUI.h 5 | Created: 9 Oct 2020 8:53:10pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class StageLayoutUI : 14 | public BaseItemUI 15 | { 16 | public: 17 | StageLayoutUI(StageLayout* item); 18 | ~StageLayoutUI(); 19 | 20 | void mouseDown(const MouseEvent& e) override; 21 | 22 | }; -------------------------------------------------------------------------------- /Source/Object/ui/ObjectChainVizUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectChainVizUI.cpp 5 | Created: 30 Oct 2020 4:35:09pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Object/ObjectIncludes.h" 12 | 13 | ObjectChainVizUI::ObjectChainVizUI(Object* o, ComponentType ct, ChainVizTarget::ChainVizType type) : 14 | BaseItemChainVizComponent(o, o, ct, type) 15 | { 16 | if (ObjectComponent* ic = o->getComponentForType(ct)) 17 | { 18 | Parameter* p = type == ChainVizTarget::ChainVizType::OBJECT_START ? ic->computedParamMap[ic->mainParameter] : ic->mainParameter; 19 | if (p != nullptr) 20 | { 21 | paramUI.reset((ParameterUI*)p->createDefaultUI()); 22 | paramUI->showLabel = false; 23 | addAndMakeVisible(paramUI.get()); 24 | } 25 | } 26 | } 27 | 28 | 29 | ObjectChainVizUI::~ObjectChainVizUI() 30 | { 31 | } 32 | 33 | void ObjectChainVizUI::resized() 34 | { 35 | BaseItemChainVizComponent::resized(); 36 | Rectangle r = getLocalBounds().reduced(4); 37 | 38 | if (paramUI != nullptr) 39 | { 40 | paramUI->setBounds(r.removeFromBottom(16)); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Source/Object/ui/ObjectChainVizUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectChainVizUI.h 5 | Created: 30 Oct 2020 4:35:09pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Object; 14 | 15 | class ObjectChainVizUI : 16 | public BaseItemChainVizComponent 17 | { 18 | public: 19 | ObjectChainVizUI(Object* o, ComponentType ct, ChainVizTarget::ChainVizType type); 20 | ~ObjectChainVizUI(); 21 | 22 | std::unique_ptr paramUI; 23 | 24 | void resized() override; 25 | }; -------------------------------------------------------------------------------- /Source/Object/ui/ObjectCustomView.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectCustomView.cpp 5 | Created: 12 Sep 2021 12:11:22pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "ObjectCustomView.h" 12 | -------------------------------------------------------------------------------- /Source/Object/ui/ObjectCustomView.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectCustomView.h 5 | Created: 12 Sep 2021 12:11:22pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | -------------------------------------------------------------------------------- /Source/Object/ui/ObjectManagerUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectManagerUI.cpp 5 | Created: 26 Sep 2020 7:51:25pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | ObjectManagerUI::ObjectManagerUI(const String& name) : 12 | BaseManagerShapeShifterUI(name, ObjectManager::getInstance()) 13 | { 14 | setShowSearchBar(true); 15 | addExistingItems(); 16 | } 17 | 18 | ObjectManagerUI::~ObjectManagerUI() 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /Source/Object/ui/ObjectManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectManagerUI.h 5 | Created: 26 Sep 2020 7:51:25pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ObjectManagerUI : 14 | public BaseManagerShapeShifterUI 15 | { 16 | public: 17 | ObjectManagerUI(const String & name); 18 | ~ObjectManagerUI(); 19 | 20 | static ObjectManagerUI* create(const String& name) { return new ObjectManagerUI(name); } 21 | }; 22 | -------------------------------------------------------------------------------- /Source/Object/ui/ObjectUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectUI.cpp 5 | Created: 26 Sep 2020 7:51:11pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | ObjectUI::ObjectUI(Object* item) : 12 | BaseItemUI(item) 13 | { 14 | } 15 | 16 | ObjectUI::~ObjectUI() 17 | { 18 | } 19 | -------------------------------------------------------------------------------- /Source/Object/ui/ObjectUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ObjectUI.h 5 | Created: 26 Sep 2020 7:51:11pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ObjectUI : 14 | public BaseItemUI 15 | { 16 | public: 17 | ObjectUI(Object* item); 18 | virtual ~ObjectUI(); 19 | }; -------------------------------------------------------------------------------- /Source/Scene/SceneIncludes.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SceneIncludes.cpp 5 | Created: 9 Sep 2021 7:03:13pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "SceneIncludes.h" 12 | #include "Object/ObjectIncludes.h" 13 | 14 | #include "MainIncludes.h" 15 | #include "Effect/GlobalEffectManager.h" 16 | #include "Effect/effects/time/TimedEffect.h" 17 | 18 | #include "Scene.cpp" 19 | #include "SceneManager.cpp" 20 | 21 | #include "actions/SceneAction.cpp" 22 | 23 | #include "ui/SceneUI.cpp" 24 | #include "ui/SceneManagerUI.cpp" 25 | -------------------------------------------------------------------------------- /Source/Scene/SceneIncludes.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SceneIncludes.h 5 | Created: 9 Sep 2021 7:03:13pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "JuceHeader.h" 14 | #include "Common/CommonIncludes.h" 15 | 16 | #include "Sequence/SequenceIncludes.h" 17 | #include "Effect/EffectIncludes.h" 18 | 19 | #include "Scene.h" 20 | #include "SceneManager.h" 21 | 22 | #include "actions/SceneAction.h" 23 | 24 | #include "ui/SceneUI.h" 25 | #include "ui/SceneManagerUI.h" 26 | -------------------------------------------------------------------------------- /Source/Scene/actions/SceneAction.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SceneAction.h 5 | Created: 8 Oct 2020 3:32:05pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class SceneAction : 14 | public Action 15 | { 16 | public: 17 | SceneAction(var params); 18 | ~SceneAction(); 19 | 20 | enum ActionType { LOAD_SCENE, LOAD_NEXT_SCENE, LOAD_PREVIOUS_SCENE }; 21 | ActionType actionType; 22 | 23 | TargetParameter* scene; 24 | FloatParameter* time; 25 | 26 | void triggerInternal() override; 27 | static SceneAction* create(var params) { return new SceneAction(params); } 28 | }; -------------------------------------------------------------------------------- /Source/Scene/ui/SceneManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SceneManagerUI.h 5 | Created: 26 Sep 2020 7:49:30pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class SceneManagerUI : 14 | public BaseManagerShapeShifterUI, 15 | public AsyncSceneListener 16 | { 17 | public: 18 | SceneManagerUI(const String &name); 19 | ~SceneManagerUI(); 20 | 21 | std::unique_ptr prevSceneUI; 22 | std::unique_ptr nextSceneUI; 23 | std::unique_ptr previewModeUI; 24 | 25 | void mouseEnter(const MouseEvent& e) override; 26 | void mouseExit(const MouseEvent& e) override; 27 | 28 | void resizedInternalHeader(Rectangle& r) override; 29 | 30 | void newMessage(const SceneManagerEvent& e) override; 31 | virtual void newMessage(const InspectableSelectionManager::SelectionEvent& e) override; 32 | 33 | static SceneManagerUI* create(const String& name) { return new SceneManagerUI(name); } 34 | 35 | }; -------------------------------------------------------------------------------- /Source/Sequence/BluxSequenceManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | BluxSequenceManager.h 5 | Created: 5 Oct 2020 2:42:03pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ChainVizTarget; 14 | 15 | class BluxSequenceManager : 16 | public SequenceManager 17 | { 18 | public: 19 | BluxSequenceManager(); 20 | ~BluxSequenceManager(); 21 | 22 | Sequence* createItem(); 23 | 24 | virtual void processComponent(Object* o, ObjectComponent* c, HashMap& values, float weightMultiplier = 1.0f); 25 | 26 | void processRawData(); 27 | 28 | Array getChainVizTargetsForObjectAndComponent(Object* o, ComponentType t); 29 | 30 | 31 | }; -------------------------------------------------------------------------------- /Source/Sequence/GlobalSequenceManager.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GlobalSequenceManager.cpp 5 | Created: 5 Oct 2020 2:42:12pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | juce_ImplementSingleton(GlobalSequenceManager); 12 | 13 | GlobalSequenceManager::GlobalSequenceManager() 14 | { 15 | setNiceName("Global Sequences"); 16 | } 17 | 18 | GlobalSequenceManager::~GlobalSequenceManager() 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /Source/Sequence/GlobalSequenceManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GlobalSequenceManager.h 5 | Created: 5 Oct 2020 2:42:12pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Effect; 14 | 15 | class GlobalSequenceManager : 16 | public BluxSequenceManager 17 | { 18 | public: 19 | juce_DeclareSingleton(GlobalSequenceManager, true); 20 | 21 | GlobalSequenceManager(); 22 | ~GlobalSequenceManager(); 23 | 24 | 25 | }; -------------------------------------------------------------------------------- /Source/Sequence/actions/SequenceAction.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | SequenceAction.h 5 | Created: 8 Oct 2020 3:32:39pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class SequenceAction : 14 | public Action 15 | { 16 | public: 17 | SequenceAction(var params); 18 | ~SequenceAction(); 19 | 20 | enum ActionType { PLAY_SEQUENCE, STOP_SEQUENCE }; 21 | ActionType actionType; 22 | TargetParameter* sequence; 23 | 24 | void triggerInternal() override; 25 | 26 | static SequenceAction* create(var params) { return new SequenceAction(params); } 27 | }; -------------------------------------------------------------------------------- /Source/Sequence/layers/action/ActionLayer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ActionLayer.cpp 5 | Created: 5 Oct 2020 4:02:52pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | ActionLayer::ActionLayer(Sequence* s, var params) : 12 | TriggerLayer(s, "Action", params) 13 | { 14 | setManager(new ActionTriggerManager(this, s)); 15 | } 16 | 17 | ActionLayer::~ActionLayer() 18 | { 19 | } 20 | 21 | ActionTriggerManager::ActionTriggerManager(ActionLayer* layer, Sequence* sequence) : 22 | TimeTriggerManager(layer, sequence) 23 | { 24 | } 25 | 26 | TimeTrigger* ActionTriggerManager::createItem() 27 | { 28 | return new ActionTrigger(); 29 | } 30 | -------------------------------------------------------------------------------- /Source/Sequence/layers/action/ActionLayer.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ActionLayer.h 5 | Created: 5 Oct 2020 4:02:52pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ActionLayer : 14 | public TriggerLayer 15 | { 16 | public: 17 | ActionLayer(Sequence* s, var params); 18 | ~ActionLayer(); 19 | 20 | String getTypeString() const override { return "Actions"; } 21 | static ActionLayer* create(Sequence* s, var params) { return new ActionLayer(s, params); } 22 | }; 23 | 24 | class ActionTriggerManager : 25 | public TimeTriggerManager 26 | { 27 | public: 28 | ActionTriggerManager(ActionLayer* layer, Sequence* sequence); 29 | ~ActionTriggerManager() {} 30 | 31 | TimeTrigger* createItem() override; 32 | }; 33 | -------------------------------------------------------------------------------- /Source/Sequence/layers/action/ActionTrigger.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ActionTrigger.cpp 5 | Created: 12 Oct 2020 10:55:48am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | ActionTrigger::ActionTrigger() : 12 | TimeTrigger("Action") 13 | { 14 | actionManager.reset(new ActionManager()); 15 | saveAndLoadRecursiveData = true; 16 | addChildControllableContainer(actionManager.get()); 17 | } 18 | 19 | ActionTrigger::~ActionTrigger() 20 | { 21 | } 22 | 23 | void ActionTrigger::triggerInternal() 24 | { 25 | actionManager->triggerAll(); 26 | } 27 | -------------------------------------------------------------------------------- /Source/Sequence/layers/action/ActionTrigger.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ActionTrigger.h 5 | Created: 12 Oct 2020 10:55:48am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ActionManager; 14 | 15 | class ActionTrigger : 16 | public TimeTrigger 17 | { 18 | public: 19 | ActionTrigger(); 20 | ~ActionTrigger(); 21 | 22 | std::unique_ptr actionManager; 23 | 24 | void triggerInternal(); 25 | }; -------------------------------------------------------------------------------- /Source/Sequence/layers/automation/AutomationLayer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AutomationLayer.cpp 5 | Created: 5 Oct 2020 4:03:08pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | AutomationLayer::AutomationLayer(Sequence* s, var params) : 12 | SequenceLayer(s, "Automation"), 13 | blocks(this) 14 | { 15 | addChildControllableContainer(&blocks); 16 | } 17 | 18 | AutomationLayer::~AutomationLayer() 19 | { 20 | } 21 | -------------------------------------------------------------------------------- /Source/Sequence/layers/automation/AutomationLayer.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AutomationLayer.h 5 | Created: 5 Oct 2020 4:03:08pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class AutomationLayer : 14 | public SequenceLayer 15 | { 16 | public: 17 | AutomationLayer(Sequence* s, var params); 18 | ~AutomationLayer(); 19 | 20 | LayerBlockManager blocks; 21 | 22 | String getTypeString() const override { return "Automation"; } 23 | 24 | static AutomationLayer* create(Sequence* s, var params) { return new AutomationLayer(s, params); } 25 | }; -------------------------------------------------------------------------------- /Source/Sequence/layers/colorsource/ColorSourceLayer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceLayer.cpp 5 | Created: 5 Oct 2020 4:03:13pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | ColorSourceLayer::ColorSourceLayer(Sequence* s, var params) : 12 | SequenceLayer(s, "Color Source"), 13 | blocks(this) 14 | { 15 | } 16 | 17 | ColorSourceLayer::~ColorSourceLayer() 18 | { 19 | } 20 | -------------------------------------------------------------------------------- /Source/Sequence/layers/colorsource/ColorSourceLayer.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | ColorSourceLayer.h 5 | Created: 5 Oct 2020 4:03:13pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class ColorSourceLayer : 14 | public SequenceLayer 15 | { 16 | public: 17 | ColorSourceLayer(Sequence* s, var params); 18 | ~ColorSourceLayer(); 19 | 20 | LayerBlockManager blocks; 21 | 22 | String getTypeString() const override { return "Color Source"; } 23 | static ColorSourceLayer* create(Sequence* s, var params) { return new ColorSourceLayer(s, params); } 24 | }; -------------------------------------------------------------------------------- /Source/Sequence/layers/effect/ui/EffectBlockManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectBlockManagerUI.h 5 | Created: 10 Oct 2020 10:49:03am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class EffectLayerTimeline; 14 | 15 | class EffectBlockManagerUI : 16 | public LayerBlockManagerUI 17 | { 18 | public: 19 | EffectBlockManagerUI(EffectLayerTimeline * timeline); 20 | ~EffectBlockManagerUI(); 21 | 22 | EffectLayerTimeline* effectTimeline; 23 | 24 | LayerBlockUI* createUIForItem(LayerBlock* b) override; 25 | 26 | void showMenuAndAddItem(bool fromAddButton, Point mouseDownPos) override; 27 | void mouseDoubleClick(const MouseEvent &e) override; 28 | }; -------------------------------------------------------------------------------- /Source/Sequence/layers/effect/ui/EffectLayerTimeline.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectLayerTimeline.cpp 5 | Created: 10 Oct 2020 10:48:01am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | EffectLayerTimeline::EffectLayerTimeline(EffectLayer* l) : 12 | SequenceLayerTimeline(l), 13 | effectLayer(l), 14 | blockManagerUI(this) 15 | { 16 | addAndMakeVisible(&blockManagerUI); 17 | } 18 | 19 | EffectLayerTimeline::~EffectLayerTimeline() 20 | { 21 | } 22 | 23 | void EffectLayerTimeline::resized() 24 | { 25 | blockManagerUI.setBounds(getLocalBounds()); 26 | } 27 | 28 | void EffectLayerTimeline::updateContent() 29 | { 30 | blockManagerUI.updateContent(); 31 | } 32 | 33 | void EffectLayerTimeline::updateMiniModeUI() 34 | { 35 | blockManagerUI.setMiniMode(item->miniMode->boolValue()); 36 | } 37 | 38 | void EffectLayerTimeline::addSelectableComponentsAndInspectables(Array& selectables, Array& inspectables) 39 | { 40 | blockManagerUI.addSelectableComponentsAndInspectables(selectables, inspectables); 41 | } 42 | -------------------------------------------------------------------------------- /Source/Sequence/layers/effect/ui/EffectLayerTimeline.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | EffectLayerTimeline.h 5 | Created: 10 Oct 2020 10:48:01am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class EffectLayerTimeline : 14 | public SequenceLayerTimeline 15 | { 16 | public: 17 | EffectLayerTimeline(EffectLayer* l); 18 | ~EffectLayerTimeline(); 19 | 20 | EffectLayer* effectLayer; 21 | EffectBlockManagerUI blockManagerUI; 22 | 23 | void resized() override; 24 | void updateContent() override; 25 | virtual void updateMiniModeUI() override; 26 | 27 | virtual void addSelectableComponentsAndInspectables(Array& selectables, Array& inspectables) override; 28 | }; 29 | -------------------------------------------------------------------------------- /Source/Sequence/layers/rawdata/RawDataBlockManager.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | RawDataBlockManager.cpp 5 | Created: 13 Dec 2022 6:23:58pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Sequence/SequenceIncludes.h" 12 | 13 | RawDataBlockManager::RawDataBlockManager(RawDataLayer* layer) : 14 | LayerBlockManager(layer, "Blocks") 15 | { 16 | } 17 | 18 | RawDataBlockManager::~RawDataBlockManager() 19 | { 20 | } 21 | 22 | LayerBlock* RawDataBlockManager::createItem() 23 | { 24 | return new RawDataBlock(); 25 | } -------------------------------------------------------------------------------- /Source/Sequence/layers/rawdata/RawDataBlockManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | RawDataBlockManager.h 5 | Created: 13 Dec 2022 6:23:58pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class RawDataLayer; 14 | 15 | class RawDataBlockManager : 16 | public LayerBlockManager 17 | { 18 | public: 19 | RawDataBlockManager(RawDataLayer * layer); 20 | ~RawDataBlockManager(); 21 | 22 | LayerBlock* createItem() override; 23 | }; -------------------------------------------------------------------------------- /Source/Sequence/layers/rawdata/ui/RawDataBlockManagerUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | RawDataBlockManagerUI.cpp 5 | Created: 13 Dec 2022 6:24:30pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Sequence/SequenceIncludes.h" 12 | 13 | RawDataBlockManagerUI::RawDataBlockManagerUI(RawDataLayerTimeline* timeline) : 14 | LayerBlockManagerUI(timeline, &timeline->rawDataLayer->blockManager), 15 | effectTimeline(timeline) 16 | { 17 | addExistingItems(); 18 | } 19 | 20 | RawDataBlockManagerUI::~RawDataBlockManagerUI() 21 | { 22 | } 23 | 24 | 25 | LayerBlockUI* RawDataBlockManagerUI::createUIForItem(LayerBlock* b) 26 | { 27 | return new RawDataBlockUI((RawDataBlock*)b); 28 | } 29 | 30 | void RawDataBlockManagerUI::mouseDoubleClick(const MouseEvent& e) 31 | { 32 | //nothing, do not create on double click 33 | } 34 | -------------------------------------------------------------------------------- /Source/Sequence/layers/rawdata/ui/RawDataBlockManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | RawDataBlockManagerUI.h 5 | Created: 13 Dec 2022 6:24:30pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | 14 | class RawDataLayerTimeline; 15 | 16 | class RawDataBlockManagerUI : 17 | public LayerBlockManagerUI 18 | { 19 | public: 20 | RawDataBlockManagerUI(RawDataLayerTimeline* timeline); 21 | ~RawDataBlockManagerUI(); 22 | 23 | RawDataLayerTimeline* effectTimeline; 24 | 25 | void mouseDoubleClick(const MouseEvent& e) override; 26 | 27 | LayerBlockUI* createUIForItem(LayerBlock* b) override; 28 | }; -------------------------------------------------------------------------------- /Source/Sequence/layers/rawdata/ui/RawDataBlockUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | RawDataBlockUI.h 5 | Created: 13 Dec 2022 6:24:21pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | 14 | class RawDataBlockUI : 15 | public LayerBlockUI, 16 | public RawDataBlock::AsyncListener 17 | { 18 | public: 19 | RawDataBlockUI(RawDataBlock* b); 20 | ~RawDataBlockUI(); 21 | 22 | RawDataBlock* rawDataBlock; 23 | 24 | float fadeValueAtMouseDown; 25 | EffectBlockFadeHandle fadeInHandle; 26 | EffectBlockFadeHandle fadeOutHandle; 27 | 28 | void paint(Graphics& g) override; 29 | void paintOverChildren(Graphics& g) override; 30 | 31 | void resizedBlockInternal() override; 32 | 33 | void mouseDown(const MouseEvent& e) override; 34 | void mouseDrag(const MouseEvent& e) override; 35 | void mouseUp(const MouseEvent& e) override; 36 | 37 | void controllableFeedbackUpdateInternal(Controllable*) override; 38 | void newMessage(const RawDataBlock::RawDataBlockEvent& e) override; 39 | }; 40 | -------------------------------------------------------------------------------- /Source/Sequence/layers/rawdata/ui/RawDataLayerPanel.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | RawDataLayerPanel.cpp 5 | Created: 13 Dec 2022 6:24:37pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Sequence/SequenceIncludes.h" 12 | 13 | RawDataLayerPanel::RawDataLayerPanel(RawDataLayer* layer) : 14 | SequenceLayerPanel(layer), 15 | rawDataLayer(layer) 16 | { 17 | armUI.reset(layer->arm->createToggle()); 18 | addAndMakeVisible(armUI.get()); 19 | } 20 | 21 | RawDataLayerPanel::~RawDataLayerPanel() 22 | { 23 | } 24 | 25 | void RawDataLayerPanel::resizedInternalContent(Rectangle& r) 26 | { 27 | armUI->setBounds(r.removeFromTop(20)); 28 | } 29 | -------------------------------------------------------------------------------- /Source/Sequence/layers/rawdata/ui/RawDataLayerPanel.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | RawDataLayerPanel.h 5 | Created: 13 Dec 2022 6:24:37pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | class RawDataLayerPanel : 13 | public SequenceLayerPanel 14 | { 15 | public: 16 | RawDataLayerPanel(RawDataLayer* layer); 17 | ~RawDataLayerPanel(); 18 | 19 | RawDataLayer* rawDataLayer; 20 | 21 | std::unique_ptr armUI; 22 | 23 | void resizedInternalContent(Rectangle& r) override; 24 | 25 | 26 | JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(RawDataLayerPanel) 27 | }; -------------------------------------------------------------------------------- /Source/Sequence/layers/rawdata/ui/RawDataLayerTimeline.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | RawDataLayerTimeline.h 5 | Created: 13 Dec 2022 6:23:39pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | 14 | class RawDataLayerTimeline : 15 | public SequenceLayerTimeline 16 | { 17 | public: 18 | RawDataLayerTimeline(RawDataLayer* l); 19 | ~RawDataLayerTimeline(); 20 | 21 | RawDataLayer* rawDataLayer; 22 | RawDataBlockManagerUI blockManagerUI; 23 | 24 | void paintOverChildren(Graphics &g) override; 25 | void resized() override; 26 | void updateContent() override; 27 | virtual void updateMiniModeUI() override; 28 | 29 | virtual void controllableFeedbackUpdateInternal(Controllable* c) override; 30 | 31 | virtual void addSelectableComponentsAndInspectables(Array& selectables, Array& inspectables) override; 32 | }; -------------------------------------------------------------------------------- /Source/Sequence/ui/BluxSequenceChainVizUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | BluxSequenceChainVizUI.h 5 | Created: 1 Nov 2020 11:10:13am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class Object; 14 | class BluxSequence; 15 | 16 | class BluxSequenceChainVizUI : 17 | public BaseItemChainVizComponent, 18 | public Sequence::SequenceListener 19 | { 20 | public: 21 | BluxSequenceChainVizUI(BluxSequence * s, Object* o, ComponentType ct, ChainVizTarget::ChainVizType type); 22 | ~BluxSequenceChainVizUI(); 23 | 24 | BluxSequence* sequence; 25 | WeakReference inspectable; 26 | 27 | Array activeTargets; 28 | OwnedArray activeVizComponents; 29 | 30 | 31 | void rebuildComponents(); 32 | 33 | void resized() override; 34 | 35 | void sequenceCurrentTimeChanged(Sequence* s, float prevTime, bool skip) override; 36 | }; -------------------------------------------------------------------------------- /Source/Sequence/ui/BluxSequenceEditor.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | BluxSequenceEditor.cpp 5 | Created: 10 Oct 2020 10:21:57am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | BluxSequenceEditor::BluxSequenceEditor(BluxSequence* s, bool isRoot) : 12 | BaseItemEditor(s, isRoot), 13 | bluxSequence(s), 14 | editBT("Edit") 15 | { 16 | addAndMakeVisible(&editBT); 17 | editBT.addListener(this); 18 | } 19 | 20 | BluxSequenceEditor::~BluxSequenceEditor() 21 | { 22 | } 23 | 24 | void BluxSequenceEditor::resizedInternalHeaderItemInternal(Rectangle& r) 25 | { 26 | editBT.setBounds(r.removeFromRight(50).reduced(2)); 27 | } 28 | 29 | void BluxSequenceEditor::buttonClicked(Button* b) 30 | { 31 | BaseItemEditor::buttonClicked(b); 32 | if (b == &editBT) 33 | { 34 | if (TimeMachineView* v = ShapeShifterManager::getInstance()->getContentForType()) 35 | { 36 | v->setSequence(bluxSequence); 37 | } 38 | 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Source/Sequence/ui/BluxSequenceEditor.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | BluxSequenceEditor.h 5 | Created: 10 Oct 2020 10:21:57am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class BluxSequenceEditor : 14 | public BaseItemEditor 15 | { 16 | public: 17 | BluxSequenceEditor(BluxSequence* s, bool isRoot); 18 | ~BluxSequenceEditor(); 19 | 20 | BluxSequence* bluxSequence; 21 | TextButton editBT; 22 | 23 | void resizedInternalHeaderItemInternal(Rectangle& r) override; 24 | 25 | void buttonClicked(Button* b) override; 26 | }; -------------------------------------------------------------------------------- /Source/Sequence/ui/GlobalSequenceManagerUI.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GlobalSequenceManagerUI.cpp 5 | Created: 5 Oct 2020 2:42:26pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | GlobalSequenceManagerUI::GlobalSequenceManagerUI(const String& name) : 12 | SequenceManagerUI(name, GlobalSequenceManager::getInstance()) 13 | { 14 | // addExistingItems(); 15 | } 16 | 17 | GlobalSequenceManagerUI::~GlobalSequenceManagerUI() 18 | { 19 | } 20 | -------------------------------------------------------------------------------- /Source/Sequence/ui/GlobalSequenceManagerUI.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | GlobalSequenceManagerUI.h 5 | Created: 5 Oct 2020 2:42:26pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | class GlobalSequenceManagerUI : 14 | public SequenceManagerUI 15 | { 16 | public: 17 | GlobalSequenceManagerUI(const String& name); 18 | ~GlobalSequenceManagerUI(); 19 | 20 | static GlobalSequenceManagerUI* create(const String& name) { return new GlobalSequenceManagerUI(name); } 21 | }; -------------------------------------------------------------------------------- /Source/UI/AssetManager.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AssetManager.cpp 5 | Created: 26 Sep 2020 2:38:52pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "AssetManager.h" 12 | -------------------------------------------------------------------------------- /Source/UI/AssetManager.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | AssetManager.h 5 | Created: 26 Sep 2020 2:38:52pm 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "JuceHeader.h" 14 | 15 | class BluxAssetManager 16 | { 17 | public: 18 | static Image getImage(StringRef name, StringRef extension = "png") 19 | { 20 | int size = 0; 21 | const char* data = BinaryData::getNamedResource((name + "_" + extension).getCharPointer(), size); 22 | return ImageCache::getFromMemory(data, size); 23 | } 24 | }; 25 | -------------------------------------------------------------------------------- /Source/UI/BluxInspector.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | BluxInspector.cpp 5 | Created: 9 Nov 2020 8:12:06am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "BluxInspector.h" 12 | #include "Object/ObjectIncludes.h" 13 | #include "Color/ColorIncludes.h" 14 | 15 | BluxInspector::BluxInspector(InspectableSelectionManager* s) : 16 | Inspector(s) 17 | { 18 | } 19 | 20 | BluxInspector::~BluxInspector() 21 | { 22 | } 23 | 24 | void BluxInspector::setCurrentInspectables(Array inspectables, bool setInspectableSelection) 25 | { 26 | 27 | Inspector::setCurrentInspectables(inspectables, setInspectableSelection); 28 | 29 | } 30 | 31 | void BluxInspector::paint(Graphics& g) 32 | { 33 | Inspector::paint(g); 34 | 35 | 36 | 37 | } 38 | 39 | void BluxInspector::resizedInternal(Rectangle& r) 40 | { 41 | 42 | Inspector::resizedInternal(r); 43 | } 44 | -------------------------------------------------------------------------------- /Source/UI/BluxInspector.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | BluxInspector.h 5 | Created: 9 Nov 2020 8:12:06am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "JuceHeader.h" 14 | 15 | class ColorViz; 16 | 17 | class BluxInspector : 18 | public Inspector 19 | { 20 | public: 21 | BluxInspector(InspectableSelectionManager* s); 22 | ~BluxInspector(); 23 | 24 | virtual void setCurrentInspectables(Arrayinspectables = Array(), bool setInspectableSelection = true); 25 | 26 | void paint(Graphics& g) override; 27 | void resizedInternal(Rectangle& r) override; 28 | }; -------------------------------------------------------------------------------- /Source/Viz/Viz.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Viz.cpp 5 | Created: 5 Apr 2022 10:41:47am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #include "Viz.h" 12 | 13 | VizPanel::VizPanel(StringRef name) : 14 | ShapeShifterContentComponent(name) 15 | #if JUCE_WINDOWS 16 | , web(WebBrowserComponent::Options().withBackend(WebBrowserComponent::Options::Backend::webview2).withWinWebView2Options( 17 | WebBrowserComponent::Options::WinWebView2().withUserDataFolder(File::getSpecialLocation(File::windowsLocalAppData).getChildFile(ProjectInfo::projectName)).withStatusBarDisabled())) 18 | #endif 19 | { 20 | web.goToURL("http://127.0.0.1:6080"); 21 | addAndMakeVisible(web); 22 | } 23 | 24 | void VizPanel::resized() 25 | { 26 | web.setBounds(getLocalBounds()); 27 | } 28 | -------------------------------------------------------------------------------- /Source/Viz/Viz.h: -------------------------------------------------------------------------------- 1 | /* 2 | ============================================================================== 3 | 4 | Viz.h 5 | Created: 5 Apr 2022 10:41:47am 6 | Author: bkupe 7 | 8 | ============================================================================== 9 | */ 10 | 11 | #pragma once 12 | 13 | #include "JuceHeader.h" 14 | 15 | class VizPanel : 16 | public ShapeShifterContentComponent 17 | { 18 | public: 19 | VizPanel(StringRef name); 20 | ~VizPanel() {} 21 | WebBrowserComponent web; 22 | 23 | void resized() override; 24 | 25 | static VizPanel* create(const String& name) { return new VizPanel(name); } 26 | }; -------------------------------------------------------------------------------- /setup.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/benkuper/Blux/828001405ab26c2731ca1403c5b4e58c6fc3988e/setup.ico --------------------------------------------------------------------------------