Commit Graph

1087 Commits

Author SHA1 Message Date
WarmUpTill
9a62522140 Fix DisplayMessage() not being visible when OBS is always on top
The previous behaviour would cause the impression of OSB being frozen
due to dialogs windows being opened behind OBS while they take over the
input focus.
2023-08-07 18:03:12 +02:00
WarmUpTill
666c52556e Fix plugin state condition not functioning on OBS shutdown
Also added note indicating the limitations of running macros on OBS
shutdown
2023-08-05 15:43:44 +02:00
WarmUpTill
1c0734d1cb Add media_playlist_source_codeyan to supported media source types
Source at: https://github.com/CodeYan01/media-playlist-source/
2023-08-05 13:35:19 +02:00
WarmUpTill
1304ac7336 Add tooltip to regex configure widget 2023-08-03 21:44:17 +02:00
WarmUpTill
884fb1b637 Adjust to SceneItemSelection rework
And do minor cleanup
2023-08-03 21:44:17 +02:00
WarmUpTill
a82bce947f Rework scene item selection
Added support for:
* Index based scelection
* Type based selection
* Name pattern based selection
2023-08-03 21:44:17 +02:00
WarmUpTill
d5241f0700 Add tooltip for variable and connection selection 2023-08-03 21:44:17 +02:00
WarmUpTill
f24f258c9c Add option to hide enable button and set default enable value 2023-08-03 21:44:17 +02:00
WarmUpTill
eddd9fa8ab Add helper to check if value is a valid number 2023-08-03 21:44:17 +02:00
WarmUpTill
6cc224aeec Add helper to get int from variable 2023-08-03 21:44:17 +02:00
WarmUpTill
4b0a631987 Add export / import functionality to macro tab
This enables the easy sharing of single / multiple macros across scene
collections.
Previously either all settings had to be copied via the export / import
functionality of the General tab or none at all.
2023-08-02 20:55:59 +02:00
WarmUpTill
dcae0e8e8b Reset scene switcher state when new scene collection is created
This avoids copying all macros of the previous scene collection to the
newly created one.
2023-08-02 20:55:59 +02:00
WarmUpTill
29f810a2a0 Add buttons to move macro segments to top / bottom of segment list 2023-08-02 17:00:34 +02:00
WarmUpTill
719dfa7b72 Fix segment selection being lost when using up / down button 2023-08-02 17:00:34 +02:00
WarmUpTill
259aac8fcd Perform actions only on condition change by default 2023-08-02 17:00:34 +02:00
WarmUpTill
5be2cd278f Allow empty string as argument and increase max length of argument 2023-08-02 17:00:34 +02:00
WarmUpTill
211eac5313 Add slide show condition
It allows you to check ...
* if the slide changed
* the current slide index
* the current slide path

Important limitation:
Its internal state is only updated whenever the "slide_changed" signal
is sent by the particular source.
2023-08-01 23:52:44 +02:00
WarmUpTill
f92ed3139d Add more transform actions
* Reset
* Rotation
* Flip (horizontal / vertical)
* Fit to screen
* Stretch to screen
* Center (horizontal / vertical / to screen)
2023-07-28 18:51:30 +02:00
WarmUpTill
bdff84c605 Use MacroSegmentSelection for index selection in "Variable" action 2023-07-27 21:06:54 +02:00
WarmUpTill
08e430396a Add option to check action enable state to "Macro" condition 2023-07-27 21:06:54 +02:00
WarmUpTill
df7fc7ec01 Add option to enable / disable actions of macros via "Macro" action 2023-07-27 21:06:54 +02:00
WarmUpTill
9eef581161 Add MacroSegmentSelection
Utility class to enable selection of index of a macro segments.
Add description of selected segment.
Highlights segment if selected macro is current macro.
2023-07-27 21:06:54 +02:00
WarmUpTill
52811e44f4 Add option to disable variable selection 2023-07-27 21:06:54 +02:00
WarmUpTill
7b1c56877e Add GetMacroSegmentDescription() and IsValidMacroSegmentIndex() 2023-07-27 21:06:54 +02:00
WarmUpTill
78d73af589 Adjust to FilterComboBox 2023-07-27 21:06:54 +02:00
WarmUpTill
d9c1ef4c22 Only emit signals if valid entry was found 2023-07-27 21:06:54 +02:00
WarmUpTill
93f96ee660 Add support for custom URIs 2023-07-27 19:53:25 +02:00
WarmUpTill
d25a8d4efb Remove unnecessary include 2023-07-27 19:53:25 +02:00
WarmUpTill
1f22278496 Move SetGridLayoutRowVisible() to utility 2023-07-27 19:53:25 +02:00
WarmUpTill
70b705e0fd Add variable support to timer condition 2023-07-26 13:34:47 +02:00
WarmUpTill
9e1dfdc3f0 Enable use of duration modifiers for hotkey condition 2023-07-26 08:00:16 +02:00
WarmUpTill
47d6d4ac06 Handle potential horizontal scrollbar when resizing StringListEdit 2023-07-23 00:29:14 +02:00
WarmUpTill
fe3586b6f4 Set maximum header size to 4096 2023-07-23 00:29:14 +02:00
WarmUpTill
8c0ba112e2 Add SetMaxStringSize()
A fixed size of 170 chars caused issues with the http action
2023-07-23 00:29:14 +02:00
WarmUpTill
a17d8f7e09 Add support for sending generic OBS websocket messages
This should allow to send OBS websocket vendor requests to other plugins
which offer an API via this method (e.g. vertical OBS)
2023-07-15 14:48:45 +02:00
WarmUpTill
371b4ae05d Add option to disable individual actions of macros 2023-07-15 11:05:19 +02:00
WarmUpTill
1d7ce510f7 Add SwitchButton
Simple switch toogle button widget based on
https://github.com/KDAB/kdabtv/blob/master/Styling-Qt-Widgets/toggleswitch.h
2023-07-15 11:05:19 +02:00
WarmUpTill
d759ded64d Use FilterComboBox instead of regular QComboBox
This required the following adjustments:

Instead of having a dedicated entry indicating the empty selection the
setPlaceholderText() mechanism is used.
Thus the locations where the 1st entry was assumed to be the empty
selection would have to be adjusted.

Additional checks for the empty string / index -1 have been added.

FindIdxInRagne() was adjusted to return -1 instead of 0 in case the
given string was not found.

Switched to index based singal instead of text based signal to be
notified about selection changes.
2023-07-15 11:05:19 +02:00
WarmUpTill
0b2e1b88cc Add FilterComboBox
This helper class is based on QComboBox, which has filtering of items
enabled by default.
It is intended to be used in places where QComboBoxes have a lot of
entries.
For example, the condition, action, or macro selection widgets.
2023-07-15 11:05:19 +02:00
WarmUpTill
72a11eedfc Make selection entry optional for transition list
Needed for FilterComboBox
2023-07-15 11:05:19 +02:00
WarmUpTill
1f02226620 Add option to set flags in FindIdxInRagne() 2023-07-15 11:05:19 +02:00
WarmUpTill
ad8c29997c Fix group creation starting at incorrect index 2023-07-15 04:22:08 +02:00
WarmUpTill
2c7c40c3f0 Fix reordering issues in macro tree 2023-07-15 04:22:08 +02:00
WarmUpTill
c9c0e4db2e Improve OCR option of video condition
* Improve preprocessing of image by separating text color from the rest
  of the image properly
* Add option to choose how similar the matched color can be to other
  colors for it to still be counted as a match
* Show the prepreprocessed image in the "show match" preview dialog
2023-07-09 17:58:38 +02:00
WarmUpTill
dd880b13c0 Cleanup invertPatternMatchResult() 2023-07-09 17:58:38 +02:00
WarmUpTill
76c759c8f4 Display different message if whole image matches pattern
The "pattern is highlighted in red" message does not make sense in this
case as there is no room to display the red border around the match.
2023-07-09 17:58:38 +02:00
WarmUpTill
284c8020b2 Add OCL support to improve performance 2023-07-09 17:58:38 +02:00
WarmUpTill
f506600b8c Enable use of other OCR language models 2023-07-09 17:58:38 +02:00
WarmUpTill
339418b5f3 Add color matching 2023-07-09 17:58:38 +02:00
WarmUpTill
2eca2cc2e9 Cleanup video condition
* Style changes
* Separate functionality into different widgets
* Fix typos
2023-07-09 17:58:38 +02:00
WarmUpTill
4315d309f2 Add option to show description as tooltip 2023-07-09 17:58:38 +02:00
WarmUpTill
8d18bb363a Add options to disable plugins 2023-07-07 21:35:51 +02:00
WarmUpTill
300ad15ad0 Reduce size of audio action widget
Only show audio fade options when they are needed.
2023-07-07 21:35:51 +02:00
WarmUpTill
91f93169eb Add option to set deinterlace mode and deinterlace field order 2023-07-07 19:19:40 +02:00
WarmUpTill
5d95069291 Cleanup
* Move run count increment back to PerformActions()
 * Rename variable
2023-07-06 19:59:46 +02:00
WarmUpTill
e5bb9162ef Prevent flicker when creating MacroConditionMacroEdit
Seems to be caused by the fact that some widgets were not part of any
layout while setLayout() was already called
2023-07-06 19:59:46 +02:00
WarmUpTill
6869cc8a01 Add option to highlight macro dock if conditions of macro are true 2023-07-06 19:59:46 +02:00
WarmUpTill
55c7ac8a32 Rework WasExecutedRecenty()
Added ExecutedSince() instead as WasExecutedRecenty() did not support
checking if a macro was executed recently when using it multiple times
in quick succession.

This could be the case if the MacroTree and a MacroDock would both
attempt to use this function at the same time.
2023-07-06 19:59:46 +02:00
WarmUpTill
101a85b063 Enable use of variables in macro dock widgets 2023-07-06 19:59:46 +02:00
WarmUpTill
e7c6afbc6a Fix potential crash when resolving variables during shutdown 2023-07-06 19:59:46 +02:00
WarmUpTill
18e19fb6c8 Add support for adding status labels to macro docks 2023-07-06 19:59:46 +02:00
WarmUpTill
a7ccfc3282 Add action to toggle lock of scene items 2023-07-05 00:53:03 +02:00
Joao Eriberto Mota Filho
85eb2a4235 Fix spelling errors 2023-07-01 20:51:31 +02:00
WarmUpTill
3e3805b542 Ignore libremidi warnings 2023-06-17 13:57:35 +02:00
WarmUpTill
c59acd836a Reduce size of audio action widget
Only show audio fade options when they are needed.
2023-06-17 13:57:35 +02:00
WarmUpTill
1e81181312 Add option to toggle filter 2023-06-09 20:28:01 +02:00
WarmUpTill
8a796efdb3 Allow specifying custom prompts for variable input 2023-06-07 12:36:39 +02:00
WarmUpTill
1a07a93552 Add spacer if not modifying strValue and remove it otherwise 2023-06-07 12:36:39 +02:00
WarmUpTill
bd74629420 Add helpers to add and remove trailing spacer items in QBoxLayouts 2023-06-07 12:36:39 +02:00
WarmUpTill
dabb293cc0 Mark locale maps as const
There is no reason to have these not be const as new locale entries will
not be added at runtime.
2023-06-03 22:38:42 +02:00
WarmUpTill
05fa3af2ac Fix crash while waiting for transition and no transition is selected 2023-05-31 13:39:47 +02:00
WarmUpTill
c52166bfec Add option to trigger OBS hotkeys directly
Main use case would be to interact with other plugins which offer
hotkeys.
The benefit of this method is that it does not require a key to be bound
to the particular hotkey to trigger the functionality.
2023-05-30 13:14:58 +02:00
WarmUpTill
6d3964fa5d Fix non-modal-dialog answer being ignored 2023-05-30 13:14:58 +02:00
WarmUpTill
65545d85ba Let OBS handle dock restoration on first startup and cleanup on shutdown
The "manual" attempt at restoring the docks should only be performed on
scene collection change as OBS will already take care of this on
starutp.

Do not delete the macro dock widgets on shutdown so OBS is able to save
their location and size properly.
2023-05-30 12:58:23 +02:00
WarmUpTill
dea4ff47cd Add option to prompt user for value to be assigned to variable 2023-05-28 19:59:12 +02:00
WarmUpTill
258a5f6ab7 Move NonModalMessageDialog to separate file 2023-05-28 19:59:12 +02:00
WarmUpTill
2048ca2816 Add scenes to possible selection of "Source" condition type
It might be useful to check if a given scene is visible outside of it
being the currently active scene, as scenes can also be used as sources
within other scenes.
2023-05-26 21:45:45 +02:00
WarmUpTill
eb9e2e8062 Const correctness 2023-05-26 21:45:45 +02:00
WarmUpTill
3229bf0150 Clean up source condition and action
* Add hints directing to the scene item visibility action / condition as
  they frequently get mixed up
* Clean up layout of the source condition (removed spaces in locale as
  this unnecessary spacing in the layout when the settings check was not
  selected
2023-05-26 21:45:45 +02:00
WarmUpTill
dfa12f9807 Add support for configuring additional streaming options
* Set server
* Set stream key
* Set username
* Set password
2023-05-26 20:42:16 +02:00
WarmUpTill
e0917a35fd Fix function priorities not being saved 2023-05-20 06:18:32 -07:00
WarmUpTill
78402f6546 Fix plugin state and timer action not being translated 2023-05-17 13:47:45 -07:00
WarmUpTill
a1b5fbb1fe Add OSC action 2023-05-17 06:31:43 -07:00
WarmUpTill
b71f633fac Add support for websocket messages not following the OBS WS protocol 2023-05-17 04:39:04 -07:00
WarmUpTill
dbb674aa8e Add "Display" condition
Allows you to check for the amount and name of the connected displays
2023-05-17 04:38:44 -07:00
WarmUpTill
018daf7f09 Move GetMonitorNames() to utility 2023-05-17 04:38:44 -07:00
WarmUpTill
a07a84a8b1 Add option to rename buttons of macro dock 2023-05-17 02:20:35 -07:00
WarmUpTill
0f36f34a4f Cleanup
* Const correctness
* Group functionality
* Move Actions() and Conditions() implementation
2023-05-17 02:20:35 -07:00
WarmUpTill
cf2cebd0fc Ignore "StatusIndicator" window on MacOS
It interferes with the focus window checks
2023-05-14 04:44:49 -07:00
WarmUpTill
90dd59abe6 Rework window condition
Layout changes to make controlling the checkboxes less confusing.

Added variable support for the winddow title selection.

Previously window title matching was mandatory, which is now optional.
This would make it difficult to set up condition which are independent
of the window title. For example, a condition wich triggers on focus
window change.

Add support for configuring the regex options used for the window title
options.

Also adds the option to check the content displayed in a given window
using the Windows API as an alternative to the OCR of the video
condition.
2023-05-14 04:44:49 -07:00
WarmUpTill
5332ed6bef Regex config improvements
* Use icon instead of checkbox
* Enable use of custom save name
* Allow access to functions modifying the enable state
2023-05-14 04:44:49 -07:00
WarmUpTill
d45d4ded99 Insert duplicated macro after original macro 2023-05-12 16:26:43 -07:00
WarmUpTill
25b5590d2c Add option to automatically close OBS 2023-05-10 12:44:01 -07:00
WarmUpTill
d2b2ced5bf Add support for non modal dialogs for DisplayMessage() helper 2023-05-10 12:44:01 -07:00
Erik van der Veen
c551953283 Fix crash brightness
This will prevent a crash when the brightness is calculated and the source has no output (yet).
2023-05-08 11:52:56 -07:00
WarmUpTill
5ae1f38ea8 Enable using received MIDI messages in variables 2023-05-07 11:33:52 -07:00
WarmUpTill
372f12de95 Fix libremidi build files being picked up by the Windows installer 2023-05-07 11:33:52 -07:00
WarmUpTill
9cfa88dd8c Add support setting title and icon of system tray message 2023-05-06 11:53:45 -07:00
WarmUpTill
7b355ebc49 Add type alias for NumberVariable 2023-05-02 15:17:49 -07:00
WarmUpTill
43a56c8ec8 Resolve variables even when calling const functions
This is done to ensure that logs printed before actions are executed
contain the correct parameter values instead of potentially outdated
ones.
2023-05-02 15:17:49 -07:00