Commit Graph

2732 Commits (4b93b42dedb13164348e4135d278631d66d63a0f)

Author SHA1 Message Date
jp9000 4b93b42ded UI: Do not save at intervals
Saving at intervals is a poor way to handle saving issues in general.
Best to just save when something has been modified instead.
2015-07-02 18:08:54 -07:00
jp9000 c9f85f167c UI: Add OBSBasic::ClearHotkeys function
Add a function to clear basic window hotkeys to reduces potential code
duplication
2015-07-02 18:08:53 -07:00
jp9000 412fbfce82 UI: Make shortcut filter not filter dialog keys
With dialog boxes, the keys Enter and Escape are important for
accepting/rejecting the dialog.
2015-07-02 18:08:53 -07:00
jp9000 5fc21edc1f UI: Clear scene data before loading new scene data
Clear scene data before loading new scene files or when creating new
scene data from scratch.
2015-07-02 18:08:41 -07:00
jp9000 1d3251a993 UI: Save after creating default scene
When initializing with a default scene, save the data to ensure a file
is actually present when needed (such as for scene collections which may
need the file)
2015-07-02 17:56:05 -07:00
jp9000 4330065d7d UI: Add ClearSceneData to clean up all obs data
Add a central function for clearing all data: scenes, sources, widgets
such as lists that may contain source references in their sub-items,
dialogs which may contain source references.  In certain circumstances
this data must be fully released and manually freed to ensure that there
are no outstanding references to obs data (such as on shutdown, where
all data should be properly freed).
2015-07-02 17:56:05 -07:00
jp9000 20b4a1c008 UI: Manually delete visibility item widgets 2015-07-02 17:56:04 -07:00
jp9000 db9e966e6c UI: Add item widget helper functions
These functions are designed to manually delete item widgets within
other widgets to prevent ->deleteLater from being called on them.  This
prevents the item widgets from being stuck in the event queue, and
prevents references to things like sources from being stuck in the event
queue along with them if they're used in the item widget's class or
functions.
2015-07-02 17:56:03 -07:00
jp9000 e8f30f222d UI: Remove unused signal from basic main window 2015-07-02 17:56:02 -07:00
jp9000 3b16477480 UI: Store global audio sources in scenes file only
Right now, information about global audio sources is stored in both
scene files and in the config.  These must be separated; there's no need
to store them in both when they can just be stored in the scenes file.
2015-07-02 17:18:47 -07:00
jp9000 cb6c90a02c UI: Use platform.h for snprintf
This allows snprintf to be used in any file in the UI.
2015-07-02 17:18:47 -07:00
jp9000 8273d2cf6f UI: Remove redundant directory creation 2015-07-02 17:18:46 -07:00
jp9000 8b338b35b1 UI: Remove whitespace when asking for a name 2015-07-02 17:18:45 -07:00
jp9000 70795300ac UI: Fix typo in error 2015-07-02 17:18:44 -07:00
jp9000 4ed1ee7009 libobs: Check for removals in obs_enum_sources
Checks for removals while enumerating, which allows one to be able to
remove a source in the enumeration.
2015-07-02 17:18:43 -07:00
jp9000 5bcaa7b590 libobs/util: Do not add empty config file values
This allows config file values to defer to their defaults instead of
being null.
2015-07-02 17:18:43 -07:00
jp9000 625ecda3dc libobs/util: Add ConfigFile::Swap function
Allows swapping the internal data of two ConfigFile objects.
2015-07-02 17:18:34 -07:00
jp9000 09b78b12de libobs/util: Add os_copyfile function
Adds a function to copy a file.  On unix-based systems, manually copies
the data with fopen/fread/fwrite/fclose.
2015-07-02 17:18:27 -07:00
jp9000 216baaf799 libobs/util: Add os_rmdir function
Adds a function to remove a directory.
2015-07-02 17:18:23 -07:00
jp9000 50f4793c99 libobs/util: Add os_rename function
Allows moving/renaming of files.
2015-07-02 17:18:15 -07:00
Palana 7766f5a42f coreaudio-encoder: Register get_properties 2015-07-02 10:05:31 +02:00
Palana 61dd42565c coreaudio-encoder: Add missing da_free call
Fortunately this didn't actually leak memory since the function was
never called
2015-07-02 10:05:20 +02:00
jp9000 ae733230b7 decklink: Use audio/video timestamps from SDK
System timestamps were being used instead of timestamps from the
audio/video input.  This would cause potential desync as well as
incremental buffering when using devices with the blackmagic video
source.  Using the timestamps direct from the SDK itself fixes those
issues, and causes audio/video to play back properly and in sync.
2015-07-01 20:03:10 -07:00
Jim 1659d04fe0 Merge pull request #442 from shousa/master
UI: Add Audio bitrate
2015-07-01 11:46:08 -07:00
shousa 708bac734f UI: Add Audio bitrate
CoreAudio AAC encoder is now available for both AAC-LC and HE-AAC.
Added some Audio bitrate settings for lower bitrate region.
2015-07-01 20:00:19 +09:00
Palana 8293103106 UI: Fix DoubleSlider behavior for OBS_NUMBER_SLIDER properties
When using e.g. a color correction filter on any source and changing
any value (with slider enabled, e.g. contrast) to -0.10 the value would
get cycle between -0.07/-0.08 at some point when using the up arrow; it
would also get stuck on -0.69.

For the other direction, when starting from e.g. -0.02 the value would
jump from 0.05 to -0.08 when pressing the down arrow.

Problem was reported at https://obsproject.com/forum/threads/32450
2015-07-01 08:22:04 +02:00
jp9000 6f2587d21a UI: Allow cmake vars for deps and add DepsPath var
Allow cmake variables to be used to specify include directories, and
allow DepsPath or DepsPath32/64 to be used to specify dependency
locations.
2015-06-30 10:05:20 -07:00
Palana 82471d7539 UI: Ignore reorder signals from drag&drop reordering
Not ignoring these signals doesn't seem to break anything, but it
shouldn't be necessary to process them either
2015-06-28 05:09:46 +02:00
Palana fc0819ca32 UI: Add workaround for drag&drop removing items with Qt-5.4/win
Workaround taken from <http://stackoverflow.com/a/30291775>,
potentially relevant Qt bug:
<https://bugreports.qt.io/browse/QTBUG-45365>
2015-06-28 05:09:46 +02:00
Palana b53d6e9e58 UI: Add drag&drop reordering for the sources list 2015-06-28 05:09:45 +02:00
Palana 95857b4443 UI: Enable drag&drop reordering for scenes
The empty implementation for the QDataStream operators is necessary to fix
a Qt assertion: "QVariant::save: unable to save type
'std::vector<std::shared_ptr<OBSSignal> >' (type id: 1036)."

It doesn't seem like a full implementation of the stream operators would be
useful since the signal registration is very specific to the interaction
between the scenes and sources list, i.e. in case the scenes list ever accepts
scenes from sources (not 'obs_source's) other than itself (non InternalMove
drag&drop?) it would have to register those scenes with the libobs core which
should trigger the normal signal registration
2015-06-28 05:09:45 +02:00
Palana b543ea6231 UI: Make scene items serializable via QDataStream
This minimal implementation should be enough to drag&drop scenes between UI
elements in the same process in the future
2015-06-28 04:30:17 +02:00
Palana 363b887cad UI: Make scenes serializable via QDataStream
This minimal implementation should be enough to drag&drop scenes between UI
elements in the same process in the future
2015-06-28 04:30:17 +02:00
Palana 9672aa0cb9 UI: Ensure only one source is selected on startup 2015-06-28 04:30:17 +02:00
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 41689fe746 libobs: Add obs_scene_reorder_items 2015-06-28 04:10:10 +02:00
Palana ef9090e0a3 libobs: Add obs_scene_atomic_update 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 f8c5c7f55f obs-filters: Add gain filter
This filter simply modifies the volume of the signal as a convenient way
of modifying the volume before other filters, or amplify the volume
without having to mess with advanced audio properties.
2015-06-26 06:11:54 -07:00
jp9000 8bb84cdb3b obs-filters: Use audio-math.h for db conversions 2015-06-26 03:40:29 -07:00
jp9000 546b189f05 libobs: Use audio-math.h for decibel conversion 2015-06-26 03:40:28 -07:00
jp9000 c82da7da93 libobs/media-io: Add common audio math functions
This adds functions specific to audio math, which at the moment is just
converting to and from decibel and multiple.
2015-06-26 03:40:27 -07:00
jp9000 204d5f30ce obs-filters: Remove fminf/fmaxf redefinitions
These functions are already defined in math.h, so there's no need to
define them again.
2015-06-26 03:03:15 -07:00
jp9000 07ca99f523 obs-filters: Change 'db' abbreviation to 'dB' 2015-06-25 23:28:26 -07: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 3c93345179 UI: Add optional config button to volume controls 2015-06-25 15:55:29 -07:00