Commit Graph

1501 Commits (83913e1d31e76e09ece69b1333028e5d06c4969a)

Author SHA1 Message Date
Colin Edwards 3f5c28d631 UI: Style dock widgets in dark and rachni themes
Closes jp9000/obs-studio#1141
2018-01-09 18:36:31 -08:00
Shaolin 9872e4d525 UI: Add the "-60" volume control marker 2018-01-09 18:55:41 -02:00
jp9000 e038bd8e55 UI: Change default theme to dark for new users 2018-01-08 17:40:24 -08:00
jp9000 9b9d57a7ee frontend-plugins: Add "Description" string 2018-01-07 20:07:42 -08:00
jp9000 ba2c54f1fd frontend-plugins: Remove unused strings 2018-01-07 20:07:42 -08:00
Jim e7aab8b4b8
Merge pull request #1128 from takev/volume-meters
UI: Rework volume-meters, adding more information
2018-01-07 13:57:21 -08:00
Jim 932ff14cd4
Merge pull request #1109 from MattMcNam/fix-double-confirm-dialog
ui: Fix unsaved changes dialog showing twice
2018-01-06 09:42:12 -08:00
Jim 09049bdbc0
Merge pull request #1118 from admshao/multiview-click-to-change
UI: Add Click capabilities and Multiple Layouts to Multiview
2018-01-05 22:52:29 -08:00
Matt Morrissette 5e741b8a5b UI: Add frontend API funcs for enabling/disable preview
Closes jp9000/obs-studio#1106
2018-01-05 14:57:53 -08:00
Jim 619618ac8d
Merge pull request #1129 from Fenrirthviti/help-menu
UI: Add help portal link to help menu
2018-01-05 14:08:35 -08:00
Shaolin abc26b87fe UI: Add Multiview Layout Options 2018-01-05 19:26:30 -02:00
Shaolin 864caee16c UI: Add Single/Double click options to Multiview
The click to select scenes follows the same rules
as the main UI. The double click respects the option
under Settings -> General -> Studio -> Transition
to scene when Double Clicked.
2018-01-05 19:25:08 -02:00
Joel Bethke 2959b22bfb UI: Add help portal link to help menu 2018-01-05 15:20:39 -06:00
pkviet 67e48ecc2c libobs/media-io: Replace quad with 4.0
(also obs, deps/media-playback, libobs/audio-monitoring, decklink,
linux-alsa, linux-pulseaudio, mac-capture, obs-ffmpeg, win-dshow,
win-wasapi)

Default channel layout for 4 channels is 4.0 in FFmpeg.
Replacing quad with 4.0 will improve compatibility since FFmpeg has
better support of its default channel layouts.
2018-01-05 09:48:52 -08:00
Tjienta Vara 50ce228455 UI: Rework volume-meters, adding more information
The following features have been added to the audio-meters:
 * Stereo PPM-level meter, with 40 dB/1.7s decay rate.
 * Stereo VU-level meter, with 300 ms integration time.
 * Stereo Peak-hold meter, with 20 second sustain.
 * Input peak level color-squares in front of every meter.
 * Minor-ticks for each dB.
 * Major-ticks for every 5 dB.
 * Meter is divided in sections at -20 dB and -9 dB.

The ballistic parameters chosen here where taken from:
 * https://en.wikipedia.org/wiki/Peak_programme_meter (SMPTE RP.0155)
 * https://en.wikipedia.org/wiki/VU_meter

In the rework I have removed any ballistic calculations from
libobs/obs-audio-controls.c making the calculations here a lot more
simple doing only MAX and RMS calculations for only the samples in
the current update. The actual ballistics are now done by just
the UI/volume-control.cpp because ballistics need to be updated
based on the repaint-rate of the user-interface.

The dB to pixel conversion has been moved from
libobs/obs-audio-controls.c to UI/volume-control.cpp as well to reduce
coupling between these two objects, especially when implementing the
major- and minor-ticks and the sections.

All colors and ballistic parameters are adjustable via QT style sheets.
There are slight differences in colors for each of the themes.
2018-01-05 11:01:25 +01:00
SuslikV f81adbd856 libobs: Fix bad source release placement
(This commit also modifies the UI)

The source release was being done in the wrong file.
2018-01-04 20:36:11 -08:00
Jim e1133f0982
Merge pull request #1121 from Fenrirthviti/theme-fixes
UI: Fix minor Rachni theme bugs
2018-01-04 19:35:51 -08:00
jp9000 cd1399f01a UI: Fix possible source reference leakage
This would fail to release the reference if the 'direct' parameter was
used.

Closes jp9000/obs-studio#1116
2018-01-04 18:43:12 -08:00
Colin Edwards 5d17e6f6ea deps/scripting: Add python rpaths to the obs binary on OSX
Closes jp9000/obs-studio#1127
2018-01-04 17:04:08 -08:00
jp9000 0b01e4c7a1 frontend-tools: Add scripting tool
Adds a scripting tool that gives the users the ability to load scripts
and change their settings.
2018-01-04 11:37:43 -08:00
jp9000 66f993d214 libobs: Exclude certain declarations from SWIG processing
Prevents SWIG from being able to process certain declarations that would
cause binding generation errors/warnings.
2018-01-03 17:04:04 -08:00
jp9000 2de3973fae UI: Allow temporarily disabling filter/source types
Implements the OBS_SOURCE_CAP_DISABLE capability flag in to the user
interface.
2018-01-03 17:04:04 -08:00
jp9000 da0e3ef0ee UI: Do not show deprecated filters 2018-01-03 17:04:03 -08:00
jp9000 6cd79f8105 UI: Add scene collection cleanup event to frontend API
This event is called when all scene data has been unloaded.
2018-01-03 17:04:03 -08:00
jp9000 bf31e1c233 UI/obs-frontend-api: Move function declarations 2018-01-03 17:04:03 -08:00
jp9000 518290c404 UI: Trigger scene change event on scene collection load
When the program first starts up, or rather when a scene collection is
loaded, the frontend API OBS_FRONTEND_EVENT_SCENE_CHANGED event would
not get triggered.
2018-01-03 17:04:03 -08:00
jp9000 4fd43f55fb UI: Add refresh/reload button icons 2018-01-03 17:04:03 -08:00
jp9000 03b8fd0186 UI: Call frontend callbacks in reverse order
Allows safely removing callbacks from within the callbacks themselves.
2018-01-03 17:04:03 -08:00
jp9000 5645c02c8f UI: Add preload callbacks to frontend API
Allows loading data before actually loading any scene data.
2018-01-03 17:04:03 -08:00
jp9000 260fb571b8 UI: Set ENABLE_UI and DISABLE_UI as root CMake variables
Allows for projects other than UI to be able to reference these CMake
variables.
2018-01-03 17:04:03 -08:00
jp9000 7f6cf97bd7 libobs: Add obs_render_main_texture
(Note: This commit also modifies UI and test)

This makes it so that main preview panes are rendered with the main
output texture rather than re-rendering the main view.  The view will
render all objects again, whereas the output texture will be a single
texture render of the same exact thing.

Also fixes some abnormal artifacting when scaling the main preview pane.
2018-01-01 18:52:47 -08:00
Joel Bethke c3badc4a54 UI: Fix minor Rachni theme bugs
The tab bars in the Rachni theme had an issue related to an attempted
property of qproperty-drawBase: 0 in the .qss file. This, in theory,
should have worked and removed the base of the tab bar, but there is a
bug that prevents this from consistently applying, as detailed here:
https://bugreports.qt.io/browse/QTBUG-2982

This fix removes that property, and adjusts the styling of the tabs
themselves for a more consistent experience. Tabs should no longer be
cut off or displayed improperly.

In addition, this also corrects an issue with the scene/source rename
QLineEdit field displaying improperly.
2017-12-23 21:31:04 -06:00
Matthew McNamara d8743a2872 ui: Fix unsaved changes dialog showing twice
When clicking the close button with unsaved changes in a source properties
dialog closeEvent and reject are called, which both call ConfirmQuit.
This fixes it by setting the acceptClicked flag correctly in ConfirmQuit
2017-12-08 01:32:40 +01:00
jp9000 0d6204c8af Fix a number of MSVC warnings
Fixes a number of warnings with all modules
2017-12-05 13:53:44 -08:00
Ryan Foster 12abbd9205 cmake: Correct CMake checks for LINUX
Some CMake checks were recently switched from UNIX to LINUX to get them
to not apply to macOS/OSX. Since LINUX doesn't seem to be defined,
switch these checks to UNIX AND NOT APPLE.
2017-12-03 19:10:34 -05:00
Colin Edwards fcea48490f cmake: Do not require X11 on OSX 2017-12-02 22:40:10 -06:00
jp9000 570cd49b6d UI: Duplicate when double-click switching is used
The studio mode double-click scene switching option disables scene
duplication, which bypasses the user's settings for scene switching in
studio mode.  This fixes it so that scenes are properly duplicated
according to the user's settings.
2017-12-02 16:36:01 -08:00
jp9000 8a38d8e60e UI: Move multiview options to view menu
Moves the multiview (fullscreen/window) options to the view menu to
reduce context menu clutter, and allow using it even when not in studio
mode.

Also adds missing translation strings.
2017-12-02 16:12:03 -08:00
jp9000 3770a24e61 UI: Fix draw issues with multiview projector
Scissor rects would affect the internal effect rendering of sources, so
scissor rectangles aren't the ideal method of restricting draw space.
Instead, use viewports and projection matrices, which are automatically
accounted for by internal source handling.
2017-12-02 15:36:32 -08:00
Shaolin 721cb3dea5 UI: Add Multiview projector
Jim note:

- Refactored code significantly
- Added a context menu option to exclude specific scenes from projectors
- Made it so multiview projectors update when scenes are
  added/removed/renamed
- Increased text quality
- Removed the color sources and replaced them with simple solid
  rectangles
- Increased the border size of "program" and "preview" scenes in the
  lower scene list

Closes jp9000/obs-studio#1068
2017-12-01 12:14:02 -08:00
jp9000 7d2cda57bb UI: Fix issue where studio preview scene would stick 2017-11-30 11:42:42 -08:00
jp9000 42323ea31b UI: Fix scene override when switching off studio mode
The scene override would trigger, but the scene override variable would
stay set, causing the next transition to be the same one that was
previously used for overriding.
2017-11-30 09:51:24 -08:00
jp9000 ed7ae5839b UI: Don't override transition if quick transition
Fixes an issue where quick transitions would not function if the scene
has a transition override set for it.
2017-11-30 09:48:59 -08:00
jp9000 6461b63623 UI: Fix preview/program projectors being swapped
If a preview projector was created in normal mode, it would become a
studio projector in studio mode.  The window title of the window
projector would reflect that it was in fact a preview projector and not
a program projector.
2017-11-30 06:17:07 -08:00
cg2121 60e1d7e90b UI: Implement per-scene transition overriding
Allows the ability to override what specific transition a scene may use
when transitioning to it.

(Original proposal by cg2121, reworked by Jim)

Closes jp9000/obs-studio#1052
2017-11-30 05:10:25 -08:00
jp9000 b5c036974f UI: Fix studio program projectors
The studio mode program view projectors used the wrong saving mechanism.
The save data was copied from the source projectors, which were
dependent on string values, where as it should have been using a boolean
true/false value for specific monitors.
2017-11-29 23:11:38 -08:00
Ryan Foster f140104da8 UI: Add Studio Mode layout option for portrait mode displays
This commit adds a checkbox to general setting to allow users to enable
a vertically oriented layout for studio mode.

This commit addresses mantis issue 827:
https://obsproject.com/mantis/view.php?id=827

Closes jp9000/obs-studio#1072
2017-11-28 22:24:57 -08:00
jp9000 68e67366d2 UI: Fix bug with studio mode double-click switching
Fixes a bug where the OBSBasic::programScene variable would not be set
for the new program scene when switching scenes via double-clicking on
them.
2017-11-28 03:38:30 -08:00
Ryan Foster 9fce162137 UI: Add Studio Preview Projector
This commit allows a user to create projectors for the preview scene
instead of the program/live scene.

Close jp9000/obs-studio#1071
2017-11-27 00:28:03 -08:00
cg2121 3a43a047d4 UI: Add transition on double-click studio mode option
This adds the ability to switch to a scene by double-clicking it when in
studio mode.

(Edit by Jim: In case this change is undesired by the user, this has
been changed to be an option in general settings; disabled by default)

Closes jp9000/obs-studio#1029
2017-11-26 19:05:50 -08:00
pkviet bbac3280c1 libobs: Add surround sound audio support
(This commit also modifies the following modules: UI,
deps/media-playback, coreaudio-encoder, decklink, linux-alsa,
linux-pulseaudio, mac-capture, obs-ffmpeg, obs-filters, obs-libfdk,
obs-outputs, win-dshow, and win-wasapi)

Adds surround sound audio support to the core, core plugins, and user
interface.

Compatible streaming services: Twitch, FB 360 live
Compatible protocols: rtmp / mpeg-ts tcp udp
Compatible file formats: mkv mp4 ts  (others untested)
Compatible codecs: ffmpeg aac, fdk_aac, CoreAudio aac,
		   opus, vorbis, pcm (others untested).
Tested streaming servers: wowza, nginx
	 HLS, mpeg-dash : surround passthrough
Html5 players tested with live surround:
	 videojs, mediaelement, viblast (hls+dash), hls.js
Decklink: on win32, swap channels order for 5.1 7.1
         (due to different channel mapping on wav, mpeg, ffmpeg)
Audio filters: surround working.
Monitoring: surround working (win macOs linux (pulse-audio)).
VST:	 stereo plugins keep in general only the first two channels.
	 surround plugins should work (e.g. mcfx does).
OS: win, macOs, linux (alsa, pulse-audio).
Misc: larger audio bitrates unlocked to accommodate more channels
NB: mf-aac only supports mono and stereo + 5.1 on win 10
         (not implemented due to lack of usefulness)

Closes jp9000/obs-studio#968
2017-11-26 03:41:53 -08:00
jp9000 573fbbfead UI: Fix a memory leak when renaming mixer sources 2017-11-26 02:30:26 -08:00
Jim 1866778f61
Merge pull request #1074 from admshao/fix-x11-fullscreen-keypress
UI: Allow keyboard events on X11 fullscreen projector
2017-11-25 18:29:16 -08:00
cg2121 e86754c2a0 UI: Add ability to rename audio sources from the mixer
This adds the ability for users to change the names of audio sources
from the mixer including desktop and mic/aux sources.

Closes jp9000/obs-studio#1055
2017-11-25 00:59:01 -08:00
Jim a63028dd9c
Merge pull request #1051 from RytoEX/add-frontend-replay-buffer-save
UI: Add Frontend API function to save replay buffer
2017-11-24 22:41:54 -08:00
Jim 5d5da2a380
Merge pull request #1050 from RytoEX/disable-copy-with-no-source
UI: Disable source copy if no sources are selected
2017-11-24 22:40:56 -08:00
nleseul d22a75401d UI: Make streaming/recording buttons checkable
This makes it so the buttons appear "pressed" while streaming/recording
to more visibly help indicate that they are currently active.

Closes jp9000/obs-studio#1039
2017-11-23 00:54:06 -08:00
nleseul 953af9f3d1 UI: Handle update_properties signal in OBSBasicFilters window
The OBSBasicFilters window did not register a handler for the
"update_properties" signal. Now it does. Addresses issue #1028.

Closes jp9000/obs-studio#1036
2017-11-22 23:38:23 -08:00
Shaolin 6df56e09ce UI: Allow keyboard events on X11 fullscreen projector
X11BypassWindowManagerHint  Bypass the window
           manager completely. This results in a borderless window
           that is not managed at all (i.e., no keyboard input unless
you call QWidget::activateWindow() manually).

This allows the Esc key to close the projector on X11
2017-11-11 14:54:49 -02:00
Richard Stanway 0cbd9cc051 UI: Fix custom ffmpeg output file / URL entry
The default value in the .ui file was out of sync so the signal to
update the stacked widget was never sent.

Fixes https://obsproject.com/mantis/view.php?id=1060
2017-11-08 15:43:48 +01:00
Richard Stanway 9f046dc52b UI: Log when output timer events stop outputs 2017-10-26 18:31:56 +02:00
Ryan Foster 44b3cde9da UI: Add Frontend API function to save replay buffer 2017-10-19 07:16:00 -04:00
Ryan Foster c8353c90b6 UI: Disable source copy if no sources are selected
This commit addresses Mantis Bug 993. If no source was selected, the
"Copy" context menu item was enabled, but selecting it would do nothing.
This commit disables that menu item when no sources are selected.
2017-10-17 19:22:07 -04:00
jp9000 7bd06e7f26 Update translations from Crowdin 2017-10-17 05:39:22 -07:00
cg2121 0e0db29d80 UI: Fix Pulse Audio not loading saved device 2017-10-16 17:28:50 -05:00
Ryan Foster 0fe4688a34 UI: Disallow pasting duplicates of sources with DO_NOT_DUPLICATE
This commit prevents users from being able to use the "Paste
(Duplicate)" context menu option after copying a source that has the
OBS_SOURCE_DO_NOT_DUPLICATE flag set. Though OBS would correctly paste
the source as a reference, it seems that this behavior was confusing
some users. This fixes Mantis Bug 1034.
2017-10-14 05:05:16 -04:00
Richard Stanway 8e66f180d8
UI: Add missing text for replay buffer hotkey log 2017-10-12 17:49:02 +02:00
Richard Stanway 5c9d3dd30d
UI: Log when starting / stopping via hotkey or timer
This will help resolve incidents where users accidentally started or
stopped their stream without knowing what triggered it (usually from
hotkeys that were forgotten about).
2017-10-12 17:23:56 +02:00
jp9000 d768717b8c rtmp-services: Only update Twitch ingests when necessary
(This commit also modifies UI)

Instead of pinging Twitch every time the program starts up, only pings
for new servers when the ingests are actually being used, and when the
UI uses the auto-configuration dialog.

If ingests have not been cached when using the "Auto" server, it will
wait for 3 seconds max to query the Twitch ingest API.  If it takes
longer than 3 seconds or fails, it will defer to SF.  If ingests were
already cached, then it will use the existing cache immediately.
2017-10-09 10:10:59 -07:00
jp9000 3dc96fbe43 UI: Add ini option to use different graphics adapters
Allows setting a specific graphics adapter index to use for Direct3D 11.
This is currently meant to be sort of "undocumented" in implementing it
this way due to the fact that users will be guaranteed to break their
configurations if this is implemented in the UI (even if in advanced
settings).
2017-10-07 03:05:57 -07:00
jp9000 720a28aeb9 UI: Log generic stream startup failures
These code paths had no logging on failure, resulting in a log file that
would confuse people attempting to perform support for users.
2017-10-06 04:52:25 -07:00
Richard Stanway 05fb67717e
UI/updater: Use TLS 1.2 with WinHTTP
On Windows 7, WinHTTP defaults to using only SSL3 and TLS 1.0. The
obsproject.com server was updated to remove TLS 1.0 support and
this has caused updates to stop working on Windows 7.
2017-10-02 15:33:34 +02:00
jp9000 8f43934be6 UI: Lock graphics context when adding new sources
Prevents a potential cross-lock deadlock.  The UI thread would lock the
scene's mutex in obs_scene_atomic_update, then the item would lock the
graphics context to create a texture.  Meanwhile in the video thread, it
could lock the graphics context in the render loop, then lock the
scene's mutex when rendering.  When doing anything graphics-related, the
graphics context is always supposed to be locked before the scene's
mutex is supposed to be locked (it's designed that way), and the
obs_scene_atomic_update would just bypass that.
2017-09-17 02:47:54 -07:00
Benjamin Schubert 9cba5660e4 UI: Enable Replay Buffer in Advanced Mode
Replay buffer is currently only supported in simple mode.  This change
adds support to advanced mode and is, for the most part, a mirror of the
addition of replay buffer to simple mode.

Mantis-bug: https://obsproject.com/mantis/view.php?id=792

Closes jp9000/obs-studio#1019
2017-09-16 05:55:18 -07:00
Jim 1e1808dbd9 Merge pull request #1005 from SuslikV/patch-1
UI: Fix parent window geometry loading
2017-09-15 10:30:39 -07:00
Jim 34b0f29dc5 Merge pull request #1003 from Fenrirthviti/theme-updates
UI: Allow volume peak to be customized via .qss
2017-09-15 09:33:52 -07:00
Jim dcd3e627c2 Merge pull request #1027 from SuslikV/patch-2
UI: Add missing option to context menu
2017-09-15 04:13:28 -07:00
Christoph Hohmann 27a8f69eea UI: Use Qt standard buttons in source properties
Use the Qt standard buttons in the source properties dialog to make the
UI consistent.  Also remove the right alignment of the button box to
allow Qt to align standard buttons on the left side of the dialog.

Closes jp9000/obs-studio#1013
2017-09-15 04:05:32 -07:00
SuslikV 2b175d6da9 UI: Add missing option to context menu
Add 'Advanced Audio Properties' option to context menu over empty area
of the Mixer's pane.
2017-09-14 15:01:15 +02:00
cg2121 76b6266689 UI: Allow hiding/unhiding sources in the mixer
Allows the ability to hide/unhide sources in the mixer that the user
doesn't care about or doesn't necessarily want to see (such as video
sources that have audio but don't have any audio playing).  If all
sources are hidden, the user can right-click the mixer's empty area and
choose "unhide all" via a context menu.

Closes jp9000/obs-studio#1002
2017-09-13 21:17:44 -07:00
jp9000 7bde1eb6af UI: Allow right-clicking mixer sources to bring up menu
Allows bringing up properties/filters/etc via right-clicking mixer items
in addition instead of only being able to click the gear icon.  Minor
QoL improvement.
2017-09-13 21:17:44 -07:00
Shaolin 1bae6f3c18 UI: Enable audio monitoring on linux if pulse available
Closes jp9000/obs-studio#940
2017-09-12 03:37:58 -07:00
mntone 9ffdaff984 UI: Add memory usage to Stats window on linux/mac
Closes jp9000/obs-studio#953
2017-09-12 01:56:40 -07:00
SuslikV a21da59741 UI: Fix parent window geometry loading
The parent window adjusted according to child object polices and hint 
sizes. Thus, it is possible to disable all docking panes to restore 
true parent geometry first, the docking geometry and settings will be 
restored later in OBSBasic::OBSInit().
2017-08-12 19:45:25 +02:00
Joel Bethke 5576823f24 UI: Allow volume peak to be customized via .qss
With the addition of the peak volume indicator, themes may wish to change
these colors but there was no way to do so. This change updates the
VolumeControl widget to allow a stylesheet to adjust all possible colors
for the volume bar. In addtion, the Rachni theme is updated to demonstrate
this new capability.
2017-08-11 21:07:31 -05:00
jp9000 d3c163b775 UI: Fix Stats not showing stream data until start 2017-08-11 08:52:09 -07:00
SuslikV 9bf2318654 UI: Fix conditions for redraw the stats labels
After the commit 3491487c71 obs_frontend_get_streaming_output()
returns NULL if "Start Streaming" button not pressed yet.  The code
would erroneously fail to update the recording/streaming status if
either one of them hadn't been activated yet.

Closes jp9000/obs-studio#999
2017-08-10 21:40:18 -07:00
Gol-D-Ace 8d8c2e5a22 Update translations from Crowdin 2017-08-10 16:07:40 +02:00
Richard Stanway 043fea0ab2
UI/updater: Improved handling of failure conditions
Currently if a file is partially written to (eg, the file is opened for
writing but the write fails), the updater won't correctly roll back to the
previous version, leaving the OBS install in an inconsistent state.

We now track failed installs or hash failures on patched files with a new
STATE_INSTALL_FAILED state and properly roll back on errors.
2017-08-09 03:37:39 +02:00
Richard Stanway e59f969633
UI/updater: Restart progress bar when installing updates
When updating large files such as libcef, the patching process can take a
decent amount of time. Previously the progress bar would remain at 100%
after completing the downloads, so the user may think the updater has
frozen. Now it shows the process of the install / patching process.
2017-08-09 03:37:36 +02:00
Richard Stanway 91c292d394
UI: Show error if empty recording path specified
Same as 937ec4d but for advanced output.
2017-08-07 00:40:20 +02:00
Richard Stanway 0c0ffb341c
UI: Report more detailed output errors if available 2017-08-07 00:32:52 +02:00
Richard Stanway 937ec4d552
UI: Show error if empty recording path specified 2017-08-06 23:59:03 +02:00
SuslikV 77ddce3f9a UI: Fix stats window geometry saving on shutdown
Possible fix for: https://obsproject.com/mantis/view.php?id=923

If you close whole application (not just stats window) it skips the
close event and thus saving of the geometry.  The Qt::WA_DeleteOnClose
was set earlier.

Closes jp9000/obs-studio#984
2017-08-06 05:41:58 -07:00
Jim abc9b94621 Merge pull request #979 from Fenrirthviti/settings-window-fix
UI: Fix settings window minimum width/height
2017-08-06 05:34:26 -07:00
Jim 5f3cd5f5ef Merge pull request #977 from RytoEX/update-autoconfig-beam-to-mixer
UI: Update service names in autoconfig wizard
2017-08-06 05:30:43 -07:00
jp9000 10d6c347cc UI: Move adv. audio props. to each audio config button
Instead of having an extra config button that essentially wastes
valuable window space, allow the ability to open advanced audio
properties from each audio meter config button.
2017-08-05 21:20:08 -07:00
Ryan Foster 670dfdad2b UI: Update Hitbox to Smashcast in autoconfig wizard 2017-08-03 08:46:31 -04:00
Ryan Foster c21d83c2f3 UI: Fix Delete key not working on scenes/sources
This commit fixes two regressions introduced by the modular UI (commit
25bb8a444f):

 - the Delete key no longer works in the scene list
 - the Delete key no longer works working in the source list

This commit also enables the Delete key on sources that were selected by
clicking on them in the preview, which addresses Mantis Bug 576
(https://obsproject.com/mantis/view.php?id=576).
2017-08-03 03:55:27 -04:00
jp9000 8a5cf99aa7 UI: Test first 3 closest Twitch ingests in auto-config
If auto is available, test the first 3 closest Twitch ingests rather
than using a region-based selection.
2017-08-02 15:13:09 -07:00
jp9000 72d20de8e7 Revert "UI: Add support for Twitch "Auto" server in auto-config"
This reverts commit 2604db6e40.

The API to get the closest server can be down occasionally, so instead
just revert to its previous behavior.
2017-08-02 15:13:09 -07:00
Michael Fabian Dirks fbefa080b0 UI: Fix incorrect properties set for Hardware (AMD)
Due to an oversight in enc-amf with strcmp, the code currently causes
certain weirdness to appear.  This fixes it so it will use "High"
Profile instead of attempting to use "Constrained Baseline" and also
changes it to actually set things up for "Constant Bitrate" instead of
"Variable Bitrate (Latency Constrained)".  Finally I've added a slight
change that always makes it set the B-Frame Pattern to 0 in order to
work better with VCE2.0 and VCE3.0 cards.

Closes jp9000/obs-studio#978
2017-08-01 03:00:42 -07:00
jp9000 2604db6e40 UI: Add support for Twitch "Auto" server in auto-config
Uses the "Auto" server automatically for Twitch rather than doing a
region-based test on multiple servers.
2017-08-01 02:50:26 -07:00
jp9000 c5b26fe75c UI: Return false if audio encoder creation fails 2017-08-01 02:27:35 -07:00
jp9000 d98bda8fee UI: Remove trailing whitespace 2017-08-01 02:27:35 -07:00
Quinn Damerell 4581a8164a UI: Update Mixer (formerly Beam) in auto configuration
Closes jp9000/obs-studio#980
2017-08-01 02:27:34 -07:00
Joel Bethke 086e9cf0dc UI: Fix settings window minimum width/height
This fixes the issue presented in:

https://obsproject.com/mantis/view.php?id=885

Minimum size is changed to 700x512. I arrived at this number from testing
the minimum sizes that I felt the settings UI was still perfectly usable
and readable. Any smaller, and things became difficult to see and adjust.
As a note, this does increase the minum width of the settings window, as
the previous minimum allowed you to cut off objects and render the window
too small to be usable.
2017-07-28 11:34:26 -05:00
jp9000 8b68ccdc13 UI: Fix build issue with older linux Qt5 packages
QMainWindow::resizeDocks isn't supported on certain long-term support
distros (ubuntu trusty in particular), so instead just restore the
starting state and don't try to recalculate the ideal positioning.
2017-07-27 22:50:25 -07:00
jp9000 25bb8a444f UI: Add modular UI
Changes the UI to an adjustable user interface, allowing the user to
fully customize how the scenes list, sources list, the mixer,
transitions, and the buttons are oriented on the main window window.
2017-07-27 12:17:18 -07:00
Richard Stanway d69652503b
UI: Add "Below Normal" priority option 2017-07-26 23:45:40 +02:00
jp9000 960958a4ca UI: Fix potential crash when outputs change
If the service settings change and the output type changes, the previous
signals would attempt to disconnect after the output has been destroyed,
and subsequently that would cause a crash.
2017-07-25 19:01:29 -07:00
SammyJames 4fd66d4d1e libobs: Add post-load module callback
This allows the ability for certain types of modules (particularly
scripting-related modules) to initialize extra data when all other
modules have loaded.  Because front-ends may wish to have custom
handling for loading modules, the front-end must manually call
obs_post_load_modules after it has completed loading all plug-in
modules.

Closes jp9000/obs-studio#965
2017-07-21 08:27:31 -07:00
derrod c354551484 UI: Add --multi flag to suppress multi-instance warning
Addresses Mantis issue 927 by adding the --multi/-m flag to suppress the
warning dialog.

Closes jp9000/obs-studio#964
2017-07-21 07:51:31 -07:00
Michel 609334e427 UI: Fix problem with exporting scene collections/profiles
When exporting scene collections/profiles existing files are
not overwritten.

Closes jp9000/obs-studio#963
2017-07-21 07:46:39 -07:00
jp9000 753bf20ed7 UI: Allow outputs to use different audio codecs
Allows an output to automatically specify which audio codec it requires
and use it instead of AAC.  This change is intended to be
behind-the-scenes and seamless to the user.
2017-07-14 12:44:12 -07:00
jp9000 3491487c71 UI: Allow services to use different outputs
Allows a service to specify the output it needs in order to function as
configured.

NOTE: This functionality should be considered temporary as a seamless
means of implementing support for different output types within the same
service.  Ideally, different services should be used for this
functionality.
2017-07-14 12:43:04 -07:00
Richard Stanway aa78b1bbee
UI: Add missing separator in mediaExtensions initializer 2017-07-12 19:54:27 +02:00
jp9000 ee0236be13 UI: update installer script to latest version 2017-07-05 04:31:39 -07:00
VodBox f1588daca0 UI: Ensure theme backward compat. with older OBS vers.
Deprecates "Theme" global config value and uses "CurrentTheme" instead
to ensure backward compatibility with older versions of OBS, which will
fail to load if you have a theme that isn't available.

(Jim Edit: Putting this back because I misunderstood the purpose of
jp9000/obs-studio#936)
2017-07-02 13:31:51 -07:00
VodBox d1cb3a42f5 UI: Add backwards compatible theme fallback
Closes jp9000/obs-studio#936
2017-07-02 11:54:08 -07:00
jp9000 7acd3be40d UI: Change meter color to red when audio is clipping
Closes jp9000/obs-studio#738
2017-07-01 19:41:18 -07:00
jp9000 16c6e69722 UI: Remove unused function from volume control 2017-07-01 18:58:55 -07:00
Jim 9ad8e0c5f0 Merge pull request #947 from Fenrirthviti/new-theme
UI: Add new theme, update theme capabilities
2017-07-01 15:48:05 -07:00
Joseph El-Khouri 8942c18695 UI: Allow zoom with the scroll wheel
Adds the ability to zoom into the preview when fixed scaling mode is
enabled.

(Edit by Jim: Also now saves zoom and scroll position)

Closes jp9000/obs-studio#917
2017-06-30 20:20:56 -07:00
mntone d70c97db3a UI: Add ability to drop html files
(Edit by Jim: Added a check to make sure that the browser source exists
due to the fact that it's technically optional)

Closes jp9000/obs-studio#905
2017-06-30 00:10:26 -07:00
jp9000 1e7e50114e UI: Fix lock/visibility sub-widget sizes on OSX 2017-06-28 15:19:36 -07:00
jp9000 0d84561dc4 UI: Make lock/unlock icons slightly smaller
Makes them a bit more equal in size to the eye icon in the main window.
2017-06-28 09:20:52 -07:00
jp9000 14e41dc0c1 UI: Make sure "Defaults" buttons aren't default buttons 2017-06-28 09:20:52 -07:00
Shaolin e5756a922a libobs/plugins/UI: Suppress unused variables warnings
Closes jp9000/obs-studio#937
2017-06-27 21:55:37 -07:00
Jim 27bb2f836d Merge pull request #899 from Palakis/preview-api
UI: Add functions and events for Studio Mode into the Frontend API
2017-06-27 19:39:53 -07:00
mntone a6938c11b0 UI, libobs: Add Japanese shortcut keys for Windows
Add Japanese shortcut keys, non-convert (無変換) and convert (変換) and
disable IME for OBSHotkeyEdit.

Closes jp9000/obs-studio#930
2017-06-27 18:14:48 -07:00
cg2121 fce078d997 UI, libobs: Add ability to lock individual scene items
Adds a lock checkbox to allow the user to lock a specific scene item.

Closes jp9000/obs-studio#949
2017-06-27 10:27:57 -07:00
cg2121 2d84da2f7e UI: Add "Defaults" button to filters/properties windows
This adds a "Defaults" button in the source and filter properties, which
will clear and reset all settings.

Closes jp9000/obs-studio#875
2017-06-26 17:44:34 -07:00
cg2121 b8d907f399 UI: Add fullscreen UI option to view menu
(Edit by Jim: Removed "Fullscreen Preview" because that's already sort
of served by the normal fullscreen projector option via the preview
context menu)

Closes jp9000/obs-studio#846
2017-06-26 09:49:43 -07:00
cg2121 50103825c0 UI: Add fullscreen projector to systray menu
(Edit by Jim: Changed it to just add the fullscreen projector sub-menu
like when right-clicking the preview, that way it doesn't have to add
new locale text for translators, and allows the users to specify which
monitor to use)

Closes jp9000/obs-studio#845
2017-06-26 08:35:52 -07:00
jp9000 36394ab08d UI: Fix potential crash with unsupported video cards
If a video card is unsupported, it will attempt to initialize the stats
window, querying values from a video subsystem that doesn't exist, and
crash instead of alerting the user that their hardware is unsupported.
2017-06-24 09:14:46 -07:00
Richard Stanway ac90d863cb
UI: Set error mode to SEM_FAILCRITICALERRORS
This prevents spurious dialog boxes appearing, such as "No disk is in the
drive" if the application attempts to access an invalid drive.
2017-06-21 17:39:20 +02:00
jp9000 1d2def766f UI: Preserve source if audio settings device changed
If the user changes one of the devices in audio settings, it would reset
all of its data, including settings, filters, flags, and all that.  This
changes the handling so that the source and all of its other settings
are preserved if the user just changes the device.  (Note that if the
user disables the device, settings will be lost; this only applies to
when the user changes the device to a different device for whatever
reason)
2017-06-21 00:03:14 -07:00
jp9000 bd9706c8ac UI: Use QT_TO_UTF8 with name dialog
Could potentially use the wrong locale otherwise.
2017-06-20 18:19:30 -07:00
jp9000 96f746ce41 UI: Initialize Stats window values after OBSInit/reset
When the statistics window starts up for the first time, it reset values
at that very moment so that stray lagged frames due to OBS' startup
wouldn't be displayed.  However, that's really a bad place to reset
those values because the user could want to view the stats window after
a long stream, and having those values reset when he/she views the
window for the first time would sort of make the point of viewing your
stats moot.

Instead, reset the values only when applicable, such as after OBSInit or
when video is reset.
2017-06-19 15:38:13 -07:00
jp9000 bc30c39a03 UI: Ignore first 2.5 seconds of bandwidth test
System network buffers need to be given some time to fill before
starting a bandwidth test.  This prevents the buffers from skewing with
the results.
2017-06-15 20:00:01 -07:00
Joel Bethke 432e285257 UI: Add new theme, update theme capabilities
I have always felt that the out of the box themes for OBS were quite
lacking, and have spent a lot of time going through and sorting out the
difficulties with the current setup. I've added a new themeID parameter to
several elements that were otherwise impossible to target with QSS in a
theme. Since Qt has pushed for the use of QML over QSS at this point,
these should be considered workarounds. Included is the theme I was
working on that can serve as a base. I'm hoping to encourage others to
make their own themes, so we can grow the available themes for OBS.

I am happy for any feedback on the theme itself, or other updates that
can me made to make creating new themes easier overall.
2017-06-13 14:37:59 -05:00
Richard Stanway da9e247964
UI/updater: Fix incorrect path in portable mode 2017-06-12 16:45:16 +02:00
Shaolin cb9f767e45 libobs/plugins/UI: Suppress -Wimplicit-fallthrough introduced by GCC 7
Signed-off-by: Shaolin <admshao@gmail.com>
2017-05-29 21:05:18 -03:00
Jim d4bd7ea052 Merge pull request #931 from DDRBoxman/osxplugin
UI: Look for plugins in ~/Library/Application Support/obs-studio/plug…
2017-05-29 15:57:49 -07:00
Colin Edwards c6e2318eae UI: Look for plugins in ~/Library/Application Support/obs-studio/plugins/ 2017-05-29 17:41:29 -05:00
jp9000 847b3013fc UI/installer: Update installer VC redist download link 2017-05-28 15:35:33 -07:00
jp9000 7c72cfc625 UI/installer: Fix broken realsense plugin install locations 2017-05-28 15:35:04 -07:00
jp9000 5e41865f83 UI/installer: Specify "source" in plugins section
When using the full installer, there'll be a section where you can
choose what to install -- one section is a tree view with a "plugins"
section, and in that section there's "Browser plugin" and "Realsense
plugin".  Instead of superfluously saying "plugin" for each of those,
replace with "source" instead -- so browser source and realsense source.
Also somewhat helps prevent the user from getting confused and thinking
we're installing a browser or something.
2017-05-28 15:35:03 -07:00
jp9000 870bf6b6fc UI: Fix tooltip for "prefer hardware encoding" 2017-05-21 09:02:14 -07:00
jp9000 8416c9fbae UI: Fix autoconfig capping bitrate with "custom server"
When custom server is used, it would still use the "common" RTMP service
to cap its bitrate.  So if Twitch was selected and you changed over to
custom RTMP server, it would still cap to Twitch's bitrate limits even
though you're not using Twitch anymore.
2017-05-21 01:40:12 -07:00
mntone 2ea7e3b344 UI: Fix creation of crash log with non-english paths 2017-05-21 10:44:54 +09:00
jp9000 cd52679160 UI: Unlock mutex before trying to stop output
Prevents the output from hard-locking on itself when the stop call would
trigger the callback and then try to lock again.  Probably could be
solved with a recursive mutex, but at that point it's not really
necessary.
2017-05-20 12:31:57 -07:00
Gol-D-Ace 5d25d800ad Fix German locale inconsistencies 2017-05-20 20:24:46 +02:00
jp9000 0c198bee50 UI: Fix bug where auto-config settings wouldn't apply
The radio buttons had been changed so "Streaming" would be selected by
default, but it only sets the wizard's "type" to streaming if the user
actually clicks the radio button themselves manually, so it would stay
set to "Invalid" by mistake, causing settings to not be applied.
2017-05-20 11:15:01 -07:00
jp9000 fa09e6743d UI: Remove whitespace from end of autconfig stream key
Because ?bandwidthtest is being appended to the end, it would bypass
normal whitespace removal, causing the stream key to fail.
2017-05-20 11:14:59 -07:00
jp9000 060fbb30ea UI: Change default autoconfig test bitrate
Changes the default autoconfig test bitrate to 10000kb/s, which will
then be capped by the user's service selection (so it'll still only use
6000 on Twitch for example, but will allow 10000 on Youtube and others).
2017-05-20 01:37:25 -07:00
Gol-D-Ace 3d2cacd782 Update translations from Crowdin 2017-05-20 10:18:41 +02:00
jp9000 12236d73f4 UI: Fix enumeration of scene collections on first run
When running the program for the first time, no scene collections will
show up in the scene collection menu.  This changes it to forcibly save
the first scene collection on the first run of the program, and then
re-enumerates the list to ensure it's listed.
2017-05-17 23:29:02 -07:00
jp9000 ee6ca246fe UI: Actually update service for wiz. bitrate limits
obs_service_update was left out by accident in the previous commit.
2017-05-17 22:37:05 -07:00
jp9000 93297d3d0e UI: Remove advanced settings from final wizard results
Removes advanced encoder settings from final wizard result so they don't
conflict with the wizard's expected final results.
2017-05-17 22:32:48 -07:00
jp9000 8dff07ad46 UI: Fix cases where wizard bitrate is not capped
Fixes some cases where the maximum bitrate might not be capped by the
service selection as it's supposed to be.
2017-05-17 22:31:02 -07:00
jp9000 f093028d7a UI: Sort filter names when adding filters 2017-05-16 18:03:34 -07:00
Igor Bochkariov 6e1c4caf99 UI: Fix creation of log files with non-english paths
This commit fixes creating log files in windows with Unicode profile
names.

I encountered this bug when running obs-studio 18.0.2 in Windows 8.1 x64
with my user profile path containing Unicode characters.

Steps to reproduce:

1) Create a windows user with a Unicode name: "пользователь"
2) Run OBS Studio, go to Help -> Log Files -> View current log (Nothing
happens)

The expected result is opening current log file.

Closes jp9000/obs-studio#916
2017-05-15 21:50:44 -07:00
jp9000 0a82d87d82 UI: Check to see if outputs valid when updating stats 2017-05-15 15:05:54 -07:00
jp9000 3470776843 UI: Make Stats a regular window rather than dialog 2017-05-15 15:02:56 -07:00
jp9000 47221e52cf UI: Move Stats to the view menu 2017-05-15 15:01:59 -07:00
jp9000 840bd07365 UI: Prevent user from starting ouputs while in settings
There's a loophole that would allow users to activate an output while in
the settings window via hotkeys -- this prevents that from being able to
happen.  Note that users can still shut down outputs, but they can no
longer start them up while in the settings window.
2017-05-15 14:35:38 -07:00
jp9000 4ff7ac0bfa UI: Change output blocking bool to integer ref counter 2017-05-15 14:35:36 -07:00
jp9000 0697e37b26 UI: Fix misleading log message when updating settings
While an output is active, the user may try to reset the settings in the
settings window, causing a misleading error message to be thrown in the
log indicating that it's "falling back" to OpenGL.

Instead, if an output is currently active, do not reset video.
2017-05-15 14:28:00 -07:00
Richard Stanway 2933b89733
UI: Add support for showing output error messages 2017-05-15 12:03:42 +02:00
jp9000 b2e376b022 UI: Update quick transitions on transition add/removal
Fixes a bug where the individual drop-down lists of each quick
transition would not have the correct available transitions listed if
transitions were added, renamed, or removed
2017-05-14 23:06:11 -07:00
Jim b5a6e12219 Merge pull request #912 from Xaymar/feature-enc-amf
enc-amf: Version 2.1.3
2017-05-14 21:02:02 -07:00
Michael Fabian Dirks 1e99bf100f enc-amf: Version 2.1.3 2017-05-15 03:36:20 +02:00
jp9000 96ce9633e0 UI: Warn user if multiple instances of the UI are open
Uses a named mutex to detect if multiple instances of the program are
open, and if so warns the user.  When running in portable mode, uses a
separate unique mutex name mapped to the user's config directory to
ensure that no two portable builds use the same config directory.  This
way, portable builds do not conflict with normal builds or other
separate portable builds.
2017-05-14 15:25:34 -07:00
jp9000 99f5ae3059 UI: Don't count debug log messages in repeat detection 2017-05-14 15:24:15 -07:00
jp9000 602c730312 UI: Fix bug where Pre19Defaults would always be set
"OldDefaults" was changed to "Pre19Defaults", but it was still left in
this spot unchanged.
2017-05-14 13:12:14 -07:00
jp9000 13741034dd UI: Don't use "quit on last window closed"
Instead, quit only when the main window has been fully closed (and not
minimized to tray).  Fixes a bug where if the main window is minimized
to tray and another non-child window is open (for example, the stats
window), and then that window is closed, would cause the program to
prematurely exit and crash.
2017-05-14 13:03:46 -07:00
jp9000 3d5759335c UI: Save/remember stats window geometry 2017-05-13 20:51:44 -07:00
jp9000 b40f940b51 UI: Add option to show stats on startup to general 2017-05-13 20:47:47 -07:00
jp9000 b3435f62d7 UI: Bring stats to front if it already exists
If the menu item is triggered again, just bring it to the front instead
of trying to recreate it again.
2017-05-13 20:45:48 -07:00
jp9000 72d7adba67 UI: Fix locale text for "OK" in question dialogs
This is the only case where the button's name does not match the
locale's text, the button name being "Ok" and the locale text item being
"OK", fully capitalized.
2017-05-13 14:10:44 -07:00
jp9000 522f5cdf3b UI: Make sure all message box buttons are translated
Instead of QMessageBox::question and QMessageBox::information, use the
OBSMessageBox class, which translates all buttons.
2017-05-13 14:06:32 -07:00
jp9000 bd34dce8b6 UI: Add helper class to translate message box buttons 2017-05-13 14:05:03 -07:00
jp9000 1c5591e644 UI: Make Qt use locale text for QWizard buttons 2017-05-13 13:07:12 -07:00
jp9000 35454f7fc5 UI: Fix a few locale items, and add a few missing ones 2017-05-13 13:01:56 -07:00
jp9000 0e1ae62355 UI: Add stats dialog
Shows performance stats, and streaming/recording stats, and helps warn
the user when they have less-than-optimal values with coloring on the
values (e.g. yellow when getting low on disk space, red when getting
really low)
2017-05-13 01:52:54 -07:00
jp9000 ee734c17a5 UI: Add themeID values for colors to style sheets 2017-05-13 01:52:53 -07:00
jp9000 d0d9cc4254 UI: Add function to get current memory usage (win32) 2017-05-13 01:52:45 -07:00
Richard Stanway 09f6882137
UI: Show invalid Bind to IP entries in the settings
This fixes a case where the user sets an IP but then that IP is no longer
valid, resulting in OBS showing "Default" in the settings but still trying
to bind to the invalid IP internally.
2017-05-10 21:44:28 +02:00
jp9000 4049a5a882 UI: Add auto-configuration wizard
The auto-configuration wizard is designed to allow first-time or
novice/uneducated users or to set up video and encoding settings in a
very quick and easy way.  It'll automatically perform a bandwidth test,
and/or test the user's video settings to determine the most ideal
settings for streaming and recording (assuming a 1-pc setup).
2017-05-08 02:12:03 -07:00
jp9000 51e5f5fc64 UI: Remove colon from a few locale items
The colon makes it difficult to use these locale items for other
purposes, and the colon isn't used much elsewhere, so just remove them.
2017-05-06 12:12:37 -07:00
jp9000 f9595938d0 UI: Add 1920x1080/1280x720 to the settings base res list
Adds 1920x1080 and 1280x720 to the drop-down list of "default"
base/canvas resolutions rather than just the user's monitor resolutions,
in case the user wants to set the canvas to 1920x1080 or 1280x720
without having to manually type it in.  Added as a minor convenience.
2017-05-06 11:29:41 -07:00
jp9000 9d019e90ab UI: Limit default canvas res to 1920x1080 or below
The reasoning behind this is because having a very large canvas size can
negatively affect the user experience -- most sources end up seeming
smaller than they need to be to users, resulting in the user needing to
size up the sources, or in the case of webcams it makes the user try to
use much larger webcam resolutions than they should reasonably need to
do, resulting in higher unintentional resource usage.  The program will
additionally require more fillrate to render and downscale things as
well.

This applies only to the default starting base/canvas resolution for new
users only.

Additionally, users that ran the program pre-19 will be unaffected by
this change, as it will detect that and set the old defaults to prevent
an unexpected change in resolution for those users.
2017-05-06 11:29:40 -07:00
jp9000 ca0d4d18d5 UI: Don't subject base/output resolutions defaults
If defaults change for the base or output resolutions, it could
unintentionally affect users who are using defaults by chance and have
never changed those values.

Instead, save those values are soon as defaults are set if the users
haven't already set them.
2017-05-06 11:29:39 -07:00
jp9000 b850bc6415 UI: Add function to enable/disable outputs 2017-05-06 11:29:37 -07:00
fryshorts 937356cc8a UI: Fix settings dialog crashing on linux
Fix a double free in the settings window that occurs on linux only.
The UI Element already gets deleted above as a child of the
advAudioGroupBox which is not present on linux.
Apart from making the code even more unreadable, this will likely
come back to haunt us if the advAudioGroup will ever be shown on linux.
2017-05-06 15:59:41 +02:00
Richard Stanway a23c009a69 Various: Optimize bundled PNG files
By losslessly recompressing and removing redundant metadata, this saves
around 910 KB.
2017-05-05 19:56:00 +00:00
jp9000 08a94072a0 UI: Always alternatively open backup scene json file
Fixes an issue where scene data would reset if the file was not found,
even if a backup file existed.  This should prevent those remaining
stray cases where user's scenes would seem to be suddenly deleted if the
original file was deleted for some reason or another.  The backup files
should always be available, so this should clear up that last remaining
case.
2017-05-04 18:17:42 -07:00
cg2121 71c5753207 UI: Add ability to output to window
Closes jp9000/obs-studio#841
2017-05-04 17:07:36 -07:00
e00E 26c28b4502 UI: Fix warning in VisualStudio 2017
When building with VS2017 the compiler shows some warnings which is
undesirable.

The compiler rightly complains about declarations which hide older ones
which are trivially fixed.

Finally only POD types should be passed to variadic functions which is
why the String should be converted to c_str().
Relying on the current undefined behavior is a bad idea as it can change
with compilers and compiler versions.

Closes jp9000/obs-studio#902
2017-05-04 06:13:45 -07:00
e00E 4361c5bd45 UI, obs-qsv11: Fix build in VisualStudio 2017
OBS did not build out of the box in VS2017 but it does with these
changes.

Closes jp9000/obs-studio#902
2017-05-04 06:13:26 -07:00
Jim 965e2eea9a Merge pull request #900 from cg2121/linux-scene-switcher
frontend-tools: Add automatic scene switcher for Linux
2017-05-04 05:08:17 -07:00
Palakis 2e3888abd4 UI: Add Studio Mode features in the Frontend API
With these new functions, plugin developers can enable, disable and
get the status of Studio Mode, as well as get and set the current
preview scene and transition the current preview to Program

Here is a list of the Studio Mode events:
   - Studio Mode enabled
   - Studio Mode disabled
   - Previewed scene in Studio Mode changed
2017-05-03 23:19:04 +02:00
Jim da0f3c2705 Merge pull request #889 from cg2121/drag-drop-bug
UI: Fix drag & drop bug
2017-05-03 14:17:49 -07:00
mntone 9efd2b87aa UI: Add option to disable audio ducking on windows
The audio subsystem of windows is by default configured to lower the
volume of other things while a communications device (mic) is currently
active.  This patch prevents that from being enabled with OBS.  If the
user needs audio ducking enabled again for whatever reason, there is now
an option to re-enable it in advanced settings.

Closes jp9000/obs-studio#884
2017-05-03 11:05:30 -07:00
cg2121 d1de03c0be frontend-tools: Add automatic scene switcher for Linux 2017-05-03 09:23:06 -05:00
jp9000 4684294bcd UI/updater: Add opt to disable building update module
Mostly to reduce build time when the update module doesn't need to be
rebuilt.
2017-05-02 03:45:20 -07:00
jp9000 aa70704700 frontend-plugins: Abstract captions
Currently the captioning code is a bit intertwined with the UI, and the
captioning is hard-coded towards microsoft speech API.

This patch abstracts captions to allow other APIs to be implemented
later.
2017-04-30 08:28:07 -07:00
jp9000 1e37017d4e frontend-tools: Rename some files
Changing the name of certain captions source files so it specifies which
caption API the files are for.  "mssapi" for Microsoft's speech API.
2017-04-30 08:23:46 -07:00
Shamun 0206227b75 UI: Add command line option for starting up always on top
Closes jp9000/obs-studio#853
2017-04-30 07:49:25 -07:00
cg2121 e26f07a1c3 UI: Make sure all dialogs have close buttons
This adds close buttons to remux dialog, output timer dialog, and
advanced audio properties dialog.  I also did a small refactor of the
remux dialog so the buttons were consistent with other dialogs.

Closes jp9000/obs-studio#876
2017-04-30 06:38:33 -07:00
cg2121 012b5ef6a5 UI: Display filename when dragging & dropping
After dragging and dropping a file, the source name will be the
filename.

(Jim: When dragging and dropping raw text, the raw text would then be
used as the source's name, which is bad if there's a lot of text.  It's
now been changed so that it uses the source type's display name, i.e.
"Text (GDI+)" as the source name in that case)

Closes jp9000/obs-studio#888
2017-04-30 03:37:02 -07:00
Jim 1e831ea9eb Merge pull request #894 from trwnh/patch-1
UI: Ctrl+E to Edit Transform
2017-04-30 03:05:27 -07:00
Palakis 9f3bb4a13f UI: Add front-end API functions to get/modify service
This commit adds functions to get, set and save the service and its
settings, and is plugged straight into the existing internal functions
serving this purpose

(Jim: Fixed commit message and missing newline at end of file)

Closes jp9000/obs-studio#895
2017-04-30 02:53:44 -07:00
Ryan Foster 2d80ae0231 UI: Remove unused defines from old updater code
This commit removes some define statements that were used in the updater
code before OBS Studio 18.0.0.
2017-04-26 13:09:30 -04:00
trwnh 76d795aec0 UI: Ctrl+E to Edit Transform
Added a shortcut to "Edit Transform", with Ctrl+E (lines 1191-1193).
Editing was very easy in OBS Classic, and I could not find the option
for stretching a source to bounds in OBS Studio, so the "Edit Transform"
dialogue should be more user-facing. Giving it a keyboard shortcut
denotes that it is important enough to have a shortcut, as opposed
to the myriad options with no shortcut
2017-04-25 22:57:55 -05:00
Ryan Foster be98cee2a0 Fix various typos across multiple modules 2017-04-25 22:39:42 -04:00
cg2121 485bfa5570 UI: Fix drag & drop bug 2017-04-23 20:45:55 -05:00
Richard Stanway 599ffaa02a
UI: Increase MAX_CRASH_REPORT_SIZE to 150 KB
Now that OBS defaults to 64 bits on Windows, our crash reports are often
truncated since the 64 bit stack values are using twice as much space.
2017-04-11 13:07:34 +02:00
Richard Stanway 67e5f6c54e
UI: Continue to show OpenGL if already in use
Otherwise the user can't actually switch back to Direct3D since the
settings panel doesn't consider the renderer to be modified.
2017-04-10 16:53:28 +02:00
Richard Stanway fdc9c47875
UI: Hide OpenGL and D3D adapter on Windows
OpenGL on Windows is rather unstable and can result in graphical
corruption or the complete inability to start OBS since some GPUs do not
support the minimum requirements after switching to OpenGL. The UI option
is now hidden unless --allow-opengl is passed on the command line.

The D3D adapter is currently unused and we often find users are concerned
when their GPU does not appear in the list.
2017-04-10 15:54:51 +02:00
cg2121 5e65254f2c UI: Add window name to remux dialog 2017-04-09 01:31:50 -05:00
jp9000 3544a2da48 UI: Fix property widgets not being disabled 2017-04-01 13:32:26 -07:00
jp9000 14725a79ee UI: Remove libff as a dependency
Just directly includes the ff-util.c/h files in to UI to prevent the
need of compiling libff in full.
2017-03-31 12:10:34 -07:00
Jim 3a3015aecd Merge pull request #855 from MP2E/master
UI: Fix segfault when no system tray exists
2017-03-25 08:53:02 -07:00
jp9000 6af48130e0 UI: Fix bug where items can't be deleted in last scene
Bug introduced in jp9000/obs-studio#861
2017-03-25 07:36:46 -07:00
jp9000 3774a73fe9 UI: Disable filter pasting when scene collection changed 2017-03-25 07:08:11 -07:00
cg2121 bcd491a3d6 UI: Add copying/pasting of sources/filters
Closes jp9000/obs-studio#860
2017-03-25 04:29:49 -07:00
Cray Elliott c47cb25434 UI: Fix segfault when no system tray exists 2017-03-23 16:47:42 -07:00
cg2121 66dbf8f258 UI: Add workaround to fix deleting final scene bug 2017-03-13 13:18:10 -05:00
Richard Stanway a8106115d9
UI/updater: Fix incorrect inflate use
Same issue as 77ceb97 corrected but for POST responses.
2017-03-10 16:19:04 +01:00
jp9000 4f64be278c UI/updater: Ignore 64bit files on 32bit windows
This would cause people to download the 64bit files when they were on
the 32bit version of windows, even though those files aren't meant to be
installed.
2017-03-07 09:11:44 -08:00
jp9000 77ceb97f96 UI/updater: Fixed a bug with deflating
The file could deflate infinitely until hard drive space ran out.
2017-03-07 09:01:03 -08:00
jp9000 aab843597d UI/updater: Fix potential fail case when no files to patch
The updater would return HTTP 400 on an empty json array upload for the
patch manifest.
2017-03-06 22:20:51 -08:00
jp9000 65d453049a UI/updater: Fix temp files being created and not deleted
The GetTempPath and GetTempFileName functions weren't being used
correctly, GetTempFileName always create a temporary file, and was
creating a temporary file in the root directory of the hard drive
unintentionally.
2017-03-06 21:57:47 -08:00
jp9000 bc9a58174b UI/updater: Use better function for getting process names
EnumProcessModules may not work correctly cross-arch, so use
GetProcessImageFileName instead to ensure no issues in that case.
2017-03-06 18:23:29 -08:00
jp9000 5d136b13a7 UI/updater: Wait for OBS to close before updating 2017-03-06 05:30:58 -08:00
jp9000 86862b672e updater: Add windows updater module 2017-03-06 03:54:53 -08:00
jp9000 f1aba65bbb UI: Fix game capture check when about to update
To check to see if a file is locked, it must be opened for writing, not
reading.
2017-03-06 03:54:49 -08:00
Gol-D-Ace dbf95bdc15 Update translations from Crowdin 2017-03-05 23:40:11 +01:00
jp9000 a5f45a370d UI: Disable network settings while outputs active 2017-03-05 14:30:00 -08:00
Gol-D-Ace de1bbf4342 Update translations from Crowdin 2017-03-04 07:04:03 +01:00
jp9000 556ac1fbb7 UI: Add logging of audio monitoring to sources 2017-03-02 13:05:38 -08:00
jp9000 8d3e839ac8 UI: Log audio monitoring dev. on start and when changed 2017-03-02 12:35:37 -08:00
jp9000 075f911f12 UI: Fix audio monitoring dev. not being set on startup 2017-03-02 11:38:55 -08:00
VodBox aa547e8df6 UI: Don't exit on unknown command line arguments
OBS Browser Source uses command line arguments for flags. Exiting on
command line arguments that are unknown to OBS prevent's that
functionality from working.
2017-03-01 20:25:56 +01:00
Gol-D-Ace 80504c2939 UI: Use correct string for systemTrayEnabled 2017-03-01 05:20:05 +01:00
Jim 95fe16534d Merge pull request #826 from Xaymar/feature_amd-encoder
UI, enc-amf: Update AMD Encoder
2017-02-27 12:54:24 -08:00
Michael Fabian Dirks 2e8ec44db0 UI: Update Simple Mode AMD Presets
Due to the default value assigned to AMF.H264.VBVBuffer.Strictness and AMF.H264.Version, the config upgrade code ran every time someone tried to use simple mode. That caused the AMF.H264.VBVBuffer.Strictness value to always be stuck at 100, which is wrong for streaming and recording.
2017-02-27 21:47:34 +01:00
Gol-D-Ace a13c0a3c29 Update translations from Crowdin 2017-02-27 20:54:02 +01:00
jp9000 e294d546b6 UI: Hide auto update option for linux 2017-02-27 08:03:30 -08:00
jp9000 8f3ee3530c obs-frontend-api: Use virtual destructor (fix memory leak)
Ensures data within the derived object is automatically freed.
2017-02-26 13:01:23 -08:00
jp9000 133fa04db3 UI: If scene/source names exist, start from 2
Currently if you have a scene, "Scene" for example, and you create a new
scene, the dialog will pop up with a default name, but it'll start with
"Scene 1" instead of "Scene 2".  Same thing occurs with sources.  This
fixes that to start from 2 instead.
2017-02-26 08:23:31 -08:00
cg2121 d74372c9e0 UI: Fix typo in general settings 2017-02-25 13:28:16 -06:00
Jim 5c1984366e Merge pull request #787 from derrod/mp4-warning
UI: Add warning for recording to mp4 format
2017-02-25 09:30:52 -08:00
derrod f7be55e451 UI: Add warning about recording to mp4 format 2017-02-25 18:25:45 +01:00
derrod 3fe2a79c81 UI: Add codec compatability checkbox to ffmpeg output
Closes jp9000/obs-studio#804
2017-02-25 09:16:46 -08:00
derrod 1fd302218b UI: Add gop size option for custom ffmpeg output
Closes jp9000/obs-studio#804
2017-02-25 09:08:01 -08:00
Michael Fabian Dirks 6539bacc4e UI: Add support for other codecs
This changes the logic to show all encoders in the Recording tab but
only show selected supported codecs in the Streaming tab (at least with
Advanced Output Mode).  The only (to my knowledge) streaming format that
supports other formats than H264 is WebRTC, which in theory should
support H264, VP8, VP9 and HEVC.  However I don't know about any ingest
server that works well with it yet.

Closes jp9000/obs-studio#794
2017-02-25 08:03:00 -08:00
jp9000 2e4a17c50d UI: Fix some settings layouts on non-windows systems
Form layouts should laways have the setting "all non-fixed fields grow"
to make it look consistent across operating systems.
2017-02-25 06:35:11 -08:00
jp9000 aedd5551eb UI: Make sure size-specific spacers are fixed
Fixes the general settings pane on mac
2017-02-25 06:21:25 -08:00
derrod 379b41aa0e UI: Add options for new socket loop 2017-02-25 06:21:24 -08:00
Jim b956dbe6aa Merge pull request #803 from derrod/ffoutextfix
UI: Fix ffmpeg output file extension
2017-02-25 04:24:02 -08:00
Jim da1fddbd84 Merge pull request #793 from juvester/unused-params
obs-ffmpeg, UI: Fix compiler warnings
2017-02-25 02:35:46 -08:00
jp9000 e7b08f1695 UI: Make installer execute 64bit on 64bit windows
Also executes the program with current user privileges rather than with
elevation to prevent installation issues.
2017-02-24 09:09:21 -08:00
Richard Stanway 23a115b0b3 UI: Use blake2b instead of SHA1 for updater 2017-02-24 09:09:20 -08:00
jp9000 db345e2e48 UI: Improve accessibility text on main window 2017-02-24 03:38:41 -08:00
jp9000 f72fd3c9e3 UI: Trigger scene list change event when scene removed 2017-02-23 00:43:20 -08:00
jp9000 b2bdf96cd6 UI: Trigger frontend api scene change after transition
Changes the OBS_FRONTEND_EVENT_SCENE_CHANGED event after transitioning
is complete rather than right when the user hits a scene change.
2017-02-22 03:08:37 -08:00
jp9000 10a28cd1d2 UI: Add latest installer fixes from R1CH
Uses a custom library for checking whether game capture is active and
for killing stray obs processes
2017-02-20 22:45:36 -08:00
jp9000 cdfb3749ce UI: Update installer to latest version
Changed the build scripts around so that it operates off of a different
directory structure
2017-02-20 22:45:35 -08:00
jp9000 c1c84e9101 UI: Add front-end auto-updater 2017-02-20 22:45:34 -08:00
jp9000 33e4494014 UI: Add function to get remote file
Similar to the OBS1 file where you can optionally get the signature if
available in the header (for auto-updating)
2017-02-20 22:45:33 -08:00
jp9000 8bc516afe7 UI: Clean up general pane of settings dialog
So many checkboxes were together almost senselessly.
2017-02-20 22:45:32 -08:00
derrod b78425aaaf UI: fix ffmpeg output file extension 2017-02-17 20:37:52 +01:00
derrod 6bc1ecc794 UI: Add warning if starting the output fails
This is mainly to give visual feedback to those affected by NVENC not
working with older driver versions. Currenlty obs fails silently which
could go unnoticed for users who are using hotkeys as well as confuse
users who are not trained to read their logs when issues occur.

Closes jp9000/obs-studio#788
2017-02-14 19:21:19 -08:00
jp9000 f83bd9facc UI: Change volume meter update interval to 30fps 2017-02-14 15:00:52 -08:00
juvester fdac36de44 UI: Fix compiler warning 2017-02-08 16:43:21 +02:00
jp9000 52784c3e79 UI: Add 24 NTSC as a common FPS value 2017-02-06 14:55:14 -08:00
jp9000 27a3b97f48 UI: Prevent thread stalls with fader/volume widgets
When the OBS signal is triggered for these widgets, the invokeMethod
could cause the thread to stall, which could make it wait much longer
than necessary to output audio data.  When that happens, it causes audio
monitoring to get backed up and get unnecessarily delayed, as well as
cause general audio buffering in libobs to increase unnecessarily.

A simple fix both in terms of preventing that stall and improving UI
performance is to not call invokeMethod to update the widget each time,
and then instead have those widgets update themselves via a timer at a
specific interval.
2017-02-06 11:44:05 -08:00
jp9000 7639b277ce UI: Add audio monitoring to settings/adv audio props.
Adds audio monitoring selection to advanced audio properties, and adds
the ability to select the device in advanced settings.
2017-02-06 11:44:04 -08:00
jp9000 96f6fa9473 UI: Make advanced settings pane a bit more compact
Packs related controls together and makes a bit more room for more
advanced settings.
2017-02-06 11:43:58 -08:00
Gol-D-Ace e181db7845 UI: Fix locale text alignment 2017-02-06 01:39:44 +01:00
jp9000 be7389ed2e UI: Clarify "Always minimize to tray" option
Makes it a bit more clear that this always minimizes to system tray.
2017-01-30 18:39:53 -08:00
Jim 41dad9dfcd Merge pull request #777 from cg2121/separate-timers
UI: Add separate timers to status bar
2017-01-30 18:07:53 -08:00
jp9000 0fcd661e13 UI: Remove unused variables
Closes jp9000/obs-studio#778
2017-01-30 16:55:29 -08:00
Alexandre Vicenzi 722443b228 UI: Fix linux display/resize bug with preview widget
On linux, the main window isn't immediately set to a native widget, so
the call:

connect(windowHandle(), &QWindow::screenChanged, displayResize);

on line 189 will fail, causing the preview widget to not properly resize
when the main window is resized.

Closes jp9000/obs-studio#776
2017-01-29 19:51:42 -08:00
Jim ce46ffa82e Merge pull request #758 from cg2121/command-line-args
UI: Add more command line options
2017-01-29 19:42:37 -08:00
EpicCoder 73a1bf9236 UI: Fix scaling in viewport when source flipped
Fixes bug 617 on mantis.  Scaling the source manually in the viewport
wouldn't work properly when the source is flipped horizontally or
vertically.

Closes jp9000/obs-studio#751
2017-01-29 19:21:11 -08:00
dennis 21584fa2c0 UI: Add auto-start replay buf. opt. when stream starts
Closes jp9000/obs-studio#748
2017-01-29 19:09:23 -08:00
cg2121 29f22e72a8 UI: Add option to save projectors
This adds an option to the general settings to save the opened
projectors on exit.

(Note: Fixed conflicts -Jim)

Closes jp9000/obs-studio#743
2017-01-29 06:02:15 -08:00
SuslikV 7eee8de331 UI: Do not quit program when last windows are projectors
Prevents the program from unintentionally quitting if the program is
minimized to the task tray and the user closes all projectors

Closes jp9000/obs-studio#737
2017-01-25 20:23:03 -08:00
SuslikV d473b2da96 UI: Hide/show dialogs when minimizing to tray
Hides dialogs when minimizing to tray, and shows again when restoring
from tray.

Closes jp9000/obs-studio#737
2017-01-25 20:22:55 -08:00
SuslikV abe4bfd96e UI: Add option to always minimize to tray
Closes jp9000/obs-studio#737
2017-01-25 20:22:45 -08:00
cg2121 9fe127ec04 UI: Add separate timers to status bar
This adds separate timers for streaming and recording to the status bar.
2017-01-25 00:15:59 -06:00
cg2121 cdf8a40bf1 UI: Add connection status square to status bar
Closes jp9000/obs-studio#720
2017-01-24 15:54:59 -08:00
jp9000 85c43cd666 UI: Protect debug text static string var with mutex 2017-01-24 12:49:47 -08:00
Lionheart Zhang 9050febf06 UI: Convert to wide before outputting debug text (win)
Fixes an issue where non-english debug text wouldn't display correctly
in the debugger output on windows.  Also, only output debug text when
actually debugging.

Closes jp9000/obs-studio#734
2017-01-24 12:32:23 -08:00
shiina424 36bf5988d2 UI: Fix bug with uncopied profile import/export files
streamEncoder.json and recordEncoder.json are missing.  Thess files are
generated when the output mode is advanced, and the user modifies
encoder settings.

Closes jp9000/obs-studio#741
2017-01-16 03:55:20 -08:00
Gol-D-Ace e4f32aa54a Update translations from Crowdin 2017-01-16 12:44:07 +01:00
cg2121 7c98edccc5 UI: Add more command line options 2017-01-11 15:48:59 -06:00
Gol-D-Ace 6223ed6520 Update translations from Crowdin 2017-01-07 00:23:16 +01:00
shiina424 5133353d92 frontend-tools: Fix output-timer translation bug
Don't use tr() to translate, use obs_module_text().

Closes jp9000/obs-studio#735
2016-12-24 04:16:31 -08:00
SuslikV fae5082b8b UI: Fix Export QFileDialog parent 2016-12-24 13:44:41 +02:00
jp9000 9e7daff511 frontend-tools: Set buddied controls for captions dialog 2016-12-24 03:01:48 -08:00
jp9000 5e19fa7cd9 frontend-tools: Don't include colon in "Audio Source"
Makes it consistent with how UI locale is with the rest of the program.
2016-12-23 20:23:38 -08:00
jp9000 950f677cc2 frontend-tools: Reset stop event before starting captions
In case the stop event has already been set and hasn't had a chance to
unset for whatever reason.
2016-12-23 20:21:56 -08:00
jp9000 d32f7c95a2 frontend-tools: Detach caption thread if critical failure
Prevents the thread from being considered "active" if a critical failure
occur, so calling the stop function won't be necessary.
2016-12-23 20:21:55 -08:00
jp9000 869692098a frontend-tools: Add ability to select caption language
Also, default to current user UI language.
2016-12-23 20:21:54 -08:00
Gol-D-Ace 69f0bc244a Update translations from Crowdin 2016-12-23 20:46:47 +01:00
jp9000 b8e078f2bf frontend-tools: Add caption generation tool (windows)
Allows generating captions via the windows speech recognition API
(SAPI).

This is currently marked as experimental due to speech recognition
technology still being less than ideal.  Speech recognition technology
in general is probably never going to be anywhere near perfect.
Microsoft's speech recognition in particular requires a bit of training
via the windows speech recognition tool to ensure it can dictate better.
Clear speech with a good mic is recognized fairly well, but casual
speech and/or speaking with a poor microphone will have some significant
issues.  Captions can often be way off when speaking casually rather
than with clear diction.
2016-12-23 10:37:13 -08:00
jp9000 2cbb3c2505 frontend-tools: Move source helper functions to a header 2016-12-23 10:37:10 -08:00
jp9000 fb60a5f1e9 UI: Fix settings window stacked widget index 2016-12-22 07:04:15 -08:00
jp9000 579a5019d8 UI: Fix video initialization failure error message
It incorrectly assumed windows systems before, now it uses an
appropriate platform-independent error message.  Also fixes a missing
word.
2016-12-22 06:57:26 -08:00
jp9000 a2c92b1c69 UI: Add default audio track bitrates
Closes jp9000/obs-studio#732
2016-12-22 06:54:44 -08:00
jp9000 94a4228904 UI: Fix buddy controls with new audio tracks 2016-12-22 06:53:01 -08:00
jp9000 c11572fddf UI: Clarify startup error messages related to video 2016-12-21 19:22:16 -08:00
jp9000 2df7e16b44 UI: Use 64bit desktop link by default in installer 2016-12-21 18:43:52 -08:00
jp9000 005fd823cb UI: Fix endif in installer 2016-12-21 18:43:30 -08:00
jp9000 09a12fcf98 UI: Update locale for 6 tracks 2016-12-21 17:41:59 -08:00
jp9000 c4ec1bc28a UI: Increase maximum audio tracks to 6 2016-12-21 17:14:24 -08:00
cg2121 9f0c48d9c7 UI: Add import/export of scene collections & profiles
Closes jp9000/obs-studio#721
2016-12-19 04:44:57 -08:00
Ryan Foster 42a646f28e UI: Add ability to copy-paste scene item transforms
This commit adds the ability to copy a scene item's transform and crop
settings and paste those settings onto another scene item in any scene
or scene collection. It also changes the menu shortcut key for the
Transform action "Center to screen" from "C" to "n" because "C" is the
standard shortcut key for "Copy" in most other applications.

Closes jp9000/obs-studio#719
2016-12-18 17:21:58 -08:00
SuslikV ee019c7761 UI: Make close button default in transform dialog
Improves ease of use.

Closes jp9000/obs-studio#731
2016-12-18 06:28:08 -08:00
Michael Fabian Dirks db7632e7fd UI: Use dedicated GPU on Hybrid AMD GPU systems
This enables use of the dedicated GPUs for AMD PowerXpress systems.
Especially important for Adapter selection, as usually the dedicated GPU
is hidden/inactive until needed.

Closes jp9000/obs-studio#706
2016-12-17 20:06:39 -08:00
Jim 4b8411fa4d Merge pull request #716 from flash0110/ui_fix-frontend-api-scene-added
UI: Fix frontend-api event call for adding scenes
2016-12-17 18:59:40 -08:00
jp9000 580f38a733 UI: Remove deleteLater view from filter window layout
In the filters dialog, when the properties are being updated due to
filters being added/removed/switched, using deleteLater on the previous
view would cause it to linger in the view until the deleteLater is
processed by the Qt queue, displaying two views instead of one.
Additionally because of that, this would also cause the display in the
filters dialog to resize as well, causing the reorder mutex hard lock
which was fixed by the parent commit.

Closes jp9000/obs-studio#714
2016-12-17 15:32:19 -08:00
vic 7db00a18fa UI: Fix property name bug in frontend API
This commit fixes a bug that would cause the frontend API function
obs_frontend_set_current_scene_collection to never be successful.  Due
to the bug, the following null pointer check would always fail, so the
action would never be triggered.

Modification by Jim: Instead of fixing the typo that caused this to
occur, make it so both scene collection menus and profile menus both use
"file_name" consistently.

Closes jp9000/obs-studio#712
2016-12-16 16:43:12 -08:00
jp9000 1865285ccb UI: Fix replay buffer compile issues on older compilers 2016-12-11 21:04:58 -08:00
jp9000 ec60ab9bc6 UI: Add file prefix/suffix options for replay buffer
Adds the ability to use a specific prefix and/or suffix on replay buffer
filenames to distinguish them from normal recordings.  Defaults to
having the prefix "Replay".
2016-12-09 14:48:44 -08:00
jp9000 f790d0fe08 UI: Separate replay buffer from recording
Replay buffer and recording should be separate in case the user wants to
start recording from a specific point rather being forced to reconfigure
for regular recording.

Creates a new button on the main window below the recording button for
turning on/off the replay buffer.
2016-12-09 14:47:03 -08:00
jp9000 8f36d122be UI: Clarify replay buf. hotkey error message
It should specify that the user specifically needs to set the "save"
hotkey, not just "the replay buffer hotkey".
2016-12-09 14:46:17 -08:00
jp9000 752c118f2e UI: Add replay buffer options to simple output mode 2016-12-08 03:36:19 -08:00
jp9000 47fe89b964 UI: Disable simple output rec. settings when active 2016-12-08 03:36:18 -08:00
jp9000 b277000f97 libobs/util: Add function to generate formatted filenames
(Note: This commit also modifies the UI)

Being able to generate file names based upon a specification is useful
for more than just the UI; it can also be useful for things such as the
replay buffer where file names need to be generated on the fly.
2016-12-08 03:27:34 -08:00
Alexander Uhlmann 90a9d1d726 UI: Fix frontend-api event call for adding scenes
Added missing frontend-api event call for AddScene and removed thus
obsolete event call in DuplicateSelectedScene.
2016-12-02 20:37:15 +01:00
cg2121 c6c58e55b3 frontend-tools: Add options to start output timers every time
Adds options to start output timers every time streaming or recording
has started.

Closes jp9000/obs-studio#668
2016-11-25 10:05:11 -08:00
Gol-D-Ace 2d47dc4e2c Update translations from Crowdin 2016-11-20 12:22:26 +01:00
Jim e87a819fe1 Merge pull request #694 from Savestate2A03/preview_scrolling_while_locked
UI: Enable scrolling while preview is locked
2016-11-20 03:02:17 -08:00
jp9000 d73303a9f9 UI: Update installer script to latest version 2016-11-19 11:02:22 -08:00
Jim 4388ab36c4 Merge pull request #696 from TotalCaesar659/master
UI: tray icons are redrawn for better visibility and contrast
2016-11-17 10:24:04 -08:00
Jim 8d86f49003 Merge pull request #682 from Xaymar/cmd_verbose_unfiltered
UI: Add --verbose and --unfiltered_log command line options
2016-11-16 20:50:01 -08:00
Michael Fabian Dirks 949400118e UI: Update settings and fix presets for simple AMD encoder 2016-11-17 04:40:49 +01:00
Grigorii Chirkov 481ba29c69 UI: tray icons are redrawn for better visibility and contrast 2016-11-17 00:57:58 +03:00
Gol-D-Ace 90e805ad9b Update translations from CrowdIn 2016-11-16 00:32:47 +01:00
Joseph El-Khouri cbe2abf0b1 UI: Fix scrolling while preview is locked
As reboot pointed out, it's assumed that the intention of a locked
preview is to prevent editing the scene. Because scrolling the preview
does not have any interaction with the scene and its sources, you should
be able to still scroll around and look at different parts of your
preview while the preview is locked.

There is also a bugfix included: previously, if you were to
right click while space bar was held down, you would be stuck in
scroll mode until spacebar is pressed/released again. This gets around
it by forcing scroll mode to end when a right click is issued on the
preview.
2016-11-12 22:22:33 -05:00
cryptonaut 21ab517ba9 UI: Fix crash when switching encoders in advanced mode
On linux, the JSON file handling code will try to read the directory
itself as a file, which can cause a crash.

Closes jp9000/obs-studio#681
2016-11-10 10:41:05 -08:00
Joseph El-Khouri 3b616823a1 UI: Add preview scaling options
Adds preview scaling to the right-click context menu for the preview
pane.  This allows the ability to, for example, zoom the preview and
edit the preview 1:1 (canvas/base resolution).  This was a missing
parity feature.  Additionally, also allows scaling to the
"output/scaled" resolution the program is set to.

When the preview is in scale mode and is the focused widget, you can
hold space and drag with left click to change the zoomed position.

(Notes added by Jim)

Closes jp9000/obs-studio#687
2016-11-09 14:21:47 -08:00
jp9000 fa0bd585a5 Revert "UI: Enable HiDPI scaling."
This reverts commit c4eebbba54.
2016-11-04 04:27:07 -07:00
jp9000 06894c6e84 Revert "UI: Only scale HiDPI on QT 5.6+"
This reverts commit 404258f41a.
2016-11-04 04:26:52 -07:00
Ryan Foster 2c5577facd UI: Fix tab order of Crop fields in Transform Properties 2016-11-04 06:25:46 -04:00
jp9000 ed85b22534 Update translations from CrowdIn 2016-11-03 13:32:52 -07:00
Jim f8f71541ad Merge pull request #680 from Xaymar/plugin_enc-amf
enc-amf: Update to version 1.4.0.0
2016-11-03 13:09:51 -07:00
Michael Fabian Dirks 01a33edea9 UI: Add AMD presets and update settings 2016-11-03 20:34:57 +01:00
jp9000 d0e186497f UI: Allow the ability to use deprecated sources 2016-11-03 12:28:33 -07:00
Michael Fabian Dirks cc1949c251 UI: Add --verbose and --unfiltered_log command line options
--verbose enables logging of messages and LOG_INFO and --unfiltered_log disables repeated log line filters. Both are useful for extreme support sessions where things have gone so far south that you actually would need this.
2016-11-03 16:14:01 +01:00
jp9000 d5ad621dd1 UI: Fix --profile option not working on non-windows
Using "*.*" as a search string is a windows-specific search term.  "*"
should be used instead.
2016-10-20 12:41:56 -07:00
Christoph Hohmann 623c9dc41a UI: Fix full screen projector on screens that have reserved areas
QScreen::availableGeometry() does not return the full screen size on X11
if areas of the screen are reserved by the window manager. In this case
the full screen projector does not cover the whole screen. Using
QScreen::geometry() instead fixes this issue.
2016-10-20 15:32:15 +02:00
jp9000 83fa6e728a UI: Remove unused variable 2016-10-19 06:52:57 -07:00
jp9000 ee7e319a61 UI: Fix improper brace placement for function 2016-10-19 06:49:12 -07:00
jp9000 9081df9708 UI: Fix poor handling of system tray pointers
The original pull request that added the system tray feature was riddled
with bad pointer usage.  Bare pointers that are never properly freed,
never contained within a QPointer or unique_ptr.

These have now been changed to use QPointer variables, and to always
check when the variables are valid before using.  The order of
destruction for QMenu that uses the actions has now been prioritized
first before the actions.
2016-10-19 06:48:03 -07:00
jp9000 dadefceccf UI: Fix sys. tray crashes when sys. tray not available
When the system tray is not available, the system tray variables would
still be used despite not being initialized.

Fixes mantis bug 640 on linux systems in particular that may not always
have system tray available.
2016-10-19 05:32:01 -07:00
cg2121 6639847017 frontend-tools: Add ability to start timer if output is already active
This adds the ability to start the output timer if streaming or recording is already active.
2016-10-17 22:20:24 -05:00
Christoph Hohmann a1ea6e4f51 frontend-tools: Code cleanup of output timers 2016-10-17 17:28:05 +02:00
cg2121 7e5c7da542 frontend-tools: Add output timers
This adds streaming and recording timers to the frontend tools.

Closes jp9000/obs-studio#625
2016-10-17 02:47:29 -07:00
jp9000 971dd4945c UI: Fix bug in frontend API event
Was using main->outputHandler->StreamingActive() for the
obs_frontend_recording_active function.
2016-10-17 02:45:28 -07:00
jp9000 e2af0eec04 obs-frontend-api: Add library version 2016-10-16 00:08:49 -07:00
Michael Fabian Dirks bd606785fe UI: Split Properties window with a QSplitter
Closes jp9000/obs-studio#645
2016-10-09 18:47:32 -07:00
Michael Fabian Dirks d324713364 UI: Add raw text and text file to drag&drop support
Closes jp9000/obs-studio#644
2016-10-09 18:39:53 -07:00
Ryan Foster b75292dbf4 UI: Add Portable Mode indicator to title bar and log
Closes jp9000/obs-studio#654
2016-10-09 18:10:18 -07:00
Colin Edwards 404258f41a UI: Only scale HiDPI on QT 5.6+ 2016-10-04 22:46:52 -05:00
Jim a80d334cf6 Merge pull request #640 from DDRBoxman/HiDPI
UI: Enable HiDPI scaling.
2016-10-04 11:30:34 -07:00
Jim f81637718b Merge pull request #647 from wt/remove_GetMonitors
Remove get monitors
2016-10-03 23:54:36 -07:00
Warren Turkal f3eb8aacfe UI: Use Qt lib for screen info instead of x11 libs
All of the monitor discovery logic can be implemented with Qt. This
change removes all the x11 implementations in favor of Qt and removes a
fair amount of platform specific code.
2016-10-03 23:50:13 -07:00
Ryan Foster 91b64657c6 frontend-tools: Fix crash when adding invalid regex
When adding a new regex rule to the Automatic Scene Switcher, OBS would
crash if the regex was invalid. This was because the regex was added to
the Regex object without a test or try-catch. This commit fixes that
behavior, and adds a warning message when attempting to add an invalid
regex.
2016-10-02 23:28:38 -04:00
Colin Edwards c4eebbba54 UI: Enable HiDPI scaling.
This makes the app much more usable on hidpi screen devices like the
surface.
2016-09-30 01:05:14 -05:00
jp9000 48f0c73f82 UI: Use rect intersection test for validating position
Instead of checking to see if the window's position is valid, check to
see if the rectangles of the window and the monitor intersect via a
rectangle intersection test.
2016-09-28 22:26:28 -07:00
jp9000 071ed465cb UI: Fix window size/pos not saving on exit 2016-09-28 02:01:25 -07:00
jp9000 cdd788c4be UI: Just use 'OK' button for license agreement dialog
An "I Agree" or "I Disagree" button isn't necessary for GPL.
2016-09-27 18:06:09 -07:00
Gol-D-Ace aadc7263c0 Update translations from Crowdin 2016-09-28 01:17:24 +02:00
jp9000 eb1fecdd34 UI: Add media/image file drop support 2016-09-27 10:01:22 -07:00
Michael Fabian Dirks 857cf00a39 UI: Implement simple output mode presets for AMD
Closes jp9000/obs-studio#630
2016-09-26 18:51:03 -07:00
jp9000 b9b6f70cd5 UI: Make sure all dialogs are closed when hiding window
Fixes a crash that could happen where you close the window while the
main window is hiding, and then the app mistakenly thinks that "all
windows are closed" and initiates shutdown while the main window is
still active but hidden.
2016-09-21 21:20:49 -07:00
jp9000 406a8c89ca UI: Disable hiding if settings open
Fixes a bug where you could minimize to tray if the settings window was
open.
2016-09-21 21:20:06 -07:00
Christoph Hohmann 7de289f6cc UI: Fix crash in filters dialog caused by access to deleted widget 2016-09-20 16:23:11 +02:00
Jim b2fd5ca25e Merge pull request #607 from CoDEmanX/master
Don't nudge sources if preview is locked
2016-09-16 20:43:47 -07:00
cg2121 883f9f204b UI: Add reset/close buttons to transform dialog
Adds a reset and close button to the transform dialog.

Closes jp9000/obs-studio#612
2016-09-16 20:30:52 -07:00
jp9000 b8acca7cca UI: Hide deprecated sources from add source popup menu 2016-09-14 16:59:45 -07:00
jp9000 dc2915dc3b UI: Sort 'Add' source popup menu 2016-09-14 16:59:28 -07:00
jp9000 4584ef2511 UI: Limit font size for font property label
If the font size is too big, it can take up the entire properties view
window.
2016-09-14 16:59:27 -07:00
jp9000 2b4bf21416 UI: Add tooltips (long description) to property controls 2016-09-11 04:15:57 -07:00
jp9000 5c5d0ba9e5 UI: Add ability to forcibly stop streams/recordings
If the user hits the "stop stream" button it'll transition in to
"stopping stream..." and will continue to output until the stream
reaches the timing in which "stop" was pressed.

However, if there is significant congestion, stopping the stream can
take far longer than the user may like.  So there needs to be an option
to forcibly stop the stream in that case; pushing the "stop" button a
second time should allow the user to tell the stream/recording to stop
right away instead of waiting for the precise stop timing.
2016-09-09 17:39:21 -07:00
Richard Stanway 007d39e296
UI/installer: Miscellaneous installer improvements
- Checks for previous instances by using the FindProcDLL NSIS plugin

- No longer allows ignoring if there is a sharing violation.

- Added version information section to allow friendly description in
  the UAC elevation prompt.

- Kill lingering instances of cef-bootstrap before installing.
2016-09-07 23:52:04 +02:00
jp9000 be89ef8712 frontend-tools: Remove unused locale 2016-09-07 06:01:42 -07:00
jp9000 39592ff5eb frontend-tools: Add scene switcher plugin 2016-09-06 22:01:50 -07:00
jp9000 8836592d92 UI: Add front-end API library
Allows manipulating and modifying the front-end via plugins.
2016-09-06 22:01:48 -07:00
jp9000 bfc21317bf UI: Make scene collection/profile enum funcs external
Allows using the functions outside of the file they're in.
2016-09-06 04:54:24 -07:00
jp9000 9ed95b2497 UI: Change certain scene functions to slot functions
This allows using the functions via Qt message queue.  The reason for
this is so a frontend API can queue these functions to call safely from
another thread.
2016-09-06 04:54:23 -07:00
CoDEmanX 4986cbae30 UI: Don't nudge source if preview is locked 2016-09-02 17:13:45 +02:00
jp9000 01b274f1da UI: Rename 'obs' dir to 'UI'
This is to prevent confusion both when prefixing commits and when
reading the directory structure for the first time.
2016-08-27 20:19:45 -07:00