jp9000
fabb99c35a
UI: Add UpdateTitleBar function to basic UI
2015-07-03 18:21:23 -07:00
jp9000
b566428233
UI: Allow resize without timers
...
This prevents the weird stretching effect that occurs whenever a windows
is in the process of being resized by the user.
Originally it was intended as an optimization, but even on half-decent
computers it doesn't really have much benefit.
2015-07-03 10:10:58 -07:00
jp9000
da358da9a7
UI: Save project only on new changes
2015-07-02 18:08:55 -07:00
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
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
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
Palana
66fd1b2e80
UI: Ignore sources selection self-update roundtrips
2015-06-28 04:10:10 +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
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
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
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
9cda23f4b9
UI: Add basic hotkey integration
2015-05-11 20:45:26 +02:00
Palana
71abed387f
(API Change) libobs: Make obs_service refcounted
2015-05-07 02:08:05 +02: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
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
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
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
jp9000
f4704cf4a8
UI: Use 'reorder' signal for scene item reordering
...
The old signals for for reordering have been removed; the new signal to
use is the 'reorder' signal, which means that the list needs to be
refreshed.
2015-03-05 02:28:17 -08:00
Caleb Anderson
c3e382c8f7
UI: View Log menu entry in Help -> Log Files menu
...
Since the file being logged to changes with each run, opening a log
file is a tad more involved than desirable when it's necessary to view
the log each time OBS is run. This new menu entry shortcuts opening the
file from the file system manually.
2015-02-24 01:44:37 -07:00
fryshorts
90ccae6f4c
UI: Ensure only one advanced audio settings window
...
Add a check to prevent that the advanced audio settings dialog is only
once. When the dialog is already present raise it to the top instead.
2015-02-13 13:11:15 +01:00
jp9000
69c6714090
UI: Make service settings use OK/Apply/Cancel
...
Currently service settings are updated in real time via the properties
view, which means that OK/Cancel/Apply have no effect. This fixes that
by using the new type of properties view that operates only on settings
data, not an object.
2015-02-07 08:11:46 -08:00
jp9000
a3e47e53bf
UI: Add button for adv. audio properties
...
Add a button to the main window to access advanced audio properties to
make it a bit more visible to users.
To facilitate this, the bottom part of the window was switched to a grid
layout.
2015-02-07 02:43:37 -08:00
jp9000
07007bcc6e
UI: Refactor output handling
...
To accommodate multiple types of outputs, there has to be some level of
abstraction. The BasicOutputHandler structure will give us a way that
we can switch between different output configurations.
2015-02-06 03:17:33 -08:00
jp9000
e8002dc9ed
UI: Save at regular intervals
...
Save the file when "start recording" or "start streaming" is clicked,
and also save at every 20 second interval
2015-01-05 02:45:40 -08:00
jp9000
6fc52dfb16
UI: Add advanced audio properties dialog
...
This dialog gives options such as increasing audio past 100%, forcing
the audio of a source to mono, and setting the audio sync offset of a
source (which was an oft-requested feature)
2014-12-28 01:51:56 -08:00
fryshorts
ca8ac4e809
obs: Refactor network requests.
...
Remove unneeded class members for request and buffer handling.
Let Qt do all the hard work here, keeping track of requests and
associated data.
2014-12-25 14:53:09 +01:00
Palana
1e41dab7b5
Open source properties on double click
2014-10-19 19:16:04 +02:00
Palana
cf3ca1d5fc
Propagate preview window selection to sources list
2014-10-13 22:16:32 +02:00
Palana
c9ee436e1c
Add UI for remuxing recordings via FFmpeg
2014-10-12 19:56:52 +02:00
jp9000
c9df41c1e2
(API Change) Remove pointers from all typedefs
...
Typedef pointers are unsafe. If you do:
typedef struct bla *bla_t;
then you cannot use it as a constant, such as: const bla_t, because
that constant will be to the pointer itself rather than to the
underlying data. I admit this was a fundamental mistake that must
be corrected.
All typedefs that were pointer types will now have their pointers
removed from the type itself, and the pointers will be used when they
are actually used as variables/parameters/returns instead.
This does not break ABI though, which is pretty nice.
2014-09-25 21:48:11 -07:00
John Bradley
4221134748
Add interaction gui
2014-09-15 18:29:26 -05:00
John Bradley
3f993e40df
Add helper function to get specific scene item
2014-09-15 18:19:39 -05:00
Palana
083b5d693b
Update statusbar when recording
2014-08-25 03:18:05 +02:00
Palana
ca8aba0bf4
Add Help -> "Show Log Files" menu entry
2014-08-22 19:10:44 +02:00
Palana
a64707a4f5
Add File -> "Show Recordings" menu entry
2014-08-22 19:10:44 +02:00
jp9000
5780f3f177
(API Change) Improve graphics API consistency
...
Summary:
- Prefix all graphics subsystem names with gs_ or GS_
- Unsquish funciton names (for example _setfloat to _set_float)
- Changed create functions to be more consistent with the rest of the
API elsewhere. For exmaple, instead of
gs_create_texture/gs_texture_destroy, it's now
gs_texture_create/gs_texture_destroy
- Renamed gs_stencil_op enum to gs_stencil_op_type
From: To:
-----------------------------------------------------------
tvertarray gs_tvertarray
vb_data gs_vb_data
vbdata_create gs_vbdata_create
vbdata_destroy gs_vbdata_destroy
shader_param gs_shader_param
gs_effect gs_effect
effect_technique gs_effect_technique
effect_pass gs_effect_pass
effect_param gs_effect_param
texture_t gs_texture_t
stagesurf_t gs_stagesurf_t
zstencil_t gs_zstencil_t
vertbuffer_t gs_vertbuffer_t
indexbuffer_t gs_indexbuffer_t
samplerstate_t gs_samplerstate_t
swapchain_t gs_swapchain_t
texrender_t gs_texrender_t
shader_t gs_shader_t
sparam_t gs_sparam_t
effect_t gs_effect_t
technique_t gs_technique_t
eparam_t gs_eparam_t
device_t gs_device_t
graphics_t graphics_t
shader_param_type gs_shader_param_type
SHADER_PARAM_UNKNOWN GS_SHADER_PARAM_UNKNOWN
SHADER_PARAM_BOOL GS_SHADER_PARAM_BOOL
SHADER_PARAM_FLOAT GS_SHADER_PARAM_FLOAT
SHADER_PARAM_INT GS_SHADER_PARAM_INT
SHADER_PARAM_STRING GS_SHADER_PARAM_STRING
SHADER_PARAM_VEC2 GS_SHADER_PARAM_VEC2
SHADER_PARAM_VEC3 GS_SHADER_PARAM_VEC3
SHADER_PARAM_VEC4 GS_SHADER_PARAM_VEC4
SHADER_PARAM_MATRIX4X4 GS_SHADER_PARAM_MATRIX4X4
SHADER_PARAM_TEXTURE GS_SHADER_PARAM_TEXTURE
shader_param_info gs_shader_param_info
shader_type gs_shader_type
SHADER_VERTEX GS_SHADER_VERTEX
SHADER_PIXEL GS_SHADER_PIXEL
shader_destroy gs_shader_destroy
shader_numparams gs_shader_get_num_params
shader_getparambyidx gs_shader_get_param_by_idx
shader_getparambyname gs_shader_get_param_by_name
shader_getviewprojmatrix gs_shader_get_viewproj_matrix
shader_getworldmatrix gs_shader_get_world_matrix
shader_getparaminfo gs_shader_get_param_info
shader_setbool gs_shader_set_bool
shader_setfloat gs_shader_set_float
shader_setint gs_shader_set_int
shader_setmatrix3 gs_shader_setmatrix3
shader_setmatrix4 gs_shader_set_matrix4
shader_setvec2 gs_shader_set_vec2
shader_setvec3 gs_shader_set_vec3
shader_setvec4 gs_shader_set_vec4
shader_settexture gs_shader_set_texture
shader_setval gs_shader_set_val
shader_setdefault gs_shader_set_default
effect_property_type gs_effect_property_type
EFFECT_NONE GS_EFFECT_NONE
EFFECT_BOOL GS_EFFECT_BOOL
EFFECT_FLOAT GS_EFFECT_FLOAT
EFFECT_COLOR GS_EFFECT_COLOR
EFFECT_TEXTURE GS_EFFECT_TEXTURE
effect_param_info gs_effect_param_info
effect_destroy gs_effect_destroy
effect_gettechnique gs_effect_get_technique
technique_begin gs_technique_begin
technique_end gs_technique_end
technique_beginpass gs_technique_begin_pass
technique_beginpassbyname gs_technique_begin_pass_by_name
technique_endpass gs_technique_end_pass
effect_numparams gs_effect_get_num_params
effect_getparambyidx gs_effect_get_param_by_idx
effect_getparambyname gs_effect_get_param_by_name
effect_updateparams gs_effect_update_params
effect_getviewprojmatrix gs_effect_get_viewproj_matrix
effect_getworldmatrix gs_effect_get_world_matrix
effect_getparaminfo gs_effect_get_param_info
effect_setbool gs_effect_set_bool
effect_setfloat gs_effect_set_float
effect_setint gs_effect_set_int
effect_setmatrix4 gs_effect_set_matrix4
effect_setvec2 gs_effect_set_vec2
effect_setvec3 gs_effect_set_vec3
effect_setvec4 gs_effect_set_vec4
effect_settexture gs_effect_set_texture
effect_setval gs_effect_set_val
effect_setdefault gs_effect_set_default
texrender_create gs_texrender_create
texrender_destroy gs_texrender_destroy
texrender_begin gs_texrender_begin
texrender_end gs_texrender_end
texrender_reset gs_texrender_reset
texrender_gettexture gs_texrender_get_texture
GS_BUILDMIPMAPS GS_BUILD_MIPMAPS
GS_RENDERTARGET GS_RENDER_TARGET
gs_device_name gs_get_device_name
gs_device_type gs_get_device_type
gs_entercontext gs_enter_context
gs_leavecontext gs_leave_context
gs_getcontext gs_get_context
gs_renderstart gs_render_start
gs_renderstop gs_render_stop
gs_rendersave gs_render_save
gs_getinput gs_get_input
gs_geteffect gs_get_effect
gs_create_effect_from_file gs_effect_create_from_file
gs_create_effect gs_effect_create
gs_create_vertexshader_from_file gs_vertexshader_create_from_file
gs_create_pixelshader_from_file gs_pixelshader_create_from_file
gs_create_texture_from_file gs_texture_create_from_file
gs_resetviewport gs_reset_viewport
gs_set2dmode gs_set_2d_mode
gs_set3dmode gs_set_3d_mode
gs_create_swapchain gs_swapchain_create
gs_getsize gs_get_size
gs_getwidth gs_get_width
gs_getheight gs_get_height
gs_create_texture gs_texture_create
gs_create_cubetexture gs_cubetexture_create
gs_create_volumetexture gs_voltexture_create
gs_create_zstencil gs_zstencil_create
gs_create_stagesurface gs_stagesurface_create
gs_create_samplerstate gs_samplerstate_create
gs_create_vertexshader gs_vertexshader_create
gs_create_pixelshader gs_pixelshader_create
gs_create_vertexbuffer gs_vertexbuffer_create
gs_create_indexbuffer gs_indexbuffer_create
gs_gettexturetype gs_get_texture_type
gs_load_defaultsamplerstate gs_load_default_samplerstate
gs_getvertexshader gs_get_vertex_shader
gs_getpixelshader gs_get_pixel_shader
gs_getrendertarget gs_get_render_target
gs_getzstenciltarget gs_get_zstencil_target
gs_setrendertarget gs_set_render_target
gs_setcuberendertarget gs_set_cube_render_target
gs_beginscene gs_begin_scene
gs_draw gs_draw
gs_endscene gs_end_scene
gs_setcullmode gs_set_cull_mode
gs_getcullmode gs_get_cull_mode
gs_enable_depthtest gs_enable_depth_test
gs_enable_stenciltest gs_enable_stencil_test
gs_enable_stencilwrite gs_enable_stencil_write
gs_blendfunction gs_blend_function
gs_depthfunction gs_depth_function
gs_stencilfunction gs_stencil_function
gs_stencilop gs_stencil_op
gs_setviewport gs_set_viewport
gs_getviewport gs_get_viewport
gs_setscissorrect gs_set_scissor_rect
gs_create_texture_from_iosurface gs_texture_create_from_iosurface
gs_create_gdi_texture gs_texture_create_gdi
gs_is_compressed_format gs_is_compressed_format
gs_num_total_levels gs_get_total_levels
texture_setimage gs_texture_set_image
cubetexture_setimage gs_cubetexture_set_image
swapchain_destroy gs_swapchain_destroy
texture_destroy gs_texture_destroy
texture_getwidth gs_texture_get_width
texture_getheight gs_texture_get_height
texture_getcolorformat gs_texture_get_color_format
texture_map gs_texture_map
texture_unmap gs_texture_unmap
texture_isrect gs_texture_is_rect
texture_getobj gs_texture_get_obj
cubetexture_destroy gs_cubetexture_destroy
cubetexture_getsize gs_cubetexture_get_size
cubetexture_getcolorformat gs_cubetexture_get_color_format
volumetexture_destroy gs_voltexture_destroy
volumetexture_getwidth gs_voltexture_get_width
volumetexture_getheight gs_voltexture_get_height
volumetexture_getdepth gs_voltexture_getdepth
volumetexture_getcolorformat gs_voltexture_get_color_format
stagesurface_destroy gs_stagesurface_destroy
stagesurface_getwidth gs_stagesurface_get_width
stagesurface_getheight gs_stagesurface_get_height
stagesurface_getcolorformat gs_stagesurface_get_color_format
stagesurface_map gs_stagesurface_map
stagesurface_unmap gs_stagesurface_unmap
zstencil_destroy gs_zstencil_destroy
samplerstate_destroy gs_samplerstate_destroy
vertexbuffer_destroy gs_vertexbuffer_destroy
vertexbuffer_flush gs_vertexbuffer_flush
vertexbuffer_getdata gs_vertexbuffer_get_data
indexbuffer_destroy gs_indexbuffer_destroy
indexbuffer_flush gs_indexbuffer_flush
indexbuffer_getdata gs_indexbuffer_get_data
indexbuffer_numindices gs_indexbuffer_get_num_indices
indexbuffer_gettype gs_indexbuffer_get_type
texture_rebind_iosurface gs_texture_rebind_iosurface
texture_get_dc gs_texture_get_dc
texture_release_dc gs_texture_release_dc
2014-08-09 11:57:38 -07:00
jp9000
d2b4f82637
(API Change) Rename order_movement
...
Prefix with obs_ for the sake of consistency
Renamed enums:
- order_movement (now obs_order_movement)
Affected functions:
- obs_source_filter_setorder
- obs_sceneitem_setorder
2014-08-08 11:04:43 -07:00
BtbN
34b67db50f
Minor refactor for creation of sub-windows
...
This refactors the sub-window code a bit so that instead of deleting the
window pointers, it calls QWidget::close() on them to safely trigger a
normal close on them instead (which will also delete them).
Moves setting the DeleteOnClose flag from inside of the Dialog classes
into the OBSBasic class, to make that behaviour more obvious.
2014-07-23 17:46:17 +02:00