Commit Graph

60 Commits

Author SHA1 Message Date
Bruno Herbelin
aae1915519 SessionFile source restore version snapshot from UI 2022-04-10 00:50:31 +02:00
Bruno Herbelin
8fef0052a3 New CountVisitor to count the number of sources in session
Session size is the number of elements, use CountVisitor to count the total number of sources inside (recursively through SessionSources).
2022-04-09 00:35:20 +02:00
Bruno Herbelin
33756c775c Fixed Session load recursion, allow higher level of imbrication
Recursive load of SessionFile in a Session is now detected by filename and prevented. Deeper level of integration of sessionfile inside session is thus possible (set to 3). Sessions now have an id, allowing to reference them by id in the logs. Terminology is clarified between level and recursion.
2022-04-08 17:44:39 +02:00
Bruno Herbelin
39b61fe331 Reimplementation of SourceInputCallbacks into Session
Session should be the object holding the list of inputs parameters (e.g. synchrony) and the list of source callbacks. This also avoids mixing input when copying sources.  Code could be improved but is operational.
2022-03-07 00:23:24 +01:00
Bruno Herbelin
ab040f5268 First working implementation of Inputs Mapping
Management of inputs in Control, Management of callbacks creator per input in Source, Saving and Loading in Session, Unified renaming of SourceCallbacks, User interface window for creating and editing input mapping from Keyboard and Numerical keypad, with appropriate Settings.
2022-02-06 00:36:05 +01:00
Bruno Herbelin
81e8d6d99c Refactoring Session saving
use Session::save static method to save a session from a thread (same mechanism as Session::load). It calls Action::takeSnapshot if saving version is required. Mixer is busy during saving, pops up info when done.
2022-01-17 00:38:48 +01:00
Bruno Herbelin
e96444671e BugFix: give time to Save on exit and stop recordings on Quit 2022-01-16 19:16:51 +01:00
Bruno Herbelin
8bbcef585f Isolate implementation of RenderSource and new Non-Recursive mode
Separate files for RenderSource, make RenderSource playable, and implement two rendering mechanisms
2022-01-16 12:20:28 +01:00
Bruno Herbelin
1cb448c42e Output session fading fixed for OSC and animation.
Linear interpolation (instead of dichotomy converge) for fading at Session update. Mixing View update reads value of session fading to animate the cursor (which was preventing other manipulation of fading). Cleanup fading in OSC controller, with animation options and fade-in and fade-out controls.
2021-12-26 00:41:02 +01:00
Bruno Herbelin
baa6ddb401 Implementation of user defined mixing deactivation limit
Mixing view handles to grab and scale limbo area. Saving of user defined limit in Session (and snapshot). Testing for source activation outside of update during session update loop.
2021-12-08 23:55:27 +01:00
Bruno Herbelin
aa4b2967c7 Adding a timestamp to Session instanciation
Used to compute runtime of a session
2021-11-21 16:51:19 +01:00
Bruno Herbelin
8bf8f05add compilation warnings 2021-09-24 00:46:20 +02:00
Bruno
d1e833e0a1 Properties pannel of Session
Also added custom thumbnail of session.
2021-08-01 00:29:44 +02:00
Bruno
e87ef2774b New SourcePlayer
Work in progress; Sources now have play/pause and associated play functions. Media player can play all playable sources, and adapts to control a media player when possible. Selection of play groups (to finalize)
2021-06-19 01:02:12 +02:00
Bruno
be36662efc Fixed unique source name algorithm 2021-04-26 23:51:47 +02:00
Bruno
055f5c4c4e Creating a base toolkit for functions independent from other toolkits 2021-04-25 20:09:22 +02:00
Bruno
f643e80de7 Using std future promises to get thumbnail of render view 2021-04-24 13:14:57 +02:00
Bruno
a50a6e129c Better implementation of SessionSnapshots saving 2021-04-18 18:22:21 +02:00
Bruno
c90bec36c5 clean useless ptr 2021-04-17 14:10:42 +02:00
brunoherbelin
ebb5fd16bb Draft implementation of Snapshots, with saving and UI 2021-04-17 10:28:12 +02:00
brunoherbelin
11df7c28b4 More robust clone XML mechanism: use ID 2021-04-13 22:41:57 +02:00
brunoherbelin
ab41a0c5d8 First implementation of Sticky Notes 2021-04-11 15:13:46 +02:00
brunoherbelin
5ab5f1b60f bruteforce and efficient implementation of mixing groups management in
session.
2021-03-12 20:25:36 +01:00
brunoherbelin
10f9c1b329 Work in progress Implementation of mixing group
link and unlink methods, integration in MixingView, update groups on
source change, undo-redo improved.
2021-03-10 23:38:09 +01:00
brunoherbelin
2d62ab969c Work in progress: undo & redo of mixing group creation and delete
actions.
2021-03-10 00:16:49 +01:00
Bruno
7656113dcc Large commit for implementation of load&save of MixingGroups 2021-03-07 19:27:00 +01:00
brunoherbelin
8123e61e34 Cleanup depth management 2021-02-28 14:10:32 +01:00
Bruno
004e1aaead Compile Views in separate source files 2021-02-26 23:09:51 +01:00
Bruno
e37b21760e BugFix: interrupting recursive session loading
Prevent crash on  recursive (infinite) loading of session file (containing itself).
2021-02-14 18:56:48 +01:00
Bruno
84416f566b Early implementation of groups: SessionGroupSource.
Rename SessionSource to SessionFileSource.
2021-02-07 22:01:07 +01:00
brunoherbelin
54c5eb6155 Reordering of Sources in list. 2021-01-25 22:24:08 +01:00
brunoherbelin
15a0bab925 Creating view for APPEARANCE control 2020-11-13 22:35:32 +01:00
brunoherbelin
56dfbc737d Deep redesign of frame grabbers to prevent multiple frame captures
(slow) and optimize distribution of gabbed frames to multiple recording
and streaming pipelines (e.g. record H264 *and* share stream on the
network). New implementation of Loopback source for LINUX using
v4l2loopback (experimental).
2020-11-09 23:56:41 +01:00
brunoherbelin
3a41e59f00 Management of recorders by id in user interface. 2020-10-14 22:37:53 +02:00
brunoherbelin
3a34da9322 Renaming Recorder to FrameGrabber 2020-10-14 21:04:22 +02:00
brunoherbelin
233fc64c4e Increased size of unique identifier of objects: using uint64 instead of
int. Deep change in all concerned objects (Node, Source, Shader, etc.).
No behavior change, just more robust in duration.
2020-10-06 22:45:52 +02:00
brunoherbelin
616c6c8bdf First working implementation of ActionManager, but incomplete. 2020-10-04 22:52:23 +02:00
brunoherbelin
5421b5e926 Cleanup Session loading (prepare for session history) 2020-10-03 18:45:30 +02:00
brunoherbelin
d563ee14a9 Cleanup source id management, and improved session merging and source
renaming.
2020-10-03 17:54:34 +02:00
brunoherbelin
c777a3d153 work in progress: implementation of stash in MixingView 2020-09-30 12:01:40 +02:00
brunoherbelin
f6588de023 Unified use of std::future for loading sessions in Mixer and
SessionSource.
2020-08-16 19:10:23 +02:00
brunoherbelin
5763a9e756 Thread safe loading and saving of session: use of std::future. 2020-08-14 22:28:36 +02:00
brunoherbelin
4f17620cae Intregration of session fading with transition and session source
management.
2020-07-29 19:02:43 +02:00
brunoherbelin
837eb2d569 New: implementation of fading slider in MixingView. Needed to implement
decoration Disk and to update picking visitor.
2020-07-29 17:06:08 +02:00
brunoherbelin
3f782736ac Fixed Recorder and Session to allow transfer of recorders when changing
session.
2020-07-27 11:45:15 +02:00
brunoherbelin
60880a1a8b First operational implementation of video recorder. 2020-07-26 23:54:29 +02:00
brunoherbelin
978bbff9a7 Implementation of Recorder class. For now, only a capture to PNG is
available, but the mechanism is in place for video capture.
2020-07-23 23:50:32 +02:00
brunoherbelin
7f3867521e Fixed mechanism to properly restore last session (verify validity of
last file saved, i.e not empty or unsaved session).
2020-07-09 13:13:52 +02:00
brunoherbelin
b5985847bf Almost done with implementation of Transition! Settings and UI side
pannel are operational. View is stable and animation with UpdateCallback
implemented.
2020-07-06 00:06:49 +02:00
brunoherbelin
ee35e52b89 Fixed update of Session Source. 2020-06-23 19:39:00 +02:00