Commit Graph

270 Commits (e1f0ac0bd045a06ec7534ea802fddac95638b10c)

Author SHA1 Message Date
Palana e1f0ac0bd0 UI: Ignore source deselect events for now
Also ensure only a single source is selected if it's an update from
libobs
2015-06-28 04:10:10 +02:00
Palana 66fd1b2e80 UI: Ignore sources selection self-update roundtrips 2015-06-28 04:10:10 +02:00
Palana 523e8b2517 UI: Explicitly delete source list items in closeEvent
This should reduce the chances of any deleteLater objects holding strong
references into the libobs core getting stuck in the Qt event queue
2015-06-28 04:04:15 +02:00
Palana e82018579b UI: Remove scene signal handlers in closeEvent 2015-06-28 04:04:15 +02:00
Palana 21ac7a7e46 UI: Add QtDataRole enum
This introduces the OBSSignals data role, which will be used to store
signal handlers in stock Qt objects
2015-06-28 04:04:15 +02:00
Palana 4b003947b8 UI: Clear global signals in closeEvent 2015-06-28 02:42:03 +02:00
jp9000 97ead131c1 UI: Show popup menu w/ vol. control config button
Use the config button on volume controls to allow the ability for
filters/properties to be accessed via the mixer.  Particularly useful
for the purpose of accessing filters/properties of global audio outputs
that are added via audio settings.
2015-06-25 15:55:30 -07:00
jp9000 84567f2745 UI: Implement scene reordering
This simply saves/loads the actual list widget item order.

The reason why this is done is because internally, libobs doesn't have a
list of scenes, it only has a list of sources.  The list of scenes is
actually something artificially implemented by the basic window user
interface.
2015-06-25 03:55:33 -07:00
jp9000 19932f552a UI: Fix output mode name when setting defaults
The item in the [Output] section for the output mode is "Mode", not
"Type".
2015-06-25 01:06:46 -07:00
jp9000 f15965e721 UI: Add menu to visit website to basic main window 2015-06-25 01:02:47 -07:00
jp9000 c618ac4e04 UI: Remove unused signals from basic main window 2015-06-25 00:23:17 -07:00
jp9000 556fde66ae UI: Warn user if recording format unsupported
If the recording format is unsupported or doesn't support multiple
tracks, warn the user to check their settings.
2015-06-21 22:34:54 -07:00
jp9000 a24af63527 UI: Allow multi-track recording in advanced output 2015-06-21 22:34:52 -07:00
jp9000 d07664b129 UI: Add option to select recording format
Add a listboxes to recording to allow changing file formats (allows mp4,
mov, mkv, ts, flv)
2015-06-21 22:34:51 -07:00
Jim 859415943f Merge pull request #436 from ThoNohT/output-folder
Use correct output folder for Show/Remux
2015-06-09 17:32:28 -07:00
jp9000 d16ec97f7b UI: Change default simple audio bitrate to 160
The audio bitrate required is insignificant relative to the video
bitrate, and due to the fact that it's possible that a lower-quality
encoder may be in use (such as FFmpeg's AAC encoder), setting the
default to 160 is really more ideal to reducee any potential quality
loss.
2015-06-05 08:57:01 -07:00
Eric Bataille e42aee5da9 UI: Use correct output folder for Show/Remux
Ensures that the "Show Recordings" an "Remux Recordings" file menu
items will open the recordings folder from the currently active
output mode rather than always the simple output mode.
2015-06-04 20:57:16 +02:00
jp9000 e7eaa268e5 UI: Add option to disable aero on windows vista/7
On windows vista/7, you cannot really use display capture efficiently
without disabling aero, so this will add an option to settings to allow
it to be disabled and cause it to be disabled on startup.
2015-06-02 19:18:15 -07:00
jp9000 4b422d7d23 UI: Replace os_get_config_path with GetConfigPath
This allows the UI to be able to use a custom config path for cases such
as portable mode, where the config path is relative to the executable.
2015-06-01 16:42:30 -07:00
jp9000 13bed1a448 UI: Replace Qt5Network classes with libcurl
The Qt5Network classes seem to only support OpenSSL, and because OpenSSL
isn't available on windows, we would have to distribute it with the
program to get SSL access working.  The problem with that is that
OpenSSL is not GPL-compatible, so we cannot distribute OpenSSL with the
program, which means we have to find a better (and preferably superior)
library for accessing remote files that can use the windows SSPI for our
SSL needs, which comes with the operating system.

Fortunately, libcurl is probably the best library out there, and can be
compiled with SSPI instead of OpenSSL, so we're just going to switch to
libcurl instead.  Originally I thought it didn't support SSPI, otherwise
I would have implemented it sooner.

As a side note, this will make it so we'll able to get files from the
internet via plugins, which will be quite useful.
2015-05-24 16:20:13 -07:00
Palana f6234ec90d UI: Fix push-to-* localization strings being swapped 2015-05-12 21:36:46 +02:00
Palana 37069d372f UI: Add Start/Stop Recording/Streaming hotkeys 2015-05-11 20:45:28 +02:00
Palana 6192b34ab3 UI: Add OBSBasic::StartStreaming/StopStreaming 2015-05-11 20:45:28 +02:00
Palana 508f04d927 UI: Add OBSBasic::StartRecording/StopRecording 2015-05-11 20:45:28 +02:00
Palana 054f00ced1 UI: Add SelectScene hotkey
UI supplied per scene hotkey to allow switching between scenes; this
has to be done in the UI since it's up to the application to define
what exactly "changing/selecting a scene" means (changing the output
of channel 0 may not be enough for other applications)
2015-05-11 20:45:28 +02:00
Palana 9cda23f4b9 UI: Add basic hotkey integration 2015-05-11 20:45:26 +02:00
Palana 9f0696c1d8 UI: Preserve service hotkey data 2015-05-11 20:45:26 +02:00
Palana 1d39c3e9b6 (API Change) libobs: Add hotkey data to *_create functions 2015-05-11 20:45:25 +02:00
Palana ec1043515b UI: Move Recording button label update logic 2015-05-07 02:08:09 +02:00
Palana f1f1ca45df UI: Selectively disable focus frame
NoFocusFrameStyle was meant to disable focus frames around the scenes/sources
list (on OSX); unfortunately it also removed focus frames from controls that
should have focus frames like input boxes in the settings window
2015-05-07 02:08:09 +02:00
Palana 71abed387f (API Change) libobs: Make obs_service refcounted 2015-05-07 02:08:05 +02:00
jp9000 881d1a79d2 UI: Add YUV 4:4:4 format option 2015-04-18 00:03:20 -07:00
jp9000 abdc2b61ce UI: Make RGB output use RGB, not BGR
Noticed that the red and blue channels were inverted when testing.
2015-04-15 18:42:06 -07:00
jp9000 0fbf112491 UI: Fix vec2 warning
Fix warning encountered on clang-504.0.40 on OSX 10.9:

obs/window-basic-main.cpp:2884:22: warning: suggest braces around
initialization of subobject [-Wmissing-braces]
		struct vec2 dir = {0.0f, 0.0f};
2015-04-10 10:07:56 -07:00
jp9000 167e781b5e UI: Add fullscreen projector options
Add the ability to use a fullscreen projector for scenes, sources, and
the preview display.
2015-04-10 07:27:37 -07:00
jp9000 b7421aafde UI: Add up/down/left/right position shortcuts
Allows nudging of selected items in the direction pressed when the
preview window is focused.
2015-04-10 07:27:35 -07:00
jp9000 167df61d03 UI: Add context menu to preview
Includes the ability to disable the preview and general source context
menu options (add/remove/filters/properties/etc)
2015-04-10 07:27:35 -07:00
jp9000 1cfe72664a UI: Remove listbox selection if deselected
If the item currently selected in the source listbox is deselected in
the preview, then make sure to deselect it in the listbox as well.
2015-04-10 07:27:34 -07:00
jp9000 853e63765e UI: Remove redundant config settings
These are replaced by other settings in the global ini file.
2015-04-10 07:27:33 -07:00
jp9000 206ae650de UI: Rename "MainWindow" ini section
Rather than using [MainWindow] in the global ini, explicitly state
BasicWindow instead so we know it's for the basic user interface.
2015-04-10 07:27:33 -07:00
jp9000 9e39a2c787 UI: Use setGeometry to restore saved dimensions
There was an issue where the position/size would keep changing every
time the program opened/closed, was due to the fact that we were not
calling setGeometry to restore the position/size.
2015-03-25 14:14:42 -07:00
jp9000 3c5cc5cd54 UI: Add visibility checkbox to main sources list
Adds a visibility checkbox to the main sources list so that users can
temporarily disable/re-enable sources.  Only applies to scene items, not
the sources themselves.
2015-03-25 14:12:02 -07:00
jp9000 86ed7f12f3 UI: Allow scenes to use filters 2015-03-25 14:12:01 -07:00
jp9000 ceba24c7e9 UI: Add user interface for filters 2015-03-25 14:12:00 -07:00
jp9000 87965fa9eb UI: Clear list boxes in ::closeEvent
Ensures that ->deleteLater events are put in to the event queue before
the destructor is called.
2015-03-22 19:18:12 -07:00
jp9000 6b3d30ef03 UI: Flush event queue before obs_shutdown
Sometimes events with rogue source references are in the event queue
when the program is shutting down.  This can cause the program to
reference freed data.  Processing those remaining events before shutting
down solves the issue.
2015-03-22 19:18:12 -07:00
jp9000 c4ef2522ad UI: Destroy save timer before closing main window
This prevents the save timer from unexpectedly going off during the
middle of the save process.
2015-03-22 19:18:11 -07:00
jp9000 363d8b890d UI: Store proper window pos/size
Only store the last restored (non-maximized and non-minimized) window
position and size on exit.
2015-03-22 19:18:09 -07:00
jp9000 9832a760b8 (API Change) Always use planar float audio output
Core API functions changed:
-----------------------------
EXPORT bool obs_reset_audio(struct audio_output_info *aoi);
EXPORT bool obs_get_audio_info(struct audio_output_info *aoi);

To:
-----------------------------
EXPORT bool obs_reset_audio(const struct obs_audio_info *oai);
EXPORT bool obs_get_audio_info(struct obs_audio_info *oai);

Core structure added:
-----------------------------
struct obs_audio_info {
	uint32_t            samples_per_sec;
	enum speaker_layout speakers;
	uint64_t            buffer_ms;
};

Non-interleaved (planar) floating point output is standard with audio
filtering, so to prevent audio filters from having to worry about
different audio format implementations and for the sake consistency
between user interfaces, make it so that audio is always set to
non-interleaved floating point output.
2015-03-12 22:22:02 -07:00
Socapex 6a16778bc9 UI: Implement theme selection option
OBS will offer the user a list of themes which are .qss files inside
data/obs-studio/themes.  If no theme is found in the configuration, it
loads the default theme for the system.
2015-03-12 09:27:18 -07:00