533 Commits

Author SHA1 Message Date
Shaolin
b4d2d5d9c4 UI: Add proper source markers to multiview
This ensures the pixel correctness of the sources selection highlight
boxes when on a fullscreen projector.

When on a windowed projector due to the nature of int<->float
conversions and also due to the limited space, some source boxes
might be like 'off-by-one' and barely noticeable.
2018-05-20 23:20:52 -03:00
Shaolin
98839524f7 UI: Simplify multiview draw code 2018-05-20 23:20:52 -03:00
Shaolin
1b357d3b12 UI: Change multiview non-studio selection color
When not in studio mode the preview and program sources are the same
but the checks will be made against GetCurrentSceneSource which were
resulting in the multiview source highlight to give the previewColor
where in this case we want the programColor.
2018-05-20 23:20:52 -03:00
Shaolin
3d189484f9 UI: Remove the outerbox markers in multiview
The same effect is achieved by painting the whole canvas with
the outerColor
2018-05-20 23:20:52 -03:00
Shaolin
40f8d4cfb2 UI: Make the multiview lines use the same color 2018-05-20 23:20:52 -03:00
Shaolin
4ed9d02052 UI: Make the sources border color a little darker 2018-05-20 23:20:52 -03:00
Shaolin
32ee7ee4e2 UI: Clean up Projector Creation
The Init function were only called on projector creation so this isn't
needed to be on a separate function. Its clearer to read the code.
2018-05-20 23:20:52 -03:00
Shaolin
22a1887340 UI: Clean up projector's render regions creation 2018-05-20 23:20:52 -03:00
Shaolin
fc3e85a598 UI: Make multiview colors easier to manage 2018-05-20 23:20:52 -03:00
Shaolin
a142261edd UI: Clarify multiview layout names 2018-05-20 23:20:52 -03:00
Shaolin
b8a901c870 UI: Convert multiview layout string profiles to int
This commit series changes the ini user configuration multiview layout
so that string values were converted to int. In order to prevent past
user saves to break we verify if the ini still have string values and
convert that to int on obs init.

This will make the code easier to maintain in clearer to read the
multiview layout settings, also, makes the addition of new layouts
easier.
2018-05-20 23:20:52 -03:00
Shaolin
b0415621d6 UI: Use enum for multiview layout 2018-05-20 23:20:52 -03:00
Shaolin
c7c328dc83 UI: Add Vertical Mixer option 2018-05-19 00:17:58 -03:00
Shaolin
288339ceda UI: Simplify Volume Control draw logic 2018-05-19 00:12:15 -03:00
Shaolin
5aab9bfb3e UI: Avoid copies in Volume Control 2018-05-19 00:12:15 -03:00
Shaolin
04fa4c49d9 UI: Clean up includes and code-style 2018-05-19 00:12:15 -03:00
Richard Stanway
b0bb067ba8
Use obsproject.com for log file uploads 2018-05-18 15:33:53 +02:00
Jim
f1c1abce55
Merge pull request #1297 from Palakis/preview-scene-event-fix
UI: Fix OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED
2018-05-15 00:14:34 -07:00
jp9000
f81d106b2a UI: Fix OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED
OBS_FRONTEND_EVENT_PREVIEW_SCENE_CHANGED is supposed to be called
whenever the user changes the current preview scene -- it was almost
never being triggered.
2018-05-15 00:49:12 +02:00
jp9000
46f08af5e5 UI: Remove ENABLE_WIN_UPDATE cmake variable 2018-05-12 17:11:02 -07:00
jp9000
d0cc0cc60e UI: Always enable auto-updater for windows
Makes it so the auto-updater does not have to rely on a cmake variable
being set.  Fixes a bug where deployment could accidentally be built
without the auto-updater being enabled.
2018-05-12 17:02:34 -07:00
Alex Anderson
0accb9f865 UI: Fix memory leak when drag/dropping 2018-05-09 12:49:21 -07:00
jp9000
051c58eeb7 UI: Add opt. to enable/disable in-focus hotkey blocking
Adds an option to enable/disable blocking hotkeys when the window is in
focus which is normally used in order to prevent hotkey/shortcut
conflicts.  This does not apply to the settings window; the hotkey
behavior is unchanged with the settings window (in order to prevent
hotkeys from being used while setting hotkeys for example).

Closes obsproject/obs-studio#1267
2018-05-06 17:14:04 -07:00
Ilya Melamed
e265fc92ed UI: Block when calling obs_frontend_set_current_scene
Uses WaitConnection() when calling obs_frontend_set_current_scene to
ensure that the calling thread and the UI thread are synchronized when
setting the current scene via this function.

Closes obsproject/obs-studio#1234
2018-05-04 15:45:27 -07:00
Ilya Melamed
c768f703ad UI: Add obs_frontend_add_scene_collection API call
Allows the ability to add a new scene collection via the frontend API.
Blocks until the scene collection has been successfully added to ensure
synchronization between the calling thread and the UI thread.

(Jim: Added detailed description to commit message)

Closes obsproject/obs-studio#1232
2018-05-04 15:40:53 -07:00
Ilya Melamed
3eec139b2e UI: Use WaitConnection() when adding scenes
Instead of queuing AddScene to add the new scene to the list box,
ensures that the UI has added the new scene to the list box when the new
scene is added.  This ensures synchronization between the calling thread
and the UI thread in this particular case.

(Jim: Added detailed commit message description)

Closes obsproject/obs-studio#1226
2018-05-04 15:38:59 -07:00
jp9000
e7f2cc384d UI: Add WaitConnection() helper func
A helper function used with QMetaObject::invokeMethod which allows the
ability to use Qt::DirectConnection if on the Qt UI thread, or
Qt::BlockingQueuedConnection if on another thread to ensure that
regardless of what thread the invokeMethod is called from, that it will
wait until the invoked method has been called.
2018-05-04 15:30:40 -07:00
Ilya Melamed
2d9691fc23 UI: Use "source_create" to add scenes to listbox
Instead of manually having to call AddScene each time a scene needs to
be added, use the "source_create" global OBS signal to detect when a
scene has been created, and add the scene to the list automatically.
Allows the ability to add scenes to the main user interface via libobs
API.

Closes obsproject/obs-studio#1226
2018-05-04 11:47:54 -07:00
jp9000
72636ca976 UI: Don't defer load on non-macOS systems
Deferred load is used specifically for macOS systems to ensure that Qt
and CEF do not load at the same time.  This causes a slight bit of a
delay in loading the scene after the UI has loaded.  This is not
necessary for other operating systems, so revert to the older load code
in the case of different systems.
2018-05-01 12:01:11 -07:00
jp9000
e9d22bdbd6 UI: Also defer first scene collection load
Fixes a bug where it would try to save the scene before the scene had
been loaded on macOS.
2018-05-01 12:00:17 -07:00
Tjienta Vara
b0f94afaf2 libobs, UI: Add true peak measurements
Add a new algorithm to calculate the true-peak. It implements the
Whittaker- Shannon interpolation from four samples to create 4
intermediate samples (5 x oversampling) inbetween the middle two
samples.

With 4 samples and 4 intermediate samples the algorithm can be
implemented as a 4x4 vector-matrix cross product, which is ideal for
SSE.

I've also replaced the sample-peak algorithm using SSE as well to
improve performance.

Closes obsproject/obs-studio#1189
2018-04-30 03:53:26 -07:00
SuslikV
6e189c156b
UI: Fix no_space file naming for replays
Replays was ignoring user's settings when generating replays filenames.
2018-04-26 17:54:47 +02:00
Jim
76a5cc12a6
Merge pull request #1274 from computerquip-streamlabs/frontend-crash-handling
Separate crash handler from libobs startup
2018-04-25 14:02:49 -07:00
Zachary Lund
308b0add47 UI: Explicitly initialize the crash handler 2018-04-25 12:56:23 -07:00
Cephas Reis
ef41dc53e8 UI: Change remux dialog to be non-modal
Closes obsproject/obs-studio#1266
2018-04-25 06:30:00 -07:00
Jim
9a1c27accb
Merge pull request #1262 from Andersama/patch-12
UI: Disable paste filters unless a source is selected
2018-04-22 23:59:12 -07:00
Alex Anderson
22520c222c UI: Disable paste filters unless a source is selected
Fixes the paste filters right click option to behave like copy.

See: https://obsproject.com/mantis/view.php?id=1220
and #1261
2018-04-22 12:39:31 -07:00
Shaolin
f61090e1ea UI: Set OBS icon to projector and stats window
Closes obsproject/obs-studio#1259
2018-04-22 04:56:45 -07:00
Jim
0acf7e1a09
Merge pull request #1258 from VodBox/monitor-fix
UI: Change monitoring device on profile change
2018-04-22 04:53:53 -07:00
Igor Bochkariov
61839d8c94 UI: Sort audio controls by source name
Audio controls in OBS Mixer and Advanced Audio Properties window are not
sorted at all.  Every time OBS is restarted they get shuffled (Jim note:
This is due to json object hashing).  The order of these controls is
additionally not consistent between the mixer and the advanced audio
properties window.

Closes obsproject/obs-studio#1242
2018-04-20 19:49:26 -07:00
Jim
b4d6f1c996
Merge pull request #1238 from Chiitoo/qt-5.11
[Qt 5.11] Include 'QAction' in 'scripts.cpp' to fix a build failure.
2018-04-20 03:36:11 -07:00
Shaolin
234ed9512d UI: Clean up delete Source/Scene shortcut
The "Delete" shortcut is already set in the UI/forms so the old code
would only change shortcuts in macOS.

Closes obsproject/obs-studio#1212
2018-04-19 21:54:01 -07:00
Murnux
273f5e2bfe UI: Don't close windows for "Always on Top" (win32)
On windows, the "Always on top" state can safely be used without closing
dialogs.

Closes obsproject/obs-studio#1207
2018-04-19 20:47:30 -07:00
jp9000
0d4677f3bc UI: Hold the clip flash for at least one second
Holds the clipping flash for one second to better indicate that clipping
is occurring.

Closes obsproject/obs-studio#1201
2018-04-18 23:49:40 -07:00
Alex Anderson
e92b2560b6 UI: Add Selected and Hidden Array Values
Add Selected and Hidden Array Values

Let developers get and set whether items in an editable list are hidden
or selected. May be useful in when editable lists are modified and
handled in a callback. Especially when edit button callbacks are used.

Closes obsproject/obs-studio#1200
2018-04-18 21:06:16 -07:00
jp9000
4fcc2cccfe UI: Move OpenSavedProjecters call to OBSBasic::Load()
Due to the commit 34c14829b6176248970bb, source loading is now deferred
to after OBSInit(), which would cause saved scene/source projectors to
no longer load on startup.  This fixes that issue by moving the
OpenSavedProjectors call to OBSBasic::Load().
2018-04-18 19:34:18 -07:00
Jim
7481f5b389
Merge pull request #1195 from admshao/fix-save-projectors-on-exit
Save Windowed Projectors on exit
2018-04-18 19:33:49 -07:00
Shaolin
7fc6ea6ccc UI: Do not generate "already active" logs
When an user launches a multiple instance of obs and don't use the -m
flag, wait until the confirmation to launch to create a new log file.
This avoids a short log with no information when using the Help ->
Update Last Log.

Closes obsproject/obs-studio#1164
2018-04-16 21:31:32 -07:00
jp9000
34c14829b6 UI: Defer startup OBSBasic::Load (macOS CEF workaround)
Adds an alternative means of isolating the CEF initialization process
from Qt's initialization process.  This is an unpleasant hack, but is
far more preferable than isolating the entire browser plugin to a
separate process and overly complexifying the browser plugin to the
point to where no one wants to touch the plugin or contribute to it.
2018-04-12 13:42:15 -07:00
VodBox
e122a07cdd UI: Change monitoring device on profile change 2018-04-11 23:59:34 +12:00