From c9df41c1e28b8f6c4764d0ade704c8dcb79681ef Mon Sep 17 00:00:00 2001 From: jp9000 Date: Thu, 25 Sep 2014 17:44:05 -0700 Subject: [PATCH] (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. --- libobs-d3d11/d3d11-indexbuffer.cpp | 2 +- libobs-d3d11/d3d11-samplerstate.cpp | 2 +- libobs-d3d11/d3d11-shader.cpp | 48 +- libobs-d3d11/d3d11-shaderprocessor.cpp | 2 +- libobs-d3d11/d3d11-shaderprocessor.hpp | 4 +- libobs-d3d11/d3d11-stagesurf.cpp | 2 +- libobs-d3d11/d3d11-subsystem.cpp | 221 +++++----- libobs-d3d11/d3d11-subsystem.hpp | 35 +- libobs-d3d11/d3d11-texture2d.cpp | 4 +- libobs-d3d11/d3d11-vertexbuffer.cpp | 2 +- libobs-d3d11/d3d11-zstencilbuffer.cpp | 2 +- libobs-opengl/gl-cocoa.m | 22 +- libobs-opengl/gl-indexbuffer.c | 14 +- libobs-opengl/gl-shader.c | 46 +- libobs-opengl/gl-stagesurf.c | 22 +- libobs-opengl/gl-subsystem.c | 139 +++--- libobs-opengl/gl-subsystem.h | 54 +-- libobs-opengl/gl-texture2d.c | 24 +- libobs-opengl/gl-texturecube.c | 14 +- libobs-opengl/gl-vertexbuffer.c | 10 +- libobs-opengl/gl-windows.c | 14 +- libobs-opengl/gl-x11.c | 12 +- libobs-opengl/gl-zstencil.c | 4 +- libobs/callback/calldata.c | 12 +- libobs/callback/calldata.h | 38 +- libobs/callback/proc.c | 10 +- libobs/callback/proc.h | 14 +- libobs/callback/signal.c | 18 +- libobs/callback/signal.h | 22 +- libobs/graphics/device-exports.h | 167 +++---- libobs/graphics/effect-parser.c | 6 +- libobs/graphics/effect-parser.h | 4 +- libobs/graphics/effect.c | 54 +-- libobs/graphics/effect.h | 25 +- libobs/graphics/graphics-ffmpeg.c | 4 +- libobs/graphics/graphics-internal.h | 268 ++++++------ libobs/graphics/graphics-magick.c | 4 +- libobs/graphics/graphics.c | 458 ++++++++++---------- libobs/graphics/graphics.h | 298 ++++++------- libobs/graphics/input.h | 4 +- libobs/graphics/texture-render.c | 18 +- libobs/media-io/audio-io.c | 38 +- libobs/media-io/audio-io.h | 30 +- libobs/media-io/audio-resampler-ffmpeg.c | 6 +- libobs/media-io/audio-resampler.h | 8 +- libobs/media-io/video-io.c | 42 +- libobs/media-io/video-io.h | 36 +- libobs/media-io/video-scaler-ffmpeg.c | 6 +- libobs/media-io/video-scaler.h | 8 +- libobs/obs-data.c | 458 ++++++++++---------- libobs/obs-data.h | 284 ++++++------ libobs/obs-display.c | 12 +- libobs/obs-encoder.c | 64 +-- libobs/obs-encoder.h | 8 +- libobs/obs-internal.h | 80 ++-- libobs/obs-module.c | 28 +- libobs/obs-module.h | 12 +- libobs/obs-output.c | 90 ++-- libobs/obs-output.h | 8 +- libobs/obs-properties.c | 115 ++--- libobs/obs-properties.h | 118 ++--- libobs/obs-scene.c | 97 +++-- libobs/obs-service.c | 42 +- libobs/obs-service.h | 12 +- libobs/obs-source.c | 237 +++++----- libobs/obs-source.h | 18 +- libobs/obs-video.c | 32 +- libobs/obs-view.c | 14 +- libobs/obs.c | 64 +-- libobs/obs.h | 442 +++++++++---------- libobs/obs.hpp | 24 +- libobs/util/config-file.c | 58 +-- libobs/util/config-file.h | 60 +-- libobs/util/platform-cocoa.m | 10 +- libobs/util/platform-nix.c | 20 +- libobs/util/platform-windows.c | 22 +- libobs/util/platform.h | 28 +- libobs/util/text-lookup.c | 8 +- libobs/util/text-lookup.h | 10 +- libobs/util/threading-posix.c | 30 +- libobs/util/threading-windows.c | 22 +- libobs/util/threading.h | 26 +- libobs/util/util.hpp | 12 +- obs/obs-app.cpp | 4 +- obs/obs-app.hpp | 6 +- obs/properties-view.cpp | 46 +- obs/properties-view.hpp | 32 +- obs/volume-control.cpp | 4 +- obs/volume-control.hpp | 6 +- obs/window-basic-interaction.cpp | 2 +- obs/window-basic-interaction.hpp | 2 +- obs/window-basic-main.cpp | 208 ++++----- obs/window-basic-main.hpp | 56 +-- obs/window-basic-preview.cpp | 36 +- obs/window-basic-preview.hpp | 2 +- obs/window-basic-properties.cpp | 2 +- obs/window-basic-properties.hpp | 2 +- obs/window-basic-settings.cpp | 18 +- obs/window-basic-settings.hpp | 2 +- obs/window-basic-source-select.cpp | 20 +- obs/window-basic-source-select.hpp | 6 +- obs/window-basic-status-bar.cpp | 8 +- obs/window-basic-status-bar.hpp | 14 +- obs/window-basic-transform.cpp | 32 +- obs/window-basic-transform.hpp | 10 +- obs/window-main.hpp | 2 +- plugins/image-source/image-source.c | 14 +- plugins/linux-capture/xcompcap-main.cpp | 22 +- plugins/linux-capture/xcompcap-main.hpp | 10 +- plugins/linux-capture/xcomposite-main.cpp | 10 +- plugins/linux-capture/xcursor.c | 4 +- plugins/linux-capture/xcursor.h | 2 +- plugins/linux-capture/xshm-input.c | 18 +- plugins/linux-pulseaudio/pulse-input.c | 30 +- plugins/linux-v4l2/v4l2-input.c | 56 +-- plugins/mac-avcapture/av-capture.m | 44 +- plugins/mac-capture/mac-audio.c | 26 +- plugins/mac-capture/mac-display-capture.m | 44 +- plugins/mac-capture/mac-window-capture.m | 22 +- plugins/mac-capture/window-utils.h | 12 +- plugins/mac-capture/window-utils.m | 28 +- plugins/obs-ffmpeg/obs-ffmpeg-aac.c | 14 +- plugins/obs-ffmpeg/obs-ffmpeg-output.c | 10 +- plugins/obs-libfdk/obs-libfdk.c | 12 +- plugins/obs-outputs/flv-mux.c | 16 +- plugins/obs-outputs/flv-mux.h | 2 +- plugins/obs-outputs/flv-output.c | 18 +- plugins/obs-outputs/rtmp-stream.c | 26 +- plugins/obs-x264/obs-x264.c | 26 +- plugins/rtmp-services/rtmp-common.c | 38 +- plugins/rtmp-services/rtmp-custom.c | 8 +- plugins/text-freetype2/obs-convenience.c | 15 +- plugins/text-freetype2/obs-convenience.h | 6 +- plugins/text-freetype2/text-freetype2.c | 16 +- plugins/text-freetype2/text-freetype2.h | 16 +- plugins/text-freetype2/text-functionality.c | 4 +- plugins/win-capture/dc-capture.c | 15 +- plugins/win-capture/dc-capture.h | 6 +- plugins/win-capture/monitor-capture.c | 16 +- plugins/win-capture/window-capture.c | 26 +- plugins/win-dshow/win-dshow.cpp | 94 ++-- plugins/win-wasapi/win-wasapi.cpp | 38 +- test/test-input/test-filter.c | 8 +- test/test-input/test-random.c | 6 +- test/test-input/test-sinewave.c | 8 +- test/win/test.cpp | 16 +- 146 files changed, 3105 insertions(+), 3079 deletions(-) diff --git a/libobs-d3d11/d3d11-indexbuffer.cpp b/libobs-d3d11/d3d11-indexbuffer.cpp index 997fc39e7..0c68f4aea 100644 --- a/libobs-d3d11/d3d11-indexbuffer.cpp +++ b/libobs-d3d11/d3d11-indexbuffer.cpp @@ -37,7 +37,7 @@ void gs_index_buffer::InitBuffer() throw HRError("Failed to create buffer", hr); } -gs_index_buffer::gs_index_buffer(gs_device_t device, enum gs_index_type type, +gs_index_buffer::gs_index_buffer(gs_device_t *device, enum gs_index_type type, void *indices, size_t num, uint32_t flags) : device (device), type (type), diff --git a/libobs-d3d11/d3d11-samplerstate.cpp b/libobs-d3d11/d3d11-samplerstate.cpp index 63fe26f36..1d391bf83 100644 --- a/libobs-d3d11/d3d11-samplerstate.cpp +++ b/libobs-d3d11/d3d11-samplerstate.cpp @@ -59,7 +59,7 @@ static inline D3D11_FILTER ConvertGSFilter( gs_sample_filter filter) return D3D11_FILTER_MIN_MAG_MIP_POINT; } -gs_sampler_state::gs_sampler_state(gs_device_t device, gs_sampler_info *info) +gs_sampler_state::gs_sampler_state(gs_device_t *device, gs_sampler_info *info) : device (device), info (*info) { diff --git a/libobs-d3d11/d3d11-shader.cpp b/libobs-d3d11/d3d11-shader.cpp index af6548c65..48d812bf4 100644 --- a/libobs-d3d11/d3d11-shader.cpp +++ b/libobs-d3d11/d3d11-shader.cpp @@ -38,7 +38,7 @@ void gs_vertex_shader::GetBuffersExpected( } } -gs_vertex_shader::gs_vertex_shader(gs_device_t device, const char *file, +gs_vertex_shader::gs_vertex_shader(gs_device_t *device, const char *file, const char *shaderString) : gs_shader (device, GS_SHADER_VERTEX), hasNormals (false), @@ -76,7 +76,7 @@ gs_vertex_shader::gs_vertex_shader(gs_device_t device, const char *file, world = gs_shader_get_param_by_name(this, "World"); } -gs_pixel_shader::gs_pixel_shader(gs_device_t device, const char *file, +gs_pixel_shader::gs_pixel_shader(gs_device_t *device, const char *file, const char *shaderString) : gs_shader(device, GS_SHADER_PIXEL) { @@ -216,9 +216,9 @@ inline void gs_shader::UpdateParam(vector &constData, upload = true; param.changed = false; } - } else if (param.curValue.size() == sizeof(gs_texture_t)) { - gs_texture_t tex; - memcpy(&tex, param.curValue.data(), sizeof(gs_texture_t)); + } else if (param.curValue.size() == sizeof(gs_texture_t*)) { + gs_texture_t *tex; + memcpy(&tex, param.curValue.data(), sizeof(gs_texture_t*)); device_load_texture(device, tex, param.textureID); } } @@ -250,22 +250,22 @@ void gs_shader::UploadParams() } } -void gs_shader_destroy(gs_shader_t shader) +void gs_shader_destroy(gs_shader_t *shader) { delete shader; } -int gs_shader_get_num_params(gs_shader_t shader) +int gs_shader_get_num_params(gs_shader_t *shader) { return (int)shader->params.size(); } -gs_sparam_t gs_shader_get_param_by_idx(gs_shader_t shader, uint32_t param) +gs_sparam_t *gs_shader_get_param_by_idx(gs_shader_t *shader, uint32_t param) { return &shader->params[param]; } -gs_sparam_t gs_shader_get_param_by_name(gs_shader_t shader, const char *name) +gs_sparam_t *gs_shader_get_param_by_name(gs_shader_t *shader, const char *name) { for (size_t i = 0; i < shader->params.size(); i++) { gs_shader_param ¶m = shader->params[i]; @@ -276,7 +276,7 @@ gs_sparam_t gs_shader_get_param_by_name(gs_shader_t shader, const char *name) return NULL; } -gs_sparam_t gs_shader_get_viewproj_matrix(gs_shader_t shader) +gs_sparam_t *gs_shader_get_viewproj_matrix(gs_shader_t *shader) { if (shader->type != GS_SHADER_VERTEX) return NULL; @@ -284,7 +284,7 @@ gs_sparam_t gs_shader_get_viewproj_matrix(gs_shader_t shader) return static_cast(shader)->viewProj; } -gs_sparam_t gs_shader_get_world_matrix(gs_shader_t shader) +gs_sparam_t *gs_shader_get_world_matrix(gs_shader_t *shader) { if (shader->type != GS_SHADER_VERTEX) return NULL; @@ -292,7 +292,7 @@ gs_sparam_t gs_shader_get_world_matrix(gs_shader_t shader) return static_cast(shader)->world; } -void gs_shader_get_param_info(gs_sparam_t param, +void gs_shader_get_param_info(gs_sparam_t *param, struct gs_shader_param_info *info) { if (!param) @@ -319,59 +319,59 @@ static inline void shader_setval_inline(gs_shader_param *param, } } -void gs_shader_set_bool(gs_sparam_t param, bool val) +void gs_shader_set_bool(gs_sparam_t *param, bool val) { shader_setval_inline(param, &val, sizeof(bool)); } -void gs_shader_set_float(gs_sparam_t param, float val) +void gs_shader_set_float(gs_sparam_t *param, float val) { shader_setval_inline(param, &val, sizeof(float)); } -void gs_shader_set_int(gs_sparam_t param, int val) +void gs_shader_set_int(gs_sparam_t *param, int val) { shader_setval_inline(param, &val, sizeof(int)); } -void gs_shader_setmatrix3(gs_sparam_t param, const struct matrix3 *val) +void gs_shader_setmatrix3(gs_sparam_t *param, const struct matrix3 *val) { struct matrix4 mat; matrix4_from_matrix3(&mat, val); shader_setval_inline(param, &mat, sizeof(matrix4)); } -void gs_shader_set_matrix4(gs_sparam_t param, const struct matrix4 *val) +void gs_shader_set_matrix4(gs_sparam_t *param, const struct matrix4 *val) { shader_setval_inline(param, val, sizeof(matrix4)); } -void gs_shader_set_vec2(gs_sparam_t param, const struct vec2 *val) +void gs_shader_set_vec2(gs_sparam_t *param, const struct vec2 *val) { shader_setval_inline(param, val, sizeof(vec2)); } -void gs_shader_set_vec3(gs_sparam_t param, const struct vec3 *val) +void gs_shader_set_vec3(gs_sparam_t *param, const struct vec3 *val) { shader_setval_inline(param, val, sizeof(float) * 3); } -void gs_shader_set_vec4(gs_sparam_t param, const struct vec4 *val) +void gs_shader_set_vec4(gs_sparam_t *param, const struct vec4 *val) { shader_setval_inline(param, val, sizeof(vec4)); } -void gs_shader_set_texture(gs_sparam_t param, gs_texture_t val) +void gs_shader_set_texture(gs_sparam_t *param, gs_texture_t *val) { - shader_setval_inline(param, &val, sizeof(gs_texture_t)); + shader_setval_inline(param, &val, sizeof(gs_texture_t*)); } -void gs_shader_set_val(gs_sparam_t param, const void *val, size_t size) +void gs_shader_set_val(gs_sparam_t *param, const void *val, size_t size) { shader_setval_inline(param, val, size); } -void gs_shader_set_default(gs_sparam_t param) +void gs_shader_set_default(gs_sparam_t *param) { if (param->defaultValue.size()) shader_setval_inline(param, param->defaultValue.data(), diff --git a/libobs-d3d11/d3d11-shaderprocessor.cpp b/libobs-d3d11/d3d11-shaderprocessor.cpp index 3ac9b0d1e..884d77c53 100644 --- a/libobs-d3d11/d3d11-shaderprocessor.cpp +++ b/libobs-d3d11/d3d11-shaderprocessor.cpp @@ -180,7 +180,7 @@ void ShaderProcessor::BuildParams(vector ¶ms) AddParam(parser.params.array[i], params, texCounter); } -static inline void AddSampler(gs_device_t device, shader_sampler &sampler, +static inline void AddSampler(gs_device_t *device, shader_sampler &sampler, vector &samplers) { gs_sampler_info si; diff --git a/libobs-d3d11/d3d11-shaderprocessor.hpp b/libobs-d3d11/d3d11-shaderprocessor.hpp index e1252f76b..c432d57c2 100644 --- a/libobs-d3d11/d3d11-shaderprocessor.hpp +++ b/libobs-d3d11/d3d11-shaderprocessor.hpp @@ -25,7 +25,7 @@ struct ShaderParser : shader_parser { }; struct ShaderProcessor { - gs_device_t device; + gs_device_t *device; ShaderParser parser; void BuildInputLayout(vector &inputs); @@ -34,7 +34,7 @@ struct ShaderProcessor { void BuildString(string &outputString); void Process(const char *shader_string, const char *file); - inline ShaderProcessor(gs_device_t device) : device(device) + inline ShaderProcessor(gs_device_t *device) : device(device) { } }; diff --git a/libobs-d3d11/d3d11-stagesurf.cpp b/libobs-d3d11/d3d11-stagesurf.cpp index 6b9881b03..dfe702b3d 100644 --- a/libobs-d3d11/d3d11-stagesurf.cpp +++ b/libobs-d3d11/d3d11-stagesurf.cpp @@ -17,7 +17,7 @@ #include "d3d11-subsystem.hpp" -gs_stage_surface::gs_stage_surface(gs_device_t device, uint32_t width, +gs_stage_surface::gs_stage_surface(gs_device_t *device, uint32_t width, uint32_t height, gs_color_format colorFormat) : device (device), width (width), diff --git a/libobs-d3d11/d3d11-subsystem.cpp b/libobs-d3d11/d3d11-subsystem.cpp index 1c5c29f33..58884d803 100644 --- a/libobs-d3d11/d3d11-subsystem.cpp +++ b/libobs-d3d11/d3d11-subsystem.cpp @@ -443,7 +443,7 @@ const char *device_preprocessor_name(void) return "_D3D11"; } -int device_create(gs_device_t *p_device, gs_init_data *data) +int device_create(gs_device_t **p_device, gs_init_data *data) { gs_device *device = NULL; int errorcode = GS_SUCCESS; @@ -466,24 +466,24 @@ int device_create(gs_device_t *p_device, gs_init_data *data) return errorcode; } -void device_destroy(gs_device_t device) +void device_destroy(gs_device_t *device) { delete device; } -void device_enter_context(gs_device_t device) +void device_enter_context(gs_device_t *device) { /* does nothing */ UNUSED_PARAMETER(device); } -void device_leave_context(gs_device_t device) +void device_leave_context(gs_device_t *device) { /* does nothing */ UNUSED_PARAMETER(device); } -gs_swapchain_t device_swapchain_create(gs_device_t device, +gs_swapchain_t *device_swapchain_create(gs_device_t *device, struct gs_init_data *data) { gs_swap_chain *swap = NULL; @@ -498,7 +498,7 @@ gs_swapchain_t device_swapchain_create(gs_device_t device, return swap; } -void device_resize(gs_device_t device, uint32_t cx, uint32_t cy) +void device_resize(gs_device_t *device, uint32_t cx, uint32_t cy) { try { ID3D11RenderTargetView *renderView = NULL; @@ -520,23 +520,23 @@ void device_resize(gs_device_t device, uint32_t cx, uint32_t cy) } } -void device_get_size(gs_device_t device, uint32_t *cx, uint32_t *cy) +void device_get_size(gs_device_t *device, uint32_t *cx, uint32_t *cy) { *cx = device->curSwapChain->target.width; *cy = device->curSwapChain->target.height; } -uint32_t device_get_width(gs_device_t device) +uint32_t device_get_width(gs_device_t *device) { return device->curSwapChain->target.width; } -uint32_t device_get_height(gs_device_t device) +uint32_t device_get_height(gs_device_t *device) { return device->curSwapChain->target.height; } -gs_texture_t device_texture_create(gs_device_t device, uint32_t width, +gs_texture_t *device_texture_create(gs_device_t *device, uint32_t width, uint32_t height, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) { @@ -555,7 +555,7 @@ gs_texture_t device_texture_create(gs_device_t device, uint32_t width, return texture; } -gs_texture_t device_cubetexture_create(gs_device_t device, uint32_t size, +gs_texture_t *device_cubetexture_create(gs_device_t *device, uint32_t size, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) { @@ -576,7 +576,7 @@ gs_texture_t device_cubetexture_create(gs_device_t device, uint32_t size, return texture; } -gs_texture_t device_voltexture_create(gs_device_t device, uint32_t width, +gs_texture_t *device_voltexture_create(gs_device_t *device, uint32_t width, uint32_t height, uint32_t depth, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) @@ -593,7 +593,7 @@ gs_texture_t device_voltexture_create(gs_device_t device, uint32_t width, return NULL; } -gs_zstencil_t device_zstencil_create(gs_device_t device, uint32_t width, +gs_zstencil_t *device_zstencil_create(gs_device_t *device, uint32_t width, uint32_t height, enum gs_zstencil_format format) { gs_zstencil_buffer *zstencil = NULL; @@ -608,7 +608,7 @@ gs_zstencil_t device_zstencil_create(gs_device_t device, uint32_t width, return zstencil; } -gs_stagesurf_t device_stagesurface_create(gs_device_t device, uint32_t width, +gs_stagesurf_t *device_stagesurface_create(gs_device_t *device, uint32_t width, uint32_t height, enum gs_color_format color_format) { gs_stage_surface *surf = NULL; @@ -624,7 +624,7 @@ gs_stagesurf_t device_stagesurface_create(gs_device_t device, uint32_t width, return surf; } -gs_samplerstate_t device_samplerstate_create(gs_device_t device, +gs_samplerstate_t *device_samplerstate_create(gs_device_t *device, struct gs_sampler_info *info) { gs_sampler_state *ss = NULL; @@ -639,7 +639,7 @@ gs_samplerstate_t device_samplerstate_create(gs_device_t device, return ss; } -gs_shader_t device_vertexshader_create(gs_device_t device, +gs_shader_t *device_vertexshader_create(gs_device_t *device, const char *shader_string, const char *file, char **error_string) { @@ -668,7 +668,7 @@ gs_shader_t device_vertexshader_create(gs_device_t device, return shader; } -gs_shader_t device_pixelshader_create(gs_device_t device, +gs_shader_t *device_pixelshader_create(gs_device_t *device, const char *shader_string, const char *file, char **error_string) { @@ -697,7 +697,7 @@ gs_shader_t device_pixelshader_create(gs_device_t device, return shader; } -gs_vertbuffer_t device_vertexbuffer_create(gs_device_t device, +gs_vertbuffer_t *device_vertexbuffer_create(gs_device_t *device, struct gs_vb_data *data, uint32_t flags) { gs_vertex_buffer *buffer = NULL; @@ -715,7 +715,7 @@ gs_vertbuffer_t device_vertexbuffer_create(gs_device_t device, return buffer; } -gs_indexbuffer_t device_indexbuffer_create(gs_device_t device, +gs_indexbuffer_t *device_indexbuffer_create(gs_device_t *device, enum gs_index_type type, void *indices, size_t num, uint32_t flags) { @@ -730,12 +730,12 @@ gs_indexbuffer_t device_indexbuffer_create(gs_device_t device, return buffer; } -enum gs_texture_type device_get_texture_type(gs_texture_t texture) +enum gs_texture_type device_get_texture_type(gs_texture_t *texture) { return texture->type; } -void device_load_vertexbuffer(gs_device_t device, gs_vertbuffer_t vertbuffer) +void device_load_vertexbuffer(gs_device_t *device, gs_vertbuffer_t *vertbuffer) { if (device->curVertexBuffer == vertbuffer) return; @@ -764,7 +764,7 @@ void device_load_vertexbuffer(gs_device_t device, gs_vertbuffer_t vertbuffer) buffers.data(), strides.data(), offsets.data()); } -void device_load_indexbuffer(gs_device_t device, gs_indexbuffer_t indexbuffer) +void device_load_indexbuffer(gs_device_t *device, gs_indexbuffer_t *indexbuffer) { DXGI_FORMAT format; ID3D11Buffer *buffer; @@ -789,7 +789,7 @@ void device_load_indexbuffer(gs_device_t device, gs_indexbuffer_t indexbuffer) device->context->IASetIndexBuffer(buffer, format, 0); } -void device_load_texture(gs_device_t device, gs_texture_t tex, int unit) +void device_load_texture(gs_device_t *device, gs_texture_t *tex, int unit) { ID3D11ShaderResourceView *view = NULL; @@ -803,8 +803,8 @@ void device_load_texture(gs_device_t device, gs_texture_t tex, int unit) device->context->PSSetShaderResources(unit, 1, &view); } -void device_load_samplerstate(gs_device_t device, - gs_samplerstate_t samplerstate, int unit) +void device_load_samplerstate(gs_device_t *device, + gs_samplerstate_t *samplerstate, int unit) { ID3D11SamplerState *state = NULL; @@ -818,7 +818,7 @@ void device_load_samplerstate(gs_device_t device, device->context->PSSetSamplers(unit, 1, &state); } -void device_load_vertexshader(gs_device_t device, gs_shader_t vertshader) +void device_load_vertexshader(gs_device_t *device, gs_shader_t *vertshader) { ID3D11VertexShader *shader = NULL; ID3D11InputLayout *layout = NULL; @@ -855,7 +855,7 @@ void device_load_vertexshader(gs_device_t device, gs_shader_t vertshader) device_load_vertexbuffer(device, curVB); } -static inline void clear_textures(gs_device_t device) +static inline void clear_textures(gs_device_t *device) { ID3D11ShaderResourceView *views[GS_MAX_TEXTURES]; memset(views, 0, sizeof(views)); @@ -863,7 +863,7 @@ static inline void clear_textures(gs_device_t device) device->context->PSSetShaderResources(0, GS_MAX_TEXTURES, views); } -void device_load_pixelshader(gs_device_t device, gs_shader_t pixelshader) +void device_load_pixelshader(gs_device_t *device, gs_shader_t *pixelshader) { ID3D11PixelShader *shader = NULL; ID3D11Buffer *constants = NULL; @@ -902,7 +902,7 @@ void device_load_pixelshader(gs_device_t device, gs_shader_t pixelshader) device->curSamplers[i] = nullptr; } -void device_load_default_samplerstate(gs_device_t device, bool b_3d, int unit) +void device_load_default_samplerstate(gs_device_t *device, bool b_3d, int unit) { /* TODO */ UNUSED_PARAMETER(device); @@ -910,17 +910,17 @@ void device_load_default_samplerstate(gs_device_t device, bool b_3d, int unit) UNUSED_PARAMETER(unit); } -gs_shader_t device_get_vertex_shader(gs_device_t device) +gs_shader_t *device_get_vertex_shader(gs_device_t *device) { return device->curVertexShader; } -gs_shader_t device_get_pixel_shader(gs_device_t device) +gs_shader_t *device_get_pixel_shader(gs_device_t *device) { return device->curPixelShader; } -gs_texture_t device_get_render_target(gs_device_t device) +gs_texture_t *device_get_render_target(gs_device_t *device) { if (device->curRenderTarget == &device->curSwapChain->target) return NULL; @@ -928,7 +928,7 @@ gs_texture_t device_get_render_target(gs_device_t device) return device->curRenderTarget; } -gs_zstencil_t device_get_zstencil_target(gs_device_t device) +gs_zstencil_t *device_get_zstencil_target(gs_device_t *device) { if (device->curZStencilBuffer == &device->curSwapChain->zs) return NULL; @@ -936,8 +936,8 @@ gs_zstencil_t device_get_zstencil_target(gs_device_t device) return device->curZStencilBuffer; } -void device_set_render_target(gs_device_t device, gs_texture_t tex, - gs_zstencil_t zstencil) +void device_set_render_target(gs_device_t *device, gs_texture_t *tex, + gs_zstencil_t *zstencil) { if (!tex) tex = &device->curSwapChain->target; @@ -969,8 +969,8 @@ void device_set_render_target(gs_device_t device, gs_texture_t tex, device->context->OMSetRenderTargets(1, &rt, zstencil->view); } -void device_set_cube_render_target(gs_device_t device, gs_texture_t tex, - int side, gs_zstencil_t zstencil) +void device_set_cube_render_target(gs_device_t *device, gs_texture_t *tex, + int side, gs_zstencil_t *zstencil) { if (!tex) { tex = &device->curSwapChain->target; @@ -1008,7 +1008,7 @@ void device_set_cube_render_target(gs_device_t device, gs_texture_t tex, inline void gs_device::CopyTex(ID3D11Texture2D *dst, uint32_t dst_x, uint32_t dst_y, - gs_texture_t src, uint32_t src_x, uint32_t src_y, + gs_texture_t *src, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h) { if (src->type != GS_TEXTURE_2D) @@ -1043,9 +1043,9 @@ inline void gs_device::CopyTex(ID3D11Texture2D *dst, } } -void device_copy_texture_region(gs_device_t device, - gs_texture_t dst, uint32_t dst_x, uint32_t dst_y, - gs_texture_t src, uint32_t src_x, uint32_t src_y, +void device_copy_texture_region(gs_device_t *device, + gs_texture_t *dst, uint32_t dst_x, uint32_t dst_y, + gs_texture_t *src, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h) { try { @@ -1092,13 +1092,14 @@ void device_copy_texture_region(gs_device_t device, } } -void device_copy_texture(gs_device_t device, gs_texture_t dst, gs_texture_t src) +void device_copy_texture(gs_device_t *device, gs_texture_t *dst, + gs_texture_t *src) { device_copy_texture_region(device, dst, 0, 0, src, 0, 0, 0, 0); } -void device_stage_texture(gs_device_t device, gs_stagesurf_t dst, - gs_texture_t src) +void device_stage_texture(gs_device_t *device, gs_stagesurf_t *dst, + gs_texture_t *src) { try { gs_texture_2d *src2d = static_cast(src); @@ -1123,12 +1124,12 @@ void device_stage_texture(gs_device_t device, gs_stagesurf_t dst, } } -void device_begin_scene(gs_device_t device) +void device_begin_scene(gs_device_t *device) { clear_textures(device); } -void device_draw(gs_device_t device, enum gs_draw_mode draw_mode, +void device_draw(gs_device_t *device, enum gs_draw_mode draw_mode, uint32_t start_vert, uint32_t num_verts) { try { @@ -1141,7 +1142,7 @@ void device_draw(gs_device_t device, enum gs_draw_mode draw_mode, if (!device->curVertexBuffer) throw "No vertex buffer specified"; - gs_effect_t effect = gs_get_effect(); + gs_effect_t *effect = gs_get_effect(); if (effect) gs_effect_update_params(effect); @@ -1179,16 +1180,16 @@ void device_draw(gs_device_t device, enum gs_draw_mode draw_mode, } } -void device_end_scene(gs_device_t device) +void device_end_scene(gs_device_t *device) { /* does nothing in D3D11 */ UNUSED_PARAMETER(device); } -void device_load_swapchain(gs_device_t device, gs_swapchain_t swapchain) +void device_load_swapchain(gs_device_t *device, gs_swapchain_t *swapchain) { - gs_texture_t target = device->curRenderTarget; - gs_zstencil_t zs = device->curZStencilBuffer; + gs_texture_t *target = device->curRenderTarget; + gs_zstencil_t *zs = device->curZStencilBuffer; bool is_cube = device->curRenderTarget->type == GS_TEXTURE_CUBE; if (target == &device->curSwapChain->target) @@ -1208,7 +1209,7 @@ void device_load_swapchain(gs_device_t device, gs_swapchain_t swapchain) device_set_render_target(device, target, zs); } -void device_clear(gs_device_t device, uint32_t clear_flags, struct vec4 *color, +void device_clear(gs_device_t *device, uint32_t clear_flags, struct vec4 *color, float depth, uint8_t stencil) { int side = device->curRenderSide; @@ -1231,17 +1232,17 @@ void device_clear(gs_device_t device, uint32_t clear_flags, struct vec4 *color, } } -void device_present(gs_device_t device) +void device_present(gs_device_t *device) { device->curSwapChain->swap->Present(0, 0); } -void device_flush(gs_device_t device) +void device_flush(gs_device_t *device) { device->context->Flush(); } -void device_set_cull_mode(gs_device_t device, enum gs_cull_mode mode) +void device_set_cull_mode(gs_device_t *device, enum gs_cull_mode mode) { if (mode == device->rasterState.cullMode) return; @@ -1250,12 +1251,12 @@ void device_set_cull_mode(gs_device_t device, enum gs_cull_mode mode) device->rasterStateChanged = true; } -enum gs_cull_mode device_get_cull_mode(gs_device_t device) +enum gs_cull_mode device_get_cull_mode(gs_device_t *device) { return device->rasterState.cullMode; } -void device_enable_blending(gs_device_t device, bool enable) +void device_enable_blending(gs_device_t *device, bool enable) { if (enable == device->blendState.blendEnabled) return; @@ -1264,7 +1265,7 @@ void device_enable_blending(gs_device_t device, bool enable) device->blendStateChanged = true; } -void device_enable_depth_test(gs_device_t device, bool enable) +void device_enable_depth_test(gs_device_t *device, bool enable) { if (enable == device->zstencilState.depthEnabled) return; @@ -1273,7 +1274,7 @@ void device_enable_depth_test(gs_device_t device, bool enable) device->zstencilStateChanged = true; } -void device_enable_stencil_test(gs_device_t device, bool enable) +void device_enable_stencil_test(gs_device_t *device, bool enable) { if (enable == device->zstencilState.stencilEnabled) return; @@ -1282,7 +1283,7 @@ void device_enable_stencil_test(gs_device_t device, bool enable) device->zstencilStateChanged = true; } -void device_enable_stencil_write(gs_device_t device, bool enable) +void device_enable_stencil_write(gs_device_t *device, bool enable) { if (enable == device->zstencilState.stencilWriteEnabled) return; @@ -1291,7 +1292,7 @@ void device_enable_stencil_write(gs_device_t device, bool enable) device->zstencilStateChanged = true; } -void device_enable_color(gs_device_t device, bool red, bool green, +void device_enable_color(gs_device_t *device, bool red, bool green, bool blue, bool alpha) { if (device->blendState.redEnabled == red && @@ -1307,7 +1308,7 @@ void device_enable_color(gs_device_t device, bool red, bool green, device->blendStateChanged = true; } -void device_blend_function(gs_device_t device, enum gs_blend_type src, +void device_blend_function(gs_device_t *device, enum gs_blend_type src, enum gs_blend_type dest) { if (device->blendState.srcFactor == src && @@ -1319,7 +1320,7 @@ void device_blend_function(gs_device_t device, enum gs_blend_type src, device->blendStateChanged = true; } -void device_depth_function(gs_device_t device, enum gs_depth_test test) +void device_depth_function(gs_device_t *device, enum gs_depth_test test) { if (device->zstencilState.depthFunc == test) return; @@ -1328,8 +1329,8 @@ void device_depth_function(gs_device_t device, enum gs_depth_test test) device->zstencilStateChanged = true; } -static inline void update_stencilside_test(gs_device_t device, StencilSide &side, - gs_depth_test test) +static inline void update_stencilside_test(gs_device_t *device, + StencilSide &side, gs_depth_test test) { if (side.test == test) return; @@ -1338,7 +1339,7 @@ static inline void update_stencilside_test(gs_device_t device, StencilSide &side device->zstencilStateChanged = true; } -void device_stencil_function(gs_device_t device, enum gs_stencil_side side, +void device_stencil_function(gs_device_t *device, enum gs_stencil_side side, enum gs_depth_test test) { int sideVal = (int)side; @@ -1351,7 +1352,7 @@ void device_stencil_function(gs_device_t device, enum gs_stencil_side side, device->zstencilState.stencilBack, test); } -static inline void update_stencilside_op(gs_device_t device, StencilSide &side, +static inline void update_stencilside_op(gs_device_t *device, StencilSide &side, enum gs_stencil_op_type fail, enum gs_stencil_op_type zfail, enum gs_stencil_op_type zpass) { @@ -1364,7 +1365,7 @@ static inline void update_stencilside_op(gs_device_t device, StencilSide &side, device->zstencilStateChanged = true; } -void device_stencil_op(gs_device_t device, enum gs_stencil_side side, +void device_stencil_op(gs_device_t *device, enum gs_stencil_side side, enum gs_stencil_op_type fail, enum gs_stencil_op_type zfail, enum gs_stencil_op_type zpass) { @@ -1380,7 +1381,7 @@ void device_stencil_op(gs_device_t device, enum gs_stencil_side side, fail, zfail, zpass); } -void device_set_viewport(gs_device_t device, int x, int y, int width, +void device_set_viewport(gs_device_t *device, int x, int y, int width, int height) { D3D11_VIEWPORT vp; @@ -1398,12 +1399,12 @@ void device_set_viewport(gs_device_t device, int x, int y, int width, device->viewport.cy = height; } -void device_get_viewport(gs_device_t device, struct gs_rect *rect) +void device_get_viewport(gs_device_t *device, struct gs_rect *rect) { memcpy(rect, &device->viewport, sizeof(gs_rect)); } -void device_set_scissor_rect(gs_device_t device, struct gs_rect *rect) +void device_set_scissor_rect(gs_device_t *device, struct gs_rect *rect) { D3D11_RECT d3drect; @@ -1420,7 +1421,7 @@ void device_set_scissor_rect(gs_device_t device, struct gs_rect *rect) device->rasterStateChanged = true; } -void device_ortho(gs_device_t device, float left, float right, float top, +void device_ortho(gs_device_t *device, float left, float right, float top, float bottom, float zNear, float zFar) { matrix4 *dst = &device->curProjMatrix; @@ -1446,7 +1447,7 @@ void device_ortho(gs_device_t device, float left, float right, float top, dst->t.w = 1.0f; } -void device_frustum(gs_device_t device, float left, float right, float top, +void device_frustum(gs_device_t *device, float left, float right, float top, float bottom, float zNear, float zFar) { matrix4 *dst = &device->curProjMatrix; @@ -1473,14 +1474,14 @@ void device_frustum(gs_device_t device, float left, float right, float top, dst->z.w = 1.0f; } -void device_projection_push(gs_device_t device) +void device_projection_push(gs_device_t *device) { mat4float mat; memcpy(&mat, &device->curProjMatrix, sizeof(matrix4)); device->projStack.push_back(mat); } -void device_projection_pop(gs_device_t device) +void device_projection_pop(gs_device_t *device) { if (!device->projStack.size()) return; @@ -1493,7 +1494,7 @@ void device_projection_pop(gs_device_t device) device->projStack.pop_back(); } -void gs_swapchain_destroy(gs_swapchain_t swapchain) +void gs_swapchain_destroy(gs_swapchain_t *swapchain) { if (!swapchain) return; @@ -1505,12 +1506,12 @@ void gs_swapchain_destroy(gs_swapchain_t swapchain) delete swapchain; } -void gs_texture_destroy(gs_texture_t tex) +void gs_texture_destroy(gs_texture_t *tex) { delete tex; } -uint32_t gs_texture_get_width(gs_texture_t tex) +uint32_t gs_texture_get_width(gs_texture_t *tex) { if (tex->type != GS_TEXTURE_2D) return 0; @@ -1518,7 +1519,7 @@ uint32_t gs_texture_get_width(gs_texture_t tex) return static_cast(tex)->width; } -uint32_t gs_texture_get_height(gs_texture_t tex) +uint32_t gs_texture_get_height(gs_texture_t *tex) { if (tex->type != GS_TEXTURE_2D) return 0; @@ -1526,7 +1527,7 @@ uint32_t gs_texture_get_height(gs_texture_t tex) return static_cast(tex)->height; } -enum gs_color_format gs_texture_get_color_format(gs_texture_t tex) +enum gs_color_format gs_texture_get_color_format(gs_texture_t *tex) { if (tex->type != GS_TEXTURE_2D) return GS_UNKNOWN; @@ -1534,7 +1535,7 @@ enum gs_color_format gs_texture_get_color_format(gs_texture_t tex) return static_cast(tex)->format; } -bool gs_texture_map(gs_texture_t tex, uint8_t **ptr, uint32_t *linesize) +bool gs_texture_map(gs_texture_t *tex, uint8_t **ptr, uint32_t *linesize) { HRESULT hr; @@ -1554,7 +1555,7 @@ bool gs_texture_map(gs_texture_t tex, uint8_t **ptr, uint32_t *linesize) return true; } -void gs_texture_unmap(gs_texture_t tex) +void gs_texture_unmap(gs_texture_t *tex) { if (tex->type != GS_TEXTURE_2D) return; @@ -1563,7 +1564,7 @@ void gs_texture_unmap(gs_texture_t tex) tex2d->device->context->Unmap(tex2d->texture, 0); } -void *gs_texture_get_obj(gs_texture_t tex) +void *gs_texture_get_obj(gs_texture_t *tex) { if (tex->type != GS_TEXTURE_2D) return nullptr; @@ -1573,12 +1574,12 @@ void *gs_texture_get_obj(gs_texture_t tex) } -void gs_cubetexture_destroy(gs_texture_t cubetex) +void gs_cubetexture_destroy(gs_texture_t *cubetex) { delete cubetex; } -uint32_t gs_cubetexture_get_size(gs_texture_t cubetex) +uint32_t gs_cubetexture_get_size(gs_texture_t *cubetex) { if (cubetex->type != GS_TEXTURE_CUBE) return 0; @@ -1587,7 +1588,7 @@ uint32_t gs_cubetexture_get_size(gs_texture_t cubetex) return tex->width; } -enum gs_color_format gs_cubetexture_get_color_format(gs_texture_t cubetex) +enum gs_color_format gs_cubetexture_get_color_format(gs_texture_t *cubetex) { if (cubetex->type != GS_TEXTURE_CUBE) return GS_UNKNOWN; @@ -1597,33 +1598,33 @@ enum gs_color_format gs_cubetexture_get_color_format(gs_texture_t cubetex) } -void gs_voltexture_destroy(gs_texture_t voltex) +void gs_voltexture_destroy(gs_texture_t *voltex) { delete voltex; } -uint32_t gs_voltexture_get_width(gs_texture_t voltex) +uint32_t gs_voltexture_get_width(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); return 0; } -uint32_t gs_voltexture_get_height(gs_texture_t voltex) +uint32_t gs_voltexture_get_height(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); return 0; } -uint32_t gs_voltexture_getdepth(gs_texture_t voltex) +uint32_t gs_voltexture_getdepth(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); return 0; } -enum gs_color_format gs_voltexture_get_color_format(gs_texture_t voltex) +enum gs_color_format gs_voltexture_get_color_format(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); @@ -1631,27 +1632,27 @@ enum gs_color_format gs_voltexture_get_color_format(gs_texture_t voltex) } -void gs_stagesurface_destroy(gs_stagesurf_t stagesurf) +void gs_stagesurface_destroy(gs_stagesurf_t *stagesurf) { delete stagesurf; } -uint32_t gs_stagesurface_get_width(gs_stagesurf_t stagesurf) +uint32_t gs_stagesurface_get_width(gs_stagesurf_t *stagesurf) { return stagesurf->width; } -uint32_t gs_stagesurface_get_height(gs_stagesurf_t stagesurf) +uint32_t gs_stagesurface_get_height(gs_stagesurf_t *stagesurf) { return stagesurf->height; } -enum gs_color_format gs_stagesurface_get_color_format(gs_stagesurf_t stagesurf) +enum gs_color_format gs_stagesurface_get_color_format(gs_stagesurf_t *stagesurf) { return stagesurf->format; } -bool gs_stagesurface_map(gs_stagesurf_t stagesurf, uint8_t **data, +bool gs_stagesurface_map(gs_stagesurf_t *stagesurf, uint8_t **data, uint32_t *linesize) { D3D11_MAPPED_SUBRESOURCE map; @@ -1664,19 +1665,19 @@ bool gs_stagesurface_map(gs_stagesurf_t stagesurf, uint8_t **data, return true; } -void gs_stagesurface_unmap(gs_stagesurf_t stagesurf) +void gs_stagesurface_unmap(gs_stagesurf_t *stagesurf) { stagesurf->device->context->Unmap(stagesurf->texture, 0); } -void gs_zstencil_destroy(gs_zstencil_t zstencil) +void gs_zstencil_destroy(gs_zstencil_t *zstencil) { delete zstencil; } -void gs_samplerstate_destroy(gs_samplerstate_t samplerstate) +void gs_samplerstate_destroy(gs_samplerstate_t *samplerstate) { if (!samplerstate) return; @@ -1691,12 +1692,12 @@ void gs_samplerstate_destroy(gs_samplerstate_t samplerstate) } -void gs_vertexbuffer_destroy(gs_vertbuffer_t vertbuffer) +void gs_vertexbuffer_destroy(gs_vertbuffer_t *vertbuffer) { delete vertbuffer; } -void gs_vertexbuffer_flush(gs_vertbuffer_t vertbuffer) +void gs_vertexbuffer_flush(gs_vertbuffer_t *vertbuffer) { if (!vertbuffer->dynamic) { blog(LOG_ERROR, "gs_vertexbuffer_flush: vertex buffer is " @@ -1726,18 +1727,18 @@ void gs_vertexbuffer_flush(gs_vertbuffer_t vertbuffer) } } -struct gs_vb_data *gs_vertexbuffer_get_data(gs_vertbuffer_t vertbuffer) +struct gs_vb_data *gs_vertexbuffer_get_data(gs_vertbuffer_t *vertbuffer) { return vertbuffer->vbd.data; } -void gs_indexbuffer_destroy(gs_indexbuffer_t indexbuffer) +void gs_indexbuffer_destroy(gs_indexbuffer_t *indexbuffer) { delete indexbuffer; } -void gs_indexbuffer_flush(gs_indexbuffer_t indexbuffer) +void gs_indexbuffer_flush(gs_indexbuffer_t *indexbuffer) { HRESULT hr; @@ -1756,17 +1757,17 @@ void gs_indexbuffer_flush(gs_indexbuffer_t indexbuffer) indexbuffer->device->context->Unmap(indexbuffer->indexBuffer, 0); } -void *gs_indexbuffer_get_data(gs_indexbuffer_t indexbuffer) +void *gs_indexbuffer_get_data(gs_indexbuffer_t *indexbuffer) { return indexbuffer->indices.data; } -size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t indexbuffer) +size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t *indexbuffer) { return indexbuffer->num; } -enum gs_index_type gs_indexbuffer_get_type(gs_indexbuffer_t indexbuffer) +enum gs_index_type gs_indexbuffer_get_type(gs_indexbuffer_t *indexbuffer) { return indexbuffer->type; } @@ -1776,7 +1777,7 @@ extern "C" EXPORT bool device_gdi_texture_available(void) return true; } -extern "C" EXPORT gs_texture_t device_texture_create_gdi(gs_device_t device, +extern "C" EXPORT gs_texture_t *device_texture_create_gdi(gs_device_t *device, uint32_t width, uint32_t height) { gs_texture *texture = nullptr; @@ -1805,7 +1806,7 @@ static inline bool TextureGDICompatible(gs_texture_2d *tex2d, const char *func) return true; } -extern "C" EXPORT void *gs_texture_get_dc(gs_texture_t tex) +extern "C" EXPORT void *gs_texture_get_dc(gs_texture_t *tex) { HDC hDC = nullptr; @@ -1820,7 +1821,7 @@ extern "C" EXPORT void *gs_texture_get_dc(gs_texture_t tex) return hDC; } -extern "C" EXPORT void gs_texture_release_dc(gs_texture_t tex) +extern "C" EXPORT void gs_texture_release_dc(gs_texture_t *tex) { if (tex->type != GS_TEXTURE_2D) return; diff --git a/libobs-d3d11/d3d11-subsystem.hpp b/libobs-d3d11/d3d11-subsystem.hpp index 75bafddfb..3c8fcb7e8 100644 --- a/libobs-d3d11/d3d11-subsystem.hpp +++ b/libobs-d3d11/d3d11-subsystem.hpp @@ -182,7 +182,7 @@ struct gs_vertex_buffer { ComPtr tangentBuffer; vector> uvBuffers; - gs_device_t device; + gs_device_t *device; bool dynamic; VBDataPtr vbd; size_t numVerts; @@ -199,7 +199,7 @@ struct gs_vertex_buffer { const size_t numVerts, void *array, ID3D11Buffer **buffer); - gs_vertex_buffer(gs_device_t device, struct gs_vb_data *data, + gs_vertex_buffer(gs_device_t *device, struct gs_vb_data *data, uint32_t flags); }; @@ -213,7 +213,7 @@ struct DataPtr { struct gs_index_buffer { ComPtr indexBuffer; - gs_device_t device; + gs_device_t *device; bool dynamic; gs_index_type type; size_t indexSize; @@ -222,7 +222,7 @@ struct gs_index_buffer { void InitBuffer(); - gs_index_buffer(gs_device_t device, enum gs_index_type type, + gs_index_buffer(gs_device_t *device, enum gs_index_type type, void *indices, size_t num, uint32_t flags); }; @@ -279,7 +279,7 @@ struct gs_texture_2d : gs_texture { { } - gs_texture_2d(gs_device_t device, uint32_t width, uint32_t height, + gs_texture_2d(gs_device_t *device, uint32_t width, uint32_t height, gs_color_format colorFormat, uint32_t levels, const uint8_t **data, uint32_t flags, gs_texture_type type, bool gdiCompatible, bool shared); @@ -304,7 +304,7 @@ struct gs_zstencil_buffer { { } - gs_zstencil_buffer(gs_device_t device, uint32_t width, uint32_t height, + gs_zstencil_buffer(gs_device_t *device, uint32_t width, uint32_t height, gs_zstencil_format format); }; @@ -316,16 +316,16 @@ struct gs_stage_surface { gs_color_format format; DXGI_FORMAT dxgiFormat; - gs_stage_surface(gs_device_t device, uint32_t width, uint32_t height, + gs_stage_surface(gs_device_t *device, uint32_t width, uint32_t height, gs_color_format colorFormat); }; struct gs_sampler_state { ComPtr state; - gs_device_t device; + gs_device_t *device; gs_sampler_info info; - gs_sampler_state(gs_device_t device, gs_sampler_info *info); + gs_sampler_state(gs_device_t *device, gs_sampler_info *info); }; struct gs_shader_param { @@ -357,7 +357,7 @@ struct ShaderError { }; struct gs_shader { - gs_device_t device; + gs_device_t *device; gs_shader_type type; vector params; ComPtr constants; @@ -371,7 +371,7 @@ struct gs_shader { void Compile(const char *shaderStr, const char *file, const char *target, ID3D10Blob **shader); - inline gs_shader(gs_device_t device, gs_shader_type type) + inline gs_shader(gs_device_t *device, gs_shader_type type) : device (device), type (type), constantSize (0) @@ -385,7 +385,7 @@ struct ShaderSampler { string name; gs_sampler_state sampler; - inline ShaderSampler(const char *name, gs_device_t device, + inline ShaderSampler(const char *name, gs_device_t *device, gs_sampler_info *info) : name (name), sampler (device, info) @@ -416,7 +416,7 @@ struct gs_vertex_shader : gs_shader { void GetBuffersExpected(const vector &inputs); - gs_vertex_shader(gs_device_t device, const char *file, + gs_vertex_shader(gs_device_t *device, const char *file, const char *shaderString); }; @@ -433,7 +433,7 @@ struct gs_pixel_shader : gs_shader { states[i] = NULL; } - gs_pixel_shader(gs_device_t device, const char *file, + gs_pixel_shader(gs_device_t *device, const char *file, const char *shaderString); }; @@ -623,9 +623,10 @@ struct gs_device { void UpdateRasterState(); void UpdateBlendState(); - inline void CopyTex(ID3D11Texture2D *dst, uint32_t dst_x, uint32_t dst_y, - gs_texture_t src, uint32_t src_x, uint32_t src_y, - uint32_t src_w, uint32_t src_h); + inline void CopyTex(ID3D11Texture2D *dst, + uint32_t dst_x, uint32_t dst_y, + gs_texture_t *src, uint32_t src_x, uint32_t src_y, + uint32_t src_w, uint32_t src_h); void UpdateViewProjMatrix(); diff --git a/libobs-d3d11/d3d11-texture2d.cpp b/libobs-d3d11/d3d11-texture2d.cpp index 679d36562..757c8443d 100644 --- a/libobs-d3d11/d3d11-texture2d.cpp +++ b/libobs-d3d11/d3d11-texture2d.cpp @@ -141,8 +141,8 @@ void gs_texture_2d::InitRenderTargets() } } -gs_texture_2d::gs_texture_2d(gs_device_t device, uint32_t width, uint32_t height, - gs_color_format colorFormat, uint32_t levels, +gs_texture_2d::gs_texture_2d(gs_device_t *device, uint32_t width, + uint32_t height, gs_color_format colorFormat, uint32_t levels, const uint8_t **data, uint32_t flags, gs_texture_type type, bool gdiCompatible, bool shared) : gs_texture (device, type, levels, colorFormat), diff --git a/libobs-d3d11/d3d11-vertexbuffer.cpp b/libobs-d3d11/d3d11-vertexbuffer.cpp index 1e57564a1..3fd1265d1 100644 --- a/libobs-d3d11/d3d11-vertexbuffer.cpp +++ b/libobs-d3d11/d3d11-vertexbuffer.cpp @@ -93,7 +93,7 @@ inline void gs_vertex_buffer::InitBuffer(const size_t elementSize, throw HRError("Failed to create buffer", hr); } -gs_vertex_buffer::gs_vertex_buffer(gs_device_t device, struct gs_vb_data *data, +gs_vertex_buffer::gs_vertex_buffer(gs_device_t *device, struct gs_vb_data *data, uint32_t flags) : device (device), vbd (data), diff --git a/libobs-d3d11/d3d11-zstencilbuffer.cpp b/libobs-d3d11/d3d11-zstencilbuffer.cpp index 1e3e40647..5b2732d58 100644 --- a/libobs-d3d11/d3d11-zstencilbuffer.cpp +++ b/libobs-d3d11/d3d11-zstencilbuffer.cpp @@ -47,7 +47,7 @@ void gs_zstencil_buffer::InitBuffer() throw HRError("Failed to create depth stencil view", hr); } -gs_zstencil_buffer::gs_zstencil_buffer(gs_device_t device, +gs_zstencil_buffer::gs_zstencil_buffer(gs_device_t *device, uint32_t width, uint32_t height, gs_zstencil_format format) : device (device), diff --git a/libobs-opengl/gl-cocoa.m b/libobs-opengl/gl-cocoa.m index c31856b1f..f1b4894c6 100644 --- a/libobs-opengl/gl-cocoa.m +++ b/libobs-opengl/gl-cocoa.m @@ -96,7 +96,7 @@ static NSOpenGLContext *gl_context_create(struct gs_init_data *info) return context; } -static bool gl_init_default_swap(struct gl_platform *plat, gs_device_t dev, +static bool gl_init_default_swap(struct gl_platform *plat, gs_device_t *dev, struct gs_init_data *info) { if(!(plat->context = gl_context_create(info))) @@ -109,7 +109,7 @@ static bool gl_init_default_swap(struct gl_platform *plat, gs_device_t dev, return plat->swap.wi != NULL; } -struct gl_platform *gl_platform_create(gs_device_t device, +struct gl_platform *gl_platform_create(gs_device_t *device, struct gs_init_data *info) { struct gl_platform *plat = bzalloc(sizeof(struct gl_platform)); @@ -186,24 +186,24 @@ void gl_windowinfo_destroy(struct gl_windowinfo *wi) bfree(wi); } -void gl_update(gs_device_t device) +void gl_update(gs_device_t *device) { [device->plat->context update]; } -void device_enter_context(gs_device_t device) +void device_enter_context(gs_device_t *device) { [device->plat->context makeCurrentContext]; } -void device_leave_context(gs_device_t device) +void device_leave_context(gs_device_t *device) { UNUSED_PARAMETER(device); [NSOpenGLContext clearCurrentContext]; } -void device_load_swapchain(gs_device_t device, gs_swapchain_t swap) +void device_load_swapchain(gs_device_t *device, gs_swapchain_t *swap) { if(!swap) swap = &device->plat->swap; @@ -215,7 +215,7 @@ void device_load_swapchain(gs_device_t device, gs_swapchain_t swap) [device->plat->context setView:swap->wi->view]; } -void device_present(gs_device_t device) +void device_present(gs_device_t *device) { [device->plat->context flushBuffer]; } @@ -227,7 +227,7 @@ void gl_getclientsize(struct gs_swap_chain *swap, uint32_t *width, if(height) *height = swap->info.cy; } -gs_texture_t device_texture_create_from_iosurface(gs_device_t device, +gs_texture_t *device_texture_create_from_iosurface(gs_device_t *device, void *iosurf) { IOSurfaceRef ref = (IOSurfaceRef)iosurf; @@ -285,15 +285,15 @@ gs_texture_t device_texture_create_from_iosurface(gs_device_t device, if (!gl_bind_texture(tex->base.gl_target, 0)) goto fail; - return (gs_texture_t)tex; + return (gs_texture_t*)tex; fail: - gs_texture_destroy((gs_texture_t)tex); + gs_texture_destroy((gs_texture_t*)tex); blog(LOG_ERROR, "device_texture_create_from_iosurface (GL) failed"); return NULL; } -bool gs_texture_rebind_iosurface(gs_texture_t texture, void *iosurf) +bool gs_texture_rebind_iosurface(gs_texture_t *texture, void *iosurf) { if (!texture) return false; diff --git a/libobs-opengl/gl-indexbuffer.c b/libobs-opengl/gl-indexbuffer.c index 2a4e8568d..d5fdfde60 100644 --- a/libobs-opengl/gl-indexbuffer.c +++ b/libobs-opengl/gl-indexbuffer.c @@ -33,7 +33,7 @@ static inline bool init_ib(struct gs_index_buffer *ib) return success; } -gs_indexbuffer_t device_indexbuffer_create(gs_device_t device, +gs_indexbuffer_t *device_indexbuffer_create(gs_device_t *device, enum gs_index_type type, void *indices, size_t num, uint32_t flags) { @@ -59,7 +59,7 @@ gs_indexbuffer_t device_indexbuffer_create(gs_device_t device, return ib; } -void gs_indexbuffer_destroy(gs_indexbuffer_t ib) +void gs_indexbuffer_destroy(gs_indexbuffer_t *ib) { if (ib) { if (ib->buffer) @@ -70,7 +70,7 @@ void gs_indexbuffer_destroy(gs_indexbuffer_t ib) } } -void gs_indexbuffer_flush(gs_indexbuffer_t ib) +void gs_indexbuffer_flush(gs_indexbuffer_t *ib) { if (!ib->dynamic) { blog(LOG_ERROR, "Index buffer is not dynamic"); @@ -86,22 +86,22 @@ fail: blog(LOG_ERROR, "gs_indexbuffer_flush (GL) failed"); } -void *gs_indexbuffer_get_data(gs_indexbuffer_t ib) +void *gs_indexbuffer_get_data(gs_indexbuffer_t *ib) { return ib->data; } -size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t ib) +size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t *ib) { return ib->num; } -enum gs_index_type gs_indexbuffer_get_type(gs_indexbuffer_t ib) +enum gs_index_type gs_indexbuffer_get_type(gs_indexbuffer_t *ib) { return ib->type; } -void device_load_indexbuffer(gs_device_t device, gs_indexbuffer_t ib) +void device_load_indexbuffer(gs_device_t *device, gs_indexbuffer_t *ib) { if (ib == device->cur_index_buffer) return; diff --git a/libobs-opengl/gl-shader.c b/libobs-opengl/gl-shader.c index 4577d6d42..b3c03e166 100644 --- a/libobs-opengl/gl-shader.c +++ b/libobs-opengl/gl-shader.c @@ -108,7 +108,7 @@ static inline bool gl_add_params(struct gs_shader *shader, static inline void gl_add_sampler(struct gs_shader *shader, struct shader_sampler *sampler) { - gs_samplerstate_t new_sampler; + gs_samplerstate_t *new_sampler; struct gs_sampler_info info; shader_sampler_convert(sampler, &info); @@ -236,7 +236,7 @@ static bool gl_shader_init(struct gs_shader *shader, return success; } -static struct gs_shader *shader_create(gs_device_t device, +static struct gs_shader *shader_create(gs_device_t *device, enum gs_shader_type type, const char *shader_str, const char *file, char **error_string) { @@ -262,7 +262,7 @@ static struct gs_shader *shader_create(gs_device_t device, return shader; } -gs_shader_t device_vertexshader_create(gs_device_t device, +gs_shader_t *device_vertexshader_create(gs_device_t *device, const char *shader, const char *file, char **error_string) { @@ -274,7 +274,7 @@ gs_shader_t device_vertexshader_create(gs_device_t device, return ptr; } -gs_shader_t device_pixelshader_create(gs_device_t device, +gs_shader_t *device_pixelshader_create(gs_device_t *device, const char *shader, const char *file, char **error_string) { @@ -309,7 +309,7 @@ static void remove_program_references(struct gs_shader *shader) } } -void gs_shader_destroy(gs_shader_t shader) +void gs_shader_destroy(gs_shader_t *shader) { size_t i; @@ -338,18 +338,18 @@ void gs_shader_destroy(gs_shader_t shader) bfree(shader); } -int gs_shader_get_num_params(gs_shader_t shader) +int gs_shader_get_num_params(gs_shader_t *shader) { return (int)shader->params.num; } -gs_sparam_t gs_shader_get_param_by_idx(gs_shader_t shader, uint32_t param) +gs_sparam_t *gs_shader_get_param_by_idx(gs_shader_t *shader, uint32_t param) { assert(param < shader->params.num); return shader->params.array+param; } -gs_sparam_t gs_shader_get_param_by_name(gs_shader_t shader, const char *name) +gs_sparam_t *gs_shader_get_param_by_name(gs_shader_t *shader, const char *name) { size_t i; for (i = 0; i < shader->params.num; i++) { @@ -362,40 +362,40 @@ gs_sparam_t gs_shader_get_param_by_name(gs_shader_t shader, const char *name) return NULL; } -gs_sparam_t gs_shader_get_viewproj_matrix(gs_shader_t shader) +gs_sparam_t *gs_shader_get_viewproj_matrix(gs_shader_t *shader) { return shader->viewproj; } -gs_sparam_t gs_shader_get_world_matrix(gs_shader_t shader) +gs_sparam_t *gs_shader_get_world_matrix(gs_shader_t *shader) { return shader->world; } -void gs_shader_get_param_info(gs_sparam_t param, +void gs_shader_get_param_info(gs_sparam_t *param, struct gs_shader_param_info *info) { info->type = param->type; info->name = param->name; } -void gs_shader_set_bool(gs_sparam_t param, bool val) +void gs_shader_set_bool(gs_sparam_t *param, bool val) { int int_val = val; da_copy_array(param->cur_value, &int_val, sizeof(int_val)); } -void gs_shader_set_float(gs_sparam_t param, float val) +void gs_shader_set_float(gs_sparam_t *param, float val) { da_copy_array(param->cur_value, &val, sizeof(val)); } -void gs_shader_set_int(gs_sparam_t param, int val) +void gs_shader_set_int(gs_sparam_t *param, int val) { da_copy_array(param->cur_value, &val, sizeof(val)); } -void gs_shader_setmatrix3(gs_sparam_t param, const struct matrix3 *val) +void gs_shader_setmatrix3(gs_sparam_t *param, const struct matrix3 *val) { struct matrix4 mat; matrix4_from_matrix3(&mat, val); @@ -403,27 +403,27 @@ void gs_shader_setmatrix3(gs_sparam_t param, const struct matrix3 *val) da_copy_array(param->cur_value, &mat, sizeof(mat)); } -void gs_shader_set_matrix4(gs_sparam_t param, const struct matrix4 *val) +void gs_shader_set_matrix4(gs_sparam_t *param, const struct matrix4 *val) { da_copy_array(param->cur_value, val, sizeof(*val)); } -void gs_shader_set_vec2(gs_sparam_t param, const struct vec2 *val) +void gs_shader_set_vec2(gs_sparam_t *param, const struct vec2 *val) { da_copy_array(param->cur_value, val->ptr, sizeof(*val)); } -void gs_shader_set_vec3(gs_sparam_t param, const struct vec3 *val) +void gs_shader_set_vec3(gs_sparam_t *param, const struct vec3 *val) { da_copy_array(param->cur_value, val->ptr, sizeof(*val)); } -void gs_shader_set_vec4(gs_sparam_t param, const struct vec4 *val) +void gs_shader_set_vec4(gs_sparam_t *param, const struct vec4 *val) { da_copy_array(param->cur_value, val->ptr, sizeof(*val)); } -void gs_shader_set_texture(gs_sparam_t param, gs_texture_t val) +void gs_shader_set_texture(gs_sparam_t *param, gs_texture_t *val) { param->texture = val; } @@ -681,7 +681,7 @@ void gs_program_destroy(struct gs_program *program) bfree(program); } -void gs_shader_set_val(gs_sparam_t param, const void *val, size_t size) +void gs_shader_set_val(gs_sparam_t *param, const void *val, size_t size) { int count = param->array_count; size_t expected_size = 0; @@ -711,12 +711,12 @@ void gs_shader_set_val(gs_sparam_t param, const void *val, size_t size) } if (param->type == GS_SHADER_PARAM_TEXTURE) - gs_shader_set_texture(param, *(gs_texture_t*)val); + gs_shader_set_texture(param, *(gs_texture_t**)val); else da_copy_array(param->cur_value, val, size); } -void gs_shader_set_default(gs_sparam_t param) +void gs_shader_set_default(gs_sparam_t *param) { gs_shader_set_val(param, param->def_value.array, param->def_value.num); } diff --git a/libobs-opengl/gl-stagesurf.c b/libobs-opengl/gl-stagesurf.c index c48632380..a9965ae0e 100644 --- a/libobs-opengl/gl-stagesurf.c +++ b/libobs-opengl/gl-stagesurf.c @@ -42,7 +42,7 @@ static bool create_pixel_pack_buffer(struct gs_stage_surface *surf) return success; } -gs_stagesurf_t device_stagesurface_create(gs_device_t device, uint32_t width, +gs_stagesurf_t *device_stagesurface_create(gs_device_t *device, uint32_t width, uint32_t height, enum gs_color_format color_format) { struct gs_stage_surface *surf; @@ -65,7 +65,7 @@ gs_stagesurf_t device_stagesurface_create(gs_device_t device, uint32_t width, return surf; } -void gs_stagesurface_destroy(gs_stagesurf_t stagesurf) +void gs_stagesurface_destroy(gs_stagesurf_t *stagesurf) { if (stagesurf) { if (stagesurf->pack_buffer) @@ -110,8 +110,8 @@ static bool can_stage(struct gs_stage_surface *dst, struct gs_texture_2d *src) /* Apparently for mac, PBOs won't do an asynchronous transfer unless you use * FBOs aong with glReadPixels, which is really dumb. */ -void device_stage_texture(gs_device_t device, gs_stagesurf_t dst, - gs_texture_t src) +void device_stage_texture(gs_device_t *device, gs_stagesurf_t *dst, + gs_texture_t *src) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)src; struct fbo_info *fbo; @@ -156,8 +156,8 @@ failed: #else -void device_stage_texture(gs_device_t device, gs_stagesurf_t dst, - gs_texture_t src) +void device_stage_texture(gs_device_t *device, gs_stagesurf_t *dst, + gs_texture_t *src) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)src; if (!can_stage(dst, tex2d)) @@ -186,22 +186,22 @@ failed: #endif -uint32_t gs_stagesurface_get_width(gs_stagesurf_t stagesurf) +uint32_t gs_stagesurface_get_width(gs_stagesurf_t *stagesurf) { return stagesurf->width; } -uint32_t gs_stagesurface_get_height(gs_stagesurf_t stagesurf) +uint32_t gs_stagesurface_get_height(gs_stagesurf_t *stagesurf) { return stagesurf->height; } -enum gs_color_format gs_stagesurface_get_color_format(gs_stagesurf_t stagesurf) +enum gs_color_format gs_stagesurface_get_color_format(gs_stagesurf_t *stagesurf) { return stagesurf->format; } -bool gs_stagesurface_map(gs_stagesurf_t stagesurf, uint8_t **data, +bool gs_stagesurface_map(gs_stagesurf_t *stagesurf, uint8_t **data, uint32_t *linesize) { if (!gl_bind_buffer(GL_PIXEL_PACK_BUFFER, stagesurf->pack_buffer)) @@ -221,7 +221,7 @@ fail: return false; } -void gs_stagesurface_unmap(gs_stagesurf_t stagesurf) +void gs_stagesurface_unmap(gs_stagesurf_t *stagesurf) { if (!gl_bind_buffer(GL_PIXEL_PACK_BUFFER, stagesurf->pack_buffer)) return; diff --git a/libobs-opengl/gl-subsystem.c b/libobs-opengl/gl-subsystem.c index eb62f969b..840eeb45c 100644 --- a/libobs-opengl/gl-subsystem.c +++ b/libobs-opengl/gl-subsystem.c @@ -191,7 +191,7 @@ const char *device_preprocessor_name(void) return "_OPENGL"; } -int device_create(gs_device_t *p_device, struct gs_init_data *info) +int device_create(gs_device_t **p_device, struct gs_init_data *info) { struct gs_device *device = bzalloc(sizeof(struct gs_device)); int errorcode = GS_ERROR_FAIL; @@ -221,7 +221,7 @@ fail: return errorcode; } -void device_destroy(gs_device_t device) +void device_destroy(gs_device_t *device) { if (device) { size_t i; @@ -239,7 +239,7 @@ void device_destroy(gs_device_t device) } } -gs_swapchain_t device_swapchain_create(gs_device_t device, +gs_swapchain_t *device_swapchain_create(gs_device_t *device, struct gs_init_data *info) { struct gs_swap_chain *swap = bzalloc(sizeof(struct gs_swap_chain)); @@ -262,7 +262,7 @@ gs_swapchain_t device_swapchain_create(gs_device_t device, return swap; } -void device_resize(gs_device_t device, uint32_t cx, uint32_t cy) +void device_resize(gs_device_t *device, uint32_t cx, uint32_t cy) { /* GL automatically resizes the device, so it doesn't do much */ device->cur_swap->info.cx = cx; @@ -271,23 +271,23 @@ void device_resize(gs_device_t device, uint32_t cx, uint32_t cy) gl_update(device); } -void device_get_size(gs_device_t device, uint32_t *cx, uint32_t *cy) +void device_get_size(gs_device_t *device, uint32_t *cx, uint32_t *cy) { *cx = device->cur_swap->info.cx; *cy = device->cur_swap->info.cy; } -uint32_t device_get_width(gs_device_t device) +uint32_t device_get_width(gs_device_t *device) { return device->cur_swap->info.cx; } -uint32_t device_get_height(gs_device_t device) +uint32_t device_get_height(gs_device_t *device) { return device->cur_swap->info.cy; } -gs_texture_t device_voltexture_create(gs_device_t device, uint32_t width, +gs_texture_t *device_voltexture_create(gs_device_t *device, uint32_t width, uint32_t height, uint32_t depth, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) @@ -304,7 +304,7 @@ gs_texture_t device_voltexture_create(gs_device_t device, uint32_t width, return NULL; } -gs_samplerstate_t device_samplerstate_create(gs_device_t device, +gs_samplerstate_t *device_samplerstate_create(gs_device_t *device, struct gs_sampler_info *info) { struct gs_sampler_state *sampler; @@ -317,7 +317,7 @@ gs_samplerstate_t device_samplerstate_create(gs_device_t device, return sampler; } -enum gs_texture_type device_get_texture_type(gs_texture_t texture) +enum gs_texture_type device_get_texture_type(gs_texture_t *texture) { return texture->type; } @@ -350,7 +350,7 @@ static inline void apply_swizzle(struct gs_texture *tex) } } -static bool load_texture_sampler(gs_texture_t tex, gs_samplerstate_t ss) +static bool load_texture_sampler(gs_texture_t *tex, gs_samplerstate_t *ss) { bool success = true; GLint min_filter; @@ -391,7 +391,7 @@ static bool load_texture_sampler(gs_texture_t tex, gs_samplerstate_t ss) return success; } -static inline struct gs_shader_param *get_texture_param(gs_device_t device, +static inline struct gs_shader_param *get_texture_param(gs_device_t *device, int unit) { struct gs_shader *shader = device->cur_pixel_shader; @@ -408,7 +408,7 @@ static inline struct gs_shader_param *get_texture_param(gs_device_t device, return NULL; } -void device_load_texture(gs_device_t device, gs_texture_t tex, int unit) +void device_load_texture(gs_device_t *device, gs_texture_t *tex, int unit) { struct gs_shader_param *param; struct gs_sampler_state *sampler; @@ -452,7 +452,7 @@ fail: blog(LOG_ERROR, "device_load_texture (GL) failed"); } -static bool load_sampler_on_textures(gs_device_t device, gs_samplerstate_t ss, +static bool load_sampler_on_textures(gs_device_t *device, gs_samplerstate_t *ss, int sampler_unit) { struct gs_shader *shader = device->cur_pixel_shader; @@ -474,7 +474,7 @@ static bool load_sampler_on_textures(gs_device_t device, gs_samplerstate_t ss, return true; } -void device_load_samplerstate(gs_device_t device, gs_samplerstate_t ss, +void device_load_samplerstate(gs_device_t *device, gs_samplerstate_t *ss, int unit) { /* need a pixel shader to properly bind samplers */ @@ -495,7 +495,7 @@ void device_load_samplerstate(gs_device_t device, gs_samplerstate_t ss, return; } -void device_load_vertexshader(gs_device_t device, gs_shader_t vertshader) +void device_load_vertexshader(gs_device_t *device, gs_shader_t *vertshader) { if (device->cur_vertex_shader == vertshader) return; @@ -525,7 +525,7 @@ static void load_default_pixelshader_samplers(struct gs_device *device, device->cur_samplers[i] = NULL; } -void device_load_pixelshader(gs_device_t device, gs_shader_t pixelshader) +void device_load_pixelshader(gs_device_t *device, gs_shader_t *pixelshader) { if (device->cur_pixel_shader == pixelshader) return; @@ -547,7 +547,7 @@ fail: blog(LOG_ERROR, "device_load_pixelshader (GL) failed"); } -void device_load_default_samplerstate(gs_device_t device, bool b_3d, int unit) +void device_load_default_samplerstate(gs_device_t *device, bool b_3d, int unit) { /* TODO */ UNUSED_PARAMETER(device); @@ -555,27 +555,27 @@ void device_load_default_samplerstate(gs_device_t device, bool b_3d, int unit) UNUSED_PARAMETER(unit); } -gs_shader_t device_get_vertex_shader(gs_device_t device) +gs_shader_t *device_get_vertex_shader(gs_device_t *device) { return device->cur_vertex_shader; } -gs_shader_t device_get_pixel_shader(gs_device_t device) +gs_shader_t *device_get_pixel_shader(gs_device_t *device) { return device->cur_pixel_shader; } -gs_texture_t device_get_render_target(gs_device_t device) +gs_texture_t *device_get_render_target(gs_device_t *device) { return device->cur_render_target; } -gs_zstencil_t device_get_zstencil_target(gs_device_t device) +gs_zstencil_t *device_get_zstencil_target(gs_device_t *device) { return device->cur_zstencil_buffer; } -static bool get_tex_dimensions(gs_texture_t tex, uint32_t *width, +static bool get_tex_dimensions(gs_texture_t *tex, uint32_t *width, uint32_t *height) { if (tex->type == GS_TEXTURE_2D) { @@ -632,7 +632,7 @@ struct fbo_info *get_fbo(struct gs_device *device, } static inline struct fbo_info *get_fbo_by_tex(struct gs_device *device, - gs_texture_t tex) + gs_texture_t *tex) { uint32_t width, height; if (!get_tex_dimensions(tex, &width, &height)) @@ -641,7 +641,7 @@ static inline struct fbo_info *get_fbo_by_tex(struct gs_device *device, return get_fbo(device, width, height, tex->format); } -static bool set_current_fbo(gs_device_t device, struct fbo_info *fbo) +static bool set_current_fbo(gs_device_t *device, struct fbo_info *fbo) { if (device->cur_fbo != fbo) { GLuint fbo_obj = fbo ? fbo->fbo : 0; @@ -653,7 +653,7 @@ static bool set_current_fbo(gs_device_t device, struct fbo_info *fbo) return true; } -static bool attach_rendertarget(struct fbo_info *fbo, gs_texture_t tex, +static bool attach_rendertarget(struct fbo_info *fbo, gs_texture_t *tex, int side) { if (fbo->cur_render_target == tex) @@ -679,7 +679,7 @@ static bool attach_rendertarget(struct fbo_info *fbo, gs_texture_t tex, return gl_success("glFramebufferTexture2D"); } -static bool attach_zstencil(struct fbo_info *fbo, gs_zstencil_t zs) +static bool attach_zstencil(struct fbo_info *fbo, gs_zstencil_t *zs) { GLuint zsbuffer = 0; GLenum zs_attachment = GL_DEPTH_STENCIL_ATTACHMENT; @@ -702,8 +702,8 @@ static bool attach_zstencil(struct fbo_info *fbo, gs_zstencil_t zs) return true; } -static bool set_target(gs_device_t device, gs_texture_t tex, int side, - gs_zstencil_t zs) +static bool set_target(gs_device_t *device, gs_texture_t *tex, int side, + gs_zstencil_t *zs) { struct fbo_info *fbo; @@ -733,8 +733,8 @@ static bool set_target(gs_device_t device, gs_texture_t tex, int side, return true; } -void device_set_render_target(gs_device_t device, gs_texture_t tex, - gs_zstencil_t zstencil) +void device_set_render_target(gs_device_t *device, gs_texture_t *tex, + gs_zstencil_t *zstencil) { if (tex) { if (tex->type != GS_TEXTURE_2D) { @@ -757,8 +757,8 @@ fail: blog(LOG_ERROR, "device_set_render_target (GL) failed"); } -void device_set_cube_render_target(gs_device_t device, gs_texture_t cubetex, - int side, gs_zstencil_t zstencil) +void device_set_cube_render_target(gs_device_t *device, gs_texture_t *cubetex, + int side, gs_zstencil_t *zstencil) { if (cubetex) { if (cubetex->type != GS_TEXTURE_CUBE) { @@ -781,9 +781,9 @@ fail: blog(LOG_ERROR, "device_set_cube_render_target (GL) failed"); } -void device_copy_texture_region(gs_device_t device, - gs_texture_t dst, uint32_t dst_x, uint32_t dst_y, - gs_texture_t src, uint32_t src_x, uint32_t src_y, +void device_copy_texture_region(gs_device_t *device, + gs_texture_t *dst, uint32_t dst_x, uint32_t dst_y, + gs_texture_t *src, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h) { struct gs_texture_2d *src2d = (struct gs_texture_2d*)src; @@ -830,17 +830,18 @@ fail: blog(LOG_ERROR, "device_copy_texture (GL) failed"); } -void device_copy_texture(gs_device_t device, gs_texture_t dst, gs_texture_t src) +void device_copy_texture(gs_device_t *device, gs_texture_t *dst, + gs_texture_t *src) { device_copy_texture_region(device, dst, 0, 0, src, 0, 0, 0, 0); } -void device_begin_scene(gs_device_t device) +void device_begin_scene(gs_device_t *device) { clear_textures(device); } -static inline bool can_render(gs_device_t device) +static inline bool can_render(gs_device_t *device) { if (!device->cur_vertex_shader) { blog(LOG_ERROR, "No vertex shader specified"); @@ -898,12 +899,12 @@ static inline struct gs_program *get_shader_program(struct gs_device *device) return program; } -void device_draw(gs_device_t device, enum gs_draw_mode draw_mode, +void device_draw(gs_device_t *device, enum gs_draw_mode draw_mode, uint32_t start_vert, uint32_t num_verts) { struct gs_index_buffer *ib = device->cur_index_buffer; GLenum topology = convert_gs_topology(draw_mode); - gs_effect_t effect = gs_get_effect(); + gs_effect_t *effect = gs_get_effect(); struct gs_program *program; if (!can_render(device)) @@ -957,13 +958,13 @@ fail: blog(LOG_ERROR, "device_draw (GL) failed"); } -void device_end_scene(gs_device_t device) +void device_end_scene(gs_device_t *device) { /* does nothing */ UNUSED_PARAMETER(device); } -void device_clear(gs_device_t device, uint32_t clear_flags, +void device_clear(gs_device_t *device, uint32_t clear_flags, struct vec4 *color, float depth, uint8_t stencil) { GLbitfield gl_flags = 0; @@ -990,14 +991,14 @@ void device_clear(gs_device_t device, uint32_t clear_flags, UNUSED_PARAMETER(device); } -void device_flush(gs_device_t device) +void device_flush(gs_device_t *device) { glFlush(); UNUSED_PARAMETER(device); } -void device_set_cull_mode(gs_device_t device, enum gs_cull_mode mode) +void device_set_cull_mode(gs_device_t *device, enum gs_cull_mode mode) { if (device->cur_cull_mode == mode) return; @@ -1015,12 +1016,12 @@ void device_set_cull_mode(gs_device_t device, enum gs_cull_mode mode) gl_disable(GL_CULL_FACE); } -enum gs_cull_mode device_get_cull_mode(gs_device_t device) +enum gs_cull_mode device_get_cull_mode(gs_device_t *device) { return device->cur_cull_mode; } -void device_enable_blending(gs_device_t device, bool enable) +void device_enable_blending(gs_device_t *device, bool enable) { if (enable) gl_enable(GL_BLEND); @@ -1030,7 +1031,7 @@ void device_enable_blending(gs_device_t device, bool enable) UNUSED_PARAMETER(device); } -void device_enable_depth_test(gs_device_t device, bool enable) +void device_enable_depth_test(gs_device_t *device, bool enable) { if (enable) gl_enable(GL_DEPTH_TEST); @@ -1040,7 +1041,7 @@ void device_enable_depth_test(gs_device_t device, bool enable) UNUSED_PARAMETER(device); } -void device_enable_stencil_test(gs_device_t device, bool enable) +void device_enable_stencil_test(gs_device_t *device, bool enable) { if (enable) gl_enable(GL_STENCIL_TEST); @@ -1050,7 +1051,7 @@ void device_enable_stencil_test(gs_device_t device, bool enable) UNUSED_PARAMETER(device); } -void device_enable_stencil_write(gs_device_t device, bool enable) +void device_enable_stencil_write(gs_device_t *device, bool enable) { if (enable) glStencilMask(0xFFFFFFFF); @@ -1060,7 +1061,7 @@ void device_enable_stencil_write(gs_device_t device, bool enable) UNUSED_PARAMETER(device); } -void device_enable_color(gs_device_t device, bool red, bool green, +void device_enable_color(gs_device_t *device, bool red, bool green, bool blue, bool alpha) { glColorMask(red, green, blue, alpha); @@ -1068,7 +1069,7 @@ void device_enable_color(gs_device_t device, bool red, bool green, UNUSED_PARAMETER(device); } -void device_blend_function(gs_device_t device, enum gs_blend_type src, +void device_blend_function(gs_device_t *device, enum gs_blend_type src, enum gs_blend_type dest) { GLenum gl_src = convert_gs_blend_type(src); @@ -1081,7 +1082,7 @@ void device_blend_function(gs_device_t device, enum gs_blend_type src, UNUSED_PARAMETER(device); } -void device_depth_function(gs_device_t device, enum gs_depth_test test) +void device_depth_function(gs_device_t *device, enum gs_depth_test test) { GLenum gl_test = convert_gs_depth_test(test); @@ -1092,7 +1093,7 @@ void device_depth_function(gs_device_t device, enum gs_depth_test test) UNUSED_PARAMETER(device); } -void device_stencil_function(gs_device_t device, enum gs_stencil_side side, +void device_stencil_function(gs_device_t *device, enum gs_stencil_side side, enum gs_depth_test test) { GLenum gl_side = convert_gs_stencil_side(side); @@ -1105,7 +1106,7 @@ void device_stencil_function(gs_device_t device, enum gs_stencil_side side, UNUSED_PARAMETER(device); } -void device_stencil_op(gs_device_t device, enum gs_stencil_side side, +void device_stencil_op(gs_device_t *device, enum gs_stencil_side side, enum gs_stencil_op_type fail, enum gs_stencil_op_type zfail, enum gs_stencil_op_type zpass) { @@ -1132,7 +1133,7 @@ static inline uint32_t get_target_height(struct gs_device *device) return gs_cubetexture_get_size(device->cur_render_target); } -void device_set_viewport(gs_device_t device, int x, int y, int width, +void device_set_viewport(gs_device_t *device, int x, int y, int width, int height) { uint32_t base_height; @@ -1155,12 +1156,12 @@ void device_set_viewport(gs_device_t device, int x, int y, int width, device->cur_viewport.cy = height; } -void device_get_viewport(gs_device_t device, struct gs_rect *rect) +void device_get_viewport(gs_device_t *device, struct gs_rect *rect) { *rect = device->cur_viewport; } -void device_set_scissor_rect(gs_device_t device, struct gs_rect *rect) +void device_set_scissor_rect(gs_device_t *device, struct gs_rect *rect) { UNUSED_PARAMETER(device); @@ -1176,7 +1177,7 @@ void device_set_scissor_rect(gs_device_t device, struct gs_rect *rect) blog(LOG_ERROR, "device_set_scissor_rect (GL) failed"); } -void device_ortho(gs_device_t device, float left, float right, +void device_ortho(gs_device_t *device, float left, float right, float top, float bottom, float near, float far) { struct matrix4 *dst = &device->cur_proj; @@ -1202,7 +1203,7 @@ void device_ortho(gs_device_t device, float left, float right, dst->t.w = 1.0f; } -void device_frustum(gs_device_t device, float left, float right, +void device_frustum(gs_device_t *device, float left, float right, float top, float bottom, float near, float far) { struct matrix4 *dst = &device->cur_proj; @@ -1229,12 +1230,12 @@ void device_frustum(gs_device_t device, float left, float right, dst->z.w = -1.0f; } -void device_projection_push(gs_device_t device) +void device_projection_push(gs_device_t *device) { da_push_back(device->proj_stack, &device->cur_proj); } -void device_projection_pop(gs_device_t device) +void device_projection_pop(gs_device_t *device) { struct matrix4 *end; if (!device->proj_stack.num) @@ -1245,7 +1246,7 @@ void device_projection_pop(gs_device_t device) da_pop_back(device->proj_stack); } -void gs_swapchain_destroy(gs_swapchain_t swapchain) +void gs_swapchain_destroy(gs_swapchain_t *swapchain) { if (!swapchain) return; @@ -1259,41 +1260,41 @@ void gs_swapchain_destroy(gs_swapchain_t swapchain) bfree(swapchain); } -void gs_voltexture_destroy(gs_texture_t voltex) +void gs_voltexture_destroy(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); } -uint32_t gs_voltexture_get_width(gs_texture_t voltex) +uint32_t gs_voltexture_get_width(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); return 0; } -uint32_t gs_voltexture_get_height(gs_texture_t voltex) +uint32_t gs_voltexture_get_height(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); return 0; } -uint32_t gs_voltexture_getdepth(gs_texture_t voltex) +uint32_t gs_voltexture_getdepth(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); return 0; } -enum gs_color_format gs_voltexture_get_color_format(gs_texture_t voltex) +enum gs_color_format gs_voltexture_get_color_format(gs_texture_t *voltex) { /* TODO */ UNUSED_PARAMETER(voltex); return GS_UNKNOWN; } -void gs_samplerstate_destroy(gs_samplerstate_t samplerstate) +void gs_samplerstate_destroy(gs_samplerstate_t *samplerstate) { if (!samplerstate) return; diff --git a/libobs-opengl/gl-subsystem.h b/libobs-opengl/gl-subsystem.h index 83746787a..02e95b77c 100644 --- a/libobs-opengl/gl-subsystem.h +++ b/libobs-opengl/gl-subsystem.h @@ -273,7 +273,7 @@ extern void convert_sampler_info(struct gs_sampler_state *sampler, struct gs_sampler_info *info); struct gs_sampler_state { - gs_device_t device; + gs_device_t *device; volatile long ref; GLint min_filter; @@ -284,12 +284,12 @@ struct gs_sampler_state { GLint max_anisotropy; }; -static inline void samplerstate_addref(gs_samplerstate_t ss) +static inline void samplerstate_addref(gs_samplerstate_t *ss) { os_atomic_inc_long(&ss->ref); } -static inline void samplerstate_release(gs_samplerstate_t ss) +static inline void samplerstate_release(gs_samplerstate_t *ss) { if (os_atomic_dec_long(&ss->ref) == 0) bfree(ss); @@ -299,7 +299,7 @@ struct gs_shader_param { enum gs_shader_param_type type; char *name; - gs_shader_t shader; + gs_shader_t *shader; GLint texture_id; size_t sampler_id; int array_count; @@ -327,7 +327,7 @@ struct shader_attrib { }; struct gs_shader { - gs_device_t device; + gs_device_t *device; enum gs_shader_type type; GLuint obj; @@ -336,7 +336,7 @@ struct gs_shader { DARRAY(struct shader_attrib) attribs; DARRAY(struct gs_shader_param) params; - DARRAY(gs_samplerstate_t) samplers; + DARRAY(gs_samplerstate_t*) samplers; }; struct program_param { @@ -345,7 +345,7 @@ struct program_param { }; struct gs_program { - gs_device_t device; + gs_device_t *device; GLuint obj; struct gs_shader *vertex_shader; struct gs_shader *pixel_shader; @@ -370,7 +370,7 @@ struct gs_vertex_buffer { DARRAY(GLuint) uv_buffers; DARRAY(size_t) uv_sizes; - gs_device_t device; + gs_device_t *device; size_t num; bool dynamic; struct gs_vb_data *data; @@ -384,7 +384,7 @@ struct gs_index_buffer { enum gs_index_type type; GLuint gl_type; - gs_device_t device; + gs_device_t *device; void *data; size_t num; size_t width; @@ -393,7 +393,7 @@ struct gs_index_buffer { }; struct gs_texture { - gs_device_t device; + gs_device_t *device; enum gs_texture_type type; enum gs_color_format format; GLenum gl_format; @@ -407,7 +407,7 @@ struct gs_texture { bool is_dummy; bool gen_mipmaps; - gs_samplerstate_t cur_sampler; + gs_samplerstate_t *cur_sampler; }; struct gs_texture_2d { @@ -426,7 +426,7 @@ struct gs_texture_cube { }; struct gs_stage_surface { - gs_device_t device; + gs_device_t *device; enum gs_color_format format; uint32_t width; @@ -440,14 +440,14 @@ struct gs_stage_surface { }; struct gs_zstencil_buffer { - gs_device_t device; + gs_device_t *device; GLuint buffer; GLuint attachment; GLenum format; }; struct gs_swap_chain { - gs_device_t device; + gs_device_t *device; struct gl_windowinfo *wi; struct gs_init_data info; }; @@ -458,9 +458,9 @@ struct fbo_info { uint32_t height; enum gs_color_format format; - gs_texture_t cur_render_target; + gs_texture_t *cur_render_target; int cur_render_side; - gs_zstencil_t cur_zstencil_buffer; + gs_zstencil_t *cur_zstencil_buffer; }; static inline void fbo_info_destroy(struct fbo_info *fbo) @@ -477,16 +477,16 @@ struct gs_device { struct gl_platform *plat; enum copy_type copy_type; - gs_texture_t cur_render_target; - gs_zstencil_t cur_zstencil_buffer; + gs_texture_t *cur_render_target; + gs_zstencil_t *cur_zstencil_buffer; int cur_render_side; - gs_texture_t cur_textures[GS_MAX_TEXTURES]; - gs_samplerstate_t cur_samplers[GS_MAX_TEXTURES]; - gs_vertbuffer_t cur_vertex_buffer; - gs_indexbuffer_t cur_index_buffer; - gs_shader_t cur_vertex_shader; - gs_shader_t cur_pixel_shader; - gs_swapchain_t cur_swap; + gs_texture_t *cur_textures[GS_MAX_TEXTURES]; + gs_samplerstate_t *cur_samplers[GS_MAX_TEXTURES]; + gs_vertbuffer_t *cur_vertex_buffer; + gs_indexbuffer_t *cur_index_buffer; + gs_shader_t *cur_vertex_shader; + gs_shader_t *cur_pixel_shader; + gs_swapchain_t *cur_swap; struct gs_program *cur_program; struct gs_program *first_program; @@ -507,9 +507,9 @@ struct gs_device { extern struct fbo_info *get_fbo(struct gs_device *device, uint32_t width, uint32_t height, enum gs_color_format format); -extern void gl_update(gs_device_t device); +extern void gl_update(gs_device_t *device); -extern struct gl_platform *gl_platform_create(gs_device_t device, +extern struct gl_platform *gl_platform_create(gs_device_t *device, struct gs_init_data *info); extern struct gs_swap_chain *gl_platform_getswap(struct gl_platform *platform); extern void gl_platform_destroy(struct gl_platform *platform); diff --git a/libobs-opengl/gl-texture2d.c b/libobs-opengl/gl-texture2d.c index 067888c33..f30c1fe97 100644 --- a/libobs-opengl/gl-texture2d.c +++ b/libobs-opengl/gl-texture2d.c @@ -74,7 +74,7 @@ static bool create_pixel_unpack_buffer(struct gs_texture_2d *tex) return success; } -gs_texture_t device_texture_create(gs_device_t device, uint32_t width, +gs_texture_t *device_texture_create(gs_device_t *device, uint32_t width, uint32_t height, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) { @@ -104,15 +104,15 @@ gs_texture_t device_texture_create(gs_device_t device, uint32_t width, goto fail; } - return (gs_texture_t)tex; + return (gs_texture_t*)tex; fail: - gs_texture_destroy((gs_texture_t)tex); + gs_texture_destroy((gs_texture_t*)tex); blog(LOG_ERROR, "device_texture_create (GL) failed"); return NULL; } -static inline bool is_texture_2d(gs_texture_t tex, const char *func) +static inline bool is_texture_2d(gs_texture_t *tex, const char *func) { bool is_tex2d = tex->type == GS_TEXTURE_2D; if (!is_tex2d) @@ -120,7 +120,7 @@ static inline bool is_texture_2d(gs_texture_t tex, const char *func) return is_tex2d; } -void gs_texture_destroy(gs_texture_t tex) +void gs_texture_destroy(gs_texture_t *tex) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)tex; if (!tex) @@ -141,7 +141,7 @@ void gs_texture_destroy(gs_texture_t tex) bfree(tex); } -uint32_t gs_texture_get_width(gs_texture_t tex) +uint32_t gs_texture_get_width(gs_texture_t *tex) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)tex; if (!is_texture_2d(tex, "gs_texture_get_width")) @@ -150,7 +150,7 @@ uint32_t gs_texture_get_width(gs_texture_t tex) return tex2d->width; } -uint32_t gs_texture_get_height(gs_texture_t tex) +uint32_t gs_texture_get_height(gs_texture_t *tex) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)tex; if (!is_texture_2d(tex, "gs_texture_get_height")) @@ -159,12 +159,12 @@ uint32_t gs_texture_get_height(gs_texture_t tex) return tex2d->height; } -enum gs_color_format gs_texture_get_color_format(gs_texture_t tex) +enum gs_color_format gs_texture_get_color_format(gs_texture_t *tex) { return tex->format; } -bool gs_texture_map(gs_texture_t tex, uint8_t **ptr, uint32_t *linesize) +bool gs_texture_map(gs_texture_t *tex, uint8_t **ptr, uint32_t *linesize) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)tex; @@ -194,7 +194,7 @@ fail: return false; } -void gs_texture_unmap(gs_texture_t tex) +void gs_texture_unmap(gs_texture_t *tex) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)tex; if (!is_texture_2d(tex, "gs_texture_unmap")) @@ -226,7 +226,7 @@ failed: blog(LOG_ERROR, "gs_texture_unmap (GL) failed"); } -bool gs_texture_is_rect(gs_texture_t tex) +bool gs_texture_is_rect(gs_texture_t *tex) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)tex; if (!is_texture_2d(tex, "gs_texture_unmap")) { @@ -237,7 +237,7 @@ bool gs_texture_is_rect(gs_texture_t tex) return tex2d->base.gl_target == GL_TEXTURE_RECTANGLE; } -void *gs_texture_get_obj(gs_texture_t tex) +void *gs_texture_get_obj(gs_texture_t *tex) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)tex; if (!is_texture_2d(tex, "gs_texture_unmap")) { diff --git a/libobs-opengl/gl-texturecube.c b/libobs-opengl/gl-texturecube.c index 5d55405db..aa998faaf 100644 --- a/libobs-opengl/gl-texturecube.c +++ b/libobs-opengl/gl-texturecube.c @@ -58,7 +58,7 @@ static inline bool upload_texture_cube(struct gs_texture_cube *tex, return success; } -gs_texture_t device_cubetexture_create(gs_device_t device, uint32_t size, +gs_texture_t *device_cubetexture_create(gs_device_t *device, uint32_t size, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) { @@ -79,15 +79,15 @@ gs_texture_t device_cubetexture_create(gs_device_t device, uint32_t size, if (!upload_texture_cube(tex, data)) goto fail; - return (gs_texture_t)tex; + return (gs_texture_t*)tex; fail: - gs_cubetexture_destroy((gs_texture_t)tex); + gs_cubetexture_destroy((gs_texture_t*)tex); blog(LOG_ERROR, "device_cubetexture_create (GL) failed"); return NULL; } -void gs_cubetexture_destroy(gs_texture_t tex) +void gs_cubetexture_destroy(gs_texture_t *tex) { if (!tex) return; @@ -100,7 +100,7 @@ void gs_cubetexture_destroy(gs_texture_t tex) bfree(tex); } -static inline bool is_texture_cube(gs_texture_t tex, const char *func) +static inline bool is_texture_cube(gs_texture_t *tex, const char *func) { bool is_texcube = tex->type == GS_TEXTURE_CUBE; if (!is_texcube) @@ -108,7 +108,7 @@ static inline bool is_texture_cube(gs_texture_t tex, const char *func) return is_texcube; } -uint32_t gs_cubetexture_get_size(gs_texture_t cubetex) +uint32_t gs_cubetexture_get_size(gs_texture_t *cubetex) { struct gs_texture_cube *cube = (struct gs_texture_cube*)cubetex; if (!is_texture_cube(cubetex, "gs_cubetexture_get_size")) @@ -117,7 +117,7 @@ uint32_t gs_cubetexture_get_size(gs_texture_t cubetex) return cube->size; } -enum gs_color_format gs_cubetexture_get_color_format(gs_texture_t cubetex) +enum gs_color_format gs_cubetexture_get_color_format(gs_texture_t *cubetex) { return cubetex->format; } diff --git a/libobs-opengl/gl-vertexbuffer.c b/libobs-opengl/gl-vertexbuffer.c index aae77abf4..878a0e820 100644 --- a/libobs-opengl/gl-vertexbuffer.c +++ b/libobs-opengl/gl-vertexbuffer.c @@ -76,7 +76,7 @@ static bool create_buffers(struct gs_vertex_buffer *vb) return true; } -gs_vertbuffer_t device_vertexbuffer_create(gs_device_t device, +gs_vertbuffer_t *device_vertexbuffer_create(gs_device_t *device, struct gs_vb_data *data, uint32_t flags) { struct gs_vertex_buffer *vb = bzalloc(sizeof(struct gs_vertex_buffer)); @@ -94,7 +94,7 @@ gs_vertbuffer_t device_vertexbuffer_create(gs_device_t device, return vb; } -void gs_vertexbuffer_destroy(gs_vertbuffer_t vb) +void gs_vertexbuffer_destroy(gs_vertbuffer_t *vb) { if (vb) { if (vb->vertex_buffer) @@ -120,7 +120,7 @@ void gs_vertexbuffer_destroy(gs_vertbuffer_t vb) } } -void gs_vertexbuffer_flush(gs_vertbuffer_t vb) +void gs_vertexbuffer_flush(gs_vertbuffer_t *vb) { size_t i; @@ -170,7 +170,7 @@ failed: blog(LOG_ERROR, "gs_vertexbuffer_flush (GL) failed"); } -struct gs_vb_data *gs_vertexbuffer_get_data(gs_vertbuffer_t vb) +struct gs_vb_data *gs_vertexbuffer_get_data(gs_vertbuffer_t *vb) { return vb->data; } @@ -251,7 +251,7 @@ bool load_vb_buffers(struct gs_program *program, struct gs_vertex_buffer *vb) return true; } -void device_load_vertexbuffer(gs_device_t device, gs_vertbuffer_t vb) +void device_load_vertexbuffer(gs_device_t *device, gs_vertbuffer_t *vb) { device->cur_vertex_buffer = vb; } diff --git a/libobs-opengl/gl-windows.c b/libobs-opengl/gl-windows.c index 0305455b6..7d8ec59d2 100644 --- a/libobs-opengl/gl-windows.c +++ b/libobs-opengl/gl-windows.c @@ -350,7 +350,7 @@ static struct gl_windowinfo *gl_windowinfo_bare(struct gs_init_data *info) return wi; } -static bool init_default_swap(struct gl_platform *plat, gs_device_t device, +static bool init_default_swap(struct gl_platform *plat, gs_device_t *device, int pixel_format, PIXELFORMATDESCRIPTOR *pfd, struct gs_init_data *info) { @@ -366,13 +366,13 @@ static bool init_default_swap(struct gl_platform *plat, gs_device_t device, return true; } -void gl_update(gs_device_t device) +void gl_update(gs_device_t *device) { /* does nothing on windows */ UNUSED_PARAMETER(device); } -struct gl_platform *gl_platform_create(gs_device_t device, +struct gl_platform *gl_platform_create(gs_device_t *device, struct gs_init_data *info) { struct gl_platform *plat = bzalloc(sizeof(struct gl_platform)); @@ -475,7 +475,7 @@ void gl_windowinfo_destroy(struct gl_windowinfo *wi) } } -void device_enter_context(gs_device_t device) +void device_enter_context(gs_device_t *device) { HDC hdc = device->plat->swap.wi->hdc; if (device->cur_swap) @@ -485,13 +485,13 @@ void device_enter_context(gs_device_t device) blog(LOG_ERROR, "device_load_swapchain (GL) failed"); } -void device_leave_context(gs_device_t device) +void device_leave_context(gs_device_t *device) { wglMakeCurrent(NULL, NULL); UNUSED_PARAMETER(device); } -void device_load_swapchain(gs_device_t device, gs_swapchain_t swap) +void device_load_swapchain(gs_device_t *device, gs_swapchain_t *swap) { HDC hdc; if (!swap) @@ -510,7 +510,7 @@ void device_load_swapchain(gs_device_t device, gs_swapchain_t swap) } } -void device_present(gs_device_t device) +void device_present(gs_device_t *device) { if (!SwapBuffers(device->cur_swap->wi->hdc)) { blog(LOG_ERROR, "SwapBuffers failed, GetLastError " diff --git a/libobs-opengl/gl-x11.c b/libobs-opengl/gl-x11.c index 2c7671b60..69b68d58b 100644 --- a/libobs-opengl/gl-x11.c +++ b/libobs-opengl/gl-x11.c @@ -135,7 +135,7 @@ static bool handle_x_error(Display *disp, const char *error_string) return false; } -struct gl_platform *gl_platform_create(gs_device_t device, +struct gl_platform *gl_platform_create(gs_device_t *device, struct gs_init_data *info) { int num_configs = 0; @@ -366,7 +366,7 @@ void gl_platform_cleanup_swapchain(struct gs_swap_chain *swap) info->int_id = 0; } -void device_enter_context(gs_device_t device) +void device_enter_context(gs_device_t *device) { GLXContext context = device->plat->context; XID window = device->cur_swap->wi->glxid; @@ -377,7 +377,7 @@ void device_enter_context(gs_device_t device) } } -void device_leave_context(gs_device_t device) +void device_leave_context(gs_device_t *device) { Display *display = device->cur_swap->wi->display; @@ -386,7 +386,7 @@ void device_leave_context(gs_device_t device) } } -void gl_update(gs_device_t device) +void gl_update(gs_device_t *device) { Display *display = device->cur_swap->wi->display; XID window = device->cur_swap->wi->int_id; @@ -395,7 +395,7 @@ void gl_update(gs_device_t device) device->cur_swap->info.cx, device->cur_swap->info.cy); } -void device_load_swapchain(gs_device_t device, gs_swapchain_t swap) +void device_load_swapchain(gs_device_t *device, gs_swapchain_t *swap) { if (!swap) swap = &device->plat->swap; @@ -414,7 +414,7 @@ void device_load_swapchain(gs_device_t device, gs_swapchain_t swap) } } -void device_present(gs_device_t device) +void device_present(gs_device_t *device) { Display *display = device->cur_swap->wi->display; XID window = device->cur_swap->wi->glxid; diff --git a/libobs-opengl/gl-zstencil.c b/libobs-opengl/gl-zstencil.c index dfbefe843..0ab933319 100644 --- a/libobs-opengl/gl-zstencil.c +++ b/libobs-opengl/gl-zstencil.c @@ -48,7 +48,7 @@ static inline GLenum get_attachment(enum gs_zstencil_format format) return 0; } -gs_zstencil_t device_zstencil_create(gs_device_t device, uint32_t width, +gs_zstencil_t *device_zstencil_create(gs_device_t *device, uint32_t width, uint32_t height, enum gs_zstencil_format format) { struct gs_zstencil_buffer *zs; @@ -67,7 +67,7 @@ gs_zstencil_t device_zstencil_create(gs_device_t device, uint32_t width, return zs; } -void gs_zstencil_destroy(gs_zstencil_t zs) +void gs_zstencil_destroy(gs_zstencil_t *zs) { if (zs) { if (zs->buffer) { diff --git a/libobs/callback/calldata.c b/libobs/callback/calldata.c index 5b3adde37..78242c778 100644 --- a/libobs/callback/calldata.c +++ b/libobs/callback/calldata.c @@ -63,7 +63,7 @@ static inline const char *cd_serialize_string(uint8_t **pos) return (size != 0) ? str : NULL; } -static bool cd_getparam(calldata_t data, const char *name, +static bool cd_getparam(calldata_t *data, const char *name, uint8_t **pos) { size_t name_size; @@ -114,7 +114,7 @@ static inline void cd_copy_data(uint8_t **pos, const void *in, size_t size) } } -static inline void cd_set_first_param(calldata_t data, const char *name, +static inline void cd_set_first_param(calldata_t *data, const char *name, const void *in, size_t size) { uint8_t *pos; @@ -136,7 +136,7 @@ static inline void cd_set_first_param(calldata_t data, const char *name, *(size_t*)pos = 0; } -static inline void cd_ensure_capacity(calldata_t data, uint8_t **pos, +static inline void cd_ensure_capacity(calldata_t *data, uint8_t **pos, size_t new_size) { size_t offset; @@ -159,7 +159,7 @@ static inline void cd_ensure_capacity(calldata_t data, uint8_t **pos, /* ------------------------------------------------------------------------- */ -bool calldata_get_data(calldata_t data, const char *name, void *out, +bool calldata_get_data(calldata_t *data, const char *name, void *out, size_t size) { uint8_t *pos; @@ -179,7 +179,7 @@ bool calldata_get_data(calldata_t data, const char *name, void *out, return true; } -void calldata_set_data(calldata_t data, const char *name, const void *in, +void calldata_set_data(calldata_t *data, const char *name, const void *in, size_t size) { uint8_t *pos = NULL; @@ -225,7 +225,7 @@ void calldata_set_data(calldata_t data, const char *name, const void *in, } } -bool calldata_get_string(calldata_t data, const char *name, const char **str) +bool calldata_get_string(calldata_t *data, const char *name, const char **str) { uint8_t *pos; if (!data || !name || !*name) diff --git a/libobs/callback/calldata.h b/libobs/callback/calldata.h index f56488b83..73fe8bd8a 100644 --- a/libobs/callback/calldata.h +++ b/libobs/callback/calldata.h @@ -49,7 +49,7 @@ struct calldata { uint8_t *stack; }; -typedef struct calldata *calldata_t; +typedef struct calldata calldata_t; static inline void calldata_init(struct calldata *data) { @@ -61,10 +61,10 @@ static inline void calldata_free(struct calldata *data) bfree(data->stack); } -EXPORT bool calldata_get_data(calldata_t data, const char *name, void *out, +EXPORT bool calldata_get_data(calldata_t *data, const char *name, void *out, size_t size); -EXPORT void calldata_set_data(calldata_t data, const char *name, const void *in, - size_t new_size); +EXPORT void calldata_set_data(calldata_t *data, const char *name, + const void *in, size_t new_size); static inline void calldata_clear(struct calldata *data) { @@ -78,65 +78,65 @@ static inline void calldata_clear(struct calldata *data) /* NOTE: 'get' functions return true only if paramter exists, and is the * same type. They return false otherwise. */ -static inline bool calldata_get_int(calldata_t data, const char *name, +static inline bool calldata_get_int(calldata_t *data, const char *name, long long *val) { return calldata_get_data(data, name, val, sizeof(*val)); } -static inline bool calldata_get_float (calldata_t data, const char *name, +static inline bool calldata_get_float (calldata_t *data, const char *name, double *val) { return calldata_get_data(data, name, val, sizeof(*val)); } -static inline bool calldata_get_bool (calldata_t data, const char *name, +static inline bool calldata_get_bool (calldata_t *data, const char *name, bool *val) { return calldata_get_data(data, name, val, sizeof(*val)); } -static inline bool calldata_get_ptr (calldata_t data, const char *name, +static inline bool calldata_get_ptr (calldata_t *data, const char *name, void *p_ptr) { return calldata_get_data(data, name, p_ptr, sizeof(p_ptr)); } -EXPORT bool calldata_get_string(calldata_t data, const char *name, +EXPORT bool calldata_get_string(calldata_t *data, const char *name, const char **str); /* ------------------------------------------------------------------------- */ /* call if you know your data is valid */ -static inline long long calldata_int(calldata_t data, const char *name) +static inline long long calldata_int(calldata_t *data, const char *name) { long long val = 0; calldata_get_int(data, name, &val); return val; } -static inline double calldata_float(calldata_t data, const char *name) +static inline double calldata_float(calldata_t *data, const char *name) { double val = 0.0; calldata_get_float(data, name, &val); return val; } -static inline bool calldata_bool(calldata_t data, const char *name) +static inline bool calldata_bool(calldata_t *data, const char *name) { bool val = false; calldata_get_bool(data, name, &val); return val; } -static inline void *calldata_ptr(calldata_t data, const char *name) +static inline void *calldata_ptr(calldata_t *data, const char *name) { void *val; calldata_get_ptr(data, name, &val); return val; } -static inline const char *calldata_string(calldata_t data, const char *name) +static inline const char *calldata_string(calldata_t *data, const char *name) { const char *val; calldata_get_string(data, name, &val); @@ -145,31 +145,31 @@ static inline const char *calldata_string(calldata_t data, const char *name) /* ------------------------------------------------------------------------- */ -static inline void calldata_set_int (calldata_t data, const char *name, +static inline void calldata_set_int (calldata_t *data, const char *name, long long val) { calldata_set_data(data, name, &val, sizeof(val)); } -static inline void calldata_set_float (calldata_t data, const char *name, +static inline void calldata_set_float (calldata_t *data, const char *name, double val) { calldata_set_data(data, name, &val, sizeof(val)); } -static inline void calldata_set_bool (calldata_t data, const char *name, +static inline void calldata_set_bool (calldata_t *data, const char *name, bool val) { calldata_set_data(data, name, &val, sizeof(val)); } -static inline void calldata_set_ptr (calldata_t data, const char *name, +static inline void calldata_set_ptr (calldata_t *data, const char *name, void *ptr) { calldata_set_data(data, name, &ptr, sizeof(ptr)); } -static inline void calldata_set_string(calldata_t data, const char *name, +static inline void calldata_set_string(calldata_t *data, const char *name, const char *str) { if (str) diff --git a/libobs/callback/proc.c b/libobs/callback/proc.c index d50408387..9c0aca9ed 100644 --- a/libobs/callback/proc.c +++ b/libobs/callback/proc.c @@ -35,14 +35,14 @@ struct proc_handler { DARRAY(struct proc_info) procs; }; -proc_handler_t proc_handler_create(void) +proc_handler_t *proc_handler_create(void) { struct proc_handler *handler = bmalloc(sizeof(struct proc_handler)); da_init(handler->procs); return handler; } -void proc_handler_destroy(proc_handler_t handler) +void proc_handler_destroy(proc_handler_t *handler) { if (handler) { for (size_t i = 0; i < handler->procs.num; i++) @@ -52,7 +52,7 @@ void proc_handler_destroy(proc_handler_t handler) } } -void proc_handler_add(proc_handler_t handler, const char *decl_string, +void proc_handler_add(proc_handler_t *handler, const char *decl_string, proc_handler_proc_t proc, void *data) { if (!handler) return; @@ -72,8 +72,8 @@ void proc_handler_add(proc_handler_t handler, const char *decl_string, da_push_back(handler->procs, &pi); } -bool proc_handler_call(proc_handler_t handler, const char *name, - calldata_t params) +bool proc_handler_call(proc_handler_t *handler, const char *name, + calldata_t *params) { if (!handler) return false; diff --git a/libobs/callback/proc.h b/libobs/callback/proc.h index c23ccc3c1..7b66676ed 100644 --- a/libobs/callback/proc.h +++ b/libobs/callback/proc.h @@ -33,21 +33,21 @@ extern "C" { */ struct proc_handler; -typedef struct proc_handler *proc_handler_t; -typedef void (*proc_handler_proc_t)(void*, calldata_t); +typedef struct proc_handler proc_handler_t; +typedef void (*proc_handler_proc_t)(void*, calldata_t*); -EXPORT proc_handler_t proc_handler_create(void); -EXPORT void proc_handler_destroy(proc_handler_t handler); +EXPORT proc_handler_t *proc_handler_create(void); +EXPORT void proc_handler_destroy(proc_handler_t *handler); -EXPORT void proc_handler_add(proc_handler_t handler, const char *decl_string, +EXPORT void proc_handler_add(proc_handler_t *handler, const char *decl_string, proc_handler_proc_t proc, void *data); /** * Calls a function in a procedure handler. Returns false if the named * procedure is not found. */ -EXPORT bool proc_handler_call(proc_handler_t handler, const char *name, - calldata_t params); +EXPORT bool proc_handler_call(proc_handler_t *handler, const char *name, + calldata_t *params); #ifdef __cplusplus } diff --git a/libobs/callback/signal.c b/libobs/callback/signal.c index 8b12e2455..107bdf211 100644 --- a/libobs/callback/signal.c +++ b/libobs/callback/signal.c @@ -91,7 +91,7 @@ struct signal_handler { pthread_mutex_t mutex; }; -static struct signal_info *getsignal(signal_handler_t handler, +static struct signal_info *getsignal(signal_handler_t *handler, const char *name, struct signal_info **p_last) { struct signal_info *signal, *last= NULL; @@ -112,7 +112,7 @@ static struct signal_info *getsignal(signal_handler_t handler, /* ------------------------------------------------------------------------- */ -signal_handler_t signal_handler_create(void) +signal_handler_t *signal_handler_create(void) { struct signal_handler *handler = bmalloc(sizeof(struct signal_handler)); handler->first = NULL; @@ -126,7 +126,7 @@ signal_handler_t signal_handler_create(void) return handler; } -void signal_handler_destroy(signal_handler_t handler) +void signal_handler_destroy(signal_handler_t *handler) { if (handler) { struct signal_info *sig = handler->first; @@ -141,7 +141,7 @@ void signal_handler_destroy(signal_handler_t handler) } } -bool signal_handler_add(signal_handler_t handler, const char *signal_decl) +bool signal_handler_add(signal_handler_t *handler, const char *signal_decl) { struct decl_info func = {0}; struct signal_info *sig, *last; @@ -172,7 +172,7 @@ bool signal_handler_add(signal_handler_t handler, const char *signal_decl) return success; } -void signal_handler_connect(signal_handler_t handler, const char *signal, +void signal_handler_connect(signal_handler_t *handler, const char *signal, signal_callback_t callback, void *data) { struct signal_info *sig, *last; @@ -203,7 +203,7 @@ void signal_handler_connect(signal_handler_t handler, const char *signal, pthread_mutex_unlock(&sig->mutex); } -static inline struct signal_info *getsignal_locked(signal_handler_t handler, +static inline struct signal_info *getsignal_locked(signal_handler_t *handler, const char *name) { struct signal_info *sig; @@ -218,7 +218,7 @@ static inline struct signal_info *getsignal_locked(signal_handler_t handler, return sig; } -void signal_handler_disconnect(signal_handler_t handler, const char *signal, +void signal_handler_disconnect(signal_handler_t *handler, const char *signal, signal_callback_t callback, void *data) { struct signal_info *sig = getsignal_locked(handler, signal); @@ -240,8 +240,8 @@ void signal_handler_disconnect(signal_handler_t handler, const char *signal, pthread_mutex_unlock(&sig->mutex); } -void signal_handler_signal(signal_handler_t handler, const char *signal, - calldata_t params) +void signal_handler_signal(signal_handler_t *handler, const char *signal, + calldata_t *params) { struct signal_info *sig = getsignal_locked(handler, signal); diff --git a/libobs/callback/signal.h b/libobs/callback/signal.h index 801ba4579..be9138b6b 100644 --- a/libobs/callback/signal.h +++ b/libobs/callback/signal.h @@ -32,16 +32,16 @@ extern "C" { */ struct signal_handler; -typedef struct signal_handler *signal_handler_t; -typedef void (*signal_callback_t)(void*, calldata_t); +typedef struct signal_handler signal_handler_t; +typedef void (*signal_callback_t)(void*, calldata_t*); -EXPORT signal_handler_t signal_handler_create(void); -EXPORT void signal_handler_destroy(signal_handler_t handler); +EXPORT signal_handler_t *signal_handler_create(void); +EXPORT void signal_handler_destroy(signal_handler_t *handler); -EXPORT bool signal_handler_add(signal_handler_t handler, +EXPORT bool signal_handler_add(signal_handler_t *handler, const char *signal_decl); -static inline bool signal_handler_add_array(signal_handler_t handler, +static inline bool signal_handler_add_array(signal_handler_t *handler, const char **signal_decls) { bool success = true; @@ -55,13 +55,13 @@ static inline bool signal_handler_add_array(signal_handler_t handler, return success; } -EXPORT void signal_handler_connect(signal_handler_t handler, const char *signal, - signal_callback_t callback, void *data); -EXPORT void signal_handler_disconnect(signal_handler_t handler, +EXPORT void signal_handler_connect(signal_handler_t *handler, + const char *signal, signal_callback_t callback, void *data); +EXPORT void signal_handler_disconnect(signal_handler_t *handler, const char *signal, signal_callback_t callback, void *data); -EXPORT void signal_handler_signal(signal_handler_t handler, const char *signal, - calldata_t params); +EXPORT void signal_handler_signal(signal_handler_t *handler, const char *signal, + calldata_t *params); #ifdef __cplusplus } diff --git a/libobs/graphics/device-exports.h b/libobs/graphics/device-exports.h index 48d115bf6..0f86db402 100644 --- a/libobs/graphics/device-exports.h +++ b/libobs/graphics/device-exports.h @@ -26,118 +26,121 @@ extern "C" { EXPORT const char *device_get_name(void); EXPORT int device_get_type(void); EXPORT const char *device_preprocessor_name(void); -EXPORT int device_create(gs_device_t *device, struct gs_init_data *data); -EXPORT void device_destroy(gs_device_t device); -EXPORT void device_enter_context(gs_device_t device); -EXPORT void device_leave_context(gs_device_t device); -EXPORT gs_swapchain_t device_swapchain_create(gs_device_t device, +EXPORT int device_create(gs_device_t **device, struct gs_init_data *data); +EXPORT void device_destroy(gs_device_t *device); +EXPORT void device_enter_context(gs_device_t *device); +EXPORT void device_leave_context(gs_device_t *device); +EXPORT gs_swapchain_t *device_swapchain_create(gs_device_t *device, struct gs_init_data *data); -EXPORT void device_resize(gs_device_t device, uint32_t x, uint32_t y); -EXPORT void device_get_size(gs_device_t device, uint32_t *x, uint32_t *y); -EXPORT uint32_t device_get_width(gs_device_t device); -EXPORT uint32_t device_get_height(gs_device_t device); -EXPORT gs_texture_t device_texture_create(gs_device_t device, uint32_t width, +EXPORT void device_resize(gs_device_t *device, uint32_t x, uint32_t y); +EXPORT void device_get_size(gs_device_t *device, uint32_t *x, uint32_t *y); +EXPORT uint32_t device_get_width(gs_device_t *device); +EXPORT uint32_t device_get_height(gs_device_t *device); +EXPORT gs_texture_t *device_texture_create(gs_device_t *device, uint32_t width, uint32_t height, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags); -EXPORT gs_texture_t device_cubetexture_create(gs_device_t device, uint32_t size, +EXPORT gs_texture_t *device_cubetexture_create(gs_device_t *device, + uint32_t size, enum gs_color_format color_format, + uint32_t levels, const uint8_t **data, uint32_t flags); +EXPORT gs_texture_t *device_voltexture_create(gs_device_t *device, + uint32_t width, uint32_t height, uint32_t depth, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags); -EXPORT gs_texture_t device_voltexture_create(gs_device_t device, uint32_t width, - uint32_t height, uint32_t depth, - enum gs_color_format color_format, uint32_t levels, - const uint8_t **data, uint32_t flags); -EXPORT gs_zstencil_t device_zstencil_create(gs_device_t device, uint32_t width, - uint32_t height, enum gs_zstencil_format format); -EXPORT gs_stagesurf_t device_stagesurface_create(gs_device_t device, +EXPORT gs_zstencil_t *device_zstencil_create(gs_device_t *device, + uint32_t width, uint32_t height, + enum gs_zstencil_format format); +EXPORT gs_stagesurf_t *device_stagesurface_create(gs_device_t *device, uint32_t width, uint32_t height, enum gs_color_format color_format); -EXPORT gs_samplerstate_t device_samplerstate_create(gs_device_t device, +EXPORT gs_samplerstate_t *device_samplerstate_create(gs_device_t *device, struct gs_sampler_info *info); -EXPORT gs_shader_t device_vertexshader_create(gs_device_t device, +EXPORT gs_shader_t *device_vertexshader_create(gs_device_t *device, const char *shader, const char *file, char **error_string); -EXPORT gs_shader_t device_pixelshader_create(gs_device_t device, +EXPORT gs_shader_t *device_pixelshader_create(gs_device_t *device, const char *shader, const char *file, char **error_string); -EXPORT gs_vertbuffer_t device_vertexbuffer_create(gs_device_t device, +EXPORT gs_vertbuffer_t *device_vertexbuffer_create(gs_device_t *device, struct gs_vb_data *data, uint32_t flags); -EXPORT gs_indexbuffer_t device_indexbuffer_create(gs_device_t device, +EXPORT gs_indexbuffer_t *device_indexbuffer_create(gs_device_t *device, enum gs_index_type type, void *indices, size_t num, uint32_t flags); -EXPORT enum gs_texture_type device_get_texture_type(gs_texture_t texture); -EXPORT void device_load_vertexbuffer(gs_device_t device, - gs_vertbuffer_t vertbuffer); -EXPORT void device_load_indexbuffer(gs_device_t device, - gs_indexbuffer_t indexbuffer); -EXPORT void device_load_texture(gs_device_t device, gs_texture_t tex, int unit); -EXPORT void device_load_samplerstate(gs_device_t device, - gs_samplerstate_t samplerstate, int unit); -EXPORT void device_load_vertexshader(gs_device_t device, - gs_shader_t vertshader); -EXPORT void device_load_pixelshader(gs_device_t device, - gs_shader_t pixelshader); -EXPORT void device_load_default_samplerstate(gs_device_t device, bool b_3d, +EXPORT enum gs_texture_type device_get_texture_type(gs_texture_t *texture); +EXPORT void device_load_vertexbuffer(gs_device_t *device, + gs_vertbuffer_t *vertbuffer); +EXPORT void device_load_indexbuffer(gs_device_t *device, + gs_indexbuffer_t *indexbuffer); +EXPORT void device_load_texture(gs_device_t *device, gs_texture_t *tex, int unit); -EXPORT gs_shader_t device_get_vertex_shader(gs_device_t device); -EXPORT gs_shader_t device_get_pixel_shader(gs_device_t device); -EXPORT gs_texture_t device_get_render_target(gs_device_t device); -EXPORT gs_zstencil_t device_get_zstencil_target(gs_device_t device); -EXPORT void device_set_render_target(gs_device_t device, gs_texture_t tex, - gs_zstencil_t zstencil); -EXPORT void device_set_cube_render_target(gs_device_t device, - gs_texture_t cubetex, - int side, gs_zstencil_t zstencil); -EXPORT void device_copy_texture(gs_device_t device, gs_texture_t dst, - gs_texture_t src); -EXPORT void device_copy_texture_region(gs_device_t device, - gs_texture_t dst, uint32_t dst_x, uint32_t dst_y, - gs_texture_t src, uint32_t src_x, uint32_t src_y, +EXPORT void device_load_samplerstate(gs_device_t *device, + gs_samplerstate_t *samplerstate, int unit); +EXPORT void device_load_vertexshader(gs_device_t *device, + gs_shader_t *vertshader); +EXPORT void device_load_pixelshader(gs_device_t *device, + gs_shader_t *pixelshader); +EXPORT void device_load_default_samplerstate(gs_device_t *device, bool b_3d, + int unit); +EXPORT gs_shader_t *device_get_vertex_shader(gs_device_t *device); +EXPORT gs_shader_t *device_get_pixel_shader(gs_device_t *device); +EXPORT gs_texture_t *device_get_render_target(gs_device_t *device); +EXPORT gs_zstencil_t *device_get_zstencil_target(gs_device_t *device); +EXPORT void device_set_render_target(gs_device_t *device, gs_texture_t *tex, + gs_zstencil_t *zstencil); +EXPORT void device_set_cube_render_target(gs_device_t *device, + gs_texture_t *cubetex, + int side, gs_zstencil_t *zstencil); +EXPORT void device_copy_texture(gs_device_t *device, gs_texture_t *dst, + gs_texture_t *src); +EXPORT void device_copy_texture_region(gs_device_t *device, + gs_texture_t *dst, uint32_t dst_x, uint32_t dst_y, + gs_texture_t *src, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h); -EXPORT void device_stage_texture(gs_device_t device, gs_stagesurf_t dst, - gs_texture_t src); -EXPORT void device_begin_scene(gs_device_t device); -EXPORT void device_draw(gs_device_t device, enum gs_draw_mode draw_mode, +EXPORT void device_stage_texture(gs_device_t *device, gs_stagesurf_t *dst, + gs_texture_t *src); +EXPORT void device_begin_scene(gs_device_t *device); +EXPORT void device_draw(gs_device_t *device, enum gs_draw_mode draw_mode, uint32_t start_vert, uint32_t num_verts); -EXPORT void device_end_scene(gs_device_t device); -EXPORT void device_load_swapchain(gs_device_t device, gs_swapchain_t swapchain); -EXPORT void device_clear(gs_device_t device, uint32_t clear_flags, +EXPORT void device_end_scene(gs_device_t *device); +EXPORT void device_load_swapchain(gs_device_t *device, + gs_swapchain_t *swapchain); +EXPORT void device_clear(gs_device_t *device, uint32_t clear_flags, struct vec4 *color, float depth, uint8_t stencil); -EXPORT void device_present(gs_device_t device); -EXPORT void device_flush(gs_device_t device); -EXPORT void device_set_cull_mode(gs_device_t device, enum gs_cull_mode mode); -EXPORT enum gs_cull_mode device_get_cull_mode(gs_device_t device); -EXPORT void device_enable_blending(gs_device_t device, bool enable); -EXPORT void device_enable_depth_test(gs_device_t device, bool enable); -EXPORT void device_enable_stencil_test(gs_device_t device, bool enable); -EXPORT void device_enable_stencil_write(gs_device_t device, bool enable); -EXPORT void device_enable_color(gs_device_t device, bool red, bool green, +EXPORT void device_present(gs_device_t *device); +EXPORT void device_flush(gs_device_t *device); +EXPORT void device_set_cull_mode(gs_device_t *device, enum gs_cull_mode mode); +EXPORT enum gs_cull_mode device_get_cull_mode(gs_device_t *device); +EXPORT void device_enable_blending(gs_device_t *device, bool enable); +EXPORT void device_enable_depth_test(gs_device_t *device, bool enable); +EXPORT void device_enable_stencil_test(gs_device_t *device, bool enable); +EXPORT void device_enable_stencil_write(gs_device_t *device, bool enable); +EXPORT void device_enable_color(gs_device_t *device, bool red, bool green, bool blue, bool alpha); -EXPORT void device_blend_function(gs_device_t device, enum gs_blend_type src, +EXPORT void device_blend_function(gs_device_t *device, enum gs_blend_type src, enum gs_blend_type dest); -EXPORT void device_depth_function(gs_device_t device, enum gs_depth_test test); -EXPORT void device_stencil_function(gs_device_t device, +EXPORT void device_depth_function(gs_device_t *device, enum gs_depth_test test); +EXPORT void device_stencil_function(gs_device_t *device, enum gs_stencil_side side, enum gs_depth_test test); -EXPORT void device_stencil_op(gs_device_t device, enum gs_stencil_side side, +EXPORT void device_stencil_op(gs_device_t *device, enum gs_stencil_side side, enum gs_stencil_op_type fail, enum gs_stencil_op_type zfail, enum gs_stencil_op_type zpass); -EXPORT void device_enable_fullscreen(gs_device_t device, bool enable); -EXPORT int device_fullscreen_enabled(gs_device_t device); -EXPORT void device_setdisplaymode(gs_device_t device, +EXPORT void device_enable_fullscreen(gs_device_t *device, bool enable); +EXPORT int device_fullscreen_enabled(gs_device_t *device); +EXPORT void device_setdisplaymode(gs_device_t *device, const struct gs_display_mode *mode); -EXPORT void device_getdisplaymode(gs_device_t device, +EXPORT void device_getdisplaymode(gs_device_t *device, struct gs_display_mode *mode); -EXPORT void device_setcolorramp(gs_device_t device, float gamma, +EXPORT void device_setcolorramp(gs_device_t *device, float gamma, float brightness, float contrast); -EXPORT void device_set_viewport(gs_device_t device, int x, int y, int width, +EXPORT void device_set_viewport(gs_device_t *device, int x, int y, int width, int height); -EXPORT void device_get_viewport(gs_device_t device, struct gs_rect *rect); -EXPORT void device_set_scissor_rect(gs_device_t device, struct gs_rect *rect); -EXPORT void device_ortho(gs_device_t device, float left, float right, +EXPORT void device_get_viewport(gs_device_t *device, struct gs_rect *rect); +EXPORT void device_set_scissor_rect(gs_device_t *device, struct gs_rect *rect); +EXPORT void device_ortho(gs_device_t *device, float left, float right, float top, float bottom, float znear, float zfar); -EXPORT void device_frustum(gs_device_t device, float left, float right, +EXPORT void device_frustum(gs_device_t *device, float left, float right, float top, float bottom, float znear, float zfar); -EXPORT void device_projection_push(gs_device_t device); -EXPORT void device_projection_pop(gs_device_t device); +EXPORT void device_projection_push(gs_device_t *device); +EXPORT void device_projection_pop(gs_device_t *device); #ifdef __cplusplus } diff --git a/libobs/graphics/effect-parser.c b/libobs/graphics/effect-parser.c index c9579a12a..6b5132cc5 100644 --- a/libobs/graphics/effect-parser.c +++ b/libobs/graphics/effect-parser.c @@ -919,7 +919,7 @@ static bool ep_compile(struct effect_parser *ep); extern const char *gs_preprocessor_name(void); -bool ep_parse(struct effect_parser *ep, gs_effect_t effect, +bool ep_parse(struct effect_parser *ep, gs_effect_t *effect, const char *effect_string, const char *file) { bool success; @@ -1320,7 +1320,7 @@ static void ep_compile_param(struct effect_parser *ep, size_t idx) static bool ep_compile_pass_shaderparams(struct effect_parser *ep, struct darray *pass_params, struct darray *used_params, - gs_shader_t shader) + gs_shader_t *shader) { size_t i; darray_resize(sizeof(struct pass_shaderparam), pass_params, @@ -1357,7 +1357,7 @@ static inline bool ep_compile_pass_shader(struct effect_parser *ep, struct dstr location; struct darray used_params; /* struct dstr */ struct darray *pass_params = NULL; /* struct pass_shaderparam */ - gs_shader_t shader = NULL; + gs_shader_t *shader = NULL; bool success = true; dstr_init(&shader_str); diff --git a/libobs/graphics/effect-parser.h b/libobs/graphics/effect-parser.h index a3553372c..36b6669a2 100644 --- a/libobs/graphics/effect-parser.h +++ b/libobs/graphics/effect-parser.h @@ -243,7 +243,7 @@ static inline void ep_func_free(struct ep_func *epf) /* ------------------------------------------------------------------------- */ struct effect_parser { - gs_effect_t effect; + gs_effect_t *effect; DARRAY(struct ep_param) params; DARRAY(struct ep_struct) structs; @@ -275,7 +275,7 @@ static inline void ep_init(struct effect_parser *ep) extern void ep_free(struct effect_parser *ep); -extern bool ep_parse(struct effect_parser *ep, gs_effect_t effect, +extern bool ep_parse(struct effect_parser *ep, gs_effect_t *effect, const char *effect_string, const char *file); #ifdef __cplusplus diff --git a/libobs/graphics/effect.c b/libobs/graphics/effect.c index 7670033c4..d2a8875b9 100644 --- a/libobs/graphics/effect.c +++ b/libobs/graphics/effect.c @@ -21,7 +21,7 @@ #include "vec3.h" #include "vec4.h" -void gs_effect_destroy(gs_effect_t effect) +void gs_effect_destroy(gs_effect_t *effect) { if (effect) { effect_free(effect); @@ -29,7 +29,7 @@ void gs_effect_destroy(gs_effect_t effect) } } -gs_technique_t gs_effect_get_technique(gs_effect_t effect, const char *name) +gs_technique_t *gs_effect_get_technique(gs_effect_t *effect, const char *name) { if (!effect) return NULL; @@ -42,7 +42,7 @@ gs_technique_t gs_effect_get_technique(gs_effect_t effect, const char *name) return NULL; } -size_t gs_technique_begin(gs_technique_t tech) +size_t gs_technique_begin(gs_technique_t *tech) { if (!tech) return 0; @@ -52,7 +52,7 @@ size_t gs_technique_begin(gs_technique_t tech) return tech->passes.num; } -void gs_technique_end(gs_technique_t tech) +void gs_technique_end(gs_technique_t *tech) { if (!tech) return; @@ -91,7 +91,7 @@ static void upload_shader_params(struct darray *pass_params, bool changed_only) for (i = 0; i < pass_params->num; i++) { struct pass_shaderparam *param = params+i; struct gs_effect_param *eparam = param->eparam; - gs_sparam_t sparam = param->sparam; + gs_sparam_t *sparam = param->sparam; if (changed_only && !eparam->changed) continue; @@ -125,13 +125,13 @@ static inline void upload_parameters(struct gs_effect *effect, reset_params(pshader_params); } -void gs_effect_update_params(gs_effect_t effect) +void gs_effect_update_params(gs_effect_t *effect) { if (effect) upload_parameters(effect, true); } -bool gs_technique_begin_pass(gs_technique_t tech, size_t idx) +bool gs_technique_begin_pass(gs_technique_t *tech, size_t idx) { struct gs_effect_pass *passes; struct gs_effect_pass *cur_pass; @@ -150,7 +150,7 @@ bool gs_technique_begin_pass(gs_technique_t tech, size_t idx) return true; } -bool gs_technique_begin_pass_by_name(gs_technique_t tech, +bool gs_technique_begin_pass_by_name(gs_technique_t *tech, const char *name) { if (!tech) @@ -181,7 +181,7 @@ static inline void clear_tex_params(struct darray *in_params) } } -void gs_technique_end_pass(gs_technique_t tech) +void gs_technique_end_pass(gs_technique_t *tech) { if (!tech) return; @@ -194,12 +194,12 @@ void gs_technique_end_pass(gs_technique_t tech) tech->effect->cur_pass = NULL; } -size_t gs_effect_get_num_params(gs_effect_t effect) +size_t gs_effect_get_num_params(gs_effect_t *effect) { return effect ? effect->params.num : 0; } -gs_eparam_t gs_effect_get_param_by_idx(gs_effect_t effect, size_t param) +gs_eparam_t *gs_effect_get_param_by_idx(gs_effect_t *effect, size_t param) { if (!effect) return NULL; @@ -210,7 +210,7 @@ gs_eparam_t gs_effect_get_param_by_idx(gs_effect_t effect, size_t param) return params+param; } -gs_eparam_t gs_effect_get_param_by_name(gs_effect_t effect, const char *name) +gs_eparam_t *gs_effect_get_param_by_name(gs_effect_t *effect, const char *name) { if (!effect) return NULL; @@ -226,17 +226,17 @@ gs_eparam_t gs_effect_get_param_by_name(gs_effect_t effect, const char *name) return NULL; } -gs_eparam_t gs_effect_get_viewproj_matrix(gs_effect_t effect) +gs_eparam_t *gs_effect_get_viewproj_matrix(gs_effect_t *effect) { return effect ? effect->view_proj : NULL; } -gs_eparam_t gs_effect_get_world_matrix(gs_effect_t effect) +gs_eparam_t *gs_effect_get_world_matrix(gs_effect_t *effect) { return effect ? effect->world : NULL; } -void gs_effect_get_param_info(gs_eparam_t param, +void gs_effect_get_param_info(gs_eparam_t *param, struct gs_effect_param_info *info) { if (!param) @@ -246,7 +246,7 @@ void gs_effect_get_param_info(gs_eparam_t param, info->type = param->type; } -static inline void effect_setval_inline(gs_eparam_t param, +static inline void effect_setval_inline(gs_eparam_t *param, const void *data, size_t size) { bool size_changed; @@ -272,52 +272,52 @@ static inline void effect_setval_inline(gs_eparam_t param, } } -void gs_effect_set_bool(gs_eparam_t param, bool val) +void gs_effect_set_bool(gs_eparam_t *param, bool val) { effect_setval_inline(param, &val, sizeof(bool)); } -void gs_effect_set_float(gs_eparam_t param, float val) +void gs_effect_set_float(gs_eparam_t *param, float val) { effect_setval_inline(param, &val, sizeof(float)); } -void gs_effect_set_int(gs_eparam_t param, int val) +void gs_effect_set_int(gs_eparam_t *param, int val) { effect_setval_inline(param, &val, sizeof(int)); } -void gs_effect_set_matrix4(gs_eparam_t param, const struct matrix4 *val) +void gs_effect_set_matrix4(gs_eparam_t *param, const struct matrix4 *val) { effect_setval_inline(param, val, sizeof(struct matrix4)); } -void gs_effect_set_vec2(gs_eparam_t param, const struct vec2 *val) +void gs_effect_set_vec2(gs_eparam_t *param, const struct vec2 *val) { effect_setval_inline(param, val, sizeof(struct vec2)); } -void gs_effect_set_vec3(gs_eparam_t param, const struct vec3 *val) +void gs_effect_set_vec3(gs_eparam_t *param, const struct vec3 *val) { effect_setval_inline(param, val, sizeof(float) * 3); } -void gs_effect_set_vec4(gs_eparam_t param, const struct vec4 *val) +void gs_effect_set_vec4(gs_eparam_t *param, const struct vec4 *val) { effect_setval_inline(param, val, sizeof(struct vec4)); } -void gs_effect_set_texture(gs_eparam_t param, gs_texture_t val) +void gs_effect_set_texture(gs_eparam_t *param, gs_texture_t *val) { - effect_setval_inline(param, &val, sizeof(gs_texture_t)); + effect_setval_inline(param, &val, sizeof(gs_texture_t*)); } -void gs_effect_set_val(gs_eparam_t param, const void *val, size_t size) +void gs_effect_set_val(gs_eparam_t *param, const void *val, size_t size) { effect_setval_inline(param, val, size); } -void gs_effect_set_default(gs_eparam_t param) +void gs_effect_set_default(gs_eparam_t *param) { effect_setval_inline(param, param->default_val.array, param->default_val.num); diff --git a/libobs/graphics/effect.h b/libobs/graphics/effect.h index 846ed7c82..9680a51df 100644 --- a/libobs/graphics/effect.h +++ b/libobs/graphics/effect.h @@ -56,7 +56,7 @@ struct gs_effect_param { DARRAY(uint8_t) cur_val; DARRAY(uint8_t) default_val; - gs_effect_t effect; + gs_effect_t *effect; /*char *full_name; float scroller_min, scroller_max, scroller_inc, scroller_mul;*/ @@ -75,22 +75,22 @@ static inline void effect_param_free(struct gs_effect_param *param) da_free(param->default_val); } -EXPORT void effect_param_parse_property(gs_eparam_t param, +EXPORT void effect_param_parse_property(gs_eparam_t *param, const char *property); /* ------------------------------------------------------------------------- */ struct pass_shaderparam { struct gs_effect_param *eparam; - gs_sparam_t sparam; + gs_sparam_t *sparam; }; struct gs_effect_pass { char *name; enum effect_section section; - gs_shader_t vertshader; - gs_shader_t pixelshader; + gs_shader_t *vertshader; + gs_shader_t *pixelshader; DARRAY(struct pass_shaderparam) vertshader_params; DARRAY(struct pass_shaderparam) pixelshader_params; }; @@ -145,16 +145,16 @@ struct gs_effect { struct gs_effect_technique *cur_technique; struct gs_effect_pass *cur_pass; - gs_eparam_t view_proj, world, scale; - graphics_t graphics; + gs_eparam_t *view_proj, *world, *scale; + graphics_t *graphics; }; -static inline void effect_init(gs_effect_t effect) +static inline void effect_init(gs_effect_t *effect) { memset(effect, 0, sizeof(struct gs_effect)); } -static inline void effect_free(gs_effect_t effect) +static inline void effect_free(gs_effect_t *effect) { size_t i; for (i = 0; i < effect->params.num; i++) @@ -171,9 +171,10 @@ static inline void effect_free(gs_effect_t effect) effect->effect_dir = NULL; } -EXPORT void effect_upload_params(gs_effect_t effect, bool changed_only); -EXPORT void effect_upload_shader_params(gs_effect_t effect, gs_shader_t shader, - struct darray *pass_params, bool changed_only); +EXPORT void effect_upload_params(gs_effect_t *effect, bool changed_only); +EXPORT void effect_upload_shader_params(gs_effect_t *effect, + gs_shader_t *shader, struct darray *pass_params, + bool changed_only); #ifdef __cplusplus } diff --git a/libobs/graphics/graphics-ffmpeg.c b/libobs/graphics/graphics-ffmpeg.c index dfef664ff..07b35229d 100644 --- a/libobs/graphics/graphics-ffmpeg.c +++ b/libobs/graphics/graphics-ffmpeg.c @@ -201,10 +201,10 @@ static inline enum gs_color_format convert_format(enum AVPixelFormat format) return GS_BGRX; } -gs_texture_t gs_texture_create_from_file(const char *file) +gs_texture_t *gs_texture_create_from_file(const char *file) { struct ffmpeg_image image; - gs_texture_t tex = NULL; + gs_texture_t *tex = NULL; if (ffmpeg_image_init(&image, file)) { uint8_t *data = malloc(image.cx * image.cy * 4); diff --git a/libobs/graphics/graphics-internal.h b/libobs/graphics/graphics-internal.h index b74d0e27f..d41a5b520 100644 --- a/libobs/graphics/graphics-internal.h +++ b/libobs/graphics/graphics-internal.h @@ -27,205 +27,207 @@ struct gs_exports { const char *(*device_get_name)(void); int (*device_get_type)(void); const char *(*device_preprocessor_name)(void); - int (*device_create)(gs_device_t *device, struct gs_init_data *data); - void (*device_destroy)(gs_device_t device); - void (*device_enter_context)(gs_device_t device); - void (*device_leave_context)(gs_device_t device); - gs_swapchain_t (*device_swapchain_create)(gs_device_t device, + int (*device_create)(gs_device_t **device, struct gs_init_data *data); + void (*device_destroy)(gs_device_t *device); + void (*device_enter_context)(gs_device_t *device); + void (*device_leave_context)(gs_device_t *device); + gs_swapchain_t *(*device_swapchain_create)(gs_device_t *device, struct gs_init_data *data); - void (*device_resize)(gs_device_t device, uint32_t x, uint32_t y); - void (*device_get_size)(gs_device_t device, uint32_t *x, uint32_t *y); - uint32_t (*device_get_width)(gs_device_t device); - uint32_t (*device_get_height)(gs_device_t device); - gs_texture_t (*device_texture_create)(gs_device_t device, + void (*device_resize)(gs_device_t *device, uint32_t x, uint32_t y); + void (*device_get_size)(gs_device_t *device, uint32_t *x, uint32_t *y); + uint32_t (*device_get_width)(gs_device_t *device); + uint32_t (*device_get_height)(gs_device_t *device); + gs_texture_t *(*device_texture_create)(gs_device_t *device, uint32_t width, uint32_t height, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags); - gs_texture_t (*device_cubetexture_create)(gs_device_t device, + gs_texture_t *(*device_cubetexture_create)(gs_device_t *device, uint32_t size, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags); - gs_texture_t (*device_voltexture_create)(gs_device_t device, + gs_texture_t *(*device_voltexture_create)(gs_device_t *device, uint32_t width, uint32_t height, uint32_t depth, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags); - gs_zstencil_t (*device_zstencil_create)(gs_device_t device, + gs_zstencil_t *(*device_zstencil_create)(gs_device_t *device, uint32_t width, uint32_t height, enum gs_zstencil_format format); - gs_stagesurf_t (*device_stagesurface_create)(gs_device_t device, + gs_stagesurf_t *(*device_stagesurface_create)(gs_device_t *device, uint32_t width, uint32_t height, enum gs_color_format color_format); - gs_samplerstate_t (*device_samplerstate_create)(gs_device_t device, + gs_samplerstate_t *(*device_samplerstate_create)(gs_device_t *device, struct gs_sampler_info *info); - gs_shader_t (*device_vertexshader_create)(gs_device_t device, + gs_shader_t *(*device_vertexshader_create)(gs_device_t *device, const char *shader, const char *file, char **error_string); - gs_shader_t (*device_pixelshader_create)(gs_device_t device, + gs_shader_t *(*device_pixelshader_create)(gs_device_t *device, const char *shader, const char *file, char **error_string); - gs_vertbuffer_t (*device_vertexbuffer_create)(gs_device_t device, + gs_vertbuffer_t *(*device_vertexbuffer_create)(gs_device_t *device, struct gs_vb_data *data, uint32_t flags); - gs_indexbuffer_t (*device_indexbuffer_create)(gs_device_t device, + gs_indexbuffer_t *(*device_indexbuffer_create)(gs_device_t *device, enum gs_index_type type, void *indices, size_t num, uint32_t flags); - enum gs_texture_type (*device_get_texture_type)(gs_texture_t texture); - void (*device_load_vertexbuffer)(gs_device_t device, - gs_vertbuffer_t vertbuffer); - void (*device_load_indexbuffer)(gs_device_t device, - gs_indexbuffer_t indexbuffer); - void (*device_load_texture)(gs_device_t device, gs_texture_t tex, + enum gs_texture_type (*device_get_texture_type)(gs_texture_t *texture); + void (*device_load_vertexbuffer)(gs_device_t *device, + gs_vertbuffer_t *vertbuffer); + void (*device_load_indexbuffer)(gs_device_t *device, + gs_indexbuffer_t *indexbuffer); + void (*device_load_texture)(gs_device_t *device, gs_texture_t *tex, int unit); - void (*device_load_samplerstate)(gs_device_t device, - gs_samplerstate_t samplerstate, int unit); - void (*device_load_vertexshader)(gs_device_t device, - gs_shader_t vertshader); - void (*device_load_pixelshader)(gs_device_t device, - gs_shader_t pixelshader); - void (*device_load_default_samplerstate)(gs_device_t device, + void (*device_load_samplerstate)(gs_device_t *device, + gs_samplerstate_t *samplerstate, int unit); + void (*device_load_vertexshader)(gs_device_t *device, + gs_shader_t *vertshader); + void (*device_load_pixelshader)(gs_device_t *device, + gs_shader_t *pixelshader); + void (*device_load_default_samplerstate)(gs_device_t *device, bool b_3d, int unit); - gs_shader_t (*device_get_vertex_shader)(gs_device_t device); - gs_shader_t (*device_get_pixel_shader)(gs_device_t device); - gs_texture_t (*device_get_render_target)(gs_device_t device); - gs_zstencil_t (*device_get_zstencil_target)(gs_device_t device); - void (*device_set_render_target)(gs_device_t device, gs_texture_t tex, - gs_zstencil_t zstencil); - void (*device_set_cube_render_target)(gs_device_t device, - gs_texture_t cubetex, int side, gs_zstencil_t zstencil); - void (*device_copy_texture)(gs_device_t device, gs_texture_t dst, - gs_texture_t src); - void (*device_copy_texture_region)(gs_device_t device, - gs_texture_t dst, uint32_t dst_x, uint32_t dst_y, - gs_texture_t src, uint32_t src_x, uint32_t src_y, + gs_shader_t *(*device_get_vertex_shader)(gs_device_t *device); + gs_shader_t *(*device_get_pixel_shader)(gs_device_t *device); + gs_texture_t *(*device_get_render_target)(gs_device_t *device); + gs_zstencil_t *(*device_get_zstencil_target)(gs_device_t *device); + void (*device_set_render_target)(gs_device_t *device, gs_texture_t *tex, + gs_zstencil_t *zstencil); + void (*device_set_cube_render_target)(gs_device_t *device, + gs_texture_t *cubetex, int side, gs_zstencil_t *zstencil); + void (*device_copy_texture)(gs_device_t *device, gs_texture_t *dst, + gs_texture_t *src); + void (*device_copy_texture_region)(gs_device_t *device, + gs_texture_t *dst, uint32_t dst_x, uint32_t dst_y, + gs_texture_t *src, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h); - void (*device_stage_texture)(gs_device_t device, gs_stagesurf_t dst, - gs_texture_t src); - void (*device_begin_scene)(gs_device_t device); - void (*device_draw)(gs_device_t device, enum gs_draw_mode draw_mode, + void (*device_stage_texture)(gs_device_t *device, gs_stagesurf_t *dst, + gs_texture_t *src); + void (*device_begin_scene)(gs_device_t *device); + void (*device_draw)(gs_device_t *device, enum gs_draw_mode draw_mode, uint32_t start_vert, uint32_t num_verts); - void (*device_end_scene)(gs_device_t device); - void (*device_load_swapchain)(gs_device_t device, - gs_swapchain_t swaphchain); - void (*device_clear)(gs_device_t device, uint32_t clear_flags, + void (*device_end_scene)(gs_device_t *device); + void (*device_load_swapchain)(gs_device_t *device, + gs_swapchain_t *swaphchain); + void (*device_clear)(gs_device_t *device, uint32_t clear_flags, struct vec4 *color, float depth, uint8_t stencil); - void (*device_present)(gs_device_t device); - void (*device_flush)(gs_device_t device); - void (*device_set_cull_mode)(gs_device_t device, + void (*device_present)(gs_device_t *device); + void (*device_flush)(gs_device_t *device); + void (*device_set_cull_mode)(gs_device_t *device, enum gs_cull_mode mode); - enum gs_cull_mode (*device_get_cull_mode)(gs_device_t device); - void (*device_enable_blending)(gs_device_t device, bool enable); - void (*device_enable_depth_test)(gs_device_t device, bool enable); - void (*device_enable_stencil_test)(gs_device_t device, bool enable); - void (*device_enable_stencil_write)(gs_device_t device, bool enable); - void (*device_enable_color)(gs_device_t device, bool red, bool green, + enum gs_cull_mode (*device_get_cull_mode)(gs_device_t *device); + void (*device_enable_blending)(gs_device_t *device, bool enable); + void (*device_enable_depth_test)(gs_device_t *device, bool enable); + void (*device_enable_stencil_test)(gs_device_t *device, bool enable); + void (*device_enable_stencil_write)(gs_device_t *device, bool enable); + void (*device_enable_color)(gs_device_t *device, bool red, bool green, bool blue, bool alpha); - void (*device_blend_function)(gs_device_t device, + void (*device_blend_function)(gs_device_t *device, enum gs_blend_type src, enum gs_blend_type dest); - void (*device_depth_function)(gs_device_t device, + void (*device_depth_function)(gs_device_t *device, enum gs_depth_test test); - void (*device_stencil_function)(gs_device_t device, + void (*device_stencil_function)(gs_device_t *device, enum gs_stencil_side side, enum gs_depth_test test); - void (*device_stencil_op)(gs_device_t device, enum gs_stencil_side side, + void (*device_stencil_op)(gs_device_t *device, + enum gs_stencil_side side, enum gs_stencil_op_type fail, enum gs_stencil_op_type zfail, enum gs_stencil_op_type zpass); - void (*device_set_viewport)(gs_device_t device, int x, int y, int width, - int height); - void (*device_get_viewport)(gs_device_t device, struct gs_rect *rect); - void (*device_set_scissor_rect)(gs_device_t device, + void (*device_set_viewport)(gs_device_t *device, int x, int y, + int width, int height); + void (*device_get_viewport)(gs_device_t *device, struct gs_rect *rect); + void (*device_set_scissor_rect)(gs_device_t *device, struct gs_rect *rect); - void (*device_ortho)(gs_device_t device, float left, float right, + void (*device_ortho)(gs_device_t *device, float left, float right, float top, float bottom, float znear, float zfar); - void (*device_frustum)(gs_device_t device, float left, float right, + void (*device_frustum)(gs_device_t *device, float left, float right, float top, float bottom, float znear, float zfar); - void (*device_projection_push)(gs_device_t device); - void (*device_projection_pop)(gs_device_t device); + void (*device_projection_push)(gs_device_t *device); + void (*device_projection_pop)(gs_device_t *device); - void (*gs_swapchain_destroy)(gs_swapchain_t swapchain); + void (*gs_swapchain_destroy)(gs_swapchain_t *swapchain); - void (*gs_texture_destroy)(gs_texture_t tex); - uint32_t (*gs_texture_get_width)(gs_texture_t tex); - uint32_t (*gs_texture_get_height)(gs_texture_t tex); - enum gs_color_format (*gs_texture_get_color_format)(gs_texture_t tex); - bool (*gs_texture_map)(gs_texture_t tex, uint8_t **ptr, + void (*gs_texture_destroy)(gs_texture_t *tex); + uint32_t (*gs_texture_get_width)(gs_texture_t *tex); + uint32_t (*gs_texture_get_height)(gs_texture_t *tex); + enum gs_color_format (*gs_texture_get_color_format)(gs_texture_t *tex); + bool (*gs_texture_map)(gs_texture_t *tex, uint8_t **ptr, uint32_t *linesize); - void (*gs_texture_unmap)(gs_texture_t tex); - bool (*gs_texture_is_rect)(gs_texture_t tex); - void *(*gs_texture_get_obj)(gs_texture_t tex); + void (*gs_texture_unmap)(gs_texture_t *tex); + bool (*gs_texture_is_rect)(gs_texture_t *tex); + void *(*gs_texture_get_obj)(gs_texture_t *tex); - void (*gs_cubetexture_destroy)(gs_texture_t cubetex); - uint32_t (*gs_cubetexture_get_size)(gs_texture_t cubetex); + void (*gs_cubetexture_destroy)(gs_texture_t *cubetex); + uint32_t (*gs_cubetexture_get_size)(gs_texture_t *cubetex); enum gs_color_format (*gs_cubetexture_get_color_format)( - gs_texture_t cubetex); + gs_texture_t *cubetex); - void (*gs_voltexture_destroy)(gs_texture_t voltex); - uint32_t (*gs_voltexture_get_width)(gs_texture_t voltex); - uint32_t (*gs_voltexture_get_height)(gs_texture_t voltex); - uint32_t (*gs_voltexture_getdepth)(gs_texture_t voltex); + void (*gs_voltexture_destroy)(gs_texture_t *voltex); + uint32_t (*gs_voltexture_get_width)(gs_texture_t *voltex); + uint32_t (*gs_voltexture_get_height)(gs_texture_t *voltex); + uint32_t (*gs_voltexture_getdepth)(gs_texture_t *voltex); enum gs_color_format (*gs_voltexture_get_color_format)( - gs_texture_t voltex); + gs_texture_t *voltex); - void (*gs_stagesurface_destroy)(gs_stagesurf_t stagesurf); - uint32_t (*gs_stagesurface_get_width)(gs_stagesurf_t stagesurf); - uint32_t (*gs_stagesurface_get_height)(gs_stagesurf_t stagesurf); + void (*gs_stagesurface_destroy)(gs_stagesurf_t *stagesurf); + uint32_t (*gs_stagesurface_get_width)(gs_stagesurf_t *stagesurf); + uint32_t (*gs_stagesurface_get_height)(gs_stagesurf_t *stagesurf); enum gs_color_format (*gs_stagesurface_get_color_format)( - gs_stagesurf_t stagesurf); - bool (*gs_stagesurface_map)(gs_stagesurf_t stagesurf, + gs_stagesurf_t *stagesurf); + bool (*gs_stagesurface_map)(gs_stagesurf_t *stagesurf, uint8_t **data, uint32_t *linesize); - void (*gs_stagesurface_unmap)(gs_stagesurf_t stagesurf); + void (*gs_stagesurface_unmap)(gs_stagesurf_t *stagesurf); - void (*gs_zstencil_destroy)(gs_zstencil_t zstencil); + void (*gs_zstencil_destroy)(gs_zstencil_t *zstencil); - void (*gs_samplerstate_destroy)(gs_samplerstate_t samplerstate); + void (*gs_samplerstate_destroy)(gs_samplerstate_t *samplerstate); - void (*gs_vertexbuffer_destroy)(gs_vertbuffer_t vertbuffer); - void (*gs_vertexbuffer_flush)(gs_vertbuffer_t vertbuffer); + void (*gs_vertexbuffer_destroy)(gs_vertbuffer_t *vertbuffer); + void (*gs_vertexbuffer_flush)(gs_vertbuffer_t *vertbuffer); struct gs_vb_data *(*gs_vertexbuffer_get_data)( - gs_vertbuffer_t vertbuffer); + gs_vertbuffer_t *vertbuffer); - void (*gs_indexbuffer_destroy)(gs_indexbuffer_t indexbuffer); - void (*gs_indexbuffer_flush)(gs_indexbuffer_t indexbuffer); - void *(*gs_indexbuffer_get_data)(gs_indexbuffer_t indexbuffer); - size_t (*gs_indexbuffer_get_num_indices)(gs_indexbuffer_t indexbuffer); + void (*gs_indexbuffer_destroy)(gs_indexbuffer_t *indexbuffer); + void (*gs_indexbuffer_flush)(gs_indexbuffer_t *indexbuffer); + void *(*gs_indexbuffer_get_data)(gs_indexbuffer_t *indexbuffer); + size_t (*gs_indexbuffer_get_num_indices)(gs_indexbuffer_t *indexbuffer); enum gs_index_type (*gs_indexbuffer_get_type)( - gs_indexbuffer_t indexbuffer); + gs_indexbuffer_t *indexbuffer); - void (*gs_shader_destroy)(gs_shader_t shader); - int (*gs_shader_get_num_params)(gs_shader_t shader); - gs_sparam_t (*gs_shader_get_param_by_idx)(gs_shader_t shader, + void (*gs_shader_destroy)(gs_shader_t *shader); + int (*gs_shader_get_num_params)(gs_shader_t *shader); + gs_sparam_t *(*gs_shader_get_param_by_idx)(gs_shader_t *shader, uint32_t param); - gs_sparam_t (*gs_shader_get_param_by_name)(gs_shader_t shader, + gs_sparam_t *(*gs_shader_get_param_by_name)(gs_shader_t *shader, const char *name); - gs_sparam_t (*gs_shader_get_viewproj_matrix)(gs_shader_t shader); - gs_sparam_t (*gs_shader_get_world_matrix)(gs_shader_t shader); - void (*gs_shader_get_param_info)(gs_sparam_t param, + gs_sparam_t *(*gs_shader_get_viewproj_matrix)(gs_shader_t *shader); + gs_sparam_t *(*gs_shader_get_world_matrix)(gs_shader_t *shader); + void (*gs_shader_get_param_info)(gs_sparam_t *param, struct gs_shader_param_info *info); - void (*gs_shader_set_bool)(gs_sparam_t param, bool val); - void (*gs_shader_set_float)(gs_sparam_t param, float val); - void (*gs_shader_set_int)(gs_sparam_t param, int val); - void (*gs_shader_setmatrix3)(gs_sparam_t param, + void (*gs_shader_set_bool)(gs_sparam_t *param, bool val); + void (*gs_shader_set_float)(gs_sparam_t *param, float val); + void (*gs_shader_set_int)(gs_sparam_t *param, int val); + void (*gs_shader_setmatrix3)(gs_sparam_t *param, const struct matrix3 *val); - void (*gs_shader_set_matrix4)(gs_sparam_t param, + void (*gs_shader_set_matrix4)(gs_sparam_t *param, const struct matrix4 *val); - void (*gs_shader_set_vec2)(gs_sparam_t param, const struct vec2 *val); - void (*gs_shader_set_vec3)(gs_sparam_t param, const struct vec3 *val); - void (*gs_shader_set_vec4)(gs_sparam_t param, const struct vec4 *val); - void (*gs_shader_set_texture)(gs_sparam_t param, gs_texture_t val); - void (*gs_shader_set_val)(gs_sparam_t param, const void *val, + void (*gs_shader_set_vec2)(gs_sparam_t *param, const struct vec2 *val); + void (*gs_shader_set_vec3)(gs_sparam_t *param, const struct vec3 *val); + void (*gs_shader_set_vec4)(gs_sparam_t *param, const struct vec4 *val); + void (*gs_shader_set_texture)(gs_sparam_t *param, gs_texture_t *val); + void (*gs_shader_set_val)(gs_sparam_t *param, const void *val, size_t size); - void (*gs_shader_set_default)(gs_sparam_t param); + void (*gs_shader_set_default)(gs_sparam_t *param); #ifdef __APPLE__ /* OSX/Cocoa specific functions */ - gs_texture_t (*device_texture_create_from_iosurface)(gs_device_t dev, + gs_texture_t *(*device_texture_create_from_iosurface)(gs_device_t *dev, + void *iosurf); + bool (*gs_texture_rebind_iosurface)(gs_texture_t *texture, void *iosurf); - bool (*gs_texture_rebind_iosurface)(gs_texture_t texture, void *iosurf); #elif _WIN32 bool (*device_gdi_texture_available)(void); - gs_texture_t (*device_texture_create_gdi)(gs_device_t device, + gs_texture_t *(*device_texture_create_gdi)(gs_device_t *device, uint32_t width, uint32_t height); - void *(*gs_texture_get_dc)(gs_texture_t gdi_tex); - void (*gs_texture_release_dc)(gs_texture_t gdi_tex); + void *(*gs_texture_get_dc)(gs_texture_t *gdi_tex); + void (*gs_texture_release_dc)(gs_texture_t *gdi_tex); #endif }; @@ -237,7 +239,7 @@ struct blend_state { struct graphics_subsystem { void *module; - gs_device_t device; + gs_device_t *device; struct gs_exports exports; DARRAY(struct gs_rect) viewport_stack; @@ -248,11 +250,11 @@ struct graphics_subsystem { struct matrix4 projection; struct gs_effect *cur_effect; - gs_vertbuffer_t sprite_buffer; + gs_vertbuffer_t *sprite_buffer; bool using_immediate; struct gs_vb_data *vbd; - gs_vertbuffer_t immediate_vertbuffer; + gs_vertbuffer_t *immediate_vertbuffer; DARRAY(struct vec3) verts; DARRAY(struct vec3) norms; DARRAY(uint32_t) colors; diff --git a/libobs/graphics/graphics-magick.c b/libobs/graphics/graphics-magick.c index a0caf4dba..e958db249 100644 --- a/libobs/graphics/graphics-magick.c +++ b/libobs/graphics/graphics-magick.c @@ -14,9 +14,9 @@ void gs_free_image_deps() MagickCoreTerminus(); } -gs_texture_t gs_texture_create_from_file(const char *file) +gs_texture_t *gs_texture_create_from_file(const char *file) { - gs_texture_t tex = NULL; + gs_texture_t *tex = NULL; ImageInfo *info; ExceptionInfo *exception; Image *image; diff --git a/libobs/graphics/graphics.c b/libobs/graphics/graphics.c index f32a91c1a..fecc97376 100644 --- a/libobs/graphics/graphics.c +++ b/libobs/graphics/graphics.c @@ -29,9 +29,9 @@ #include "effect.h" #ifdef _MSC_VER -static __declspec(thread) graphics_t thread_graphics = NULL; +static __declspec(thread) graphics_t *thread_graphics = NULL; #else /* assume GCC or that other compiler we dare not mention */ -static __thread graphics_t thread_graphics = NULL; +static __thread graphics_t *thread_graphics = NULL; #endif #define IMMEDIATE_COUNT 512 @@ -116,12 +116,12 @@ static bool graphics_init(struct graphics_subsystem *graphics) return true; } -int gs_create(graphics_t *pgraphics, const char *module, +int gs_create(graphics_t **pgraphics, const char *module, struct gs_init_data *data) { int errcode = GS_ERROR_FAIL; - graphics_t graphics = bzalloc(sizeof(struct graphics_subsystem)); + graphics_t *graphics = bzalloc(sizeof(struct graphics_subsystem)); pthread_mutex_init_value(&graphics->mutex); if (!data->num_backbuffers) @@ -154,7 +154,7 @@ error: return errcode; } -void gs_destroy(graphics_t graphics) +void gs_destroy(graphics_t *graphics) { if (!graphics) return; @@ -181,7 +181,7 @@ void gs_destroy(graphics_t graphics) gs_free_image_deps(); } -void gs_enter_context(graphics_t graphics) +void gs_enter_context(graphics_t *graphics) { if (!graphics) return; @@ -204,7 +204,7 @@ void gs_leave_context(void) { if (thread_graphics) { if (!os_atomic_dec_long(&thread_graphics->ref)) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; graphics->exports.device_leave_context( graphics->device); @@ -214,7 +214,7 @@ void gs_leave_context(void) } } -graphics_t gs_get_context(void) +graphics_t *gs_get_context(void) { return thread_graphics; } @@ -231,7 +231,7 @@ int gs_get_device_type(void) thread_graphics->exports.device_get_type() : -1; } -static inline struct matrix4 *top_matrix(graphics_t graphics) +static inline struct matrix4 *top_matrix(graphics_t *graphics) { return graphics ? (graphics->matrix_stack.array + graphics->cur_matrix) : NULL; @@ -239,7 +239,7 @@ static inline struct matrix4 *top_matrix(graphics_t graphics) void gs_matrix_push(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; @@ -252,7 +252,7 @@ void gs_matrix_push(void) void gs_matrix_pop(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; @@ -361,7 +361,7 @@ void gs_matrix_scale3f(float x, float y, float z) } } -static inline void reset_immediate_arrays(graphics_t graphics) +static inline void reset_immediate_arrays(graphics_t *graphics) { da_init(graphics->verts); da_init(graphics->norms); @@ -372,7 +372,7 @@ static inline void reset_immediate_arrays(graphics_t graphics) void gs_render_start(bool b_new) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; @@ -406,7 +406,7 @@ static inline size_t min_size(const size_t a, const size_t b) void gs_render_stop(enum gs_draw_mode mode) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; size_t i, num; if (!graphics) @@ -456,7 +456,7 @@ void gs_render_stop(enum gs_draw_mode mode) reset_immediate_arrays(graphics); } else { - gs_vertbuffer_t vb = gs_render_save(); + gs_vertbuffer_t *vb = gs_render_save(); gs_load_vertexbuffer(vb); gs_load_indexbuffer(NULL); @@ -468,9 +468,9 @@ void gs_render_stop(enum gs_draw_mode mode) graphics->vbd = NULL; } -gs_vertbuffer_t gs_render_save(void) +gs_vertbuffer_t *gs_render_save(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; size_t num_tex, i; if (!graphics) @@ -534,7 +534,7 @@ void gs_normal3f(float x, float y, float z) gs_normal3v(&v3); } -static inline bool validvertsize(graphics_t graphics, size_t num, +static inline bool validvertsize(graphics_t *graphics, size_t num, const char *name) { if (graphics->using_immediate && num == IMMEDIATE_COUNT) { @@ -549,7 +549,7 @@ static inline bool validvertsize(graphics_t graphics, size_t num, void gs_color(uint32_t color) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; if (!validvertsize(graphics, graphics->colors.num, "gs_color")) @@ -576,7 +576,7 @@ void gs_vertex2v(const struct vec2 *v) void gs_vertex3v(const struct vec3 *v) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; if (!validvertsize(graphics, graphics->verts.num, "gs_vertex")) @@ -587,7 +587,7 @@ void gs_vertex3v(const struct vec3 *v) void gs_normal3v(const struct vec3 *v) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; if (!validvertsize(graphics, graphics->norms.num, "gs_normal")) @@ -604,7 +604,7 @@ void gs_color4v(const struct vec4 *v) void gs_texcoord2v(const struct vec2 *v, int unit) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; if (!validvertsize(graphics, graphics->texverts[unit].num, @@ -614,21 +614,21 @@ void gs_texcoord2v(const struct vec2 *v, int unit) da_push_back(graphics->texverts[unit], v); } -input_t gs_get_input(void) +input_t *gs_get_input(void) { /* TODO */ return NULL; } -gs_effect_t gs_get_effect(void) +gs_effect_t *gs_get_effect(void) { return thread_graphics ? thread_graphics->cur_effect : NULL; } -gs_effect_t gs_effect_create_from_file(const char *file, char **error_string) +gs_effect_t *gs_effect_create_from_file(const char *file, char **error_string) { char *file_string; - gs_effect_t effect = NULL; + gs_effect_t *effect = NULL; if (!thread_graphics || !file) return NULL; @@ -645,7 +645,7 @@ gs_effect_t gs_effect_create_from_file(const char *file, char **error_string) return effect; } -gs_effect_t gs_effect_create(const char *effect_string, const char *filename, +gs_effect_t *gs_effect_create(const char *effect_string, const char *filename, char **error_string) { if (!thread_graphics || !effect_string) @@ -671,14 +671,14 @@ gs_effect_t gs_effect_create(const char *effect_string, const char *filename, return effect; } -gs_shader_t gs_vertexshader_create_from_file(const char *file, +gs_shader_t *gs_vertexshader_create_from_file(const char *file, char **error_string) { if (!thread_graphics || !file) return NULL; char *file_string; - gs_shader_t shader = NULL; + gs_shader_t *shader = NULL; file_string = os_quick_read_utf8_file(file); if (!file_string) { @@ -693,11 +693,11 @@ gs_shader_t gs_vertexshader_create_from_file(const char *file, return shader; } -gs_shader_t gs_pixelshader_create_from_file(const char *file, +gs_shader_t *gs_pixelshader_create_from_file(const char *file, char **error_string) { char *file_string; - gs_shader_t shader = NULL; + gs_shader_t *shader = NULL; if (!thread_graphics || !file) return NULL; @@ -764,7 +764,7 @@ static inline void build_sprite_norm(struct gs_vb_data *data, float fcx, build_sprite(data, fcx, fcy, start_u, end_u, start_v, end_v); } -static inline void build_sprite_rect(struct gs_vb_data *data, gs_texture_t tex, +static inline void build_sprite_rect(struct gs_vb_data *data, gs_texture_t *tex, float fcx, float fcy, uint32_t flip) { float start_u, end_u; @@ -777,10 +777,10 @@ static inline void build_sprite_rect(struct gs_vb_data *data, gs_texture_t tex, build_sprite(data, fcx, fcy, start_u, end_u, start_v, end_v); } -void gs_draw_sprite(gs_texture_t tex, uint32_t flip, uint32_t width, +void gs_draw_sprite(gs_texture_t *tex, uint32_t flip, uint32_t width, uint32_t height) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; float fcx, fcy; struct gs_vb_data *data; @@ -809,7 +809,7 @@ void gs_draw_sprite(gs_texture_t tex, uint32_t flip, uint32_t width, gs_draw(GS_TRISTRIP, 0, 0); } -void gs_draw_cube_backdrop(gs_texture_t cubetex, const struct quat *rot, +void gs_draw_cube_backdrop(gs_texture_t *cubetex, const struct quat *rot, float left, float right, float top, float bottom, float znear) { /* TODO */ @@ -868,7 +868,7 @@ void gs_viewport_pop(void) da_pop_back(thread_graphics->viewport_stack); } -void gs_texture_set_image(gs_texture_t tex, const uint8_t *data, +void gs_texture_set_image(gs_texture_t *tex, const uint8_t *data, uint32_t linesize, bool flip) { uint8_t *ptr; @@ -906,7 +906,7 @@ void gs_texture_set_image(gs_texture_t tex, const uint8_t *data, gs_texture_unmap(tex); } -void gs_cubetexture_set_image(gs_texture_t cubetex, uint32_t side, +void gs_cubetexture_set_image(gs_texture_t *cubetex, uint32_t side, const void *data, uint32_t linesize, bool invert) { /* TODO */ @@ -919,7 +919,7 @@ void gs_cubetexture_set_image(gs_texture_t cubetex, uint32_t side, void gs_perspective(float angle, float aspect, float near, float far) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; float xmin, xmax, ymin, ymax; if (!graphics) return; @@ -936,7 +936,7 @@ void gs_perspective(float angle, float aspect, float near, float far) void gs_reset_blend_state(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; if (!graphics->cur_blend_state.enabled) @@ -951,15 +951,15 @@ void gs_reset_blend_state(void) const char *gs_preprocessor_name(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_preprocessor_name(); } -gs_swapchain_t gs_swapchain_create(struct gs_init_data *data) +gs_swapchain_t *gs_swapchain_create(struct gs_init_data *data) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_swapchain_create(graphics->device, @@ -968,7 +968,7 @@ gs_swapchain_t gs_swapchain_create(struct gs_init_data *data) void gs_resize(uint32_t x, uint32_t y) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_resize(graphics->device, x, y); @@ -976,7 +976,7 @@ void gs_resize(uint32_t x, uint32_t y) void gs_get_size(uint32_t *x, uint32_t *y) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_get_size(graphics->device, x, y); @@ -984,7 +984,7 @@ void gs_get_size(uint32_t *x, uint32_t *y) uint32_t gs_get_width(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return 0; return graphics->exports.device_get_width(graphics->device); @@ -992,7 +992,7 @@ uint32_t gs_get_width(void) uint32_t gs_get_height(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return 0; return graphics->exports.device_get_height(graphics->device); @@ -1003,11 +1003,11 @@ static inline bool is_pow2(uint32_t size) return size >= 2 && (size & (size-1)) == 0; } -gs_texture_t gs_texture_create(uint32_t width, uint32_t height, +gs_texture_t *gs_texture_create(uint32_t width, uint32_t height, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; bool pow2tex = is_pow2(width) && is_pow2(height); bool uses_mipmaps = (flags & GS_BUILD_MIPMAPS || levels != 1); @@ -1035,11 +1035,11 @@ gs_texture_t gs_texture_create(uint32_t width, uint32_t height, width, height, color_format, levels, data, flags); } -gs_texture_t gs_cubetexture_create(uint32_t size, +gs_texture_t *gs_cubetexture_create(uint32_t size, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; bool pow2tex = is_pow2(size); bool uses_mipmaps = (flags & GS_BUILD_MIPMAPS || levels != 1); @@ -1068,11 +1068,11 @@ gs_texture_t gs_cubetexture_create(uint32_t size, size, color_format, levels, data, flags); } -gs_texture_t gs_voltexture_create(uint32_t width, uint32_t height, +gs_texture_t *gs_voltexture_create(uint32_t width, uint32_t height, uint32_t depth, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_voltexture_create(graphics->device, @@ -1080,130 +1080,130 @@ gs_texture_t gs_voltexture_create(uint32_t width, uint32_t height, flags); } -gs_zstencil_t gs_zstencil_create(uint32_t width, uint32_t height, +gs_zstencil_t *gs_zstencil_create(uint32_t width, uint32_t height, enum gs_zstencil_format format) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_zstencil_create(graphics->device, width, height, format); } -gs_stagesurf_t gs_stagesurface_create(uint32_t width, uint32_t height, +gs_stagesurf_t *gs_stagesurface_create(uint32_t width, uint32_t height, enum gs_color_format color_format) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_stagesurface_create(graphics->device, width, height, color_format); } -gs_samplerstate_t gs_samplerstate_create(struct gs_sampler_info *info) +gs_samplerstate_t *gs_samplerstate_create(struct gs_sampler_info *info) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_samplerstate_create(graphics->device, info); } -gs_shader_t gs_vertexshader_create(const char *shader, const char *file, +gs_shader_t *gs_vertexshader_create(const char *shader, const char *file, char **error_string) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_vertexshader_create(graphics->device, shader, file, error_string); } -gs_shader_t gs_pixelshader_create(const char *shader, +gs_shader_t *gs_pixelshader_create(const char *shader, const char *file, char **error_string) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_pixelshader_create(graphics->device, shader, file, error_string); } -gs_vertbuffer_t gs_vertexbuffer_create(struct gs_vb_data *data, +gs_vertbuffer_t *gs_vertexbuffer_create(struct gs_vb_data *data, uint32_t flags) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_vertexbuffer_create(graphics->device, data, flags); } -gs_indexbuffer_t gs_indexbuffer_create(enum gs_index_type type, +gs_indexbuffer_t *gs_indexbuffer_create(enum gs_index_type type, void *indices, size_t num, uint32_t flags) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_indexbuffer_create(graphics->device, type, indices, num, flags); } -enum gs_texture_type gs_get_texture_type(gs_texture_t texture) +enum gs_texture_type gs_get_texture_type(gs_texture_t *texture) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return GS_TEXTURE_2D; return graphics->exports.device_get_texture_type(texture); } -void gs_load_vertexbuffer(gs_vertbuffer_t vertbuffer) +void gs_load_vertexbuffer(gs_vertbuffer_t *vertbuffer) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_load_vertexbuffer(graphics->device, vertbuffer); } -void gs_load_indexbuffer(gs_indexbuffer_t indexbuffer) +void gs_load_indexbuffer(gs_indexbuffer_t *indexbuffer) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_load_indexbuffer(graphics->device, indexbuffer); } -void gs_load_texture(gs_texture_t tex, int unit) +void gs_load_texture(gs_texture_t *tex, int unit) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_load_texture(graphics->device, tex, unit); } -void gs_load_samplerstate(gs_samplerstate_t samplerstate, int unit) +void gs_load_samplerstate(gs_samplerstate_t *samplerstate, int unit) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_load_samplerstate(graphics->device, samplerstate, unit); } -void gs_load_vertexshader(gs_shader_t vertshader) +void gs_load_vertexshader(gs_shader_t *vertshader) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_load_vertexshader(graphics->device, vertshader); } -void gs_load_pixelshader(gs_shader_t pixelshader) +void gs_load_pixelshader(gs_shader_t *pixelshader) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_load_pixelshader(graphics->device, @@ -1212,77 +1212,77 @@ void gs_load_pixelshader(gs_shader_t pixelshader) void gs_load_default_samplerstate(bool b_3d, int unit) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_load_default_samplerstate(graphics->device, b_3d, unit); } -gs_shader_t gs_get_vertex_shader(void) +gs_shader_t *gs_get_vertex_shader(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_get_vertex_shader(graphics->device); } -gs_shader_t gs_get_pixel_shader(void) +gs_shader_t *gs_get_pixel_shader(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_get_pixel_shader(graphics->device); } -gs_texture_t gs_get_render_target(void) +gs_texture_t *gs_get_render_target(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_get_render_target(graphics->device); } -gs_zstencil_t gs_get_zstencil_target(void) +gs_zstencil_t *gs_get_zstencil_target(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; return graphics->exports.device_get_zstencil_target(graphics->device); } -void gs_set_render_target(gs_texture_t tex, gs_zstencil_t zstencil) +void gs_set_render_target(gs_texture_t *tex, gs_zstencil_t *zstencil) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_set_render_target(graphics->device, tex, zstencil); } -void gs_set_cube_render_target(gs_texture_t cubetex, int side, - gs_zstencil_t zstencil) +void gs_set_cube_render_target(gs_texture_t *cubetex, int side, + gs_zstencil_t *zstencil) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_set_cube_render_target(graphics->device, cubetex, side, zstencil); } -void gs_copy_texture(gs_texture_t dst, gs_texture_t src) +void gs_copy_texture(gs_texture_t *dst, gs_texture_t *src) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_copy_texture(graphics->device, dst, src); } -void gs_copy_texture_region(gs_texture_t dst, uint32_t dst_x, uint32_t dst_y, - gs_texture_t src, uint32_t src_x, uint32_t src_y, +void gs_copy_texture_region(gs_texture_t *dst, uint32_t dst_x, uint32_t dst_y, + gs_texture_t *src, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_copy_texture_region(graphics->device, @@ -1290,9 +1290,9 @@ void gs_copy_texture_region(gs_texture_t dst, uint32_t dst_x, uint32_t dst_y, src, src_x, src_y, src_w, src_h); } -void gs_stage_texture(gs_stagesurf_t dst, gs_texture_t src) +void gs_stage_texture(gs_stagesurf_t *dst, gs_texture_t *src) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_stage_texture(graphics->device, dst, src); @@ -1300,7 +1300,7 @@ void gs_stage_texture(gs_stagesurf_t dst, gs_texture_t src) void gs_begin_scene(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_begin_scene(graphics->device); @@ -1309,7 +1309,7 @@ void gs_begin_scene(void) void gs_draw(enum gs_draw_mode draw_mode, uint32_t start_vert, uint32_t num_verts) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_draw(graphics->device, draw_mode, @@ -1318,15 +1318,15 @@ void gs_draw(enum gs_draw_mode draw_mode, uint32_t start_vert, void gs_end_scene(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_end_scene(graphics->device); } -void gs_load_swapchain(gs_swapchain_t swapchain) +void gs_load_swapchain(gs_swapchain_t *swapchain) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_load_swapchain(graphics->device, swapchain); @@ -1335,14 +1335,14 @@ void gs_load_swapchain(gs_swapchain_t swapchain) void gs_clear(uint32_t clear_flags, struct vec4 *color, float depth, uint8_t stencil) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; graphics->exports.device_clear(graphics->device, clear_flags, color, depth, stencil); } void gs_present(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_present(graphics->device); @@ -1350,7 +1350,7 @@ void gs_present(void) void gs_flush(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_flush(graphics->device); @@ -1358,7 +1358,7 @@ void gs_flush(void) void gs_set_cull_mode(enum gs_cull_mode mode) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_set_cull_mode(graphics->device, mode); @@ -1366,7 +1366,7 @@ void gs_set_cull_mode(enum gs_cull_mode mode) enum gs_cull_mode gs_get_cull_mode(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return GS_NEITHER; return graphics->exports.device_get_cull_mode(graphics->device); @@ -1374,7 +1374,7 @@ enum gs_cull_mode gs_get_cull_mode(void) void gs_enable_blending(bool enable) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->cur_blend_state.enabled = enable; @@ -1383,7 +1383,7 @@ void gs_enable_blending(bool enable) void gs_enable_depth_test(bool enable) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_enable_depth_test(graphics->device, enable); @@ -1391,7 +1391,7 @@ void gs_enable_depth_test(bool enable) void gs_enable_stencil_test(bool enable) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_enable_stencil_test(graphics->device, enable); @@ -1399,7 +1399,7 @@ void gs_enable_stencil_test(bool enable) void gs_enable_stencil_write(bool enable) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_enable_stencil_write(graphics->device, enable); @@ -1407,7 +1407,7 @@ void gs_enable_stencil_write(bool enable) void gs_enable_color(bool red, bool green, bool blue, bool alpha) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_enable_color(graphics->device, red, green, @@ -1416,7 +1416,7 @@ void gs_enable_color(bool red, bool green, bool blue, bool alpha) void gs_blend_function(enum gs_blend_type src, enum gs_blend_type dest) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->cur_blend_state.src = src; @@ -1426,7 +1426,7 @@ void gs_blend_function(enum gs_blend_type src, enum gs_blend_type dest) void gs_depth_function(enum gs_depth_test test) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_depth_function(graphics->device, test); @@ -1434,7 +1434,7 @@ void gs_depth_function(enum gs_depth_test test) void gs_stencil_function(enum gs_stencil_side side, enum gs_depth_test test) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_stencil_function(graphics->device, side, test); @@ -1443,7 +1443,7 @@ void gs_stencil_function(enum gs_stencil_side side, enum gs_depth_test test) void gs_stencil_op(enum gs_stencil_side side, enum gs_stencil_op_type fail, enum gs_stencil_op_type zfail, enum gs_stencil_op_type zpass) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_stencil_op(graphics->device, side, fail, zfail, @@ -1452,7 +1452,7 @@ void gs_stencil_op(enum gs_stencil_side side, enum gs_stencil_op_type fail, void gs_set_viewport(int x, int y, int width, int height) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_set_viewport(graphics->device, x, y, width, @@ -1461,7 +1461,7 @@ void gs_set_viewport(int x, int y, int width, int height) void gs_get_viewport(struct gs_rect *rect) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_get_viewport(graphics->device, rect); @@ -1469,7 +1469,7 @@ void gs_get_viewport(struct gs_rect *rect) void gs_set_scissor_rect(struct gs_rect *rect) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_set_scissor_rect(graphics->device, rect); @@ -1478,7 +1478,7 @@ void gs_set_scissor_rect(struct gs_rect *rect) void gs_ortho(float left, float right, float top, float bottom, float znear, float zfar) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_ortho(graphics->device, left, right, top, @@ -1488,7 +1488,7 @@ void gs_ortho(float left, float right, float top, float bottom, float znear, void gs_frustum(float left, float right, float top, float bottom, float znear, float zfar) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_frustum(graphics->device, left, right, top, @@ -1497,7 +1497,7 @@ void gs_frustum(float left, float right, float top, float bottom, float znear, void gs_projection_push(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_projection_push(graphics->device); @@ -1505,216 +1505,216 @@ void gs_projection_push(void) void gs_projection_pop(void) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return; graphics->exports.device_projection_pop(graphics->device); } -void gs_swapchain_destroy(gs_swapchain_t swapchain) +void gs_swapchain_destroy(gs_swapchain_t *swapchain) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !swapchain) return; graphics->exports.gs_swapchain_destroy(swapchain); } -void gs_shader_destroy(gs_shader_t shader) +void gs_shader_destroy(gs_shader_t *shader) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !shader) return; graphics->exports.gs_shader_destroy(shader); } -int gs_shader_get_num_params(gs_shader_t shader) +int gs_shader_get_num_params(gs_shader_t *shader) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !shader) return 0; return graphics->exports.gs_shader_get_num_params(shader); } -gs_sparam_t gs_shader_get_param_by_idx(gs_shader_t shader, uint32_t param) +gs_sparam_t *gs_shader_get_param_by_idx(gs_shader_t *shader, uint32_t param) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !shader) return NULL; return graphics->exports.gs_shader_get_param_by_idx(shader, param); } -gs_sparam_t gs_shader_get_param_by_name(gs_shader_t shader, const char *name) +gs_sparam_t *gs_shader_get_param_by_name(gs_shader_t *shader, const char *name) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !shader) return NULL; return graphics->exports.gs_shader_get_param_by_name(shader, name); } -gs_sparam_t gs_shader_get_viewproj_matrix(gs_shader_t shader) +gs_sparam_t *gs_shader_get_viewproj_matrix(gs_shader_t *shader) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !shader) return NULL; return graphics->exports.gs_shader_get_viewproj_matrix(shader); } -gs_sparam_t gs_shader_get_world_matrix(gs_shader_t shader) +gs_sparam_t *gs_shader_get_world_matrix(gs_shader_t *shader) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !shader) return NULL; return graphics->exports.gs_shader_get_world_matrix(shader); } -void gs_shader_get_param_info(gs_sparam_t param, +void gs_shader_get_param_info(gs_sparam_t *param, struct gs_shader_param_info *info) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_get_param_info(param, info); } -void gs_shader_set_bool(gs_sparam_t param, bool val) +void gs_shader_set_bool(gs_sparam_t *param, bool val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_bool(param, val); } -void gs_shader_set_float(gs_sparam_t param, float val) +void gs_shader_set_float(gs_sparam_t *param, float val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_float(param, val); } -void gs_shader_set_int(gs_sparam_t param, int val) +void gs_shader_set_int(gs_sparam_t *param, int val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_int(param, val); } -void gs_shader_setmatrix3(gs_sparam_t param, const struct matrix3 *val) +void gs_shader_setmatrix3(gs_sparam_t *param, const struct matrix3 *val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_setmatrix3(param, val); } -void gs_shader_set_matrix4(gs_sparam_t param, const struct matrix4 *val) +void gs_shader_set_matrix4(gs_sparam_t *param, const struct matrix4 *val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_matrix4(param, val); } -void gs_shader_set_vec2(gs_sparam_t param, const struct vec2 *val) +void gs_shader_set_vec2(gs_sparam_t *param, const struct vec2 *val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_vec2(param, val); } -void gs_shader_set_vec3(gs_sparam_t param, const struct vec3 *val) +void gs_shader_set_vec3(gs_sparam_t *param, const struct vec3 *val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_vec3(param, val); } -void gs_shader_set_vec4(gs_sparam_t param, const struct vec4 *val) +void gs_shader_set_vec4(gs_sparam_t *param, const struct vec4 *val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_vec4(param, val); } -void gs_shader_set_texture(gs_sparam_t param, gs_texture_t val) +void gs_shader_set_texture(gs_sparam_t *param, gs_texture_t *val) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_texture(param, val); } -void gs_shader_set_val(gs_sparam_t param, const void *val, size_t size) +void gs_shader_set_val(gs_sparam_t *param, const void *val, size_t size) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_val(param, val, size); } -void gs_shader_set_default(gs_sparam_t param) +void gs_shader_set_default(gs_sparam_t *param) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !param) return; graphics->exports.gs_shader_set_default(param); } -void gs_texture_destroy(gs_texture_t tex) +void gs_texture_destroy(gs_texture_t *tex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !tex) return; graphics->exports.gs_texture_destroy(tex); } -uint32_t gs_texture_get_width(gs_texture_t tex) +uint32_t gs_texture_get_width(gs_texture_t *tex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !tex) return 0; return graphics->exports.gs_texture_get_width(tex); } -uint32_t gs_texture_get_height(gs_texture_t tex) +uint32_t gs_texture_get_height(gs_texture_t *tex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !tex) return 0; return graphics->exports.gs_texture_get_height(tex); } -enum gs_color_format gs_texture_get_color_format(gs_texture_t tex) +enum gs_color_format gs_texture_get_color_format(gs_texture_t *tex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !tex) return GS_UNKNOWN; return graphics->exports.gs_texture_get_color_format(tex); } -bool gs_texture_map(gs_texture_t tex, uint8_t **ptr, uint32_t *linesize) +bool gs_texture_map(gs_texture_t *tex, uint8_t **ptr, uint32_t *linesize) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !tex) return false; return graphics->exports.gs_texture_map(tex, ptr, linesize); } -void gs_texture_unmap(gs_texture_t tex) +void gs_texture_unmap(gs_texture_t *tex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !tex) return; graphics->exports.gs_texture_unmap(tex); } -bool gs_texture_is_rect(gs_texture_t tex) +bool gs_texture_is_rect(gs_texture_t *tex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !tex) return false; if (graphics->exports.gs_texture_is_rect) @@ -1723,186 +1723,186 @@ bool gs_texture_is_rect(gs_texture_t tex) return false; } -void *gs_texture_get_obj(gs_texture_t tex) +void *gs_texture_get_obj(gs_texture_t *tex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !tex) return NULL; return graphics->exports.gs_texture_get_obj(tex); } -void gs_cubetexture_destroy(gs_texture_t cubetex) +void gs_cubetexture_destroy(gs_texture_t *cubetex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !cubetex) return; graphics->exports.gs_cubetexture_destroy(cubetex); } -uint32_t gs_cubetexture_get_size(gs_texture_t cubetex) +uint32_t gs_cubetexture_get_size(gs_texture_t *cubetex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !cubetex) return 0; return graphics->exports.gs_cubetexture_get_size(cubetex); } -enum gs_color_format gs_cubetexture_get_color_format(gs_texture_t cubetex) +enum gs_color_format gs_cubetexture_get_color_format(gs_texture_t *cubetex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !cubetex) return GS_UNKNOWN; return graphics->exports.gs_cubetexture_get_color_format(cubetex); } -void gs_voltexture_destroy(gs_texture_t voltex) +void gs_voltexture_destroy(gs_texture_t *voltex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !voltex) return; graphics->exports.gs_voltexture_destroy(voltex); } -uint32_t gs_voltexture_get_width(gs_texture_t voltex) +uint32_t gs_voltexture_get_width(gs_texture_t *voltex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !voltex) return 0; return graphics->exports.gs_voltexture_get_width(voltex); } -uint32_t gs_voltexture_get_height(gs_texture_t voltex) +uint32_t gs_voltexture_get_height(gs_texture_t *voltex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !voltex) return 0; return graphics->exports.gs_voltexture_get_height(voltex); } -uint32_t gs_voltexture_getdepth(gs_texture_t voltex) +uint32_t gs_voltexture_getdepth(gs_texture_t *voltex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !voltex) return 0; return graphics->exports.gs_voltexture_getdepth(voltex); } -enum gs_color_format gs_voltexture_get_color_format(gs_texture_t voltex) +enum gs_color_format gs_voltexture_get_color_format(gs_texture_t *voltex) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !voltex) return GS_UNKNOWN; return graphics->exports.gs_voltexture_get_color_format(voltex); } -void gs_stagesurface_destroy(gs_stagesurf_t stagesurf) +void gs_stagesurface_destroy(gs_stagesurf_t *stagesurf) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !stagesurf) return; graphics->exports.gs_stagesurface_destroy(stagesurf); } -uint32_t gs_stagesurface_get_width(gs_stagesurf_t stagesurf) +uint32_t gs_stagesurface_get_width(gs_stagesurf_t *stagesurf) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !stagesurf) return 0; return graphics->exports.gs_stagesurface_get_width(stagesurf); } -uint32_t gs_stagesurface_get_height(gs_stagesurf_t stagesurf) +uint32_t gs_stagesurface_get_height(gs_stagesurf_t *stagesurf) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !stagesurf) return 0; return graphics->exports.gs_stagesurface_get_height(stagesurf); } -enum gs_color_format gs_stagesurface_get_color_format(gs_stagesurf_t stagesurf) +enum gs_color_format gs_stagesurface_get_color_format(gs_stagesurf_t *stagesurf) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !stagesurf) return GS_UNKNOWN; return graphics->exports.gs_stagesurface_get_color_format(stagesurf); } -bool gs_stagesurface_map(gs_stagesurf_t stagesurf, uint8_t **data, +bool gs_stagesurface_map(gs_stagesurf_t *stagesurf, uint8_t **data, uint32_t *linesize) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !stagesurf) return false; return graphics->exports.gs_stagesurface_map(stagesurf, data, linesize); } -void gs_stagesurface_unmap(gs_stagesurf_t stagesurf) +void gs_stagesurface_unmap(gs_stagesurf_t *stagesurf) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !stagesurf) return; graphics->exports.gs_stagesurface_unmap(stagesurf); } -void gs_zstencil_destroy(gs_zstencil_t zstencil) +void gs_zstencil_destroy(gs_zstencil_t *zstencil) { if (!thread_graphics || !zstencil) return; thread_graphics->exports.gs_zstencil_destroy(zstencil); } -void gs_samplerstate_destroy(gs_samplerstate_t samplerstate) +void gs_samplerstate_destroy(gs_samplerstate_t *samplerstate) { if (!thread_graphics || !samplerstate) return; thread_graphics->exports.gs_samplerstate_destroy(samplerstate); } -void gs_vertexbuffer_destroy(gs_vertbuffer_t vertbuffer) +void gs_vertexbuffer_destroy(gs_vertbuffer_t *vertbuffer) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !vertbuffer) return; graphics->exports.gs_vertexbuffer_destroy(vertbuffer); } -void gs_vertexbuffer_flush(gs_vertbuffer_t vertbuffer) +void gs_vertexbuffer_flush(gs_vertbuffer_t *vertbuffer) { if (!thread_graphics || !vertbuffer) return; thread_graphics->exports.gs_vertexbuffer_flush(vertbuffer); } -struct gs_vb_data *gs_vertexbuffer_get_data(gs_vertbuffer_t vertbuffer) +struct gs_vb_data *gs_vertexbuffer_get_data(gs_vertbuffer_t *vertbuffer) { if (!thread_graphics || !vertbuffer) return NULL; return thread_graphics->exports.gs_vertexbuffer_get_data(vertbuffer); } -void gs_indexbuffer_destroy(gs_indexbuffer_t indexbuffer) +void gs_indexbuffer_destroy(gs_indexbuffer_t *indexbuffer) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !indexbuffer) return; graphics->exports.gs_indexbuffer_destroy(indexbuffer); } -void gs_indexbuffer_flush(gs_indexbuffer_t indexbuffer) +void gs_indexbuffer_flush(gs_indexbuffer_t *indexbuffer) { if (!thread_graphics || !indexbuffer) return; thread_graphics->exports.gs_indexbuffer_flush(indexbuffer); } -void *gs_indexbuffer_get_data(gs_indexbuffer_t indexbuffer) +void *gs_indexbuffer_get_data(gs_indexbuffer_t *indexbuffer) { if (!thread_graphics || !indexbuffer) return NULL; return thread_graphics->exports.gs_indexbuffer_get_data(indexbuffer); } -size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t indexbuffer) +size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t *indexbuffer) { if (!thread_graphics || !indexbuffer) return 0; @@ -1910,7 +1910,7 @@ size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t indexbuffer) indexbuffer); } -enum gs_index_type gs_indexbuffer_get_type(gs_indexbuffer_t indexbuffer) +enum gs_index_type gs_indexbuffer_get_type(gs_indexbuffer_t *indexbuffer) { if (!thread_graphics || !indexbuffer) return (enum gs_index_type)0; @@ -1920,9 +1920,9 @@ enum gs_index_type gs_indexbuffer_get_type(gs_indexbuffer_t indexbuffer) #ifdef __APPLE__ /** Platform specific functions */ -gs_texture_t gs_texture_create_from_iosurface(void *iosurf) +gs_texture_t *gs_texture_create_from_iosurface(void *iosurf) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !iosurf || !graphics->exports.device_texture_create_from_iosurface) return NULL; @@ -1931,9 +1931,9 @@ gs_texture_t gs_texture_create_from_iosurface(void *iosurf) graphics->device, iosurf); } -bool gs_texture_rebind_iosurface(gs_texture_t texture, void *iosurf) +bool gs_texture_rebind_iosurface(gs_texture_t *texture, void *iosurf) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics || !iosurf || !graphics->exports.gs_texture_rebind_iosurface) return false; @@ -1952,9 +1952,9 @@ bool gs_gdi_texture_available(void) } /** creates a windows GDI-lockable texture */ -gs_texture_t gs_texture_create_gdi(uint32_t width, uint32_t height) +gs_texture_t *gs_texture_create_gdi(uint32_t width, uint32_t height) { - graphics_t graphics = thread_graphics; + graphics_t *graphics = thread_graphics; if (!graphics) return NULL; if (graphics->exports.device_texture_create_gdi) @@ -1963,7 +1963,7 @@ gs_texture_t gs_texture_create_gdi(uint32_t width, uint32_t height) return NULL; } -void *gs_texture_get_dc(gs_texture_t gdi_tex) +void *gs_texture_get_dc(gs_texture_t *gdi_tex) { if (!thread_graphics || !gdi_tex) return NULL; @@ -1973,7 +1973,7 @@ void *gs_texture_get_dc(gs_texture_t gdi_tex) return NULL; } -void gs_texture_release_dc(gs_texture_t gdi_tex) +void gs_texture_release_dc(gs_texture_t *gdi_tex) { if (!thread_graphics || !gdi_tex) return; diff --git a/libobs/graphics/graphics.h b/libobs/graphics/graphics.h index 3020cd099..01046e867 100644 --- a/libobs/graphics/graphics.h +++ b/libobs/graphics/graphics.h @@ -247,21 +247,21 @@ struct gs_effect_param; struct gs_device; struct graphics_subsystem; -typedef struct gs_texture *gs_texture_t; -typedef struct gs_stage_surface *gs_stagesurf_t; -typedef struct gs_zstencil_buffer *gs_zstencil_t; -typedef struct gs_vertex_buffer *gs_vertbuffer_t; -typedef struct gs_index_buffer *gs_indexbuffer_t; -typedef struct gs_sampler_state *gs_samplerstate_t; -typedef struct gs_swap_chain *gs_swapchain_t; -typedef struct gs_texture_render *gs_texrender_t; -typedef struct gs_shader *gs_shader_t; -typedef struct gs_shader_param *gs_sparam_t; -typedef struct gs_effect *gs_effect_t; -typedef struct gs_effect_technique *gs_technique_t; -typedef struct gs_effect_param *gs_eparam_t; -typedef struct gs_device *gs_device_t; -typedef struct graphics_subsystem *graphics_t; +typedef struct gs_texture gs_texture_t; +typedef struct gs_stage_surface gs_stagesurf_t; +typedef struct gs_zstencil_buffer gs_zstencil_t; +typedef struct gs_vertex_buffer gs_vertbuffer_t; +typedef struct gs_index_buffer gs_indexbuffer_t; +typedef struct gs_sampler_state gs_samplerstate_t; +typedef struct gs_swap_chain gs_swapchain_t; +typedef struct gs_texture_render gs_texrender_t; +typedef struct gs_shader gs_shader_t; +typedef struct gs_shader_param gs_sparam_t; +typedef struct gs_effect gs_effect_t; +typedef struct gs_effect_technique gs_technique_t; +typedef struct gs_effect_param gs_eparam_t; +typedef struct gs_device gs_device_t; +typedef struct graphics_subsystem graphics_t; /* --------------------------------------------------- * shader functions @@ -290,30 +290,30 @@ enum gs_shader_type { GS_SHADER_PIXEL, }; -EXPORT void gs_shader_destroy(gs_shader_t shader); +EXPORT void gs_shader_destroy(gs_shader_t *shader); -EXPORT int gs_shader_get_num_params(gs_shader_t shader); -EXPORT gs_sparam_t gs_shader_get_param_by_idx(gs_shader_t shader, +EXPORT int gs_shader_get_num_params(gs_shader_t *shader); +EXPORT gs_sparam_t *gs_shader_get_param_by_idx(gs_shader_t *shader, uint32_t param); -EXPORT gs_sparam_t gs_shader_get_param_by_name(gs_shader_t shader, +EXPORT gs_sparam_t *gs_shader_get_param_by_name(gs_shader_t *shader, const char *name); -EXPORT gs_sparam_t gs_shader_get_viewproj_matrix(gs_shader_t shader); -EXPORT gs_sparam_t gs_shader_get_world_matrix(gs_shader_t shader); +EXPORT gs_sparam_t *gs_shader_get_viewproj_matrix(gs_shader_t *shader); +EXPORT gs_sparam_t *gs_shader_get_world_matrix(gs_shader_t *shader); -EXPORT void gs_shader_get_param_info(gs_sparam_t param, +EXPORT void gs_shader_get_param_info(gs_sparam_t *param, struct gs_shader_param_info *info); -EXPORT void gs_shader_set_bool(gs_sparam_t param, bool val); -EXPORT void gs_shader_set_float(gs_sparam_t param, float val); -EXPORT void gs_shader_set_int(gs_sparam_t param, int val); -EXPORT void gs_shader_setmatrix3(gs_sparam_t param, const struct matrix3 *val); -EXPORT void gs_shader_set_matrix4(gs_sparam_t param, const struct matrix4 *val); -EXPORT void gs_shader_set_vec2(gs_sparam_t param, const struct vec2 *val); -EXPORT void gs_shader_set_vec3(gs_sparam_t param, const struct vec3 *val); -EXPORT void gs_shader_set_vec4(gs_sparam_t param, const struct vec4 *val); -EXPORT void gs_shader_set_texture(gs_sparam_t param, gs_texture_t val); -EXPORT void gs_shader_set_val(gs_sparam_t param, const void *val, size_t size); -EXPORT void gs_shader_set_default(gs_sparam_t param); +EXPORT void gs_shader_set_bool(gs_sparam_t *param, bool val); +EXPORT void gs_shader_set_float(gs_sparam_t *param, float val); +EXPORT void gs_shader_set_int(gs_sparam_t *param, int val); +EXPORT void gs_shader_setmatrix3(gs_sparam_t *param, const struct matrix3 *val); +EXPORT void gs_shader_set_matrix4(gs_sparam_t *param, const struct matrix4 *val); +EXPORT void gs_shader_set_vec2(gs_sparam_t *param, const struct vec2 *val); +EXPORT void gs_shader_set_vec3(gs_sparam_t *param, const struct vec3 *val); +EXPORT void gs_shader_set_vec4(gs_sparam_t *param, const struct vec4 *val); +EXPORT void gs_shader_set_texture(gs_sparam_t *param, gs_texture_t *val); +EXPORT void gs_shader_set_val(gs_sparam_t *param, const void *val, size_t size); +EXPORT void gs_shader_set_default(gs_sparam_t *param); /* --------------------------------------------------- * effect functions @@ -337,54 +337,55 @@ struct gs_effect_param_info { float min, max, inc, mul; */ }; -EXPORT void gs_effect_destroy(gs_effect_t effect); +EXPORT void gs_effect_destroy(gs_effect_t *effect); -EXPORT gs_technique_t gs_effect_get_technique(gs_effect_t effect, +EXPORT gs_technique_t *gs_effect_get_technique(gs_effect_t *effect, const char *name); -EXPORT size_t gs_technique_begin(gs_technique_t technique); -EXPORT void gs_technique_end(gs_technique_t technique); -EXPORT bool gs_technique_begin_pass(gs_technique_t technique, size_t pass); -EXPORT bool gs_technique_begin_pass_by_name(gs_technique_t technique, +EXPORT size_t gs_technique_begin(gs_technique_t *technique); +EXPORT void gs_technique_end(gs_technique_t *technique); +EXPORT bool gs_technique_begin_pass(gs_technique_t *technique, size_t pass); +EXPORT bool gs_technique_begin_pass_by_name(gs_technique_t *technique, const char *name); -EXPORT void gs_technique_end_pass(gs_technique_t technique); +EXPORT void gs_technique_end_pass(gs_technique_t *technique); -EXPORT size_t gs_effect_get_num_params(gs_effect_t effect); -EXPORT gs_eparam_t gs_effect_get_param_by_idx(gs_effect_t effect, size_t param); -EXPORT gs_eparam_t gs_effect_get_param_by_name(gs_effect_t effect, +EXPORT size_t gs_effect_get_num_params(gs_effect_t *effect); +EXPORT gs_eparam_t *gs_effect_get_param_by_idx(gs_effect_t *effect, size_t param); +EXPORT gs_eparam_t *gs_effect_get_param_by_name(gs_effect_t *effect, const char *name); /** used internally */ -EXPORT void gs_effect_update_params(gs_effect_t effect); +EXPORT void gs_effect_update_params(gs_effect_t *effect); -EXPORT gs_eparam_t gs_effect_get_viewproj_matrix(gs_effect_t effect); -EXPORT gs_eparam_t gs_effect_get_world_matrix(gs_effect_t effect); +EXPORT gs_eparam_t *gs_effect_get_viewproj_matrix(gs_effect_t *effect); +EXPORT gs_eparam_t *gs_effect_get_world_matrix(gs_effect_t *effect); -EXPORT void gs_effect_get_param_info(gs_eparam_t param, +EXPORT void gs_effect_get_param_info(gs_eparam_t *param, struct gs_effect_param_info *info); -EXPORT void gs_effect_set_bool(gs_eparam_t param, bool val); -EXPORT void gs_effect_set_float(gs_eparam_t param, float val); -EXPORT void gs_effect_set_int(gs_eparam_t param, int val); -EXPORT void gs_effect_set_matrix4(gs_eparam_t param, const struct matrix4 *val); -EXPORT void gs_effect_set_vec2(gs_eparam_t param, const struct vec2 *val); -EXPORT void gs_effect_set_vec3(gs_eparam_t param, const struct vec3 *val); -EXPORT void gs_effect_set_vec4(gs_eparam_t param, const struct vec4 *val); -EXPORT void gs_effect_set_texture(gs_eparam_t param, gs_texture_t val); -EXPORT void gs_effect_set_val(gs_eparam_t param, const void *val, size_t size); -EXPORT void gs_effect_set_default(gs_eparam_t param); +EXPORT void gs_effect_set_bool(gs_eparam_t *param, bool val); +EXPORT void gs_effect_set_float(gs_eparam_t *param, float val); +EXPORT void gs_effect_set_int(gs_eparam_t *param, int val); +EXPORT void gs_effect_set_matrix4(gs_eparam_t *param, + const struct matrix4 *val); +EXPORT void gs_effect_set_vec2(gs_eparam_t *param, const struct vec2 *val); +EXPORT void gs_effect_set_vec3(gs_eparam_t *param, const struct vec3 *val); +EXPORT void gs_effect_set_vec4(gs_eparam_t *param, const struct vec4 *val); +EXPORT void gs_effect_set_texture(gs_eparam_t *param, gs_texture_t *val); +EXPORT void gs_effect_set_val(gs_eparam_t *param, const void *val, size_t size); +EXPORT void gs_effect_set_default(gs_eparam_t *param); /* --------------------------------------------------- * texture render helper functions * --------------------------------------------------- */ -EXPORT gs_texrender_t gs_texrender_create(enum gs_color_format format, +EXPORT gs_texrender_t *gs_texrender_create(enum gs_color_format format, enum gs_zstencil_format zsformat); -EXPORT void gs_texrender_destroy(gs_texrender_t texrender); -EXPORT bool gs_texrender_begin(gs_texrender_t texrender, uint32_t cx, +EXPORT void gs_texrender_destroy(gs_texrender_t *texrender); +EXPORT bool gs_texrender_begin(gs_texrender_t *texrender, uint32_t cx, uint32_t cy); -EXPORT void gs_texrender_end(gs_texrender_t texrender); -EXPORT void gs_texrender_reset(gs_texrender_t texrender); -EXPORT gs_texture_t gs_texrender_get_texture(gs_texrender_t texrender); +EXPORT void gs_texrender_end(gs_texrender_t *texrender); +EXPORT void gs_texrender_reset(gs_texrender_t *texrender); +EXPORT gs_texture_t *gs_texrender_get_texture(gs_texrender_t *texrender); /* --------------------------------------------------- * graphics subsystem @@ -430,13 +431,13 @@ struct gs_init_data { EXPORT const char *gs_get_device_name(void); EXPORT int gs_get_device_type(void); -EXPORT int gs_create(graphics_t *graphics, const char *module, +EXPORT int gs_create(graphics_t **graphics, const char *module, struct gs_init_data *data); -EXPORT void gs_destroy(graphics_t graphics); +EXPORT void gs_destroy(graphics_t *graphics); -EXPORT void gs_enter_context(graphics_t graphics); +EXPORT void gs_enter_context(graphics_t *graphics); EXPORT void gs_leave_context(void); -EXPORT graphics_t gs_get_context(void); +EXPORT graphics_t *gs_get_context(void); EXPORT void gs_matrix_push(void); EXPORT void gs_matrix_pop(void); @@ -455,7 +456,7 @@ EXPORT void gs_matrix_scale3f(float x, float y, float z); EXPORT void gs_render_start(bool b_new); EXPORT void gs_render_stop(enum gs_draw_mode mode); -EXPORT gs_vertbuffer_t gs_render_save(void); +EXPORT gs_vertbuffer_t *gs_render_save(void); EXPORT void gs_vertex2f(float x, float y); EXPORT void gs_vertex3f(float x, float y, float z); EXPORT void gs_normal3f(float x, float y, float z); @@ -467,20 +468,20 @@ EXPORT void gs_normal3v(const struct vec3 *v); EXPORT void gs_color4v(const struct vec4 *v); EXPORT void gs_texcoord2v(const struct vec2 *v, int unit); -EXPORT input_t gs_get_input(void); -EXPORT gs_effect_t gs_get_effect(void); +EXPORT input_t *gs_get_input(void); +EXPORT gs_effect_t *gs_get_effect(void); -EXPORT gs_effect_t gs_effect_create_from_file(const char *file, +EXPORT gs_effect_t *gs_effect_create_from_file(const char *file, char **error_string); -EXPORT gs_effect_t gs_effect_create(const char *effect_string, +EXPORT gs_effect_t *gs_effect_create(const char *effect_string, const char *filename, char **error_string); -EXPORT gs_shader_t gs_vertexshader_create_from_file(const char *file, +EXPORT gs_shader_t *gs_vertexshader_create_from_file(const char *file, char **error_string); -EXPORT gs_shader_t gs_pixelshader_create_from_file(const char *file, +EXPORT gs_shader_t *gs_pixelshader_create_from_file(const char *file, char **error_string); -EXPORT gs_texture_t gs_texture_create_from_file(const char *file); +EXPORT gs_texture_t *gs_texture_create_from_file(const char *file); #define GS_FLIP_U (1<<0) #define GS_FLIP_V (1<<1) @@ -492,10 +493,10 @@ EXPORT gs_texture_t gs_texture_create_from_file(const char *file); * The flip value specifies whether the texture shoudl be flipped on the U or V * axis with GS_FLIP_U and GS_FLIP_V. */ -EXPORT void gs_draw_sprite(gs_texture_t tex, uint32_t flip, uint32_t width, +EXPORT void gs_draw_sprite(gs_texture_t *tex, uint32_t flip, uint32_t width, uint32_t height); -EXPORT void gs_draw_cube_backdrop(gs_texture_t cubetex, const struct quat *rot, +EXPORT void gs_draw_cube_backdrop(gs_texture_t *cubetex, const struct quat *rot, float left, float right, float top, float bottom, float znear); /** sets the viewport to current swap chain size */ @@ -509,9 +510,9 @@ EXPORT void gs_set_3d_mode(double fovy, double znear, double zvar); EXPORT void gs_viewport_push(void); EXPORT void gs_viewport_pop(void); -EXPORT void gs_texture_set_image(gs_texture_t tex, const uint8_t *data, +EXPORT void gs_texture_set_image(gs_texture_t *tex, const uint8_t *data, uint32_t linesize, bool invert); -EXPORT void gs_cubetexture_set_image(gs_texture_t cubetex, uint32_t side, +EXPORT void gs_cubetexture_set_image(gs_texture_t *cubetex, uint32_t side, const void *data, uint32_t linesize, bool invert); EXPORT void gs_perspective(float fovy, float aspect, float znear, float zfar); @@ -521,68 +522,68 @@ EXPORT void gs_reset_blend_state(void); /* -------------------------- */ /* library-specific functions */ -EXPORT gs_swapchain_t gs_swapchain_create(struct gs_init_data *data); +EXPORT gs_swapchain_t *gs_swapchain_create(struct gs_init_data *data); EXPORT void gs_resize(uint32_t x, uint32_t y); EXPORT void gs_get_size(uint32_t *x, uint32_t *y); EXPORT uint32_t gs_get_width(void); EXPORT uint32_t gs_get_height(void); -EXPORT gs_texture_t gs_texture_create(uint32_t width, uint32_t height, +EXPORT gs_texture_t *gs_texture_create(uint32_t width, uint32_t height, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags); -EXPORT gs_texture_t gs_cubetexture_create(uint32_t size, +EXPORT gs_texture_t *gs_cubetexture_create(uint32_t size, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags); -EXPORT gs_texture_t gs_voltexture_create(uint32_t width, uint32_t height, +EXPORT gs_texture_t *gs_voltexture_create(uint32_t width, uint32_t height, uint32_t depth, enum gs_color_format color_format, uint32_t levels, const uint8_t **data, uint32_t flags); -EXPORT gs_zstencil_t gs_zstencil_create(uint32_t width, uint32_t height, +EXPORT gs_zstencil_t *gs_zstencil_create(uint32_t width, uint32_t height, enum gs_zstencil_format format); -EXPORT gs_stagesurf_t gs_stagesurface_create(uint32_t width, uint32_t height, +EXPORT gs_stagesurf_t *gs_stagesurface_create(uint32_t width, uint32_t height, enum gs_color_format color_format); -EXPORT gs_samplerstate_t gs_samplerstate_create(struct gs_sampler_info *info); +EXPORT gs_samplerstate_t *gs_samplerstate_create(struct gs_sampler_info *info); -EXPORT gs_shader_t gs_vertexshader_create(const char *shader, +EXPORT gs_shader_t *gs_vertexshader_create(const char *shader, const char *file, char **error_string); -EXPORT gs_shader_t gs_pixelshader_create(const char *shader, +EXPORT gs_shader_t *gs_pixelshader_create(const char *shader, const char *file, char **error_string); -EXPORT gs_vertbuffer_t gs_vertexbuffer_create(struct gs_vb_data *data, +EXPORT gs_vertbuffer_t *gs_vertexbuffer_create(struct gs_vb_data *data, uint32_t flags); -EXPORT gs_indexbuffer_t gs_indexbuffer_create(enum gs_index_type type, +EXPORT gs_indexbuffer_t *gs_indexbuffer_create(enum gs_index_type type, void *indices, size_t num, uint32_t flags); -EXPORT enum gs_texture_type gs_get_texture_type(gs_texture_t texture); +EXPORT enum gs_texture_type gs_get_texture_type(gs_texture_t *texture); -EXPORT void gs_load_vertexbuffer(gs_vertbuffer_t vertbuffer); -EXPORT void gs_load_indexbuffer(gs_indexbuffer_t indexbuffer); -EXPORT void gs_load_texture(gs_texture_t tex, int unit); -EXPORT void gs_load_samplerstate(gs_samplerstate_t samplerstate, int unit); -EXPORT void gs_load_vertexshader(gs_shader_t vertshader); -EXPORT void gs_load_pixelshader(gs_shader_t pixelshader); +EXPORT void gs_load_vertexbuffer(gs_vertbuffer_t *vertbuffer); +EXPORT void gs_load_indexbuffer(gs_indexbuffer_t *indexbuffer); +EXPORT void gs_load_texture(gs_texture_t *tex, int unit); +EXPORT void gs_load_samplerstate(gs_samplerstate_t *samplerstate, int unit); +EXPORT void gs_load_vertexshader(gs_shader_t *vertshader); +EXPORT void gs_load_pixelshader(gs_shader_t *pixelshader); EXPORT void gs_load_default_samplerstate(bool b_3d, int unit); -EXPORT gs_shader_t gs_get_vertex_shader(void); -EXPORT gs_shader_t gs_get_pixel_shader(void); +EXPORT gs_shader_t *gs_get_vertex_shader(void); +EXPORT gs_shader_t *gs_get_pixel_shader(void); -EXPORT gs_texture_t gs_get_render_target(void); -EXPORT gs_zstencil_t gs_get_zstencil_target(void); +EXPORT gs_texture_t *gs_get_render_target(void); +EXPORT gs_zstencil_t *gs_get_zstencil_target(void); -EXPORT void gs_set_render_target(gs_texture_t tex, gs_zstencil_t zstencil); -EXPORT void gs_set_cube_render_target(gs_texture_t cubetex, int side, - gs_zstencil_t zstencil); +EXPORT void gs_set_render_target(gs_texture_t *tex, gs_zstencil_t *zstencil); +EXPORT void gs_set_cube_render_target(gs_texture_t *cubetex, int side, + gs_zstencil_t *zstencil); -EXPORT void gs_copy_texture(gs_texture_t dst, gs_texture_t src); +EXPORT void gs_copy_texture(gs_texture_t *dst, gs_texture_t *src); EXPORT void gs_copy_texture_region( - gs_texture_t dst, uint32_t dst_x, uint32_t dst_y, - gs_texture_t src, uint32_t src_x, uint32_t src_y, + gs_texture_t *dst, uint32_t dst_x, uint32_t dst_y, + gs_texture_t *src, uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h); -EXPORT void gs_stage_texture(gs_stagesurf_t dst, gs_texture_t src); +EXPORT void gs_stage_texture(gs_stagesurf_t *dst, gs_texture_t *src); EXPORT void gs_begin_scene(void); EXPORT void gs_draw(enum gs_draw_mode draw_mode, uint32_t start_vert, @@ -593,7 +594,7 @@ EXPORT void gs_end_scene(void); #define GS_CLEAR_DEPTH (1<<1) #define GS_CLEAR_STENCIL (1<<2) -EXPORT void gs_load_swapchain(gs_swapchain_t swapchain); +EXPORT void gs_load_swapchain(gs_swapchain_t *swapchain); EXPORT void gs_clear(uint32_t clear_flags, struct vec4 *color, float depth, uint8_t stencil); EXPORT void gs_present(void); @@ -630,75 +631,78 @@ EXPORT void gs_frustum(float left, float right, float top, float bottom, EXPORT void gs_projection_push(void); EXPORT void gs_projection_pop(void); -EXPORT void gs_swapchain_destroy(gs_swapchain_t swapchain); +EXPORT void gs_swapchain_destroy(gs_swapchain_t *swapchain); -EXPORT void gs_texture_destroy(gs_texture_t tex); -EXPORT uint32_t gs_texture_get_width(gs_texture_t tex); -EXPORT uint32_t gs_texture_get_height(gs_texture_t tex); -EXPORT enum gs_color_format gs_texture_get_color_format(gs_texture_t tex); -EXPORT bool gs_texture_map(gs_texture_t tex, uint8_t **ptr, +EXPORT void gs_texture_destroy(gs_texture_t *tex); +EXPORT uint32_t gs_texture_get_width(gs_texture_t *tex); +EXPORT uint32_t gs_texture_get_height(gs_texture_t *tex); +EXPORT enum gs_color_format gs_texture_get_color_format(gs_texture_t *tex); +EXPORT bool gs_texture_map(gs_texture_t *tex, uint8_t **ptr, uint32_t *linesize); -EXPORT void gs_texture_unmap(gs_texture_t tex); +EXPORT void gs_texture_unmap(gs_texture_t *tex); /** special-case function (GL only) - specifies whether the texture is a * GL_TEXTURE_RECTANGLE type, which doesn't use normalized texture * coordinates, doesn't support mipmapping, and requires address clamping */ -EXPORT bool gs_texture_is_rect(gs_texture_t tex); +EXPORT bool gs_texture_is_rect(gs_texture_t *tex); /** * Gets a pointer to the context-specific object associated with the texture. * For example, for GL, this is a GLuint*. For D3D11, ID3D11Texture2D*. */ -EXPORT void *gs_texture_get_obj(gs_texture_t tex); +EXPORT void *gs_texture_get_obj(gs_texture_t *tex); -EXPORT void gs_cubetexture_destroy(gs_texture_t cubetex); -EXPORT uint32_t gs_cubetexture_get_size(gs_texture_t cubetex); +EXPORT void gs_cubetexture_destroy(gs_texture_t *cubetex); +EXPORT uint32_t gs_cubetexture_get_size(gs_texture_t *cubetex); EXPORT enum gs_color_format gs_cubetexture_get_color_format( - gs_texture_t cubetex); + gs_texture_t *cubetex); -EXPORT void gs_voltexture_destroy(gs_texture_t voltex); -EXPORT uint32_t gs_voltexture_get_width(gs_texture_t voltex); -EXPORT uint32_t gs_voltexture_get_height(gs_texture_t voltex); -EXPORT uint32_t gs_voltexture_getdepth(gs_texture_t voltex); -EXPORT enum gs_color_format gs_voltexture_get_color_format(gs_texture_t voltex); +EXPORT void gs_voltexture_destroy(gs_texture_t *voltex); +EXPORT uint32_t gs_voltexture_get_width(gs_texture_t *voltex); +EXPORT uint32_t gs_voltexture_get_height(gs_texture_t *voltex); +EXPORT uint32_t gs_voltexture_getdepth(gs_texture_t *voltex); +EXPORT enum gs_color_format gs_voltexture_get_color_format( + gs_texture_t *voltex); -EXPORT void gs_stagesurface_destroy(gs_stagesurf_t stagesurf); -EXPORT uint32_t gs_stagesurface_get_width(gs_stagesurf_t stagesurf); -EXPORT uint32_t gs_stagesurface_get_height(gs_stagesurf_t stagesurf); +EXPORT void gs_stagesurface_destroy(gs_stagesurf_t *stagesurf); +EXPORT uint32_t gs_stagesurface_get_width(gs_stagesurf_t *stagesurf); +EXPORT uint32_t gs_stagesurface_get_height(gs_stagesurf_t *stagesurf); EXPORT enum gs_color_format gs_stagesurface_get_color_format( - gs_stagesurf_t stagesurf); -EXPORT bool gs_stagesurface_map(gs_stagesurf_t stagesurf, uint8_t **data, + gs_stagesurf_t *stagesurf); +EXPORT bool gs_stagesurface_map(gs_stagesurf_t *stagesurf, uint8_t **data, uint32_t *linesize); -EXPORT void gs_stagesurface_unmap(gs_stagesurf_t stagesurf); +EXPORT void gs_stagesurface_unmap(gs_stagesurf_t *stagesurf); -EXPORT void gs_zstencil_destroy(gs_zstencil_t zstencil); +EXPORT void gs_zstencil_destroy(gs_zstencil_t *zstencil); -EXPORT void gs_samplerstate_destroy(gs_samplerstate_t samplerstate); +EXPORT void gs_samplerstate_destroy(gs_samplerstate_t *samplerstate); -EXPORT void gs_vertexbuffer_destroy(gs_vertbuffer_t vertbuffer); -EXPORT void gs_vertexbuffer_flush(gs_vertbuffer_t vertbuffer); -EXPORT struct gs_vb_data *gs_vertexbuffer_get_data(gs_vertbuffer_t vertbuffer); +EXPORT void gs_vertexbuffer_destroy(gs_vertbuffer_t *vertbuffer); +EXPORT void gs_vertexbuffer_flush(gs_vertbuffer_t *vertbuffer); +EXPORT struct gs_vb_data *gs_vertexbuffer_get_data(gs_vertbuffer_t *vertbuffer); -EXPORT void gs_indexbuffer_destroy(gs_indexbuffer_t indexbuffer); -EXPORT void gs_indexbuffer_flush(gs_indexbuffer_t indexbuffer); -EXPORT void *gs_indexbuffer_get_data(gs_indexbuffer_t indexbuffer); -EXPORT size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t indexbuffer); -EXPORT enum gs_index_type gs_indexbuffer_get_type(gs_indexbuffer_t indexbuffer); +EXPORT void gs_indexbuffer_destroy(gs_indexbuffer_t *indexbuffer); +EXPORT void gs_indexbuffer_flush(gs_indexbuffer_t *indexbuffer); +EXPORT void *gs_indexbuffer_get_data(gs_indexbuffer_t *indexbuffer); +EXPORT size_t gs_indexbuffer_get_num_indices(gs_indexbuffer_t *indexbuffer); +EXPORT enum gs_index_type gs_indexbuffer_get_type( + gs_indexbuffer_t *indexbuffer); #ifdef __APPLE__ /** platform specific function for creating (GL_TEXTURE_RECTANGLE) textures * from shared surface resources */ -EXPORT gs_texture_t gs_texture_create_from_iosurface(void *iosurf); -EXPORT bool gs_texture_rebind_iosurface(gs_texture_t texture, void *iosurf); +EXPORT gs_texture_t *gs_texture_create_from_iosurface(void *iosurf); +EXPORT bool gs_texture_rebind_iosurface(gs_texture_t *texture, + void *iosurf); #elif _WIN32 EXPORT bool gs_gdi_texture_available(void); /** creates a windows GDI-lockable texture */ -EXPORT gs_texture_t gs_texture_create_gdi(uint32_t width, uint32_t height); +EXPORT gs_texture_t *gs_texture_create_gdi(uint32_t width, uint32_t height); -EXPORT void *gs_texture_get_dc(gs_texture_t gdi_tex); -EXPORT void gs_texture_release_dc(gs_texture_t gdi_tex); +EXPORT void *gs_texture_get_dc(gs_texture_t *gdi_tex); +EXPORT void gs_texture_release_dc(gs_texture_t *gdi_tex); #endif diff --git a/libobs/graphics/input.h b/libobs/graphics/input.h index 838df6fd8..6c74ef442 100644 --- a/libobs/graphics/input.h +++ b/libobs/graphics/input.h @@ -143,9 +143,9 @@ extern "C" { /* wrapped opaque data types */ struct input_subsystem; -typedef struct input_subsystem* input_t; +typedef struct input_subsystem input_t; -EXPORT int input_getbuttonstate(input_t input, uint32_t button); +EXPORT int input_getbuttonstate(input_t *input, uint32_t button); #ifdef __cplusplus } diff --git a/libobs/graphics/texture-render.c b/libobs/graphics/texture-render.c index 25008ad77..946628c39 100644 --- a/libobs/graphics/texture-render.c +++ b/libobs/graphics/texture-render.c @@ -24,8 +24,8 @@ #include "graphics.h" struct gs_texture_render { - gs_texture_t target, prev_target; - gs_zstencil_t zs, prev_zs; + gs_texture_t *target, *prev_target; + gs_zstencil_t *zs, *prev_zs; uint32_t cx, cy; @@ -35,7 +35,7 @@ struct gs_texture_render { bool rendered; }; -gs_texrender_t gs_texrender_create(enum gs_color_format format, +gs_texrender_t *gs_texrender_create(enum gs_color_format format, enum gs_zstencil_format zsformat) { struct gs_texture_render *texrender; @@ -46,7 +46,7 @@ gs_texrender_t gs_texrender_create(enum gs_color_format format, return texrender; } -void gs_texrender_destroy(gs_texrender_t texrender) +void gs_texrender_destroy(gs_texrender_t *texrender) { if (texrender) { gs_texture_destroy(texrender->target); @@ -55,7 +55,7 @@ void gs_texrender_destroy(gs_texrender_t texrender) } } -static bool texrender_resetbuffer(gs_texrender_t texrender, uint32_t cx, +static bool texrender_resetbuffer(gs_texrender_t *texrender, uint32_t cx, uint32_t cy) { if (!texrender) @@ -87,7 +87,7 @@ static bool texrender_resetbuffer(gs_texrender_t texrender, uint32_t cx, return true; } -bool gs_texrender_begin(gs_texrender_t texrender, uint32_t cx, uint32_t cy) +bool gs_texrender_begin(gs_texrender_t *texrender, uint32_t cx, uint32_t cy) { if (!texrender || texrender->rendered) return false; @@ -119,7 +119,7 @@ bool gs_texrender_begin(gs_texrender_t texrender, uint32_t cx, uint32_t cy) return true; } -void gs_texrender_end(gs_texrender_t texrender) +void gs_texrender_end(gs_texrender_t *texrender) { if (!texrender) return; @@ -133,13 +133,13 @@ void gs_texrender_end(gs_texrender_t texrender) texrender->rendered = true; } -void gs_texrender_reset(gs_texrender_t texrender) +void gs_texrender_reset(gs_texrender_t *texrender) { if (texrender) texrender->rendered = false; } -gs_texture_t gs_texrender_get_texture(gs_texrender_t texrender) +gs_texture_t *gs_texrender_get_texture(gs_texrender_t *texrender) { return texrender ? texrender->target : NULL; } diff --git a/libobs/media-io/audio-io.c b/libobs/media-io/audio-io.c index 5befa64d1..806a33156 100644 --- a/libobs/media-io/audio-io.c +++ b/libobs/media-io/audio-io.c @@ -32,7 +32,7 @@ struct audio_input { struct audio_convert_info conversion; - audio_resampler_t resampler; + audio_resampler_t *resampler; void (*callback)(void *param, struct audio_data *data); void *param; @@ -82,7 +82,7 @@ struct audio_output { size_t planes; pthread_t thread; - os_event_t stop_event; + os_event_t *stop_event; DARRAY(uint8_t) mix_buffers[MAX_AV_PLANES]; @@ -112,7 +112,7 @@ static inline void audio_output_removeline(struct audio_output *audio, * timestamps. this will actually work accurately as long as you handle the * values correctly */ -static inline double ts_to_frames(audio_t audio, uint64_t ts) +static inline double ts_to_frames(audio_t *audio, uint64_t ts) { double audio_offset_d = (double)ts; audio_offset_d /= 1000000000.0; @@ -126,19 +126,19 @@ static inline double positive_round(double val) return floor(val+0.5); } -static size_t ts_diff_frames(audio_t audio, uint64_t ts1, uint64_t ts2) +static size_t ts_diff_frames(audio_t *audio, uint64_t ts1, uint64_t ts2) { double diff = ts_to_frames(audio, ts1) - ts_to_frames(audio, ts2); return (size_t)positive_round(diff); } -static size_t ts_diff_bytes(audio_t audio, uint64_t ts1, uint64_t ts2) +static size_t ts_diff_bytes(audio_t *audio, uint64_t ts1, uint64_t ts2) { return ts_diff_frames(audio, ts1, ts2) * audio->block_size; } /* unless the value is 3+ hours worth of frames, this won't overflow */ -static inline uint64_t conv_frames_to_time(audio_t audio, uint32_t frames) +static inline uint64_t conv_frames_to_time(audio_t *audio, uint32_t frames) { return (uint64_t)frames * 1000000000ULL / (uint64_t)audio->info.samples_per_sec; @@ -369,7 +369,7 @@ static void *audio_thread(void *param) /* ------------------------------------------------------------------------- */ -static size_t audio_get_input_idx(audio_t video, +static size_t audio_get_input_idx(audio_t *video, void (*callback)(void *param, struct audio_data *data), void *param) { @@ -413,7 +413,7 @@ static inline bool audio_input_init(struct audio_input *input, return true; } -bool audio_output_connect(audio_t audio, +bool audio_output_connect(audio_t *audio, const struct audio_convert_info *conversion, void (*callback)(void *param, struct audio_data *data), void *param) @@ -456,7 +456,7 @@ bool audio_output_connect(audio_t audio, return success; } -void audio_output_disconnect(audio_t audio, +void audio_output_disconnect(audio_t *audio, void (*callback)(void *param, struct audio_data *data), void *param) { @@ -479,7 +479,7 @@ static inline bool valid_audio_params(struct audio_output_info *info) info->speakers > 0; } -int audio_output_open(audio_t *audio, struct audio_output_info *info) +int audio_output_open(audio_t **audio, struct audio_output_info *info) { struct audio_output *out; pthread_mutexattr_t attr; @@ -521,7 +521,7 @@ fail: return AUDIO_OUTPUT_FAIL; } -void audio_output_close(audio_t audio) +void audio_output_close(audio_t *audio) { void *thread_ret; struct audio_line *line; @@ -553,7 +553,7 @@ void audio_output_close(audio_t audio) bfree(audio); } -audio_line_t audio_output_create_line(audio_t audio, const char *name) +audio_line_t *audio_output_create_line(audio_t *audio, const char *name) { if (!audio) return NULL; @@ -584,7 +584,7 @@ audio_line_t audio_output_create_line(audio_t audio, const char *name) return line; } -const struct audio_output_info *audio_output_get_info(audio_t audio) +const struct audio_output_info *audio_output_get_info(audio_t *audio) { return audio ? &audio->info : NULL; } @@ -599,28 +599,28 @@ void audio_line_destroy(struct audio_line *line) } } -bool audio_output_active(audio_t audio) +bool audio_output_active(audio_t *audio) { if (!audio) return false; return audio->inputs.num != 0; } -size_t audio_output_get_block_size(audio_t audio) +size_t audio_output_get_block_size(audio_t *audio) { return audio ? audio->block_size : 0; } -size_t audio_output_get_planes(audio_t audio) +size_t audio_output_get_planes(audio_t *audio) { return audio ? audio->planes : 0; } -size_t audio_output_get_channels(audio_t audio) +size_t audio_output_get_channels(audio_t *audio) { return audio ? audio->channels : 0; } -uint32_t audio_output_get_sample_rate(audio_t audio) +uint32_t audio_output_get_sample_rate(audio_t *audio) { return audio ? audio->info.samples_per_sec : 0; } @@ -706,7 +706,7 @@ static inline bool valid_timestamp_range(struct audio_line *line, uint64_t ts) return ts >= line->base_timestamp && ts < max_ts; } -void audio_line_output(audio_line_t line, const struct audio_data *data) +void audio_line_output(audio_line_t *line, const struct audio_data *data) { if (!line || !data) return; diff --git a/libobs/media-io/audio-io.h b/libobs/media-io/audio-io.h index 0bd0bda36..8a85eff81 100644 --- a/libobs/media-io/audio-io.h +++ b/libobs/media-io/audio-io.h @@ -31,8 +31,8 @@ extern "C" { struct audio_output; struct audio_line; -typedef struct audio_output *audio_t; -typedef struct audio_line *audio_line_t; +typedef struct audio_output audio_t; +typedef struct audio_line audio_line_t; enum audio_format { AUDIO_FORMAT_UNKNOWN, @@ -169,28 +169,28 @@ static inline size_t get_audio_size(enum audio_format format, #define AUDIO_OUTPUT_INVALIDPARAM -1 #define AUDIO_OUTPUT_FAIL -2 -EXPORT int audio_output_open(audio_t *audio, struct audio_output_info *info); -EXPORT void audio_output_close(audio_t audio); +EXPORT int audio_output_open(audio_t **audio, struct audio_output_info *info); +EXPORT void audio_output_close(audio_t *audio); -EXPORT bool audio_output_connect(audio_t video, +EXPORT bool audio_output_connect(audio_t *video, const struct audio_convert_info *conversion, void (*callback)(void *param, struct audio_data *data), void *param); -EXPORT void audio_output_disconnect(audio_t video, +EXPORT void audio_output_disconnect(audio_t *video, void (*callback)(void *param, struct audio_data *data), void *param); -EXPORT bool audio_output_active(audio_t audio); +EXPORT bool audio_output_active(audio_t *audio); -EXPORT size_t audio_output_get_block_size(audio_t audio); -EXPORT size_t audio_output_get_planes(audio_t audio); -EXPORT size_t audio_output_get_channels(audio_t audio); -EXPORT uint32_t audio_output_get_sample_rate(audio_t audio); -EXPORT const struct audio_output_info *audio_output_get_info(audio_t audio); +EXPORT size_t audio_output_get_block_size(audio_t *audio); +EXPORT size_t audio_output_get_planes(audio_t *audio); +EXPORT size_t audio_output_get_channels(audio_t *audio); +EXPORT uint32_t audio_output_get_sample_rate(audio_t *audio); +EXPORT const struct audio_output_info *audio_output_get_info(audio_t *audio); -EXPORT audio_line_t audio_output_create_line(audio_t audio, const char *name); -EXPORT void audio_line_destroy(audio_line_t line); -EXPORT void audio_line_output(audio_line_t line, const struct audio_data *data); +EXPORT audio_line_t *audio_output_create_line(audio_t *audio, const char *name); +EXPORT void audio_line_destroy(audio_line_t *line); +EXPORT void audio_line_output(audio_line_t *line, const struct audio_data *data); #ifdef __cplusplus diff --git a/libobs/media-io/audio-resampler-ffmpeg.c b/libobs/media-io/audio-resampler-ffmpeg.c index 8fb6306f6..a4fe92794 100644 --- a/libobs/media-io/audio-resampler-ffmpeg.c +++ b/libobs/media-io/audio-resampler-ffmpeg.c @@ -77,7 +77,7 @@ static inline uint64_t convert_speaker_layout(enum speaker_layout layout) return 0; } -audio_resampler_t audio_resampler_create(const struct resample_info *dst, +audio_resampler_t *audio_resampler_create(const struct resample_info *dst, const struct resample_info *src) { struct audio_resampler *rs = bzalloc(sizeof(struct audio_resampler)); @@ -116,7 +116,7 @@ audio_resampler_t audio_resampler_create(const struct resample_info *dst, return rs; } -void audio_resampler_destroy(audio_resampler_t rs) +void audio_resampler_destroy(audio_resampler_t *rs) { if (rs) { if (rs->context) @@ -128,7 +128,7 @@ void audio_resampler_destroy(audio_resampler_t rs) } } -bool audio_resampler_resample(audio_resampler_t rs, +bool audio_resampler_resample(audio_resampler_t *rs, uint8_t *output[], uint32_t *out_frames, uint64_t *ts_offset, const uint8_t *const input[], uint32_t in_frames) { diff --git a/libobs/media-io/audio-resampler.h b/libobs/media-io/audio-resampler.h index 6cbce7fa4..be57528a6 100644 --- a/libobs/media-io/audio-resampler.h +++ b/libobs/media-io/audio-resampler.h @@ -25,7 +25,7 @@ extern "C" { #endif struct audio_resampler; -typedef struct audio_resampler *audio_resampler_t; +typedef struct audio_resampler audio_resampler_t; struct resample_info { uint32_t samples_per_sec; @@ -33,11 +33,11 @@ struct resample_info { enum speaker_layout speakers; }; -EXPORT audio_resampler_t audio_resampler_create(const struct resample_info *dst, +EXPORT audio_resampler_t *audio_resampler_create(const struct resample_info *dst, const struct resample_info *src); -EXPORT void audio_resampler_destroy(audio_resampler_t resampler); +EXPORT void audio_resampler_destroy(audio_resampler_t *resampler); -EXPORT bool audio_resampler_resample(audio_resampler_t resampler, +EXPORT bool audio_resampler_resample(audio_resampler_t *resampler, uint8_t *output[], uint32_t *out_frames, uint64_t *ts_offset, const uint8_t *const input[], uint32_t in_frames); diff --git a/libobs/media-io/video-io.c b/libobs/media-io/video-io.c index e9ebab26e..ae923ca79 100644 --- a/libobs/media-io/video-io.c +++ b/libobs/media-io/video-io.c @@ -30,7 +30,7 @@ struct video_input { struct video_scale_info conversion; - video_scaler_t scaler; + video_scaler_t *scaler; struct video_frame frame[MAX_CONVERT_BUFFERS]; int cur_frame; @@ -50,13 +50,13 @@ struct video_output { pthread_t thread; pthread_mutex_t data_mutex; - os_event_t stop_event; + os_event_t *stop_event; struct video_data cur_frame; struct video_data next_frame; bool new_frame; - os_event_t update_event; + os_event_t *update_event; uint64_t frame_time; volatile uint64_t cur_video_time; uint32_t skipped_frames; @@ -181,7 +181,7 @@ static inline bool valid_video_params(struct video_output_info *info) info->fps_num != 0; } -int video_output_open(video_t *video, struct video_output_info *info) +int video_output_open(video_t **video, struct video_output_info *info) { struct video_output *out; @@ -217,7 +217,7 @@ fail: return VIDEO_OUTPUT_FAIL; } -void video_output_close(video_t video) +void video_output_close(video_t *video) { if (!video) return; @@ -235,7 +235,7 @@ void video_output_close(video_t video) bfree(video); } -static size_t video_get_input_idx(video_t video, +static size_t video_get_input_idx(video_t *video, void (*callback)(void *param, struct video_data *frame), void *param) { @@ -284,7 +284,7 @@ static inline bool video_input_init(struct video_input *input, return true; } -bool video_output_connect(video_t video, +bool video_output_connect(video_t *video, const struct video_scale_info *conversion, void (*callback)(void *param, struct video_data *frame), void *param) @@ -326,7 +326,7 @@ bool video_output_connect(video_t video, return success; } -void video_output_disconnect(video_t video, +void video_output_disconnect(video_t *video, void (*callback)(void *param, struct video_data *frame), void *param) { @@ -344,18 +344,18 @@ void video_output_disconnect(video_t video, pthread_mutex_unlock(&video->input_mutex); } -bool video_output_active(video_t video) +bool video_output_active(video_t *video) { if (!video) return false; return video->inputs.num != 0; } -const struct video_output_info *video_output_get_info(video_t video) +const struct video_output_info *video_output_get_info(video_t *video) { return video ? &video->info : NULL; } -void video_output_swap_frame(video_t video, struct video_data *frame) +void video_output_swap_frame(video_t *video, struct video_data *frame) { if (!video) return; @@ -365,7 +365,7 @@ void video_output_swap_frame(video_t video, struct video_data *frame) pthread_mutex_unlock(&video->data_mutex); } -bool video_output_wait(video_t video) +bool video_output_wait(video_t *video) { if (!video) return false; @@ -373,17 +373,17 @@ bool video_output_wait(video_t video) return os_event_try(video->stop_event) == EAGAIN; } -uint64_t video_output_get_frame_time(video_t video) +uint64_t video_output_get_frame_time(video_t *video) { return video ? video->frame_time : 0; } -uint64_t video_output_get_time(video_t video) +uint64_t video_output_get_time(video_t *video) { return video ? video->cur_video_time : 0; } -void video_output_stop(video_t video) +void video_output_stop(video_t *video) { void *thread_ret; @@ -398,22 +398,22 @@ void video_output_stop(video_t video) } } -enum video_format video_output_get_format(video_t video) +enum video_format video_output_get_format(video_t *video) { return video ? video->info.format : VIDEO_FORMAT_NONE; } -uint32_t video_output_get_width(video_t video) +uint32_t video_output_get_width(video_t *video) { return video ? video->info.width : 0; } -uint32_t video_output_get_height(video_t video) +uint32_t video_output_get_height(video_t *video) { return video ? video->info.height : 0; } -double video_output_get_frame_rate(video_t video) +double video_output_get_frame_rate(video_t *video) { if (!video) return 0.0; @@ -421,12 +421,12 @@ double video_output_get_frame_rate(video_t video) return (double)video->info.fps_num / (double)video->info.fps_den; } -uint32_t video_output_get_skipped_frames(video_t video) +uint32_t video_output_get_skipped_frames(video_t *video) { return video->skipped_frames; } -uint32_t video_output_get_total_frames(video_t video) +uint32_t video_output_get_total_frames(video_t *video) { return video->total_frames; } diff --git a/libobs/media-io/video-io.h b/libobs/media-io/video-io.h index b13d87ae7..41ef5384a 100644 --- a/libobs/media-io/video-io.h +++ b/libobs/media-io/video-io.h @@ -26,7 +26,7 @@ extern "C" { /* Base video output component. Use this to create a video output track. */ struct video_output; -typedef struct video_output *video_t; +typedef struct video_output video_t; enum video_format { VIDEO_FORMAT_NONE, @@ -119,33 +119,33 @@ EXPORT bool video_format_get_parameters(enum video_colorspace color_space, #define VIDEO_OUTPUT_INVALIDPARAM -1 #define VIDEO_OUTPUT_FAIL -2 -EXPORT int video_output_open(video_t *video, struct video_output_info *info); -EXPORT void video_output_close(video_t video); +EXPORT int video_output_open(video_t **video, struct video_output_info *info); +EXPORT void video_output_close(video_t *video); -EXPORT bool video_output_connect(video_t video, +EXPORT bool video_output_connect(video_t *video, const struct video_scale_info *conversion, void (*callback)(void *param, struct video_data *frame), void *param); -EXPORT void video_output_disconnect(video_t video, +EXPORT void video_output_disconnect(video_t *video, void (*callback)(void *param, struct video_data *frame), void *param); -EXPORT bool video_output_active(video_t video); +EXPORT bool video_output_active(video_t *video); -EXPORT const struct video_output_info *video_output_get_info(video_t video); -EXPORT void video_output_swap_frame(video_t video, struct video_data *frame); -EXPORT bool video_output_wait(video_t video); -EXPORT uint64_t video_output_get_frame_time(video_t video); -EXPORT uint64_t video_output_get_time(video_t video); -EXPORT void video_output_stop(video_t video); +EXPORT const struct video_output_info *video_output_get_info(video_t *video); +EXPORT void video_output_swap_frame(video_t *video, struct video_data *frame); +EXPORT bool video_output_wait(video_t *video); +EXPORT uint64_t video_output_get_frame_time(video_t *video); +EXPORT uint64_t video_output_get_time(video_t *video); +EXPORT void video_output_stop(video_t *video); -EXPORT enum video_format video_output_get_format(video_t video); -EXPORT uint32_t video_output_get_width(video_t video); -EXPORT uint32_t video_output_get_height(video_t video); -EXPORT double video_output_get_frame_rate(video_t video); +EXPORT enum video_format video_output_get_format(video_t *video); +EXPORT uint32_t video_output_get_width(video_t *video); +EXPORT uint32_t video_output_get_height(video_t *video); +EXPORT double video_output_get_frame_rate(video_t *video); -EXPORT uint32_t video_output_get_skipped_frames(video_t video); -EXPORT uint32_t video_output_get_total_frames(video_t video); +EXPORT uint32_t video_output_get_skipped_frames(video_t *video); +EXPORT uint32_t video_output_get_total_frames(video_t *video); #ifdef __cplusplus diff --git a/libobs/media-io/video-scaler-ffmpeg.c b/libobs/media-io/video-scaler-ffmpeg.c index 1e3d2b62d..883fab264 100644 --- a/libobs/media-io/video-scaler-ffmpeg.c +++ b/libobs/media-io/video-scaler-ffmpeg.c @@ -80,7 +80,7 @@ static inline int get_ffmpeg_range_type(enum video_range_type type) #define FIXED_1_0 (1<<16) -int video_scaler_create(video_scaler_t *scaler_out, +int video_scaler_create(video_scaler_t **scaler_out, const struct video_scale_info *dst, const struct video_scale_info *src, enum video_scale_type type) @@ -132,7 +132,7 @@ fail: return VIDEO_SCALER_FAILED; } -void video_scaler_destroy(video_scaler_t scaler) +void video_scaler_destroy(video_scaler_t *scaler) { if (scaler) { sws_freeContext(scaler->swscale); @@ -140,7 +140,7 @@ void video_scaler_destroy(video_scaler_t scaler) } } -bool video_scaler_scale(video_scaler_t scaler, +bool video_scaler_scale(video_scaler_t *scaler, uint8_t *output[], const uint32_t out_linesize[], const uint8_t *const input[], const uint32_t in_linesize[]) { diff --git a/libobs/media-io/video-scaler.h b/libobs/media-io/video-scaler.h index 6c3cca17c..dd1630cb2 100644 --- a/libobs/media-io/video-scaler.h +++ b/libobs/media-io/video-scaler.h @@ -25,19 +25,19 @@ extern "C" { #endif struct video_scaler; -typedef struct video_scaler *video_scaler_t; +typedef struct video_scaler video_scaler_t; #define VIDEO_SCALER_SUCCESS 0 #define VIDEO_SCALER_BAD_CONVERSION -1 #define VIDEO_SCALER_FAILED -2 -EXPORT int video_scaler_create(video_scaler_t *scaler, +EXPORT int video_scaler_create(video_scaler_t **scaler, const struct video_scale_info *dst, const struct video_scale_info *src, enum video_scale_type type); -EXPORT void video_scaler_destroy(video_scaler_t scaler); +EXPORT void video_scaler_destroy(video_scaler_t *scaler); -EXPORT bool video_scaler_scale(video_scaler_t scaler, +EXPORT bool video_scaler_scale(video_scaler_t *scaler, uint8_t *output[], const uint32_t out_linesize[], const uint8_t *const input[], const uint32_t in_linesize[]); diff --git a/libobs/obs-data.c b/libobs/obs-data.c index 7419f6cc1..6cff446bb 100644 --- a/libobs/obs-data.c +++ b/libobs/obs-data.c @@ -48,7 +48,7 @@ struct obs_data { struct obs_data_array { volatile long ref; - DARRAY(obs_data_t) objects; + DARRAY(obs_data_t*) objects; }; struct obs_data_number { @@ -86,7 +86,7 @@ static inline char *get_item_name(struct obs_data_item *item) return (char*)item + sizeof(struct obs_data_item); } -static inline void *get_data_ptr(obs_data_item_t item) +static inline void *get_data_ptr(obs_data_item_t *item) { return (uint8_t*)get_item_name(item) + item->name_len; } @@ -98,7 +98,7 @@ static inline void *get_item_data(struct obs_data_item *item) return get_data_ptr(item); } -static inline void *get_default_data_ptr(obs_data_item_t item) +static inline void *get_default_data_ptr(obs_data_item_t *item) { return (uint8_t*)get_data_ptr(item) + item->data_len; } @@ -108,7 +108,7 @@ static inline void *get_item_default_data(struct obs_data_item *item) return item->default_size ? get_default_data_ptr(item) : NULL; } -static inline void *get_autoselect_data_ptr(obs_data_item_t item) +static inline void *get_autoselect_data_ptr(obs_data_item_t *item) { return (uint8_t*)get_default_data_ptr(item) + item->default_len; } @@ -124,54 +124,54 @@ static inline size_t obs_data_item_total_size(struct obs_data_item *item) item->data_len + item->default_len + item->autoselect_size; } -static inline obs_data_t get_item_obj(struct obs_data_item *item) +static inline obs_data_t *get_item_obj(struct obs_data_item *item) { if (!item) return NULL; - return *(obs_data_t*)get_item_data(item); + return *(obs_data_t**)get_item_data(item); } -static inline obs_data_t get_item_default_obj(struct obs_data_item *item) +static inline obs_data_t *get_item_default_obj(struct obs_data_item *item) { if (!item || !item->default_size) return NULL; - return *(obs_data_t*)get_default_data_ptr(item); + return *(obs_data_t**)get_default_data_ptr(item); } -static inline obs_data_t get_item_autoselect_obj(struct obs_data_item *item) +static inline obs_data_t *get_item_autoselect_obj(struct obs_data_item *item) { if (!item || !item->autoselect_size) return NULL; - return *(obs_data_t*)get_autoselect_data_ptr(item); + return *(obs_data_t**)get_autoselect_data_ptr(item); } -static inline obs_data_array_t get_item_array(struct obs_data_item *item) +static inline obs_data_array_t *get_item_array(struct obs_data_item *item) { if (!item) return NULL; - return *(obs_data_array_t*)get_item_data(item); + return *(obs_data_array_t**)get_item_data(item); } -static inline obs_data_array_t get_item_default_array( +static inline obs_data_array_t *get_item_default_array( struct obs_data_item *item) { if (!item || !item->default_size) return NULL; - return *(obs_data_array_t*)get_default_data_ptr(item); + return *(obs_data_array_t**)get_default_data_ptr(item); } -static inline obs_data_array_t get_item_autoselect_array( +static inline obs_data_array_t *get_item_autoselect_array( struct obs_data_item *item) { if (!item || !item->autoselect_size) return NULL; - return *(obs_data_array_t*)get_autoselect_data_ptr(item); + return *(obs_data_array_t**)get_autoselect_data_ptr(item); } static inline void item_data_release(struct obs_data_item *item) @@ -180,11 +180,11 @@ static inline void item_data_release(struct obs_data_item *item) return; if (item->type == OBS_DATA_OBJECT) { - obs_data_t obj = get_item_obj(item); + obs_data_t *obj = get_item_obj(item); obs_data_release(obj); } else if (item->type == OBS_DATA_ARRAY) { - obs_data_array_t array = get_item_array(item); + obs_data_array_t *array = get_item_array(item); obs_data_array_release(array); } } @@ -192,11 +192,11 @@ static inline void item_data_release(struct obs_data_item *item) static inline void item_default_data_release(struct obs_data_item *item) { if (item->type == OBS_DATA_OBJECT) { - obs_data_t obj = get_item_default_obj(item); + obs_data_t *obj = get_item_default_obj(item); obs_data_release(obj); } else if (item->type == OBS_DATA_ARRAY) { - obs_data_array_t array = get_item_default_array(item); + obs_data_array_t *array = get_item_default_array(item); obs_data_array_release(array); } } @@ -204,11 +204,11 @@ static inline void item_default_data_release(struct obs_data_item *item) static inline void item_autoselect_data_release(struct obs_data_item *item) { if (item->type == OBS_DATA_OBJECT) { - obs_data_t obj = get_item_autoselect_obj(item); + obs_data_t *obj = get_item_autoselect_obj(item); obs_data_release(obj); } else if (item->type == OBS_DATA_ARRAY) { - obs_data_array_t array = get_item_autoselect_array(item); + obs_data_array_t *array = get_item_autoselect_array(item); obs_data_array_release(array); } } @@ -216,11 +216,11 @@ static inline void item_autoselect_data_release(struct obs_data_item *item) static inline void item_data_addref(struct obs_data_item *item) { if (item->type == OBS_DATA_OBJECT) { - obs_data_t obj = get_item_obj(item); + obs_data_t *obj = get_item_obj(item); obs_data_addref(obj); } else if (item->type == OBS_DATA_ARRAY) { - obs_data_array_t array = get_item_array(item); + obs_data_array_t *array = get_item_array(item); obs_data_array_addref(array); } } @@ -231,11 +231,11 @@ static inline void item_default_data_addref(struct obs_data_item *item) return; if (item->type == OBS_DATA_OBJECT) { - obs_data_t obj = get_item_default_obj(item); + obs_data_t *obj = get_item_default_obj(item); obs_data_addref(obj); } else if (item->type == OBS_DATA_ARRAY) { - obs_data_array_t array = get_item_default_array(item); + obs_data_array_t *array = get_item_default_array(item); obs_data_array_addref(array); } } @@ -243,11 +243,11 @@ static inline void item_default_data_addref(struct obs_data_item *item) static inline void item_autoselect_data_addref(struct obs_data_item *item) { if (item->type == OBS_DATA_OBJECT) { - obs_data_t obj = get_item_autoselect_obj(item); + obs_data_t *obj = get_item_autoselect_obj(item); obs_data_addref(obj); } else if (item->type == OBS_DATA_ARRAY) { - obs_data_array_t array = get_item_autoselect_array(item); + obs_data_array_t *array = get_item_autoselect_array(item); obs_data_array_addref(array); } } @@ -357,8 +357,8 @@ static inline void obs_data_item_destroy(struct obs_data_item *item) bfree(item); } -static inline void move_data(obs_data_item_t old_item, void *old_data, - obs_data_item_t item, void *data, size_t len) +static inline void move_data(obs_data_item_t *old_item, void *old_data, + obs_data_item_t *item, void *data, size_t len) { ptrdiff_t old_offset = (uint8_t*)old_data - (uint8_t*)old_item; ptrdiff_t new_offset = (uint8_t*)data - (uint8_t*)item; @@ -460,10 +460,10 @@ static inline void obs_data_item_set_autoselect_data( /* ------------------------------------------------------------------------- */ -static void obs_data_add_json_item(obs_data_t data, const char *key, +static void obs_data_add_json_item(obs_data_t *data, const char *key, json_t *json); -static inline void obs_data_add_json_object_data(obs_data_t data, json_t *jobj) +static inline void obs_data_add_json_object_data(obs_data_t *data, json_t *jobj) { const char *item_key; json_t *jitem; @@ -473,25 +473,25 @@ static inline void obs_data_add_json_object_data(obs_data_t data, json_t *jobj) } } -static inline void obs_data_add_json_object(obs_data_t data, const char *key, +static inline void obs_data_add_json_object(obs_data_t *data, const char *key, json_t *jobj) { - obs_data_t sub_obj = obs_data_create(); + obs_data_t *sub_obj = obs_data_create(); obs_data_add_json_object_data(sub_obj, jobj); obs_data_set_obj(data, key, sub_obj); obs_data_release(sub_obj); } -static void obs_data_add_json_array(obs_data_t data, const char *key, +static void obs_data_add_json_array(obs_data_t *data, const char *key, json_t *jarray) { - obs_data_array_t array = obs_data_array_create(); + obs_data_array_t *array = obs_data_array_create(); size_t idx; json_t *jitem; json_array_foreach (jarray, idx, jitem) { - obs_data_t item; + obs_data_t *item; if (!json_is_object(jitem)) continue; @@ -506,7 +506,7 @@ static void obs_data_add_json_array(obs_data_t data, const char *key, obs_data_array_release(array); } -static void obs_data_add_json_item(obs_data_t data, const char *key, +static void obs_data_add_json_item(obs_data_t *data, const char *key, json_t *json) { if (json_is_object(json)) @@ -528,14 +528,14 @@ static void obs_data_add_json_item(obs_data_t data, const char *key, /* ------------------------------------------------------------------------- */ static inline void set_json_string(json_t *json, const char *name, - obs_data_item_t item) + obs_data_item_t *item) { const char *val = obs_data_item_get_string(item); json_object_set_new(json, name, json_string(val)); } static inline void set_json_number(json_t *json, const char *name, - obs_data_item_t item) + obs_data_item_t *item) { enum obs_data_number_type type = obs_data_item_numtype(item); @@ -549,31 +549,31 @@ static inline void set_json_number(json_t *json, const char *name, } static inline void set_json_bool(json_t *json, const char *name, - obs_data_item_t item) + obs_data_item_t *item) { bool val = obs_data_item_get_bool(item); json_object_set_new(json, name, val ? json_true() : json_false()); } -static json_t *obs_data_to_json(obs_data_t data); +static json_t *obs_data_to_json(obs_data_t *data); static inline void set_json_obj(json_t *json, const char *name, - obs_data_item_t item) + obs_data_item_t *item) { - obs_data_t obj = obs_data_item_get_obj(item); + obs_data_t *obj = obs_data_item_get_obj(item); json_object_set_new(json, name, obs_data_to_json(obj)); obs_data_release(obj); } static inline void set_json_array(json_t *json, const char *name, - obs_data_item_t item) + obs_data_item_t *item) { json_t *jarray = json_array(); - obs_data_array_t array = obs_data_item_get_array(item); + obs_data_array_t *array = obs_data_item_get_array(item); size_t count = obs_data_array_count(array); for (size_t idx = 0; idx < count; idx++) { - obs_data_t sub_item = obs_data_array_item(array, idx); + obs_data_t *sub_item = obs_data_array_item(array, idx); json_t *jitem = obs_data_to_json(sub_item); json_array_append_new(jarray, jitem); obs_data_release(sub_item); @@ -583,10 +583,10 @@ static inline void set_json_array(json_t *json, const char *name, obs_data_array_release(array); } -static json_t *obs_data_to_json(obs_data_t data) +static json_t *obs_data_to_json(obs_data_t *data) { json_t *json = json_object(); - obs_data_item_t item = NULL; + obs_data_item_t *item = NULL; for (item = obs_data_first(data); item; obs_data_item_next(&item)) { enum obs_data_type type = obs_data_item_gettype(item); @@ -612,7 +612,7 @@ static json_t *obs_data_to_json(obs_data_t data) /* ------------------------------------------------------------------------- */ -obs_data_t obs_data_create() +obs_data_t *obs_data_create() { struct obs_data *data = bzalloc(sizeof(struct obs_data)); data->ref = 1; @@ -620,9 +620,9 @@ obs_data_t obs_data_create() return data; } -obs_data_t obs_data_create_from_json(const char *json_string) +obs_data_t *obs_data_create_from_json(const char *json_string) { - obs_data_t data = obs_data_create(); + obs_data_t *data = obs_data_create(); json_error_t error; json_t *root = json_loads(json_string, JSON_REJECT_DUPLICATES, &error); @@ -639,7 +639,7 @@ obs_data_t obs_data_create_from_json(const char *json_string) return data; } -void obs_data_addref(obs_data_t data) +void obs_data_addref(obs_data_t *data) { if (data) os_atomic_inc_long(&data->ref); @@ -660,7 +660,7 @@ static inline void obs_data_destroy(struct obs_data *data) bfree(data); } -void obs_data_release(obs_data_t data) +void obs_data_release(obs_data_t *data) { if (!data) return; @@ -668,7 +668,7 @@ void obs_data_release(obs_data_t data) obs_data_destroy(data); } -const char *obs_data_get_json(obs_data_t data) +const char *obs_data_get_json(obs_data_t *data) { if (!data) return NULL; @@ -704,7 +704,7 @@ static void set_item_data(struct obs_data *data, struct obs_data_item **item, enum obs_data_type type, bool default_data, bool autoselect_data) { - obs_data_item_t new_item = NULL; + obs_data_item_t *new_item = NULL; if ((!item || (item && !*item)) && data) { new_item = obs_data_item_create(name, ptr, size, type, @@ -723,11 +723,11 @@ static void set_item_data(struct obs_data *data, struct obs_data_item **item, } } -static inline void set_item(struct obs_data *data, obs_data_item_t *item, +static inline void set_item(struct obs_data *data, obs_data_item_t **item, const char *name, const void *ptr, size_t size, enum obs_data_type type) { - obs_data_item_t actual_item = NULL; + obs_data_item_t *actual_item = NULL; if (!data && !item) return; @@ -740,11 +740,11 @@ static inline void set_item(struct obs_data *data, obs_data_item_t *item, set_item_data(data, item, name, ptr, size, type, false, false); } -static inline void set_item_def(struct obs_data *data, obs_data_item_t *item, +static inline void set_item_def(struct obs_data *data, obs_data_item_t **item, const char *name, const void *ptr, size_t size, enum obs_data_type type) { - obs_data_item_t actual_item = NULL; + obs_data_item_t *actual_item = NULL; if (!data && !item) return; @@ -760,11 +760,11 @@ static inline void set_item_def(struct obs_data *data, obs_data_item_t *item, set_item_data(data, item, name, ptr, size, type, true, false); } -static inline void set_item_auto(struct obs_data *data, obs_data_item_t *item, +static inline void set_item_auto(struct obs_data *data, obs_data_item_t **item, const char *name, const void *ptr, size_t size, enum obs_data_type type) { - obs_data_item_t actual_item = NULL; + obs_data_item_t *actual_item = NULL; if (!data && !item) return; @@ -785,7 +785,7 @@ static inline void copy_item(struct obs_data *data, struct obs_data_item *item) set_item(data, NULL, name, ptr, item->data_len, item->type); } -void obs_data_apply(obs_data_t target, obs_data_t apply_data) +void obs_data_apply(obs_data_t *target, obs_data_t *apply_data) { struct obs_data_item *item; @@ -800,7 +800,7 @@ void obs_data_apply(obs_data_t target, obs_data_t apply_data) } } -void obs_data_erase(obs_data_t data, const char *name) +void obs_data_erase(obs_data_t *data, const char *name) { struct obs_data_item *item = get_item(data, name); @@ -810,10 +810,10 @@ void obs_data_erase(obs_data_t data, const char *name) } } -typedef void (*set_item_t)(obs_data_t, obs_data_item_t*, const char*, +typedef void (*set_item_t)(obs_data_t*, obs_data_item_t**, const char*, const void*, size_t, enum obs_data_type); -static inline void obs_set_string(obs_data_t data, obs_data_item_t *item, +static inline void obs_set_string(obs_data_t *data, obs_data_item_t **item, const char *name, const char *val, set_item_t set_item_) { @@ -821,7 +821,7 @@ static inline void obs_set_string(obs_data_t data, obs_data_item_t *item, set_item_(data, item, name, val, strlen(val)+1, OBS_DATA_STRING); } -static inline void obs_set_int(obs_data_t data, obs_data_item_t *item, +static inline void obs_set_int(obs_data_t *data, obs_data_item_t **item, const char *name, long long val, set_item_t set_item_) { @@ -832,7 +832,7 @@ static inline void obs_set_int(obs_data_t data, obs_data_item_t *item, OBS_DATA_NUMBER); } -static inline void obs_set_double(obs_data_t data, obs_data_item_t *item, +static inline void obs_set_double(obs_data_t *data, obs_data_item_t **item, const char *name, double val, set_item_t set_item_) { @@ -843,211 +843,211 @@ static inline void obs_set_double(obs_data_t data, obs_data_item_t *item, OBS_DATA_NUMBER); } -static inline void obs_set_bool(obs_data_t data, obs_data_item_t *item, +static inline void obs_set_bool(obs_data_t *data, obs_data_item_t **item, const char *name, bool val, set_item_t set_item_) { set_item_(data, item, name, &val, sizeof(bool), OBS_DATA_BOOLEAN); } -static inline void obs_set_obj(obs_data_t data, obs_data_item_t *item, +static inline void obs_set_obj(obs_data_t *data, obs_data_item_t **item, const char *name, - obs_data_t obj, set_item_t set_item_) + obs_data_t *obj, set_item_t set_item_) { - set_item_(data, item, name, &obj, sizeof(obs_data_t), OBS_DATA_OBJECT); + set_item_(data, item, name, &obj, sizeof(obs_data_t*), OBS_DATA_OBJECT); } -static inline void obs_set_array(obs_data_t data, obs_data_item_t *item, +static inline void obs_set_array(obs_data_t *data, obs_data_item_t **item, const char *name, - obs_data_array_t array, set_item_t set_item_) + obs_data_array_t *array, set_item_t set_item_) { - set_item_(data, item, name, &array, sizeof(obs_data_t), OBS_DATA_ARRAY); + set_item_(data, item, name, &array, sizeof(obs_data_t*), OBS_DATA_ARRAY); } -void obs_data_set_string(obs_data_t data, const char *name, const char *val) +void obs_data_set_string(obs_data_t *data, const char *name, const char *val) { obs_set_string(data, NULL, name, val, set_item); } -void obs_data_set_int(obs_data_t data, const char *name, long long val) +void obs_data_set_int(obs_data_t *data, const char *name, long long val) { obs_set_int(data, NULL, name, val, set_item); } -void obs_data_set_double(obs_data_t data, const char *name, double val) +void obs_data_set_double(obs_data_t *data, const char *name, double val) { obs_set_double(data, NULL, name, val, set_item); } -void obs_data_set_bool(obs_data_t data, const char *name, bool val) +void obs_data_set_bool(obs_data_t *data, const char *name, bool val) { obs_set_bool(data, NULL, name, val, set_item); } -void obs_data_set_obj(obs_data_t data, const char *name, obs_data_t obj) +void obs_data_set_obj(obs_data_t *data, const char *name, obs_data_t *obj) { obs_set_obj(data, NULL, name, obj, set_item); } -void obs_data_set_array(obs_data_t data, const char *name, - obs_data_array_t array) +void obs_data_set_array(obs_data_t *data, const char *name, + obs_data_array_t *array) { obs_set_array(data, NULL, name, array, set_item); } -void obs_data_set_default_string(obs_data_t data, const char *name, +void obs_data_set_default_string(obs_data_t *data, const char *name, const char *val) { obs_set_string(data, NULL, name, val, set_item_def); } -void obs_data_set_default_int(obs_data_t data, const char *name, long long val) +void obs_data_set_default_int(obs_data_t *data, const char *name, long long val) { obs_set_int(data, NULL, name, val, set_item_def); } -void obs_data_set_default_double(obs_data_t data, const char *name, double val) +void obs_data_set_default_double(obs_data_t *data, const char *name, double val) { obs_set_double(data, NULL, name, val, set_item_def); } -void obs_data_set_default_bool(obs_data_t data, const char *name, bool val) +void obs_data_set_default_bool(obs_data_t *data, const char *name, bool val) { obs_set_bool(data, NULL, name, val, set_item_def); } -void obs_data_set_default_obj(obs_data_t data, const char *name, obs_data_t obj) +void obs_data_set_default_obj(obs_data_t *data, const char *name, obs_data_t *obj) { obs_set_obj(data, NULL, name, obj, set_item_def); } -void obs_data_set_autoselect_string(obs_data_t data, const char *name, +void obs_data_set_autoselect_string(obs_data_t *data, const char *name, const char *val) { obs_set_string(data, NULL, name, val, set_item_auto); } -void obs_data_set_autoselect_int(obs_data_t data, const char *name, +void obs_data_set_autoselect_int(obs_data_t *data, const char *name, long long val) { obs_set_int(data, NULL, name, val, set_item_auto); } -void obs_data_set_autoselect_double(obs_data_t data, const char *name, +void obs_data_set_autoselect_double(obs_data_t *data, const char *name, double val) { obs_set_double(data, NULL, name, val, set_item_auto); } -void obs_data_set_autoselect_bool(obs_data_t data, const char *name, bool val) +void obs_data_set_autoselect_bool(obs_data_t *data, const char *name, bool val) { obs_set_bool(data, NULL, name, val, set_item_auto); } -void obs_data_set_autoselect_obj(obs_data_t data, const char *name, - obs_data_t obj) +void obs_data_set_autoselect_obj(obs_data_t *data, const char *name, + obs_data_t *obj) { obs_set_obj(data, NULL, name, obj, set_item_auto); } -void obs_data_set_autoselect_array(obs_data_t data, const char *name, - obs_data_array_t arr) +void obs_data_set_autoselect_array(obs_data_t *data, const char *name, + obs_data_array_t *arr) { obs_set_array(data, NULL, name, arr, set_item_auto); } -const char *obs_data_get_string(obs_data_t data, const char *name) +const char *obs_data_get_string(obs_data_t *data, const char *name) { return obs_data_item_get_string(get_item(data, name)); } -long long obs_data_get_int(obs_data_t data, const char *name) +long long obs_data_get_int(obs_data_t *data, const char *name) { return obs_data_item_get_int(get_item(data, name)); } -double obs_data_get_double(obs_data_t data, const char *name) +double obs_data_get_double(obs_data_t *data, const char *name) { return obs_data_item_get_double(get_item(data, name)); } -bool obs_data_get_bool(obs_data_t data, const char *name) +bool obs_data_get_bool(obs_data_t *data, const char *name) { return obs_data_item_get_bool(get_item(data, name)); } -obs_data_t obs_data_get_obj(obs_data_t data, const char *name) +obs_data_t *obs_data_get_obj(obs_data_t *data, const char *name) { return obs_data_item_get_obj(get_item(data, name)); } -obs_data_array_t obs_data_get_array(obs_data_t data, const char *name) +obs_data_array_t *obs_data_get_array(obs_data_t *data, const char *name) { return obs_data_item_get_array(get_item(data, name)); } -const char *obs_data_get_default_string(obs_data_t data, const char *name) +const char *obs_data_get_default_string(obs_data_t *data, const char *name) { return obs_data_item_get_default_string(get_item(data, name)); } -long long obs_data_get_default_int(obs_data_t data, const char *name) +long long obs_data_get_default_int(obs_data_t *data, const char *name) { return obs_data_item_get_default_int(get_item(data, name)); } -double obs_data_get_default_double(obs_data_t data, const char *name) +double obs_data_get_default_double(obs_data_t *data, const char *name) { return obs_data_item_get_default_double(get_item(data, name)); } -bool obs_data_get_default_bool(obs_data_t data, const char *name) +bool obs_data_get_default_bool(obs_data_t *data, const char *name) { return obs_data_item_get_default_bool(get_item(data, name)); } -obs_data_t obs_data_get_default_obj(obs_data_t data, const char *name) +obs_data_t *obs_data_get_default_obj(obs_data_t *data, const char *name) { return obs_data_item_get_default_obj(get_item(data, name)); } -obs_data_array_t obs_data_get_default_array(obs_data_t data, const char *name) +obs_data_array_t *obs_data_get_default_array(obs_data_t *data, const char *name) { return obs_data_item_get_default_array(get_item(data, name)); } -const char *obs_data_get_autoselect_string(obs_data_t data, const char *name) +const char *obs_data_get_autoselect_string(obs_data_t *data, const char *name) { return obs_data_item_get_autoselect_string(get_item(data, name)); } -long long obs_data_get_autoselect_int(obs_data_t data, const char *name) +long long obs_data_get_autoselect_int(obs_data_t *data, const char *name) { return obs_data_item_get_autoselect_int(get_item(data, name)); } -double obs_data_get_autoselect_double(obs_data_t data, const char *name) +double obs_data_get_autoselect_double(obs_data_t *data, const char *name) { return obs_data_item_get_autoselect_double(get_item(data, name)); } -bool obs_data_get_autoselect_bool(obs_data_t data, const char *name) +bool obs_data_get_autoselect_bool(obs_data_t *data, const char *name) { return obs_data_item_get_autoselect_bool(get_item(data, name)); } -obs_data_t obs_data_get_autoselect_obj(obs_data_t data, const char *name) +obs_data_t *obs_data_get_autoselect_obj(obs_data_t *data, const char *name) { return obs_data_item_get_autoselect_obj(get_item(data, name)); } -obs_data_array_t obs_data_get_autoselect_array(obs_data_t data, +obs_data_array_t *obs_data_get_autoselect_array(obs_data_t *data, const char *name) { return obs_data_item_get_autoselect_array(get_item(data, name)); } -obs_data_array_t obs_data_array_create() +obs_data_array_t *obs_data_array_create() { struct obs_data_array *array = bzalloc(sizeof(struct obs_data_array)); array->ref = 1; @@ -1055,13 +1055,13 @@ obs_data_array_t obs_data_array_create() return array; } -void obs_data_array_addref(obs_data_array_t array) +void obs_data_array_addref(obs_data_array_t *array) { if (array) os_atomic_inc_long(&array->ref); } -static inline void obs_data_array_destroy(obs_data_array_t array) +static inline void obs_data_array_destroy(obs_data_array_t *array) { if (array) { for (size_t i = 0; i < array->objects.num; i++) @@ -1071,7 +1071,7 @@ static inline void obs_data_array_destroy(obs_data_array_t array) } } -void obs_data_array_release(obs_data_array_t array) +void obs_data_array_release(obs_data_array_t *array) { if (!array) return; @@ -1080,14 +1080,14 @@ void obs_data_array_release(obs_data_array_t array) obs_data_array_destroy(array); } -size_t obs_data_array_count(obs_data_array_t array) +size_t obs_data_array_count(obs_data_array_t *array) { return array ? array->objects.num : 0; } -obs_data_t obs_data_array_item(obs_data_array_t array, size_t idx) +obs_data_t *obs_data_array_item(obs_data_array_t *array, size_t idx) { - obs_data_t data; + obs_data_t *data; if (!array) return NULL; @@ -1099,7 +1099,7 @@ obs_data_t obs_data_array_item(obs_data_array_t array, size_t idx) return data; } -size_t obs_data_array_push_back(obs_data_array_t array, obs_data_t obj) +size_t obs_data_array_push_back(obs_data_array_t *array, obs_data_t *obj) { if (!array || !obj) return 0; @@ -1108,7 +1108,7 @@ size_t obs_data_array_push_back(obs_data_array_t array, obs_data_t obj) return da_push_back(array->objects, &obj); } -void obs_data_array_insert(obs_data_array_t array, size_t idx, obs_data_t obj) +void obs_data_array_insert(obs_data_array_t *array, size_t idx, obs_data_t *obj) { if (!array || !obj) return; @@ -1117,7 +1117,7 @@ void obs_data_array_insert(obs_data_array_t array, size_t idx, obs_data_t obj) da_insert(array->objects, idx, &obj); } -void obs_data_array_erase(obs_data_array_t array, size_t idx) +void obs_data_array_erase(obs_data_array_t *array, size_t idx) { if (array) { obs_data_release(array->objects.array[idx]); @@ -1128,32 +1128,32 @@ void obs_data_array_erase(obs_data_array_t array, size_t idx) /* ------------------------------------------------------------------------- */ /* Item status inspection */ -bool obs_data_has_user_value(obs_data_t data, const char *name) +bool obs_data_has_user_value(obs_data_t *data, const char *name) { return data && obs_data_item_has_user_value(get_item(data, name)); } -bool obs_data_has_default_value(obs_data_t data, const char *name) +bool obs_data_has_default_value(obs_data_t *data, const char *name) { return data && obs_data_item_has_default_value(get_item(data, name)); } -bool obs_data_has_autoselect_value(obs_data_t data, const char *name) +bool obs_data_has_autoselect_value(obs_data_t *data, const char *name) { return data && obs_data_item_has_autoselect_value(get_item(data, name)); } -bool obs_data_item_has_user_value(obs_data_item_t item) +bool obs_data_item_has_user_value(obs_data_item_t *item) { return item && item->data_size; } -bool obs_data_item_has_default_value(obs_data_item_t item) +bool obs_data_item_has_default_value(obs_data_item_t *item) { return item && item->default_size; } -bool obs_data_item_has_autoselect_value(obs_data_item_t item) +bool obs_data_item_has_autoselect_value(obs_data_item_t *item) { return item && item->autoselect_size; } @@ -1161,22 +1161,22 @@ bool obs_data_item_has_autoselect_value(obs_data_item_t item) /* ------------------------------------------------------------------------- */ /* Clearing data values */ -void obs_data_unset_user_value(obs_data_t data, const char *name) +void obs_data_unset_user_value(obs_data_t *data, const char *name) { obs_data_item_unset_user_value(get_item(data, name)); } -void obs_data_unset_default_value(obs_data_t data, const char *name) +void obs_data_unset_default_value(obs_data_t *data, const char *name) { obs_data_item_unset_default_value(get_item(data, name)); } -void obs_data_unset_autoselect_value(obs_data_t data, const char *name) +void obs_data_unset_autoselect_value(obs_data_t *data, const char *name) { obs_data_item_unset_autoselect_value(get_item(data, name)); } -void obs_data_item_unset_user_value(obs_data_item_t item) +void obs_data_item_unset_user_value(obs_data_item_t *item) { if (!item || !item->data_size) return; @@ -1193,7 +1193,7 @@ void obs_data_item_unset_user_value(obs_data_item_t item) item->default_len + item->autoselect_size); } -void obs_data_item_unset_default_value(obs_data_item_t item) +void obs_data_item_unset_default_value(obs_data_item_t *item) { if (!item || !item->default_size) return; @@ -1210,7 +1210,7 @@ void obs_data_item_unset_default_value(obs_data_item_t item) item->autoselect_size); } -void obs_data_item_unset_autoselect_value(obs_data_item_t item) +void obs_data_item_unset_autoselect_value(obs_data_item_t *item) { if (!item || !item->autoselect_size) return; @@ -1222,7 +1222,7 @@ void obs_data_item_unset_autoselect_value(obs_data_item_t item) /* ------------------------------------------------------------------------- */ /* Item iteration */ -obs_data_item_t obs_data_first(obs_data_t data) +obs_data_item_t *obs_data_first(obs_data_t *data) { if (!data) return NULL; @@ -1232,7 +1232,7 @@ obs_data_item_t obs_data_first(obs_data_t data) return data->first_item; } -obs_data_item_t obs_data_item_byname(obs_data_t data, const char *name) +obs_data_item_t *obs_data_item_byname(obs_data_t *data, const char *name) { if (!data) return NULL; @@ -1243,10 +1243,10 @@ obs_data_item_t obs_data_item_byname(obs_data_t data, const char *name) return item; } -bool obs_data_item_next(obs_data_item_t *item) +bool obs_data_item_next(obs_data_item_t **item) { if (item && *item) { - obs_data_item_t next = (*item)->next; + obs_data_item_t *next = (*item)->next; obs_data_item_release(item); *item = next; @@ -1260,7 +1260,7 @@ bool obs_data_item_next(obs_data_item_t *item) return false; } -void obs_data_item_release(obs_data_item_t *item) +void obs_data_item_release(obs_data_item_t **item) { if (item && *item) { long ref = os_atomic_dec_long(&(*item)->ref); @@ -1271,7 +1271,7 @@ void obs_data_item_release(obs_data_item_t *item) } } -void obs_data_item_remove(obs_data_item_t *item) +void obs_data_item_remove(obs_data_item_t **item) { if (item && *item) { obs_data_item_detach(*item); @@ -1279,12 +1279,12 @@ void obs_data_item_remove(obs_data_item_t *item) } } -enum obs_data_type obs_data_item_gettype(obs_data_item_t item) +enum obs_data_type obs_data_item_gettype(obs_data_item_t *item) { return item ? item->type : OBS_DATA_NULL; } -enum obs_data_number_type obs_data_item_numtype(obs_data_item_t item) +enum obs_data_number_type obs_data_item_numtype(obs_data_item_t *item) { struct obs_data_number *num; @@ -1295,94 +1295,94 @@ enum obs_data_number_type obs_data_item_numtype(obs_data_item_t item) return num->type; } -void obs_data_item_set_string(obs_data_item_t *item, const char *val) +void obs_data_item_set_string(obs_data_item_t **item, const char *val) { obs_set_string(NULL, item, NULL, val, set_item); } -void obs_data_item_set_int(obs_data_item_t *item, long long val) +void obs_data_item_set_int(obs_data_item_t **item, long long val) { obs_set_int(NULL, item, NULL, val, set_item); } -void obs_data_item_set_double(obs_data_item_t *item, double val) +void obs_data_item_set_double(obs_data_item_t **item, double val) { obs_set_double(NULL, item, NULL, val, set_item); } -void obs_data_item_set_bool(obs_data_item_t *item, bool val) +void obs_data_item_set_bool(obs_data_item_t **item, bool val) { obs_set_bool(NULL, item, NULL, val, set_item); } -void obs_data_item_set_obj(obs_data_item_t *item, obs_data_t val) +void obs_data_item_set_obj(obs_data_item_t **item, obs_data_t *val) { obs_set_obj(NULL, item, NULL, val, set_item); } -void obs_data_item_set_array(obs_data_item_t *item, obs_data_array_t val) +void obs_data_item_set_array(obs_data_item_t **item, obs_data_array_t *val) { obs_set_array(NULL, item, NULL, val, set_item); } -void obs_data_item_set_default_string(obs_data_item_t *item, const char *val) +void obs_data_item_set_default_string(obs_data_item_t **item, const char *val) { obs_set_string(NULL, item, NULL, val, set_item_def); } -void obs_data_item_set_default_int(obs_data_item_t *item, long long val) +void obs_data_item_set_default_int(obs_data_item_t **item, long long val) { obs_set_int(NULL, item, NULL, val, set_item_def); } -void obs_data_item_set_default_double(obs_data_item_t *item, double val) +void obs_data_item_set_default_double(obs_data_item_t **item, double val) { obs_set_double(NULL, item, NULL, val, set_item_def); } -void obs_data_item_set_default_bool(obs_data_item_t *item, bool val) +void obs_data_item_set_default_bool(obs_data_item_t **item, bool val) { obs_set_bool(NULL, item, NULL, val, set_item_def); } -void obs_data_item_set_default_obj(obs_data_item_t *item, obs_data_t val) +void obs_data_item_set_default_obj(obs_data_item_t **item, obs_data_t *val) { obs_set_obj(NULL, item, NULL, val, set_item_def); } -void obs_data_item_set_default_array(obs_data_item_t *item, - obs_data_array_t val) +void obs_data_item_set_default_array(obs_data_item_t **item, + obs_data_array_t *val) { obs_set_array(NULL, item, NULL, val, set_item_def); } -void obs_data_item_set_autoselect_string(obs_data_item_t *item, const char *val) +void obs_data_item_set_autoselect_string(obs_data_item_t **item, const char *val) { obs_set_string(NULL, item, NULL, val, set_item_auto); } -void obs_data_item_set_autoselect_int(obs_data_item_t *item, long long val) +void obs_data_item_set_autoselect_int(obs_data_item_t **item, long long val) { obs_set_int(NULL, item, NULL, val, set_item_auto); } -void obs_data_item_set_autoselect_double(obs_data_item_t *item, double val) +void obs_data_item_set_autoselect_double(obs_data_item_t **item, double val) { obs_set_double(NULL, item, NULL, val, set_item_auto); } -void obs_data_item_set_autoselect_bool(obs_data_item_t *item, bool val) +void obs_data_item_set_autoselect_bool(obs_data_item_t **item, bool val) { obs_set_bool(NULL, item, NULL, val, set_item_auto); } -void obs_data_item_set_autoselect_obj(obs_data_item_t *item, obs_data_t val) +void obs_data_item_set_autoselect_obj(obs_data_item_t **item, obs_data_t *val) { obs_set_obj(NULL, item, NULL, val, set_item_auto); } -void obs_data_item_set_autoselect_array(obs_data_item_t *item, - obs_data_array_t val) +void obs_data_item_set_autoselect_array(obs_data_item_t **item, + obs_data_array_t *val) { obs_set_array(NULL, item, NULL, val, set_item_auto); } @@ -1393,9 +1393,9 @@ static inline bool item_valid(struct obs_data_item *item, return item && item->type == type; } -typedef void *(*get_data_t)(obs_data_item_t); +typedef void *(*get_data_t)(obs_data_item_t*); -static inline const char *data_item_get_string(obs_data_item_t item, +static inline const char *data_item_get_string(obs_data_item_t *item, get_data_t get_data) { return item_valid(item, OBS_DATA_STRING) && get_data(item) ? @@ -1414,7 +1414,7 @@ static inline long long item_int(struct obs_data_item *item, return 0; } -static inline long long data_item_get_int(obs_data_item_t item, +static inline long long data_item_get_int(obs_data_item_t *item, get_data_t get_data) { return item_int(item_valid(item, OBS_DATA_NUMBER) ? item : NULL, @@ -1433,25 +1433,25 @@ static inline double item_double(struct obs_data_item *item, return 0.0; } -static inline double data_item_get_double(obs_data_item_t item, +static inline double data_item_get_double(obs_data_item_t *item, get_data_t get_data) { return item_double(item_valid(item, OBS_DATA_NUMBER) ? item : NULL, get_data); } -static inline bool data_item_get_bool(obs_data_item_t item, get_data_t get_data) +static inline bool data_item_get_bool(obs_data_item_t *item, get_data_t get_data) { return item_valid(item, OBS_DATA_BOOLEAN) && get_data(item) ? *(bool*)get_data(item) : false; } -typedef obs_data_t (*get_obj_t)(obs_data_item_t); +typedef obs_data_t *(*get_obj_t)(obs_data_item_t*); -static inline obs_data_t data_item_get_obj(obs_data_item_t item, +static inline obs_data_t *data_item_get_obj(obs_data_item_t *item, get_obj_t get_obj) { - obs_data_t obj = item_valid(item, OBS_DATA_OBJECT) ? + obs_data_t *obj = item_valid(item, OBS_DATA_OBJECT) ? get_obj(item) : NULL; if (obj) @@ -1459,12 +1459,12 @@ static inline obs_data_t data_item_get_obj(obs_data_item_t item, return obj; } -typedef obs_data_array_t (*get_array_t)(obs_data_item_t); +typedef obs_data_array_t *(*get_array_t)(obs_data_item_t*); -static inline obs_data_array_t data_item_get_array(obs_data_item_t item, +static inline obs_data_array_t *data_item_get_array(obs_data_item_t *item, get_array_t get_array) { - obs_data_array_t array = item_valid(item, OBS_DATA_ARRAY) ? + obs_data_array_t *array = item_valid(item, OBS_DATA_ARRAY) ? get_array(item) : NULL; if (array) @@ -1472,92 +1472,92 @@ static inline obs_data_array_t data_item_get_array(obs_data_item_t item, return array; } -const char *obs_data_item_get_string(obs_data_item_t item) +const char *obs_data_item_get_string(obs_data_item_t *item) { return data_item_get_string(item, get_item_data); } -long long obs_data_item_get_int(obs_data_item_t item) +long long obs_data_item_get_int(obs_data_item_t *item) { return data_item_get_int(item, get_item_data); } -double obs_data_item_get_double(obs_data_item_t item) +double obs_data_item_get_double(obs_data_item_t *item) { return data_item_get_double(item, get_item_data); } -bool obs_data_item_get_bool(obs_data_item_t item) +bool obs_data_item_get_bool(obs_data_item_t *item) { return data_item_get_bool(item, get_item_data); } -obs_data_t obs_data_item_get_obj(obs_data_item_t item) +obs_data_t *obs_data_item_get_obj(obs_data_item_t *item) { return data_item_get_obj(item, get_item_obj); } -obs_data_array_t obs_data_item_get_array(obs_data_item_t item) +obs_data_array_t *obs_data_item_get_array(obs_data_item_t *item) { return data_item_get_array(item, get_item_array); } -const char *obs_data_item_get_default_string(obs_data_item_t item) +const char *obs_data_item_get_default_string(obs_data_item_t *item) { return data_item_get_string(item, get_item_default_data); } -long long obs_data_item_get_default_int(obs_data_item_t item) +long long obs_data_item_get_default_int(obs_data_item_t *item) { return data_item_get_int(item, get_item_default_data); } -double obs_data_item_get_default_double(obs_data_item_t item) +double obs_data_item_get_default_double(obs_data_item_t *item) { return data_item_get_double(item, get_item_default_data); } -bool obs_data_item_get_default_bool(obs_data_item_t item) +bool obs_data_item_get_default_bool(obs_data_item_t *item) { return data_item_get_bool(item, get_item_default_data); } -obs_data_t obs_data_item_get_default_obj(obs_data_item_t item) +obs_data_t *obs_data_item_get_default_obj(obs_data_item_t *item) { return data_item_get_obj(item, get_item_obj); } -obs_data_array_t obs_data_item_get_default_array(obs_data_item_t item) +obs_data_array_t *obs_data_item_get_default_array(obs_data_item_t *item) { return data_item_get_array(item, get_item_array); } -const char *obs_data_item_get_autoselect_string(obs_data_item_t item) +const char *obs_data_item_get_autoselect_string(obs_data_item_t *item) { return data_item_get_string(item, get_item_autoselect_data); } -long long obs_data_item_get_autoselect_int(obs_data_item_t item) +long long obs_data_item_get_autoselect_int(obs_data_item_t *item) { return data_item_get_int(item, get_item_autoselect_data); } -double obs_data_item_get_autoselect_double(obs_data_item_t item) +double obs_data_item_get_autoselect_double(obs_data_item_t *item) { return data_item_get_double(item, get_item_autoselect_data); } -bool obs_data_item_get_autoselect_bool(obs_data_item_t item) +bool obs_data_item_get_autoselect_bool(obs_data_item_t *item) { return data_item_get_bool(item, get_item_autoselect_data); } -obs_data_t obs_data_item_get_autoselect_obj(obs_data_item_t item) +obs_data_t *obs_data_item_get_autoselect_obj(obs_data_item_t *item) { return data_item_get_obj(item, get_item_autoselect_obj); } -obs_data_array_t obs_data_item_get_autoselect_array(obs_data_item_t item) +obs_data_array_t *obs_data_item_get_autoselect_array(obs_data_item_t *item) { return data_item_get_array(item, get_item_autoselect_array); } @@ -1565,22 +1565,22 @@ obs_data_array_t obs_data_item_get_autoselect_array(obs_data_item_t item) /* ------------------------------------------------------------------------- */ /* Helper functions for certain structures */ -typedef void (*set_obj_t)(obs_data_t, const char*, obs_data_t); +typedef void (*set_obj_t)(obs_data_t*, const char*, obs_data_t*); -static inline void set_vec2(obs_data_t data, const char *name, +static inline void set_vec2(obs_data_t *data, const char *name, const struct vec2 *val, set_obj_t set_obj) { - obs_data_t obj = obs_data_create(); + obs_data_t *obj = obs_data_create(); obs_data_set_double(obj, "x", val->x); obs_data_set_double(obj, "y", val->y); set_obj(data, name, obj); obs_data_release(obj); } -static inline void set_vec3(obs_data_t data, const char *name, +static inline void set_vec3(obs_data_t *data, const char *name, const struct vec3 *val, set_obj_t set_obj) { - obs_data_t obj = obs_data_create(); + obs_data_t *obj = obs_data_create(); obs_data_set_double(obj, "x", val->x); obs_data_set_double(obj, "y", val->y); obs_data_set_double(obj, "z", val->z); @@ -1588,10 +1588,10 @@ static inline void set_vec3(obs_data_t data, const char *name, obs_data_release(obj); } -static inline void set_vec4(obs_data_t data, const char *name, +static inline void set_vec4(obs_data_t *data, const char *name, const struct vec4 *val, set_obj_t set_obj) { - obs_data_t obj = obs_data_create(); + obs_data_t *obj = obs_data_create(); obs_data_set_double(obj, "x", val->x); obs_data_set_double(obj, "y", val->y); obs_data_set_double(obj, "z", val->z); @@ -1600,10 +1600,10 @@ static inline void set_vec4(obs_data_t data, const char *name, obs_data_release(obj); } -static inline void set_quat(obs_data_t data, const char *name, +static inline void set_quat(obs_data_t *data, const char *name, const struct quat *val, set_obj_t set_obj) { - obs_data_t obj = obs_data_create(); + obs_data_t *obj = obs_data_create(); obs_data_set_double(obj, "x", val->x); obs_data_set_double(obj, "y", val->y); obs_data_set_double(obj, "z", val->z); @@ -1612,79 +1612,79 @@ static inline void set_quat(obs_data_t data, const char *name, obs_data_release(obj); } -void obs_data_set_vec2(obs_data_t data, const char *name, +void obs_data_set_vec2(obs_data_t *data, const char *name, const struct vec2 *val) { set_vec2(data, name, val, obs_data_set_obj); } -void obs_data_set_vec3(obs_data_t data, const char *name, +void obs_data_set_vec3(obs_data_t *data, const char *name, const struct vec3 *val) { set_vec3(data, name, val, obs_data_set_obj); } -void obs_data_set_vec4(obs_data_t data, const char *name, +void obs_data_set_vec4(obs_data_t *data, const char *name, const struct vec4 *val) { set_vec4(data, name, val, obs_data_set_obj); } -void obs_data_set_quat(obs_data_t data, const char *name, +void obs_data_set_quat(obs_data_t *data, const char *name, const struct quat *val) { set_quat(data, name, val, obs_data_set_obj); } -void obs_data_set_default_vec2(obs_data_t data, const char *name, +void obs_data_set_default_vec2(obs_data_t *data, const char *name, const struct vec2 *val) { set_vec2(data, name, val, obs_data_set_default_obj); } -void obs_data_set_default_vec3(obs_data_t data, const char *name, +void obs_data_set_default_vec3(obs_data_t *data, const char *name, const struct vec3 *val) { set_vec3(data, name, val, obs_data_set_default_obj); } -void obs_data_set_default_vec4(obs_data_t data, const char *name, +void obs_data_set_default_vec4(obs_data_t *data, const char *name, const struct vec4 *val) { set_vec4(data, name, val, obs_data_set_default_obj); } -void obs_data_set_default_quat(obs_data_t data, const char *name, +void obs_data_set_default_quat(obs_data_t *data, const char *name, const struct quat *val) { set_quat(data, name, val, obs_data_set_default_obj); } -void obs_data_set_autoselect_vec2(obs_data_t data, const char *name, +void obs_data_set_autoselect_vec2(obs_data_t *data, const char *name, const struct vec2 *val) { set_vec2(data, name, val, obs_data_set_autoselect_obj); } -void obs_data_set_autoselect_vec3(obs_data_t data, const char *name, +void obs_data_set_autoselect_vec3(obs_data_t *data, const char *name, const struct vec3 *val) { set_vec3(data, name, val, obs_data_set_autoselect_obj); } -void obs_data_set_autoselect_vec4(obs_data_t data, const char *name, +void obs_data_set_autoselect_vec4(obs_data_t *data, const char *name, const struct vec4 *val) { set_vec4(data, name, val, obs_data_set_autoselect_obj); } -void obs_data_set_autoselect_quat(obs_data_t data, const char *name, +void obs_data_set_autoselect_quat(obs_data_t *data, const char *name, const struct quat *val) { set_quat(data, name, val, obs_data_set_autoselect_obj); } -static inline void get_vec2(obs_data_t obj, struct vec2 *val) +static inline void get_vec2(obs_data_t *obj, struct vec2 *val) { if (!obj) return; @@ -1693,7 +1693,7 @@ static inline void get_vec2(obs_data_t obj, struct vec2 *val) obs_data_release(obj); } -static inline void get_vec3(obs_data_t obj, struct vec3 *val) +static inline void get_vec3(obs_data_t *obj, struct vec3 *val) { if (!obj) return; @@ -1703,7 +1703,7 @@ static inline void get_vec3(obs_data_t obj, struct vec3 *val) obs_data_release(obj); } -static inline void get_vec4(obs_data_t obj, struct vec4 *val) +static inline void get_vec4(obs_data_t *obj, struct vec4 *val) { if (!obj) return; @@ -1714,7 +1714,7 @@ static inline void get_vec4(obs_data_t obj, struct vec4 *val) obs_data_release(obj); } -static inline void get_quat(obs_data_t obj, struct quat *val) +static inline void get_quat(obs_data_t *obj, struct quat *val) { if (!obj) return; @@ -1725,69 +1725,69 @@ static inline void get_quat(obs_data_t obj, struct quat *val) obs_data_release(obj); } -void obs_data_get_vec2(obs_data_t data, const char *name, struct vec2 *val) +void obs_data_get_vec2(obs_data_t *data, const char *name, struct vec2 *val) { get_vec2(obs_data_get_obj(data, name), val); } -void obs_data_get_vec3(obs_data_t data, const char *name, struct vec3 *val) +void obs_data_get_vec3(obs_data_t *data, const char *name, struct vec3 *val) { get_vec3(obs_data_get_obj(data, name), val); } -void obs_data_get_vec4(obs_data_t data, const char *name, struct vec4 *val) +void obs_data_get_vec4(obs_data_t *data, const char *name, struct vec4 *val) { get_vec4(obs_data_get_obj(data, name), val); } -void obs_data_get_quat(obs_data_t data, const char *name, struct quat *val) +void obs_data_get_quat(obs_data_t *data, const char *name, struct quat *val) { get_quat(obs_data_get_obj(data, name), val); } -void obs_data_get_default_vec2(obs_data_t data, const char *name, +void obs_data_get_default_vec2(obs_data_t *data, const char *name, struct vec2 *val) { get_vec2(obs_data_get_default_obj(data, name), val); } -void obs_data_get_default_vec3(obs_data_t data, const char *name, +void obs_data_get_default_vec3(obs_data_t *data, const char *name, struct vec3 *val) { get_vec3(obs_data_get_default_obj(data, name), val); } -void obs_data_get_default_vec4(obs_data_t data, const char *name, +void obs_data_get_default_vec4(obs_data_t *data, const char *name, struct vec4 *val) { get_vec4(obs_data_get_default_obj(data, name), val); } -void obs_data_get_default_quat(obs_data_t data, const char *name, +void obs_data_get_default_quat(obs_data_t *data, const char *name, struct quat *val) { get_quat(obs_data_get_default_obj(data, name), val); } -void obs_data_get_autoselect_vec2(obs_data_t data, const char *name, +void obs_data_get_autoselect_vec2(obs_data_t *data, const char *name, struct vec2 *val) { get_vec2(obs_data_get_autoselect_obj(data, name), val); } -void obs_data_get_autoselect_vec3(obs_data_t data, const char *name, +void obs_data_get_autoselect_vec3(obs_data_t *data, const char *name, struct vec3 *val) { get_vec3(obs_data_get_autoselect_obj(data, name), val); } -void obs_data_get_autoselect_vec4(obs_data_t data, const char *name, +void obs_data_get_autoselect_vec4(obs_data_t *data, const char *name, struct vec4 *val) { get_vec4(obs_data_get_autoselect_obj(data, name), val); } -void obs_data_get_autoselect_quat(obs_data_t data, const char *name, +void obs_data_get_autoselect_quat(obs_data_t *data, const char *name, struct quat *val) { get_quat(obs_data_get_autoselect_obj(data, name), val); diff --git a/libobs/obs-data.h b/libobs/obs-data.h index d6d46c129..8ba29d65d 100644 --- a/libobs/obs-data.h +++ b/libobs/obs-data.h @@ -38,9 +38,9 @@ struct quat; struct obs_data; struct obs_data_item; struct obs_data_array; -typedef struct obs_data *obs_data_t; -typedef struct obs_data_item *obs_data_item_t; -typedef struct obs_data_array *obs_data_array_t; +typedef struct obs_data obs_data_t; +typedef struct obs_data_item obs_data_item_t; +typedef struct obs_data_array obs_data_array_t; enum obs_data_type { OBS_DATA_NULL, @@ -60,248 +60,248 @@ enum obs_data_number_type { /* ------------------------------------------------------------------------- */ /* Main usage functions */ -EXPORT obs_data_t obs_data_create(); -EXPORT obs_data_t obs_data_create_from_json(const char *json_string); -EXPORT void obs_data_addref(obs_data_t data); -EXPORT void obs_data_release(obs_data_t data); +EXPORT obs_data_t *obs_data_create(); +EXPORT obs_data_t *obs_data_create_from_json(const char *json_string); +EXPORT void obs_data_addref(obs_data_t *data); +EXPORT void obs_data_release(obs_data_t *data); -EXPORT const char *obs_data_get_json(obs_data_t data); +EXPORT const char *obs_data_get_json(obs_data_t *data); -EXPORT void obs_data_apply(obs_data_t target, obs_data_t apply_data); +EXPORT void obs_data_apply(obs_data_t *target, obs_data_t *apply_data); -EXPORT void obs_data_erase(obs_data_t data, const char *name); +EXPORT void obs_data_erase(obs_data_t *data, const char *name); /* Set functions */ -EXPORT void obs_data_set_string(obs_data_t data, const char *name, +EXPORT void obs_data_set_string(obs_data_t *data, const char *name, const char *val); -EXPORT void obs_data_set_int(obs_data_t data, const char *name, +EXPORT void obs_data_set_int(obs_data_t *data, const char *name, long long val); -EXPORT void obs_data_set_double(obs_data_t data, const char *name, double val); -EXPORT void obs_data_set_bool(obs_data_t data, const char *name, bool val); -EXPORT void obs_data_set_obj(obs_data_t data, const char *name, obs_data_t obj); -EXPORT void obs_data_set_array(obs_data_t data, const char *name, - obs_data_array_t array); +EXPORT void obs_data_set_double(obs_data_t *data, const char *name, double val); +EXPORT void obs_data_set_bool(obs_data_t *data, const char *name, bool val); +EXPORT void obs_data_set_obj(obs_data_t *data, const char *name, obs_data_t *obj); +EXPORT void obs_data_set_array(obs_data_t *data, const char *name, + obs_data_array_t *array); /* * Default value functions. */ -EXPORT void obs_data_set_default_string(obs_data_t data, const char *name, +EXPORT void obs_data_set_default_string(obs_data_t *data, const char *name, const char *val); -EXPORT void obs_data_set_default_int(obs_data_t data, const char *name, +EXPORT void obs_data_set_default_int(obs_data_t *data, const char *name, long long val); -EXPORT void obs_data_set_default_double(obs_data_t data, const char *name, +EXPORT void obs_data_set_default_double(obs_data_t *data, const char *name, double val); -EXPORT void obs_data_set_default_bool(obs_data_t data, const char *name, +EXPORT void obs_data_set_default_bool(obs_data_t *data, const char *name, bool val); -EXPORT void obs_data_set_default_obj(obs_data_t data, const char *name, - obs_data_t obj); +EXPORT void obs_data_set_default_obj(obs_data_t *data, const char *name, + obs_data_t *obj); /* * Application overrides * Use these to communicate the actual values of settings in case the user * settings aren't appropriate */ -EXPORT void obs_data_set_autoselect_string(obs_data_t data, const char *name, +EXPORT void obs_data_set_autoselect_string(obs_data_t *data, const char *name, const char *val); -EXPORT void obs_data_set_autoselect_int(obs_data_t data, const char *name, +EXPORT void obs_data_set_autoselect_int(obs_data_t *data, const char *name, long long val); -EXPORT void obs_data_set_autoselect_double(obs_data_t data, const char *name, +EXPORT void obs_data_set_autoselect_double(obs_data_t *data, const char *name, double val); -EXPORT void obs_data_set_autoselect_bool(obs_data_t data, const char *name, +EXPORT void obs_data_set_autoselect_bool(obs_data_t *data, const char *name, bool val); -EXPORT void obs_data_set_autoselect_obj(obs_data_t data, const char *name, - obs_data_t obj); +EXPORT void obs_data_set_autoselect_obj(obs_data_t *data, const char *name, + obs_data_t *obj); /* * Get functions */ -EXPORT const char *obs_data_get_string(obs_data_t data, const char *name); -EXPORT long long obs_data_get_int(obs_data_t data, const char *name); -EXPORT double obs_data_get_double(obs_data_t data, const char *name); -EXPORT bool obs_data_get_bool(obs_data_t data, const char *name); -EXPORT obs_data_t obs_data_get_obj(obs_data_t data, const char *name); -EXPORT obs_data_array_t obs_data_get_array(obs_data_t data, const char *name); +EXPORT const char *obs_data_get_string(obs_data_t *data, const char *name); +EXPORT long long obs_data_get_int(obs_data_t *data, const char *name); +EXPORT double obs_data_get_double(obs_data_t *data, const char *name); +EXPORT bool obs_data_get_bool(obs_data_t *data, const char *name); +EXPORT obs_data_t *obs_data_get_obj(obs_data_t *data, const char *name); +EXPORT obs_data_array_t *obs_data_get_array(obs_data_t *data, const char *name); -EXPORT const char *obs_data_get_default_string(obs_data_t data, +EXPORT const char *obs_data_get_default_string(obs_data_t *data, const char *name); -EXPORT long long obs_data_get_default_int(obs_data_t data, const char *name); -EXPORT double obs_data_get_default_double(obs_data_t data, const char *name); -EXPORT bool obs_data_get_default_bool(obs_data_t data, const char *name); -EXPORT obs_data_t obs_data_get_default_obj(obs_data_t data, const char *name); -EXPORT obs_data_array_t obs_data_get_default_array(obs_data_t data, +EXPORT long long obs_data_get_default_int(obs_data_t *data, const char *name); +EXPORT double obs_data_get_default_double(obs_data_t *data, const char *name); +EXPORT bool obs_data_get_default_bool(obs_data_t *data, const char *name); +EXPORT obs_data_t *obs_data_get_default_obj(obs_data_t *data, const char *name); +EXPORT obs_data_array_t *obs_data_get_default_array(obs_data_t *data, const char *name); -EXPORT const char *obs_data_get_autoselect_string(obs_data_t data, +EXPORT const char *obs_data_get_autoselect_string(obs_data_t *data, const char *name); -EXPORT long long obs_data_get_autoselect_int(obs_data_t data, const char *name); -EXPORT double obs_data_get_autoselect_double(obs_data_t data, const char *name); -EXPORT bool obs_data_get_autoselect_bool(obs_data_t data, const char *name); -EXPORT obs_data_t obs_data_get_autoselect_obj(obs_data_t data, +EXPORT long long obs_data_get_autoselect_int(obs_data_t *data, const char *name); +EXPORT double obs_data_get_autoselect_double(obs_data_t *data, const char *name); +EXPORT bool obs_data_get_autoselect_bool(obs_data_t *data, const char *name); +EXPORT obs_data_t *obs_data_get_autoselect_obj(obs_data_t *data, const char *name); -EXPORT obs_data_array_t obs_data_get_autoselect_array(obs_data_t data, +EXPORT obs_data_array_t *obs_data_get_autoselect_array(obs_data_t *data, const char *name); /* Array functions */ -EXPORT obs_data_array_t obs_data_array_create(); -EXPORT void obs_data_array_addref(obs_data_array_t array); -EXPORT void obs_data_array_release(obs_data_array_t array); +EXPORT obs_data_array_t *obs_data_array_create(); +EXPORT void obs_data_array_addref(obs_data_array_t *array); +EXPORT void obs_data_array_release(obs_data_array_t *array); -EXPORT size_t obs_data_array_count(obs_data_array_t array); -EXPORT obs_data_t obs_data_array_item(obs_data_array_t array, size_t idx); -EXPORT size_t obs_data_array_push_back(obs_data_array_t array, obs_data_t obj); -EXPORT void obs_data_array_insert(obs_data_array_t array, size_t idx, - obs_data_t obj); -EXPORT void obs_data_array_erase(obs_data_array_t array, size_t idx); +EXPORT size_t obs_data_array_count(obs_data_array_t *array); +EXPORT obs_data_t *obs_data_array_item(obs_data_array_t *array, size_t idx); +EXPORT size_t obs_data_array_push_back(obs_data_array_t *array, obs_data_t *obj); +EXPORT void obs_data_array_insert(obs_data_array_t *array, size_t idx, + obs_data_t *obj); +EXPORT void obs_data_array_erase(obs_data_array_t *array, size_t idx); /* ------------------------------------------------------------------------- */ /* Item status inspection */ -EXPORT bool obs_data_has_user_value(obs_data_t data, const char *name); -EXPORT bool obs_data_has_default_value(obs_data_t data, const char *name); -EXPORT bool obs_data_has_autoselect_value(obs_data_t data, const char *name); +EXPORT bool obs_data_has_user_value(obs_data_t *data, const char *name); +EXPORT bool obs_data_has_default_value(obs_data_t *data, const char *name); +EXPORT bool obs_data_has_autoselect_value(obs_data_t *data, const char *name); -EXPORT bool obs_data_item_has_user_value(obs_data_item_t data); -EXPORT bool obs_data_item_has_default_value(obs_data_item_t data); -EXPORT bool obs_data_item_has_autoselect_value(obs_data_item_t data); +EXPORT bool obs_data_item_has_user_value(obs_data_item_t *data); +EXPORT bool obs_data_item_has_default_value(obs_data_item_t *data); +EXPORT bool obs_data_item_has_autoselect_value(obs_data_item_t *data); /* ------------------------------------------------------------------------- */ /* Clearing data values */ -EXPORT void obs_data_unset_user_value(obs_data_t data, const char *name); -EXPORT void obs_data_unset_default_value(obs_data_t data, const char *name); -EXPORT void obs_data_unset_autoselect_value(obs_data_t data, const char *name); +EXPORT void obs_data_unset_user_value(obs_data_t *data, const char *name); +EXPORT void obs_data_unset_default_value(obs_data_t *data, const char *name); +EXPORT void obs_data_unset_autoselect_value(obs_data_t *data, const char *name); -EXPORT void obs_data_item_unset_user_value(obs_data_item_t data); -EXPORT void obs_data_item_unset_default_value(obs_data_item_t data); -EXPORT void obs_data_item_unset_autoselect_value(obs_data_item_t data); +EXPORT void obs_data_item_unset_user_value(obs_data_item_t *data); +EXPORT void obs_data_item_unset_default_value(obs_data_item_t *data); +EXPORT void obs_data_item_unset_autoselect_value(obs_data_item_t *data); /* ------------------------------------------------------------------------- */ /* Item iteration */ -EXPORT obs_data_item_t obs_data_first(obs_data_t data); -EXPORT obs_data_item_t obs_data_item_byname(obs_data_t data, const char *name); -EXPORT bool obs_data_item_next(obs_data_item_t *item); -EXPORT void obs_data_item_release(obs_data_item_t *item); -EXPORT void obs_data_item_remove(obs_data_item_t *item); +EXPORT obs_data_item_t *obs_data_first(obs_data_t *data); +EXPORT obs_data_item_t *obs_data_item_byname(obs_data_t *data, const char *name); +EXPORT bool obs_data_item_next(obs_data_item_t **item); +EXPORT void obs_data_item_release(obs_data_item_t **item); +EXPORT void obs_data_item_remove(obs_data_item_t **item); /* Gets Item type */ -EXPORT enum obs_data_type obs_data_item_gettype(obs_data_item_t item); -EXPORT enum obs_data_number_type obs_data_item_numtype(obs_data_item_t item); +EXPORT enum obs_data_type obs_data_item_gettype(obs_data_item_t *item); +EXPORT enum obs_data_number_type obs_data_item_numtype(obs_data_item_t *item); /* Item set functions */ -EXPORT void obs_data_item_set_string(obs_data_item_t *item, const char *val); -EXPORT void obs_data_item_set_int(obs_data_item_t *item, long long val); -EXPORT void obs_data_item_set_double(obs_data_item_t *item, double val); -EXPORT void obs_data_item_set_bool(obs_data_item_t *item, bool val); -EXPORT void obs_data_item_set_obj(obs_data_item_t *item, obs_data_t val); -EXPORT void obs_data_item_set_array(obs_data_item_t *item, - obs_data_array_t val); +EXPORT void obs_data_item_set_string(obs_data_item_t **item, const char *val); +EXPORT void obs_data_item_set_int(obs_data_item_t **item, long long val); +EXPORT void obs_data_item_set_double(obs_data_item_t **item, double val); +EXPORT void obs_data_item_set_bool(obs_data_item_t **item, bool val); +EXPORT void obs_data_item_set_obj(obs_data_item_t **item, obs_data_t *val); +EXPORT void obs_data_item_set_array(obs_data_item_t **item, + obs_data_array_t *val); -EXPORT void obs_data_item_set_default_string(obs_data_item_t *item, +EXPORT void obs_data_item_set_default_string(obs_data_item_t **item, const char *val); -EXPORT void obs_data_item_set_default_int(obs_data_item_t *item, long long val); -EXPORT void obs_data_item_set_default_double(obs_data_item_t *item, double val); -EXPORT void obs_data_item_set_default_bool(obs_data_item_t *item, bool val); -EXPORT void obs_data_item_set_default_obj(obs_data_item_t *item, - obs_data_t val); -EXPORT void obs_data_item_set_default_array(obs_data_item_t *item, - obs_data_array_t val); +EXPORT void obs_data_item_set_default_int(obs_data_item_t **item, long long val); +EXPORT void obs_data_item_set_default_double(obs_data_item_t **item, double val); +EXPORT void obs_data_item_set_default_bool(obs_data_item_t **item, bool val); +EXPORT void obs_data_item_set_default_obj(obs_data_item_t **item, + obs_data_t *val); +EXPORT void obs_data_item_set_default_array(obs_data_item_t **item, + obs_data_array_t *val); -EXPORT void obs_data_item_set_autoselect_string(obs_data_item_t *item, +EXPORT void obs_data_item_set_autoselect_string(obs_data_item_t **item, const char *val); -EXPORT void obs_data_item_set_autoselect_int(obs_data_item_t *item, +EXPORT void obs_data_item_set_autoselect_int(obs_data_item_t **item, long long val); -EXPORT void obs_data_item_set_autoselect_double(obs_data_item_t *item, +EXPORT void obs_data_item_set_autoselect_double(obs_data_item_t **item, double val); -EXPORT void obs_data_item_set_autoselect_bool(obs_data_item_t *item, bool val); -EXPORT void obs_data_item_set_autoselect_obj(obs_data_item_t *item, - obs_data_t val); -EXPORT void obs_data_item_set_autoselect_array(obs_data_item_t *item, - obs_data_array_t val); +EXPORT void obs_data_item_set_autoselect_bool(obs_data_item_t **item, bool val); +EXPORT void obs_data_item_set_autoselect_obj(obs_data_item_t **item, + obs_data_t *val); +EXPORT void obs_data_item_set_autoselect_array(obs_data_item_t **item, + obs_data_array_t *val); /* Item get functions */ -EXPORT const char *obs_data_item_get_string(obs_data_item_t item); -EXPORT long long obs_data_item_get_int(obs_data_item_t item); -EXPORT double obs_data_item_get_double(obs_data_item_t item); -EXPORT bool obs_data_item_get_bool(obs_data_item_t item); -EXPORT obs_data_t obs_data_item_get_obj(obs_data_item_t item); -EXPORT obs_data_array_t obs_data_item_get_array(obs_data_item_t item); +EXPORT const char *obs_data_item_get_string(obs_data_item_t *item); +EXPORT long long obs_data_item_get_int(obs_data_item_t *item); +EXPORT double obs_data_item_get_double(obs_data_item_t *item); +EXPORT bool obs_data_item_get_bool(obs_data_item_t *item); +EXPORT obs_data_t *obs_data_item_get_obj(obs_data_item_t *item); +EXPORT obs_data_array_t *obs_data_item_get_array(obs_data_item_t *item); -EXPORT const char *obs_data_item_get_default_string(obs_data_item_t item); -EXPORT long long obs_data_item_get_default_int(obs_data_item_t item); -EXPORT double obs_data_item_get_default_double(obs_data_item_t item); -EXPORT bool obs_data_item_get_default_bool(obs_data_item_t item); -EXPORT obs_data_t obs_data_item_get_default_obj(obs_data_item_t item); -EXPORT obs_data_array_t obs_data_item_get_default_array(obs_data_item_t item); +EXPORT const char *obs_data_item_get_default_string(obs_data_item_t *item); +EXPORT long long obs_data_item_get_default_int(obs_data_item_t *item); +EXPORT double obs_data_item_get_default_double(obs_data_item_t *item); +EXPORT bool obs_data_item_get_default_bool(obs_data_item_t *item); +EXPORT obs_data_t *obs_data_item_get_default_obj(obs_data_item_t *item); +EXPORT obs_data_array_t *obs_data_item_get_default_array(obs_data_item_t *item); -EXPORT const char *obs_data_item_get_autoselect_string(obs_data_item_t item); -EXPORT long long obs_data_item_get_autoselect_int(obs_data_item_t item); -EXPORT double obs_data_item_get_autoselect_double(obs_data_item_t item); -EXPORT bool obs_data_item_get_autoselect_bool(obs_data_item_t item); -EXPORT obs_data_t obs_data_item_get_autoselect_obj(obs_data_item_t item); -EXPORT obs_data_array_t obs_data_item_get_autoselect_array( - obs_data_item_t item); +EXPORT const char *obs_data_item_get_autoselect_string(obs_data_item_t *item); +EXPORT long long obs_data_item_get_autoselect_int(obs_data_item_t *item); +EXPORT double obs_data_item_get_autoselect_double(obs_data_item_t *item); +EXPORT bool obs_data_item_get_autoselect_bool(obs_data_item_t *item); +EXPORT obs_data_t *obs_data_item_get_autoselect_obj(obs_data_item_t *item); +EXPORT obs_data_array_t *obs_data_item_get_autoselect_array( + obs_data_item_t *item); /* ------------------------------------------------------------------------- */ /* Helper functions for certain structures */ -EXPORT void obs_data_set_vec2(obs_data_t data, const char *name, +EXPORT void obs_data_set_vec2(obs_data_t *data, const char *name, const struct vec2 *val); -EXPORT void obs_data_set_vec3(obs_data_t data, const char *name, +EXPORT void obs_data_set_vec3(obs_data_t *data, const char *name, const struct vec3 *val); -EXPORT void obs_data_set_vec4(obs_data_t data, const char *name, +EXPORT void obs_data_set_vec4(obs_data_t *data, const char *name, const struct vec4 *val); -EXPORT void obs_data_set_quat(obs_data_t data, const char *name, +EXPORT void obs_data_set_quat(obs_data_t *data, const char *name, const struct quat *val); -EXPORT void obs_data_set_default_vec2(obs_data_t data, const char *name, +EXPORT void obs_data_set_default_vec2(obs_data_t *data, const char *name, const struct vec2 *val); -EXPORT void obs_data_set_default_vec3(obs_data_t data, const char *name, +EXPORT void obs_data_set_default_vec3(obs_data_t *data, const char *name, const struct vec3 *val); -EXPORT void obs_data_set_default_vec4(obs_data_t data, const char *name, +EXPORT void obs_data_set_default_vec4(obs_data_t *data, const char *name, const struct vec4 *val); -EXPORT void obs_data_set_default_quat(obs_data_t data, const char *name, +EXPORT void obs_data_set_default_quat(obs_data_t *data, const char *name, const struct quat *val); -EXPORT void obs_data_set_autoselect_vec2(obs_data_t data, const char *name, +EXPORT void obs_data_set_autoselect_vec2(obs_data_t *data, const char *name, const struct vec2 *val); -EXPORT void obs_data_set_autoselect_vec3(obs_data_t data, const char *name, +EXPORT void obs_data_set_autoselect_vec3(obs_data_t *data, const char *name, const struct vec3 *val); -EXPORT void obs_data_set_autoselect_vec4(obs_data_t data, const char *name, +EXPORT void obs_data_set_autoselect_vec4(obs_data_t *data, const char *name, const struct vec4 *val); -EXPORT void obs_data_set_autoselect_quat(obs_data_t data, const char *name, +EXPORT void obs_data_set_autoselect_quat(obs_data_t *data, const char *name, const struct quat *val); -EXPORT void obs_data_get_vec2(obs_data_t data, const char *name, +EXPORT void obs_data_get_vec2(obs_data_t *data, const char *name, struct vec2 *val); -EXPORT void obs_data_get_vec3(obs_data_t data, const char *name, +EXPORT void obs_data_get_vec3(obs_data_t *data, const char *name, struct vec3 *val); -EXPORT void obs_data_get_vec4(obs_data_t data, const char *name, +EXPORT void obs_data_get_vec4(obs_data_t *data, const char *name, struct vec4 *val); -EXPORT void obs_data_get_quat(obs_data_t data, const char *name, +EXPORT void obs_data_get_quat(obs_data_t *data, const char *name, struct quat *val); -EXPORT void obs_data_get_default_vec2(obs_data_t data, const char *name, +EXPORT void obs_data_get_default_vec2(obs_data_t *data, const char *name, struct vec2 *val); -EXPORT void obs_data_get_default_vec3(obs_data_t data, const char *name, +EXPORT void obs_data_get_default_vec3(obs_data_t *data, const char *name, struct vec3 *val); -EXPORT void obs_data_get_default_vec4(obs_data_t data, const char *name, +EXPORT void obs_data_get_default_vec4(obs_data_t *data, const char *name, struct vec4 *val); -EXPORT void obs_data_get_default_quat(obs_data_t data, const char *name, +EXPORT void obs_data_get_default_quat(obs_data_t *data, const char *name, struct quat *val); -EXPORT void obs_data_get_autoselect_vec2(obs_data_t data, const char *name, +EXPORT void obs_data_get_autoselect_vec2(obs_data_t *data, const char *name, struct vec2 *val); -EXPORT void obs_data_get_autoselect_vec3(obs_data_t data, const char *name, +EXPORT void obs_data_get_autoselect_vec3(obs_data_t *data, const char *name, struct vec3 *val); -EXPORT void obs_data_get_autoselect_vec4(obs_data_t data, const char *name, +EXPORT void obs_data_get_autoselect_vec4(obs_data_t *data, const char *name, struct vec4 *val); -EXPORT void obs_data_get_autoselect_quat(obs_data_t data, const char *name, +EXPORT void obs_data_get_autoselect_quat(obs_data_t *data, const char *name, struct quat *val); /* ------------------------------------------------------------------------- */ /* OBS-specific functions */ -static inline obs_data_t obs_data_newref(obs_data_t data) +static inline obs_data_t *obs_data_newref(obs_data_t *data) { if (data) obs_data_addref(data); diff --git a/libobs/obs-display.c b/libobs/obs-display.c index ef956bd3b..a20b55249 100644 --- a/libobs/obs-display.c +++ b/libobs/obs-display.c @@ -44,7 +44,7 @@ bool obs_display_init(struct obs_display *display, return true; } -obs_display_t obs_display_create(struct gs_init_data *graphics_data) +obs_display_t *obs_display_create(struct gs_init_data *graphics_data) { struct obs_display *display = bzalloc(sizeof(struct obs_display)); @@ -71,7 +71,7 @@ obs_display_t obs_display_create(struct gs_init_data *graphics_data) return display; } -void obs_display_free(obs_display_t display) +void obs_display_free(obs_display_t *display) { pthread_mutex_destroy(&display->draw_callbacks_mutex); da_free(display->draw_callbacks); @@ -82,7 +82,7 @@ void obs_display_free(obs_display_t display) } } -void obs_display_destroy(obs_display_t display) +void obs_display_destroy(obs_display_t *display) { if (display) { pthread_mutex_lock(&obs->data.displays_mutex); @@ -99,7 +99,7 @@ void obs_display_destroy(obs_display_t display) } } -void obs_display_resize(obs_display_t display, uint32_t cx, uint32_t cy) +void obs_display_resize(obs_display_t *display, uint32_t cx, uint32_t cy) { if (!display) return; @@ -112,7 +112,7 @@ void obs_display_resize(obs_display_t display, uint32_t cx, uint32_t cy) pthread_mutex_unlock(&display->draw_callbacks_mutex); } -void obs_display_add_draw_callback(obs_display_t display, +void obs_display_add_draw_callback(obs_display_t *display, void (*draw)(void *param, uint32_t cx, uint32_t cy), void *param) { @@ -125,7 +125,7 @@ void obs_display_add_draw_callback(obs_display_t display, pthread_mutex_unlock(&display->draw_callbacks_mutex); } -void obs_display_remove_draw_callback(obs_display_t display, +void obs_display_remove_draw_callback(obs_display_t *display, void (*draw)(void *param, uint32_t cx, uint32_t cy), void *param) { diff --git a/libobs/obs-encoder.c b/libobs/obs-encoder.c index e1ca6fc00..f78d75640 100644 --- a/libobs/obs-encoder.c +++ b/libobs/obs-encoder.c @@ -37,7 +37,7 @@ const char *obs_encoder_get_display_name(const char *id) } static bool init_encoder(struct obs_encoder *encoder, const char *name, - obs_data_t settings) + obs_data_t *settings) { pthread_mutex_init_value(&encoder->callbacks_mutex); pthread_mutex_init_value(&encoder->outputs_mutex); @@ -57,7 +57,7 @@ static bool init_encoder(struct obs_encoder *encoder, const char *name, static struct obs_encoder *create_encoder(const char *id, enum obs_encoder_type type, const char *name, - obs_data_t settings) + obs_data_t *settings) { struct obs_encoder *encoder; struct obs_encoder_info *ei = find_encoder(id); @@ -83,15 +83,15 @@ static struct obs_encoder *create_encoder(const char *id, return encoder; } -obs_encoder_t obs_video_encoder_create(const char *id, const char *name, - obs_data_t settings) +obs_encoder_t *obs_video_encoder_create(const char *id, const char *name, + obs_data_t *settings) { if (!name || !id) return NULL; return create_encoder(id, OBS_ENCODER_VIDEO, name, settings); } -obs_encoder_t obs_audio_encoder_create(const char *id, const char *name, - obs_data_t settings) +obs_encoder_t *obs_audio_encoder_create(const char *id, const char *name, + obs_data_t *settings) { if (!name || !id) return NULL; return create_encoder(id, OBS_ENCODER_AUDIO, name, settings); @@ -193,7 +193,7 @@ static inline void free_audio_buffers(struct obs_encoder *encoder) } } -static void obs_encoder_actually_destroy(obs_encoder_t encoder) +static void obs_encoder_actually_destroy(obs_encoder_t *encoder) { if (encoder) { pthread_mutex_lock(&encoder->outputs_mutex); @@ -220,7 +220,7 @@ static void obs_encoder_actually_destroy(obs_encoder_t encoder) /* does not actually destroy the encoder until all connections to it have been * removed. (full reference counting really would have been superfluous) */ -void obs_encoder_destroy(obs_encoder_t encoder) +void obs_encoder_destroy(obs_encoder_t *encoder) { if (encoder) { bool destroy; @@ -238,31 +238,31 @@ void obs_encoder_destroy(obs_encoder_t encoder) } } -const char *obs_encoder_get_name(obs_encoder_t encoder) +const char *obs_encoder_get_name(obs_encoder_t *encoder) { return encoder ? encoder->context.name : NULL; } -static inline obs_data_t get_defaults(const struct obs_encoder_info *info) +static inline obs_data_t *get_defaults(const struct obs_encoder_info *info) { - obs_data_t settings = obs_data_create(); + obs_data_t *settings = obs_data_create(); if (info->get_defaults) info->get_defaults(settings); return settings; } -obs_data_t obs_encoder_defaults(const char *id) +obs_data_t *obs_encoder_defaults(const char *id) { const struct obs_encoder_info *info = find_encoder(id); return (info) ? get_defaults(info) : NULL; } -obs_properties_t obs_get_encoder_properties(const char *id) +obs_properties_t *obs_get_encoder_properties(const char *id) { const struct obs_encoder_info *ei = find_encoder(id); if (ei && ei->get_properties) { - obs_data_t defaults = get_defaults(ei); - obs_properties_t properties; + obs_data_t *defaults = get_defaults(ei); + obs_properties_t *properties; properties = ei->get_properties(); obs_properties_apply_settings(properties, defaults); @@ -272,10 +272,10 @@ obs_properties_t obs_get_encoder_properties(const char *id) return NULL; } -obs_properties_t obs_encoder_properties(obs_encoder_t encoder) +obs_properties_t *obs_encoder_properties(obs_encoder_t *encoder) { if (encoder && encoder->info.get_properties) { - obs_properties_t props; + obs_properties_t *props; props = encoder->info.get_properties(); obs_properties_apply_settings(props, encoder->context.settings); return props; @@ -283,7 +283,7 @@ obs_properties_t obs_encoder_properties(obs_encoder_t encoder) return NULL; } -void obs_encoder_update(obs_encoder_t encoder, obs_data_t settings) +void obs_encoder_update(obs_encoder_t *encoder, obs_data_t *settings) { if (!encoder) return; @@ -294,7 +294,7 @@ void obs_encoder_update(obs_encoder_t encoder, obs_data_t settings) encoder->context.settings); } -bool obs_encoder_get_extra_data(obs_encoder_t encoder, uint8_t **extra_data, +bool obs_encoder_get_extra_data(obs_encoder_t *encoder, uint8_t **extra_data, size_t *size) { if (encoder && encoder->info.get_extra_data && encoder->context.data) @@ -304,7 +304,7 @@ bool obs_encoder_get_extra_data(obs_encoder_t encoder, uint8_t **extra_data, return false; } -obs_data_t obs_encoder_get_settings(obs_encoder_t encoder) +obs_data_t *obs_encoder_get_settings(obs_encoder_t *encoder) { if (!encoder) return NULL; @@ -336,7 +336,7 @@ static void intitialize_audio_encoder(struct obs_encoder *encoder) reset_audio_buffers(encoder); } -bool obs_encoder_initialize(obs_encoder_t encoder) +bool obs_encoder_initialize(obs_encoder_t *encoder) { if (!encoder) return false; @@ -375,7 +375,7 @@ static inline size_t get_callback_idx( return DARRAY_INVALID; } -void obs_encoder_start(obs_encoder_t encoder, +void obs_encoder_start(obs_encoder_t *encoder, void (*new_packet)(void *param, struct encoder_packet *packet), void *param) { @@ -400,7 +400,7 @@ void obs_encoder_start(obs_encoder_t encoder, } } -void obs_encoder_stop(obs_encoder_t encoder, +void obs_encoder_stop(obs_encoder_t *encoder, void (*new_packet)(void *param, struct encoder_packet *packet), void *param) { @@ -427,12 +427,12 @@ void obs_encoder_stop(obs_encoder_t encoder, } } -const char *obs_encoder_get_codec(obs_encoder_t encoder) +const char *obs_encoder_get_codec(obs_encoder_t *encoder) { return encoder ? encoder->info.codec : NULL; } -void obs_encoder_set_scaled_size(obs_encoder_t encoder, uint32_t width, +void obs_encoder_set_scaled_size(obs_encoder_t *encoder, uint32_t width, uint32_t height) { if (!encoder || encoder->info.type != OBS_ENCODER_VIDEO) @@ -449,7 +449,7 @@ void obs_encoder_set_scaled_size(obs_encoder_t encoder, uint32_t width, encoder->scaled_height = height; } -uint32_t obs_encoder_get_width(obs_encoder_t encoder) +uint32_t obs_encoder_get_width(obs_encoder_t *encoder) { if (!encoder || !encoder->media || encoder->info.type != OBS_ENCODER_VIDEO) @@ -460,7 +460,7 @@ uint32_t obs_encoder_get_width(obs_encoder_t encoder) video_output_get_width(encoder->media); } -uint32_t obs_encoder_get_height(obs_encoder_t encoder) +uint32_t obs_encoder_get_height(obs_encoder_t *encoder) { if (!encoder || !encoder->media || encoder->info.type != OBS_ENCODER_VIDEO) @@ -471,7 +471,7 @@ uint32_t obs_encoder_get_height(obs_encoder_t encoder) video_output_get_height(encoder->media); } -void obs_encoder_set_video(obs_encoder_t encoder, video_t video) +void obs_encoder_set_video(obs_encoder_t *encoder, video_t *video) { const struct video_output_info *voi; @@ -485,7 +485,7 @@ void obs_encoder_set_video(obs_encoder_t encoder, video_t video) encoder->timebase_den = voi->fps_num; } -void obs_encoder_set_audio(obs_encoder_t encoder, audio_t audio) +void obs_encoder_set_audio(obs_encoder_t *encoder, audio_t *audio) { if (!audio || !encoder || encoder->info.type != OBS_ENCODER_AUDIO) return; @@ -495,19 +495,19 @@ void obs_encoder_set_audio(obs_encoder_t encoder, audio_t audio) encoder->timebase_den = audio_output_get_sample_rate(audio); } -video_t obs_encoder_video(obs_encoder_t encoder) +video_t *obs_encoder_video(obs_encoder_t *encoder) { return (encoder && encoder->info.type == OBS_ENCODER_VIDEO) ? encoder->media : NULL; } -audio_t obs_encoder_audio(obs_encoder_t encoder) +audio_t *obs_encoder_audio(obs_encoder_t *encoder) { return (encoder && encoder->info.type == OBS_ENCODER_AUDIO) ? encoder->media : NULL; } -bool obs_encoder_active(obs_encoder_t encoder) +bool obs_encoder_active(obs_encoder_t *encoder) { return encoder ? encoder->active : false; } diff --git a/libobs/obs-encoder.h b/libobs/obs-encoder.h index dfd63153d..fba375713 100644 --- a/libobs/obs-encoder.h +++ b/libobs/obs-encoder.h @@ -114,7 +114,7 @@ struct obs_encoder_info { * @return Data associated with this encoder context, or * NULL if initialization failed. */ - void *(*create)(obs_data_t settings, obs_encoder_t encoder); + void *(*create)(obs_data_t *settings, obs_encoder_t *encoder); /** * Destroys the encoder data @@ -149,14 +149,14 @@ struct obs_encoder_info { * * @param[out] settings Data to assign default settings to */ - void (*get_defaults)(obs_data_t settings); + void (*get_defaults)(obs_data_t *settings); /** * Gets the property information of this encoder * * @return The properties data */ - obs_properties_t (*get_properties)(void); + obs_properties_t *(*get_properties)(void); /** * Updates the settings for this encoder (usually used for things like @@ -166,7 +166,7 @@ struct obs_encoder_info { * @param settings New settings for this encoder * @return true if successful, false otherwise */ - bool (*update)(void *data, obs_data_t settings); + bool (*update)(void *data, obs_data_t *settings); /** * Returns extra data associated with this encoder (usually header) diff --git a/libobs/obs-internal.h b/libobs/obs-internal.h index 080afa8d3..7fcbd5e57 100644 --- a/libobs/obs-internal.h +++ b/libobs/obs-internal.h @@ -62,7 +62,7 @@ struct obs_module { void (*set_locale)(const char *locale); void (*free_locale)(void); uint32_t (*ver)(void); - void (*set_pointer)(obs_module_t module); + void (*set_pointer)(obs_module_t *module); const char *(*name)(void); const char *(*description)(void); const char *(*author)(void); @@ -100,7 +100,7 @@ static inline bool check_path(const char *data, const char *path, struct obs_view { pthread_mutex_t channels_mutex; - obs_source_t channels[MAX_CHANNELS]; + obs_source_t *channels[MAX_CHANNELS]; }; extern bool obs_view_init(struct obs_view *view); @@ -113,7 +113,7 @@ extern void obs_view_free(struct obs_view *view); struct obs_display { bool size_changed; uint32_t cx, cy; - gs_swapchain_t swap; + gs_swapchain_t *swap; pthread_mutex_t draw_callbacks_mutex; DARRAY(struct draw_callback) draw_callbacks; @@ -130,23 +130,23 @@ extern void obs_display_free(struct obs_display *display); /* core */ struct obs_core_video { - graphics_t graphics; - gs_stagesurf_t copy_surfaces[NUM_TEXTURES]; - gs_texture_t render_textures[NUM_TEXTURES]; - gs_texture_t output_textures[NUM_TEXTURES]; - gs_texture_t convert_textures[NUM_TEXTURES]; + graphics_t *graphics; + gs_stagesurf_t *copy_surfaces[NUM_TEXTURES]; + gs_texture_t *render_textures[NUM_TEXTURES]; + gs_texture_t *output_textures[NUM_TEXTURES]; + gs_texture_t *convert_textures[NUM_TEXTURES]; bool textures_rendered[NUM_TEXTURES]; bool textures_output[NUM_TEXTURES]; bool textures_copied[NUM_TEXTURES]; bool textures_converted[NUM_TEXTURES]; struct obs_source_frame convert_frames[NUM_TEXTURES]; - gs_effect_t default_effect; - gs_effect_t solid_effect; - gs_effect_t conversion_effect; - gs_stagesurf_t mapped_surface; + gs_effect_t *default_effect; + gs_effect_t *solid_effect; + gs_effect_t *conversion_effect; + gs_stagesurf_t *mapped_surface; int cur_texture; - video_t video; + video_t *video; pthread_t video_thread; bool thread_initialized; @@ -167,7 +167,7 @@ struct obs_core_video { struct obs_core_audio { /* TODO: sound output subsystem */ - audio_t audio; + audio_t *audio; float user_volume; float present_volume; @@ -210,8 +210,8 @@ struct obs_core { DARRAY(struct obs_modal_ui) modal_ui_callbacks; DARRAY(struct obs_modeless_ui) modeless_ui_callbacks; - signal_handler_t signals; - proc_handler_t procs; + signal_handler_t *signals; + proc_handler_t *procs; char *locale; @@ -233,9 +233,9 @@ extern void *obs_video_thread(void *param); struct obs_context_data { char *name; void *data; - obs_data_t settings; - signal_handler_t signals; - proc_handler_t procs; + obs_data_t *settings; + signal_handler_t *signals; + proc_handler_t *procs; DARRAY(char*) rename_cache; pthread_mutex_t rename_cache_mutex; @@ -247,7 +247,7 @@ struct obs_context_data { extern bool obs_context_data_init( struct obs_context_data *context, - obs_data_t settings, + obs_data_t *settings, const char *name); extern void obs_context_data_free(struct obs_context_data *context); @@ -298,8 +298,8 @@ struct obs_source { /* audio */ bool audio_failed; struct resample_info sample_info; - audio_resampler_t resampler; - audio_line_t audio_line; + audio_resampler_t *resampler; + audio_line_t *audio_line; pthread_mutex_t audio_mutex; struct obs_audio_data audio_data; size_t audio_storage_size; @@ -321,8 +321,8 @@ struct obs_source { float transition_volume; /* async video data */ - gs_texture_t async_texture; - gs_texrender_t async_convert_texrender; + gs_texture_t *async_texture; + gs_texrender_t *async_convert_texrender; bool async_gpu_conversion; enum video_format async_format; enum gs_color_format async_texture_format; @@ -344,14 +344,14 @@ struct obs_source { struct obs_source *filter_target; DARRAY(struct obs_source*) filters; pthread_mutex_t filter_mutex; - gs_texrender_t filter_texrender; + gs_texrender_t *filter_texrender; bool rendering_filter; }; extern const struct obs_source_info *find_source(struct darray *list, const char *id); extern bool obs_source_init_context(struct obs_source *source, - obs_data_t settings, const char *name); + obs_data_t *settings, const char *name); extern bool obs_source_init(struct obs_source *source, const struct obs_source_info *info); @@ -362,9 +362,9 @@ enum view_type { AUX_VIEW }; -extern void obs_source_activate(obs_source_t source, enum view_type type); -extern void obs_source_deactivate(obs_source_t source, enum view_type type); -extern void obs_source_video_tick(obs_source_t source, float seconds); +extern void obs_source_activate(obs_source_t *source, enum view_type type); +extern void obs_source_deactivate(obs_source_t *source, enum view_type type); +extern void obs_source_video_tick(obs_source_t *source, float seconds); /* ------------------------------------------------------------------------- */ @@ -389,7 +389,7 @@ struct obs_output { int reconnect_retries; bool reconnecting; pthread_t reconnect_thread; - os_event_t reconnect_stop_event; + os_event_t *reconnect_stop_event; volatile bool reconnect_thread_active; uint32_t starting_frame_count; @@ -398,11 +398,11 @@ struct obs_output { int total_frames; bool active; - video_t video; - audio_t audio; - obs_encoder_t video_encoder; - obs_encoder_t audio_encoder; - obs_service_t service; + video_t *video; + audio_t *audio; + obs_encoder_t *video_encoder; + obs_encoder_t *audio_encoder; + obs_service_t *service; uint32_t scaled_width; uint32_t scaled_height; @@ -462,11 +462,11 @@ struct obs_encoder { uint64_t start_ts; pthread_mutex_t outputs_mutex; - DARRAY(obs_output_t) outputs; + DARRAY(obs_output_t*) outputs; bool destroy_on_stop; - /* stores the video/audio media output pointer. video_t or audio_t */ + /* stores the video/audio media output pointer. video_t *or audio_t **/ void *media; pthread_mutex_t callbacks_mutex; @@ -475,12 +475,12 @@ struct obs_encoder { extern struct obs_encoder_info *find_encoder(const char *id); -extern bool obs_encoder_initialize(obs_encoder_t encoder); +extern bool obs_encoder_initialize(obs_encoder_t *encoder); -extern void obs_encoder_start(obs_encoder_t encoder, +extern void obs_encoder_start(obs_encoder_t *encoder, void (*new_packet)(void *param, struct encoder_packet *packet), void *param); -extern void obs_encoder_stop(obs_encoder_t encoder, +extern void obs_encoder_stop(obs_encoder_t *encoder, void (*new_packet)(void *param, struct encoder_packet *packet), void *param); diff --git a/libobs/obs-module.c b/libobs/obs-module.c index c54653ac6..0632c3255 100644 --- a/libobs/obs-module.c +++ b/libobs/obs-module.c @@ -56,7 +56,7 @@ static int load_module_exports(struct obs_module *mod, const char *path) return MODULE_SUCCESS; } -int obs_open_module(obs_module_t *module, const char *path, +int obs_open_module(obs_module_t **module, const char *path, const char *data_path) { struct obs_module mod = {0}; @@ -91,7 +91,7 @@ int obs_open_module(obs_module_t *module, const char *path, return MODULE_SUCCESS; } -bool obs_init_module(obs_module_t module) +bool obs_init_module(obs_module_t *module) { if (!module || !obs) return false; @@ -106,37 +106,37 @@ bool obs_init_module(obs_module_t module) return module->loaded; } -const char *obs_get_module_file_name(obs_module_t module) +const char *obs_get_module_file_name(obs_module_t *module) { return module ? module->file : NULL; } -const char *obs_get_module_name(obs_module_t module) +const char *obs_get_module_name(obs_module_t *module) { return (module && module->name) ? module->name() : NULL; } -const char *obs_get_module_author(obs_module_t module) +const char *obs_get_module_author(obs_module_t *module) { return (module && module->author) ? module->author() : NULL; } -const char *obs_get_module_description(obs_module_t module) +const char *obs_get_module_description(obs_module_t *module) { return (module && module->description) ? module->description() : NULL; } -const char *obs_get_module_binary_path(obs_module_t module) +const char *obs_get_module_binary_path(obs_module_t *module) { return module ? module->bin_path : NULL; } -const char *obs_get_module_data_path(obs_module_t module) +const char *obs_get_module_data_path(obs_module_t *module) { return module ? module->data_path : NULL; } -char *obs_find_module_file(obs_module_t module, const char *file) +char *obs_find_module_file(obs_module_t *module, const char *file) { struct dstr output = {0}; @@ -166,7 +166,7 @@ void obs_add_module_path(const char *bin, const char *data) static void load_all_callback(void *param, const struct obs_module_info *info) { - obs_module_t module; + obs_module_t *module; int code = obs_open_module(&module, info->bin_path, info->data_path); if (code != MODULE_SUCCESS) { @@ -287,7 +287,7 @@ static void find_modules_in_path(struct obs_module_path *omp, struct dstr search_path = {0}; char *module_start; bool search_directories = false; - os_glob_t gi; + os_glob_t *gi; dstr_copy(&search_path, omp->bin); @@ -365,11 +365,11 @@ void free_module(struct obs_module *mod) bfree(mod); } -lookup_t obs_module_load_locale(obs_module_t module, const char *default_locale, - const char *locale) +lookup_t *obs_module_load_locale(obs_module_t *module, + const char *default_locale, const char *locale) { struct dstr str = {0}; - lookup_t lookup = NULL; + lookup_t *lookup = NULL; if (!module || !default_locale || !locale) { blog(LOG_WARNING, "obs_module_load_locale: Invalid parameters"); diff --git a/libobs/obs-module.h b/libobs/obs-module.h index c6e080813..99a640053 100644 --- a/libobs/obs-module.h +++ b/libobs/obs-module.h @@ -35,13 +35,13 @@ /** Required: Declares a libobs module. */ #define OBS_DECLARE_MODULE() \ - static obs_module_t obs_module_pointer; \ - MODULE_EXPORT void obs_module_set_pointer(obs_module_t module); \ - void obs_module_set_pointer(obs_module_t module) \ + static obs_module_t *obs_module_pointer; \ + MODULE_EXPORT void obs_module_set_pointer(obs_module_t *module); \ + void obs_module_set_pointer(obs_module_t *module) \ { \ obs_module_pointer = module; \ } \ - obs_module_t obs_current_module(void) {return obs_module_pointer;} \ + obs_module_t *obs_current_module(void) {return obs_module_pointer;} \ MODULE_EXPORT uint32_t obs_module_ver(void); \ uint32_t obs_module_ver(void) {return LIBOBS_API_VER;} @@ -66,7 +66,7 @@ MODULE_EXPORT void obs_module_free_locale(void); /** Optional: Use this macro in a module to use default locale handling. */ #define OBS_MODULE_USE_DEFAULT_LOCALE(module_name, default_locale) \ - lookup_t obs_module_lookup = NULL; \ + lookup_t *obs_module_lookup = NULL; \ const char *obs_module_text(const char *val) \ { \ const char *out = val; \ @@ -89,7 +89,7 @@ MODULE_EXPORT void obs_module_free_locale(void); MODULE_EXTERN const char *obs_module_text(const char *lookup_string); /** Helper function that returns the current module */ -MODULE_EXTERN obs_module_t obs_current_module(void); +MODULE_EXTERN obs_module_t *obs_current_module(void); /** * Returns the location to a module data file associated with the current diff --git a/libobs/obs-output.c b/libobs/obs-output.c index c080a33e2..956114e62 100644 --- a/libobs/obs-output.c +++ b/libobs/obs-output.c @@ -47,7 +47,7 @@ static const char *output_signals[] = { }; static bool init_output_handlers(struct obs_output *output, const char *name, - obs_data_t settings) + obs_data_t *settings) { if (!obs_context_data_init(&output->context, settings, name)) return false; @@ -56,8 +56,8 @@ static bool init_output_handlers(struct obs_output *output, const char *name, return true; } -obs_output_t obs_output_create(const char *id, const char *name, - obs_data_t settings) +obs_output_t *obs_output_create(const char *id, const char *name, + obs_data_t *settings) { const struct obs_output_info *info = find_output(id); struct obs_output *output; @@ -114,7 +114,7 @@ static inline void free_packets(struct obs_output *output) da_free(output->interleaved_packets); } -void obs_output_destroy(obs_output_t output) +void obs_output_destroy(obs_output_t *output) { if (output) { obs_context_data_remove(&output->context); @@ -147,12 +147,12 @@ void obs_output_destroy(obs_output_t output) } } -const char *obs_output_get_name(obs_output_t output) +const char *obs_output_get_name(obs_output_t *output) { return output ? output->context.name : NULL; } -bool obs_output_start(obs_output_t output) +bool obs_output_start(obs_output_t *output) { bool success; @@ -192,7 +192,7 @@ static void log_frame_info(struct obs_output *output) skipped, percentage_skipped); } -void obs_output_stop(obs_output_t output) +void obs_output_stop(obs_output_t *output) { if (output) { os_event_signal(output->reconnect_stop_event); @@ -207,32 +207,32 @@ void obs_output_stop(obs_output_t output) } } -bool obs_output_active(obs_output_t output) +bool obs_output_active(obs_output_t *output) { return (output != NULL) ? (output->active || output->reconnecting) : false; } -static inline obs_data_t get_defaults(const struct obs_output_info *info) +static inline obs_data_t *get_defaults(const struct obs_output_info *info) { - obs_data_t settings = obs_data_create(); + obs_data_t *settings = obs_data_create(); if (info->get_defaults) info->get_defaults(settings); return settings; } -obs_data_t obs_output_defaults(const char *id) +obs_data_t *obs_output_defaults(const char *id) { const struct obs_output_info *info = find_output(id); return (info) ? get_defaults(info) : NULL; } -obs_properties_t obs_get_output_properties(const char *id) +obs_properties_t *obs_get_output_properties(const char *id) { const struct obs_output_info *info = find_output(id); if (info && info->get_properties) { - obs_data_t defaults = get_defaults(info); - obs_properties_t properties; + obs_data_t *defaults = get_defaults(info); + obs_properties_t *properties; properties = info->get_properties(); obs_properties_apply_settings(properties, defaults); @@ -242,10 +242,10 @@ obs_properties_t obs_get_output_properties(const char *id) return NULL; } -obs_properties_t obs_output_properties(obs_output_t output) +obs_properties_t *obs_output_properties(obs_output_t *output) { if (output && output->info.get_properties) { - obs_properties_t props; + obs_properties_t *props; props = output->info.get_properties(); obs_properties_apply_settings(props, output->context.settings); return props; @@ -254,7 +254,7 @@ obs_properties_t obs_output_properties(obs_output_t output) return NULL; } -void obs_output_update(obs_output_t output, obs_data_t settings) +void obs_output_update(obs_output_t *output, obs_data_t *settings) { if (!output) return; @@ -265,7 +265,7 @@ void obs_output_update(obs_output_t output, obs_data_t settings) output->context.settings); } -obs_data_t obs_output_get_settings(obs_output_t output) +obs_data_t *obs_output_get_settings(obs_output_t *output) { if (!output) return NULL; @@ -274,28 +274,28 @@ obs_data_t obs_output_get_settings(obs_output_t output) return output->context.settings; } -bool obs_output_canpause(obs_output_t output) +bool obs_output_canpause(obs_output_t *output) { return output ? (output->info.pause != NULL) : false; } -void obs_output_pause(obs_output_t output) +void obs_output_pause(obs_output_t *output) { if (output && output->info.pause) output->info.pause(output->context.data); } -signal_handler_t obs_output_get_signal_handler(obs_output_t output) +signal_handler_t *obs_output_get_signal_handler(obs_output_t *output) { return output ? output->context.signals : NULL; } -proc_handler_t obs_output_get_proc_handler(obs_output_t output) +proc_handler_t *obs_output_get_proc_handler(obs_output_t *output) { return output ? output->context.procs : NULL; } -void obs_output_set_media(obs_output_t output, video_t video, audio_t audio) +void obs_output_set_media(obs_output_t *output, video_t *video, audio_t *audio) { if (!output) return; @@ -304,12 +304,12 @@ void obs_output_set_media(obs_output_t output, video_t video, audio_t audio) output->audio = audio; } -video_t obs_output_video(obs_output_t output) +video_t *obs_output_video(obs_output_t *output) { return output ? output->video : NULL; } -audio_t obs_output_audio(obs_output_t output) +audio_t *obs_output_audio(obs_output_t *output) { return output ? output->audio : NULL; } @@ -325,7 +325,7 @@ void obs_output_remove_encoder(struct obs_output *output, output->audio_encoder = NULL; } -void obs_output_set_video_encoder(obs_output_t output, obs_encoder_t encoder) +void obs_output_set_video_encoder(obs_output_t *output, obs_encoder_t *encoder) { if (!output) return; if (output->video_encoder == encoder) return; @@ -341,7 +341,7 @@ void obs_output_set_video_encoder(obs_output_t output, obs_encoder_t encoder) output->scaled_width, output->scaled_height); } -void obs_output_set_audio_encoder(obs_output_t output, obs_encoder_t encoder) +void obs_output_set_audio_encoder(obs_output_t *output, obs_encoder_t *encoder) { if (!output) return; if (output->audio_encoder == encoder) return; @@ -352,17 +352,17 @@ void obs_output_set_audio_encoder(obs_output_t output, obs_encoder_t encoder) output->audio_encoder = encoder; } -obs_encoder_t obs_output_get_video_encoder(obs_output_t output) +obs_encoder_t *obs_output_get_video_encoder(obs_output_t *output) { return output ? output->video_encoder : NULL; } -obs_encoder_t obs_output_get_audio_encoder(obs_output_t output) +obs_encoder_t *obs_output_get_audio_encoder(obs_output_t *output) { return output ? output->audio_encoder : NULL; } -void obs_output_set_service(obs_output_t output, obs_service_t service) +void obs_output_set_service(obs_output_t *output, obs_service_t *service) { if (!output || output->active || !service || service->active) return; @@ -373,12 +373,12 @@ void obs_output_set_service(obs_output_t output, obs_service_t service) service->output = output; } -obs_service_t obs_output_get_service(obs_output_t output) +obs_service_t *obs_output_get_service(obs_output_t *output) { return output ? output->service : NULL; } -void obs_output_set_reconnect_settings(obs_output_t output, +void obs_output_set_reconnect_settings(obs_output_t *output, int retry_count, int retry_sec) { if (!output) return; @@ -387,7 +387,7 @@ void obs_output_set_reconnect_settings(obs_output_t output, output->reconnect_retry_sec = retry_sec; } -uint64_t obs_output_get_total_bytes(obs_output_t output) +uint64_t obs_output_get_total_bytes(obs_output_t *output) { if (!output || !output->info.get_total_bytes) return 0; @@ -395,7 +395,7 @@ uint64_t obs_output_get_total_bytes(obs_output_t output) return output->info.get_total_bytes(output->context.data); } -int obs_output_get_frames_dropped(obs_output_t output) +int obs_output_get_frames_dropped(obs_output_t *output) { if (!output || !output->info.get_dropped_frames) return 0; @@ -403,12 +403,12 @@ int obs_output_get_frames_dropped(obs_output_t output) return output->info.get_dropped_frames(output->context.data); } -int obs_output_get_total_frames(obs_output_t output) +int obs_output_get_total_frames(obs_output_t *output) { return output ? output->total_frames : 0; } -void obs_output_set_preferred_size(obs_output_t output, uint32_t width, +void obs_output_set_preferred_size(obs_output_t *output, uint32_t width, uint32_t height) { if (!output || (output->info.flags & OBS_OUTPUT_VIDEO) == 0) @@ -431,7 +431,7 @@ void obs_output_set_preferred_size(obs_output_t output, uint32_t width, } } -uint32_t obs_output_get_width(obs_output_t output) +uint32_t obs_output_get_width(obs_output_t *output) { if (!output || (output->info.flags & OBS_OUTPUT_VIDEO) == 0) return 0; @@ -444,7 +444,7 @@ uint32_t obs_output_get_width(obs_output_t output) video_output_get_width(output->video); } -uint32_t obs_output_get_height(obs_output_t output) +uint32_t obs_output_get_height(obs_output_t *output) { if (!output || (output->info.flags & OBS_OUTPUT_VIDEO) == 0) return 0; @@ -457,7 +457,7 @@ uint32_t obs_output_get_height(obs_output_t output) video_output_get_height(output->video); } -void obs_output_set_video_conversion(obs_output_t output, +void obs_output_set_video_conversion(obs_output_t *output, const struct video_scale_info *conversion) { if (!output || !conversion) return; @@ -466,7 +466,7 @@ void obs_output_set_video_conversion(obs_output_t output, output->video_conversion_set = true; } -void obs_output_set_audio_conversion(obs_output_t output, +void obs_output_set_audio_conversion(obs_output_t *output, const struct audio_convert_info *conversion) { if (!output || !conversion) return; @@ -760,7 +760,7 @@ static inline void convert_flags(struct obs_output *output, uint32_t flags, *has_service = (flags & OBS_OUTPUT_SERVICE) != 0; } -bool obs_output_can_begin_data_capture(obs_output_t output, uint32_t flags) +bool obs_output_can_begin_data_capture(obs_output_t *output, uint32_t flags) { bool encoded, has_video, has_audio, has_service; @@ -774,7 +774,7 @@ bool obs_output_can_begin_data_capture(obs_output_t output, uint32_t flags) has_service); } -bool obs_output_initialize_encoders(obs_output_t output, uint32_t flags) +bool obs_output_initialize_encoders(obs_output_t *output, uint32_t flags) { bool encoded, has_video, has_audio, has_service; @@ -803,7 +803,7 @@ bool obs_output_initialize_encoders(obs_output_t output, uint32_t flags) return true; } -bool obs_output_begin_data_capture(obs_output_t output, uint32_t flags) +bool obs_output_begin_data_capture(obs_output_t *output, uint32_t flags) { bool encoded, has_video, has_audio, has_service; @@ -836,7 +836,7 @@ bool obs_output_begin_data_capture(obs_output_t output, uint32_t flags) return true; } -void obs_output_end_data_capture(obs_output_t output) +void obs_output_end_data_capture(obs_output_t *output) { bool encoded, has_video, has_audio, has_service; void (*encoded_callback)(void *data, struct encoder_packet *packet); @@ -925,7 +925,7 @@ static void output_reconnect(struct obs_output *output) } } -void obs_output_signal_stop(obs_output_t output, int code) +void obs_output_signal_stop(obs_output_t *output, int code) { if (!output) return; diff --git a/libobs/obs-output.h b/libobs/obs-output.h index 5a632e730..c32fe4035 100644 --- a/libobs/obs-output.h +++ b/libobs/obs-output.h @@ -33,7 +33,7 @@ struct obs_output_info { const char *(*get_name)(void); - void *(*create)(obs_data_t settings, obs_output_t output); + void *(*create)(obs_data_t *settings, obs_output_t *output); void (*destroy)(void *data); bool (*start)(void *data); @@ -45,11 +45,11 @@ struct obs_output_info { void (*encoded_packet)(void *data, struct encoder_packet *packet); /* optional */ - void (*update)(void *data, obs_data_t settings); + void (*update)(void *data, obs_data_t *settings); - void (*get_defaults)(obs_data_t settings); + void (*get_defaults)(obs_data_t *settings); - obs_properties_t (*get_properties)(void); + obs_properties_t *(*get_properties)(void); void (*pause)(void *data); diff --git a/libobs/obs-properties.c b/libobs/obs-properties.c index ec8c6b59d..6b7a9dba2 100644 --- a/libobs/obs-properties.c +++ b/libobs/obs-properties.c @@ -110,7 +110,7 @@ struct obs_properties { struct obs_property **last; }; -obs_properties_t obs_properties_create(void) +obs_properties_t *obs_properties_create(void) { struct obs_properties *props; props = bzalloc(sizeof(struct obs_properties)); @@ -118,7 +118,7 @@ obs_properties_t obs_properties_create(void) return props; } -void obs_properties_set_param(obs_properties_t props, +void obs_properties_set_param(obs_properties_t *props, void *param, void (*destroy)(void *param)) { if (!props) @@ -131,12 +131,12 @@ void obs_properties_set_param(obs_properties_t props, props->destroy = destroy; } -void *obs_properties_get_param(obs_properties_t props) +void *obs_properties_get_param(obs_properties_t *props) { return props ? props->param : NULL; } -obs_properties_t obs_properties_create_param(void *param, +obs_properties_t *obs_properties_create_param(void *param, void (*destroy)(void *param)) { struct obs_properties *props = obs_properties_create(); @@ -154,7 +154,7 @@ static void obs_property_destroy(struct obs_property *property) bfree(property); } -void obs_properties_destroy(obs_properties_t props) +void obs_properties_destroy(obs_properties_t *props) { if (props) { struct obs_property *p = props->first_property; @@ -172,12 +172,12 @@ void obs_properties_destroy(obs_properties_t props) } } -obs_property_t obs_properties_first(obs_properties_t props) +obs_property_t *obs_properties_first(obs_properties_t *props) { return (props != NULL) ? props->first_property : NULL; } -obs_property_t obs_properties_get(obs_properties_t props, const char *name) +obs_property_t *obs_properties_get(obs_properties_t *props, const char *name) { struct obs_property *property; @@ -195,7 +195,7 @@ obs_property_t obs_properties_get(obs_properties_t props, const char *name) return NULL; } -void obs_properties_apply_settings(obs_properties_t props, obs_data_t settings) +void obs_properties_apply_settings(obs_properties_t *props, obs_data_t *settings) { struct obs_property *p = props->first_property; @@ -282,15 +282,15 @@ static inline void *get_type_data(struct obs_property *prop, return get_property_data(prop); } -obs_property_t obs_properties_add_bool(obs_properties_t props, const char *name, - const char *desc) +obs_property_t *obs_properties_add_bool(obs_properties_t *props, + const char *name, const char *desc) { if (!props || has_prop(props, name)) return NULL; return new_prop(props, name, desc, OBS_PROPERTY_BOOL); } -obs_property_t obs_properties_add_int(obs_properties_t props, const char *name, - const char *desc, int min, int max, int step) +obs_property_t *obs_properties_add_int(obs_properties_t *props, + const char *name, const char *desc, int min, int max, int step) { if (!props || has_prop(props, name)) return NULL; @@ -302,7 +302,7 @@ obs_property_t obs_properties_add_int(obs_properties_t props, const char *name, return p; } -obs_property_t obs_properties_add_float(obs_properties_t props, +obs_property_t *obs_properties_add_float(obs_properties_t *props, const char *name, const char *desc, double min, double max, double step) { @@ -317,8 +317,8 @@ obs_property_t obs_properties_add_float(obs_properties_t props, return p; } -obs_property_t obs_properties_add_text(obs_properties_t props, const char *name, - const char *desc, enum obs_text_type type) +obs_property_t *obs_properties_add_text(obs_properties_t *props, + const char *name, const char *desc, enum obs_text_type type) { if (!props || has_prop(props, name)) return NULL; @@ -328,9 +328,9 @@ obs_property_t obs_properties_add_text(obs_properties_t props, const char *name, return p; } -obs_property_t obs_properties_add_path(obs_properties_t props, const char *name, - const char *desc, enum obs_path_type type, const char *filter, - const char *default_path) +obs_property_t *obs_properties_add_path(obs_properties_t *props, + const char *name, const char *desc, enum obs_path_type type, + const char *filter, const char *default_path) { if (!props || has_prop(props, name)) return NULL; @@ -345,7 +345,7 @@ obs_property_t obs_properties_add_path(obs_properties_t props, const char *name, return p; } -obs_property_t obs_properties_add_list(obs_properties_t props, +obs_property_t *obs_properties_add_list(obs_properties_t *props, const char *name, const char *desc, enum obs_combo_type type, enum obs_combo_format format) @@ -367,14 +367,14 @@ obs_property_t obs_properties_add_list(obs_properties_t props, return p; } -obs_property_t obs_properties_add_color(obs_properties_t props, +obs_property_t *obs_properties_add_color(obs_properties_t *props, const char *name, const char *desc) { if (!props || has_prop(props, name)) return NULL; return new_prop(props, name, desc, OBS_PROPERTY_COLOR); } -obs_property_t obs_properties_add_button(obs_properties_t props, +obs_property_t *obs_properties_add_button(obs_properties_t *props, const char *name, const char *text, obs_property_clicked_t callback) { @@ -387,7 +387,7 @@ obs_property_t obs_properties_add_button(obs_properties_t props, return p; } -obs_property_t obs_properties_add_font(obs_properties_t props, +obs_property_t *obs_properties_add_font(obs_properties_t *props, const char *name, const char *desc) { if (!props || has_prop(props, name)) return NULL; @@ -416,7 +416,7 @@ static inline struct list_data *get_list_fmt_data(struct obs_property *p, /* ------------------------------------------------------------------------- */ -bool obs_property_next(obs_property_t *p) +bool obs_property_next(obs_property_t **p) { if (!p || !*p) return false; @@ -425,20 +425,20 @@ bool obs_property_next(obs_property_t *p) return *p != NULL; } -void obs_property_set_modified_callback(obs_property_t p, +void obs_property_set_modified_callback(obs_property_t *p, obs_property_modified_t modified) { if (p) p->modified = modified; } -bool obs_property_modified(obs_property_t p, obs_data_t settings) +bool obs_property_modified(obs_property_t *p, obs_data_t *settings) { if (p && p->modified) return p->modified(p->parent, p, settings); return false; } -bool obs_property_button_clicked(obs_property_t p, void *obj) +bool obs_property_button_clicked(obs_property_t *p, void *obj) { struct obs_context_data *context = obj; if (p) { @@ -451,114 +451,114 @@ bool obs_property_button_clicked(obs_property_t p, void *obj) return false; } -void obs_property_set_visible(obs_property_t p, bool visible) +void obs_property_set_visible(obs_property_t *p, bool visible) { if (p) p->visible = visible; } -void obs_property_set_enabled(obs_property_t p, bool enabled) +void obs_property_set_enabled(obs_property_t *p, bool enabled) { if (p) p->enabled = enabled; } -const char *obs_property_name(obs_property_t p) +const char *obs_property_name(obs_property_t *p) { return p ? p->name : NULL; } -const char *obs_property_description(obs_property_t p) +const char *obs_property_description(obs_property_t *p) { return p ? p->desc : NULL; } -enum obs_property_type obs_property_get_type(obs_property_t p) +enum obs_property_type obs_property_get_type(obs_property_t *p) { return p ? p->type : OBS_PROPERTY_INVALID; } -bool obs_property_enabled(obs_property_t p) +bool obs_property_enabled(obs_property_t *p) { return p ? p->enabled : false; } -bool obs_property_visible(obs_property_t p) +bool obs_property_visible(obs_property_t *p) { return p ? p->visible : false; } -int obs_property_int_min(obs_property_t p) +int obs_property_int_min(obs_property_t *p) { struct int_data *data = get_type_data(p, OBS_PROPERTY_INT); return data ? data->min : 0; } -int obs_property_int_max(obs_property_t p) +int obs_property_int_max(obs_property_t *p) { struct int_data *data = get_type_data(p, OBS_PROPERTY_INT); return data ? data->max : 0; } -int obs_property_int_step(obs_property_t p) +int obs_property_int_step(obs_property_t *p) { struct int_data *data = get_type_data(p, OBS_PROPERTY_INT); return data ? data->step : 0; } -double obs_property_float_min(obs_property_t p) +double obs_property_float_min(obs_property_t *p) { struct float_data *data = get_type_data(p, OBS_PROPERTY_FLOAT); return data ? data->min : 0; } -double obs_property_float_max(obs_property_t p) +double obs_property_float_max(obs_property_t *p) { struct float_data *data = get_type_data(p, OBS_PROPERTY_FLOAT); return data ? data->max : 0; } -double obs_property_float_step(obs_property_t p) +double obs_property_float_step(obs_property_t *p) { struct float_data *data = get_type_data(p, OBS_PROPERTY_FLOAT); return data ? data->step : 0; } -enum obs_text_type obs_proprety_text_type(obs_property_t p) +enum obs_text_type obs_proprety_text_type(obs_property_t *p) { struct text_data *data = get_type_data(p, OBS_PROPERTY_TEXT); return data ? data->type : OBS_TEXT_DEFAULT; } -enum obs_path_type obs_property_path_type(obs_property_t p) +enum obs_path_type obs_property_path_type(obs_property_t *p) { struct path_data *data = get_type_data(p, OBS_PROPERTY_PATH); return data ? data->type : OBS_PATH_DIRECTORY; } -const char *obs_property_path_filter(obs_property_t p) +const char *obs_property_path_filter(obs_property_t *p) { struct path_data *data = get_type_data(p, OBS_PROPERTY_PATH); return data ? data->filter : NULL; } -const char *obs_property_path_default_path(obs_property_t p) +const char *obs_property_path_default_path(obs_property_t *p) { struct path_data *data = get_type_data(p, OBS_PROPERTY_PATH); return data ? data->default_path : NULL; } -enum obs_combo_type obs_property_list_type(obs_property_t p) +enum obs_combo_type obs_property_list_type(obs_property_t *p) { struct list_data *data = get_list_data(p); return data ? data->type : OBS_COMBO_TYPE_INVALID; } -enum obs_combo_format obs_property_list_format(obs_property_t p) +enum obs_combo_format obs_property_list_format(obs_property_t *p) { struct list_data *data = get_list_data(p); return data ? data->format : OBS_COMBO_FORMAT_INVALID; } -void obs_property_list_clear(obs_property_t p) +void obs_property_list_clear(obs_property_t *p) { struct list_data *data = get_list_data(p); if (data) @@ -581,7 +581,7 @@ static size_t add_item(struct list_data *data, const char *name, return da_push_back(data->items, &item); } -size_t obs_property_list_add_string(obs_property_t p, +size_t obs_property_list_add_string(obs_property_t *p, const char *name, const char *val) { struct list_data *data = get_list_data(p); @@ -590,7 +590,7 @@ size_t obs_property_list_add_string(obs_property_t p, return 0; } -size_t obs_property_list_add_int(obs_property_t p, +size_t obs_property_list_add_int(obs_property_t *p, const char *name, long long val) { struct list_data *data = get_list_data(p); @@ -599,7 +599,7 @@ size_t obs_property_list_add_int(obs_property_t p, return 0; } -size_t obs_property_list_add_float(obs_property_t p, +size_t obs_property_list_add_float(obs_property_t *p, const char *name, double val) { struct list_data *data = get_list_data(p); @@ -608,7 +608,7 @@ size_t obs_property_list_add_float(obs_property_t p, return 0; } -void obs_property_list_item_remove(obs_property_t p, size_t idx) +void obs_property_list_item_remove(obs_property_t *p, size_t idx) { struct list_data *data = get_list_data(p); if (data && idx < data->items.num) { @@ -617,20 +617,21 @@ void obs_property_list_item_remove(obs_property_t p, size_t idx) } } -size_t obs_property_list_item_count(obs_property_t p) +size_t obs_property_list_item_count(obs_property_t *p) { struct list_data *data = get_list_data(p); return data ? data->items.num : 0; } -bool obs_property_list_item_disabled(obs_property_t p, size_t idx) +bool obs_property_list_item_disabled(obs_property_t *p, size_t idx) { struct list_data *data = get_list_data(p); return (data && idx < data->items.num) ? data->items.array[idx].disabled : false; } -void obs_property_list_item_disable(obs_property_t p, size_t idx, bool disabled) +void obs_property_list_item_disable(obs_property_t *p, size_t idx, + bool disabled) { struct list_data *data = get_list_data(p); if (!data || idx >= data->items.num) @@ -638,28 +639,28 @@ void obs_property_list_item_disable(obs_property_t p, size_t idx, bool disabled) data->items.array[idx].disabled = disabled; } -const char *obs_property_list_item_name(obs_property_t p, size_t idx) +const char *obs_property_list_item_name(obs_property_t *p, size_t idx) { struct list_data *data = get_list_data(p); return (data && idx < data->items.num) ? data->items.array[idx].name : NULL; } -const char *obs_property_list_item_string(obs_property_t p, size_t idx) +const char *obs_property_list_item_string(obs_property_t *p, size_t idx) { struct list_data *data = get_list_fmt_data(p, OBS_COMBO_FORMAT_STRING); return (data && idx < data->items.num) ? data->items.array[idx].str : ""; } -long long obs_property_list_item_int(obs_property_t p, size_t idx) +long long obs_property_list_item_int(obs_property_t *p, size_t idx) { struct list_data *data = get_list_fmt_data(p, OBS_COMBO_FORMAT_INT); return (data && idx < data->items.num) ? data->items.array[idx].ll : 0; } -double obs_property_list_item_float(obs_property_t p, size_t idx) +double obs_property_list_item_float(obs_property_t *p, size_t idx) { struct list_data *data = get_list_fmt_data(p, OBS_COMBO_FORMAT_FLOAT); return (data && idx < data->items.num) ? diff --git a/libobs/obs-properties.h b/libobs/obs-properties.h index 1e288f874..743483dbc 100644 --- a/libobs/obs-properties.h +++ b/libobs/obs-properties.h @@ -68,28 +68,28 @@ enum obs_text_type { struct obs_properties; struct obs_property; -typedef struct obs_properties *obs_properties_t; -typedef struct obs_property *obs_property_t; +typedef struct obs_properties obs_properties_t; +typedef struct obs_property obs_property_t; /* ------------------------------------------------------------------------- */ -EXPORT obs_properties_t obs_properties_create(void); -EXPORT obs_properties_t obs_properties_create_param(void *param, +EXPORT obs_properties_t *obs_properties_create(void); +EXPORT obs_properties_t *obs_properties_create_param(void *param, void (*destroy)(void *param)); -EXPORT void obs_properties_destroy(obs_properties_t props); +EXPORT void obs_properties_destroy(obs_properties_t *props); -EXPORT void obs_properties_set_param(obs_properties_t props, +EXPORT void obs_properties_set_param(obs_properties_t *props, void *param, void (*destroy)(void *param)); -EXPORT void *obs_properties_get_param(obs_properties_t props); +EXPORT void *obs_properties_get_param(obs_properties_t *props); -EXPORT obs_property_t obs_properties_first(obs_properties_t props); +EXPORT obs_property_t *obs_properties_first(obs_properties_t *props); -EXPORT obs_property_t obs_properties_get(obs_properties_t props, +EXPORT obs_property_t *obs_properties_get(obs_properties_t *props, const char *property); /* used internally by libobs */ -extern void obs_properties_apply_settings(obs_properties_t props, - obs_data_t settings); +extern void obs_properties_apply_settings(obs_properties_t *props, + obs_data_t *settings); /* ------------------------------------------------------------------------- */ @@ -98,21 +98,21 @@ extern void obs_properties_apply_settings(obs_properties_t props, * need to be refreshed due to changes to the property layout, return true, * otherwise return false. */ -typedef bool (*obs_property_clicked_t)(obs_properties_t props, - obs_property_t property, void *data); +typedef bool (*obs_property_clicked_t)(obs_properties_t *props, + obs_property_t *property, void *data); -EXPORT obs_property_t obs_properties_add_bool(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_bool(obs_properties_t *props, const char *name, const char *description); -EXPORT obs_property_t obs_properties_add_int(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_int(obs_properties_t *props, const char *name, const char *description, int min, int max, int step); -EXPORT obs_property_t obs_properties_add_float(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_float(obs_properties_t *props, const char *name, const char *description, double min, double max, double step); -EXPORT obs_property_t obs_properties_add_text(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_text(obs_properties_t *props, const char *name, const char *description, enum obs_text_type type); @@ -132,19 +132,19 @@ EXPORT obs_property_t obs_properties_add_text(obs_properties_t props, * double semi-colens. If multiple file types in a * filter, separate with space. */ -EXPORT obs_property_t obs_properties_add_path(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_path(obs_properties_t *props, const char *name, const char *description, enum obs_path_type type, const char *filter, const char *default_path); -EXPORT obs_property_t obs_properties_add_list(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_list(obs_properties_t *props, const char *name, const char *description, enum obs_combo_type type, enum obs_combo_format format); -EXPORT obs_property_t obs_properties_add_color(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_color(obs_properties_t *props, const char *name, const char *description); -EXPORT obs_property_t obs_properties_add_button(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_button(obs_properties_t *props, const char *name, const char *text, obs_property_clicked_t callback); @@ -157,7 +157,7 @@ EXPORT obs_property_t obs_properties_add_button(obs_properties_t props, * size: size integer * flags: font flags integer (OBS_FONT_* defined above) */ -EXPORT obs_property_t obs_properties_add_font(obs_properties_t props, +EXPORT obs_property_t *obs_properties_add_font(obs_properties_t *props, const char *name, const char *description); /* ------------------------------------------------------------------------- */ @@ -167,59 +167,59 @@ EXPORT obs_property_t obs_properties_add_font(obs_properties_t props, * need to be refreshed due to changes to the property layout, return true, * otherwise return false. */ -typedef bool (*obs_property_modified_t)(obs_properties_t props, - obs_property_t property, obs_data_t settings); +typedef bool (*obs_property_modified_t)(obs_properties_t *props, + obs_property_t *property, obs_data_t *settings); -EXPORT void obs_property_set_modified_callback(obs_property_t p, +EXPORT void obs_property_set_modified_callback(obs_property_t *p, obs_property_modified_t modified); -EXPORT bool obs_property_modified(obs_property_t p, obs_data_t settings); -EXPORT bool obs_property_button_clicked(obs_property_t p, void *obj); +EXPORT bool obs_property_modified(obs_property_t *p, obs_data_t *settings); +EXPORT bool obs_property_button_clicked(obs_property_t *p, void *obj); -EXPORT void obs_property_set_visible(obs_property_t p, bool visible); -EXPORT void obs_property_set_enabled(obs_property_t p, bool enabled); +EXPORT void obs_property_set_visible(obs_property_t *p, bool visible); +EXPORT void obs_property_set_enabled(obs_property_t *p, bool enabled); -EXPORT const char * obs_property_name(obs_property_t p); -EXPORT const char * obs_property_description(obs_property_t p); -EXPORT enum obs_property_type obs_property_get_type(obs_property_t p); -EXPORT bool obs_property_enabled(obs_property_t p); -EXPORT bool obs_property_visible(obs_property_t p); +EXPORT const char * obs_property_name(obs_property_t *p); +EXPORT const char * obs_property_description(obs_property_t *p); +EXPORT enum obs_property_type obs_property_get_type(obs_property_t *p); +EXPORT bool obs_property_enabled(obs_property_t *p); +EXPORT bool obs_property_visible(obs_property_t *p); -EXPORT bool obs_property_next(obs_property_t *p); +EXPORT bool obs_property_next(obs_property_t **p); -EXPORT int obs_property_int_min(obs_property_t p); -EXPORT int obs_property_int_max(obs_property_t p); -EXPORT int obs_property_int_step(obs_property_t p); -EXPORT double obs_property_float_min(obs_property_t p); -EXPORT double obs_property_float_max(obs_property_t p); -EXPORT double obs_property_float_step(obs_property_t p); -EXPORT enum obs_text_type obs_proprety_text_type(obs_property_t p); -EXPORT enum obs_path_type obs_property_path_type(obs_property_t p); -EXPORT const char * obs_property_path_filter(obs_property_t p); -EXPORT const char * obs_property_path_default_path(obs_property_t p); -EXPORT enum obs_combo_type obs_property_list_type(obs_property_t p); -EXPORT enum obs_combo_format obs_property_list_format(obs_property_t p); +EXPORT int obs_property_int_min(obs_property_t *p); +EXPORT int obs_property_int_max(obs_property_t *p); +EXPORT int obs_property_int_step(obs_property_t *p); +EXPORT double obs_property_float_min(obs_property_t *p); +EXPORT double obs_property_float_max(obs_property_t *p); +EXPORT double obs_property_float_step(obs_property_t *p); +EXPORT enum obs_text_type obs_proprety_text_type(obs_property_t *p); +EXPORT enum obs_path_type obs_property_path_type(obs_property_t *p); +EXPORT const char * obs_property_path_filter(obs_property_t *p); +EXPORT const char * obs_property_path_default_path(obs_property_t *p); +EXPORT enum obs_combo_type obs_property_list_type(obs_property_t *p); +EXPORT enum obs_combo_format obs_property_list_format(obs_property_t *p); -EXPORT void obs_property_list_clear(obs_property_t p); +EXPORT void obs_property_list_clear(obs_property_t *p); -EXPORT size_t obs_property_list_add_string(obs_property_t p, +EXPORT size_t obs_property_list_add_string(obs_property_t *p, const char *name, const char *val); -EXPORT size_t obs_property_list_add_int(obs_property_t p, +EXPORT size_t obs_property_list_add_int(obs_property_t *p, const char *name, long long val); -EXPORT size_t obs_property_list_add_float(obs_property_t p, +EXPORT size_t obs_property_list_add_float(obs_property_t *p, const char *name, double val); -EXPORT void obs_property_list_item_disable(obs_property_t p, size_t idx, +EXPORT void obs_property_list_item_disable(obs_property_t *p, size_t idx, bool disabled); -EXPORT bool obs_property_list_item_disabled(obs_property_t p, size_t idx); +EXPORT bool obs_property_list_item_disabled(obs_property_t *p, size_t idx); -EXPORT void obs_property_list_item_remove(obs_property_t p, size_t idx); +EXPORT void obs_property_list_item_remove(obs_property_t *p, size_t idx); -EXPORT size_t obs_property_list_item_count(obs_property_t p); -EXPORT const char *obs_property_list_item_name(obs_property_t p, size_t idx); -EXPORT const char *obs_property_list_item_string(obs_property_t p, size_t idx); -EXPORT long long obs_property_list_item_int(obs_property_t p, size_t idx); -EXPORT double obs_property_list_item_float(obs_property_t p, size_t idx); +EXPORT size_t obs_property_list_item_count(obs_property_t *p); +EXPORT const char *obs_property_list_item_name(obs_property_t *p, size_t idx); +EXPORT const char *obs_property_list_item_string(obs_property_t *p, size_t idx); +EXPORT long long obs_property_list_item_int(obs_property_t *p, size_t idx); +EXPORT double obs_property_list_item_float(obs_property_t *p, size_t idx); #ifdef __cplusplus } diff --git a/libobs/obs-scene.c b/libobs/obs-scene.c index 29c2ab897..ef7394c17 100644 --- a/libobs/obs-scene.c +++ b/libobs/obs-scene.c @@ -49,7 +49,7 @@ static const char *scene_getname(void) return "Scene"; } -static void *scene_create(obs_data_t settings, struct obs_source *source) +static void *scene_create(obs_data_t *settings, struct obs_source *source) { pthread_mutexattr_t attr; struct obs_scene *scene = bmalloc(sizeof(struct obs_scene)); @@ -297,7 +297,7 @@ static inline bool source_size_changed(struct obs_scene_item *item) return item->last_width != width || item->last_height != height; } -static void scene_video_render(void *data, gs_effect_t effect) +static void scene_video_render(void *data, gs_effect_t *effect) { struct obs_scene *scene = data; struct obs_scene_item *item; @@ -331,10 +331,10 @@ static void scene_video_render(void *data, gs_effect_t effect) UNUSED_PARAMETER(effect); } -static void scene_load_item(struct obs_scene *scene, obs_data_t item_data) +static void scene_load_item(struct obs_scene *scene, obs_data_t *item_data) { const char *name = obs_data_get_string(item_data, "name"); - obs_source_t source = obs_get_source_by_name(name); + obs_source_t *source = obs_get_source_by_name(name); struct obs_scene_item *item; if (!source) { @@ -366,9 +366,9 @@ static void scene_load_item(struct obs_scene *scene, obs_data_t item_data) update_item_transform(item); } -static void scene_load(void *scene, obs_data_t settings) +static void scene_load(void *scene, obs_data_t *settings) { - obs_data_array_t items = obs_data_get_array(settings, "items"); + obs_data_array_t *items = obs_data_get_array(settings, "items"); size_t count, i; remove_all_items(scene); @@ -378,7 +378,7 @@ static void scene_load(void *scene, obs_data_t settings) count = obs_data_array_count(items); for (i = 0; i < count; i++) { - obs_data_t item_data = obs_data_array_item(items, i); + obs_data_t *item_data = obs_data_array_item(items, i); scene_load_item(scene, item_data); obs_data_release(item_data); } @@ -386,9 +386,10 @@ static void scene_load(void *scene, obs_data_t settings) obs_data_array_release(items); } -static void scene_save_item(obs_data_array_t array, struct obs_scene_item *item) +static void scene_save_item(obs_data_array_t *array, + struct obs_scene_item *item) { - obs_data_t item_data = obs_data_create(); + obs_data_t *item_data = obs_data_create(); const char *name = obs_source_get_name(item->source); obs_data_set_string(item_data, "name", name); @@ -405,10 +406,10 @@ static void scene_save_item(obs_data_array_t array, struct obs_scene_item *item) obs_data_release(item_data); } -static void scene_save(void *data, obs_data_t settings) +static void scene_save(void *data, obs_data_t *settings) { struct obs_scene *scene = data; - obs_data_array_t array = obs_data_array_create(); + obs_data_array_t *array = obs_data_array_create(); struct obs_scene_item *item; pthread_mutex_lock(&scene->mutex); @@ -453,31 +454,31 @@ const struct obs_source_info scene_info = .enum_sources = scene_enum_sources }; -obs_scene_t obs_scene_create(const char *name) +obs_scene_t *obs_scene_create(const char *name) { struct obs_source *source = obs_source_create(OBS_SOURCE_TYPE_INPUT, "scene", name, NULL); return source->context.data; } -void obs_scene_addref(obs_scene_t scene) +void obs_scene_addref(obs_scene_t *scene) { if (scene) obs_source_addref(scene->source); } -void obs_scene_release(obs_scene_t scene) +void obs_scene_release(obs_scene_t *scene) { if (scene) obs_source_release(scene->source); } -obs_source_t obs_scene_get_source(obs_scene_t scene) +obs_source_t *obs_scene_get_source(obs_scene_t *scene) { return scene ? scene->source : NULL; } -obs_scene_t obs_scene_from_source(obs_source_t source) +obs_scene_t *obs_scene_from_source(obs_source_t *source) { if (!source || source->info.id != scene_info.id) return NULL; @@ -485,7 +486,7 @@ obs_scene_t obs_scene_from_source(obs_source_t source) return source->context.data; } -obs_sceneitem_t obs_scene_find_source(obs_scene_t scene, const char *name) +obs_sceneitem_t *obs_scene_find_source(obs_scene_t *scene, const char *name) { struct obs_scene_item *item; @@ -507,8 +508,8 @@ obs_sceneitem_t obs_scene_find_source(obs_scene_t scene, const char *name) return item; } -void obs_scene_enum_items(obs_scene_t scene, - bool (*callback)(obs_scene_t, obs_sceneitem_t, void*), +void obs_scene_enum_items(obs_scene_t *scene, + bool (*callback)(obs_scene_t*, obs_sceneitem_t*, void*), void *param) { struct obs_scene_item *item; @@ -537,7 +538,7 @@ void obs_scene_enum_items(obs_scene_t scene, pthread_mutex_unlock(&scene->mutex); } -obs_sceneitem_t obs_scene_add(obs_scene_t scene, obs_source_t source) +obs_sceneitem_t *obs_scene_add(obs_scene_t *scene, obs_source_t *source) { struct obs_scene_item *last; struct obs_scene_item *item; @@ -588,7 +589,7 @@ obs_sceneitem_t obs_scene_add(obs_scene_t scene, obs_source_t source) return item; } -static void obs_sceneitem_destroy(obs_sceneitem_t item) +static void obs_sceneitem_destroy(obs_sceneitem_t *item) { if (item) { if (item->source) @@ -597,13 +598,13 @@ static void obs_sceneitem_destroy(obs_sceneitem_t item) } } -void obs_sceneitem_addref(obs_sceneitem_t item) +void obs_sceneitem_addref(obs_sceneitem_t *item) { if (item) os_atomic_inc_long(&item->ref); } -void obs_sceneitem_release(obs_sceneitem_t item) +void obs_sceneitem_release(obs_sceneitem_t *item) { if (!item) return; @@ -612,9 +613,9 @@ void obs_sceneitem_release(obs_sceneitem_t item) obs_sceneitem_destroy(item); } -void obs_sceneitem_remove(obs_sceneitem_t item) +void obs_sceneitem_remove(obs_sceneitem_t *item) { - obs_scene_t scene; + obs_scene_t *scene; if (!item) return; @@ -644,17 +645,17 @@ void obs_sceneitem_remove(obs_sceneitem_t item) obs_sceneitem_release(item); } -obs_scene_t obs_sceneitem_get_scene(obs_sceneitem_t item) +obs_scene_t *obs_sceneitem_get_scene(obs_sceneitem_t *item) { return item ? item->parent : NULL; } -obs_source_t obs_sceneitem_get_source(obs_sceneitem_t item) +obs_source_t *obs_sceneitem_get_source(obs_sceneitem_t *item) { return item ? item->source : NULL; } -void obs_sceneitem_select(obs_sceneitem_t item, bool select) +void obs_sceneitem_select(obs_sceneitem_t *item, bool select) { struct calldata params = {0}; const char *command = select ? "item_select" : "item_deselect"; @@ -672,12 +673,12 @@ void obs_sceneitem_select(obs_sceneitem_t item, bool select) calldata_free(¶ms); } -bool obs_sceneitem_selected(obs_sceneitem_t item) +bool obs_sceneitem_selected(obs_sceneitem_t *item) { return item ? item->selected : false; } -void obs_sceneitem_set_pos(obs_sceneitem_t item, const struct vec2 *pos) +void obs_sceneitem_set_pos(obs_sceneitem_t *item, const struct vec2 *pos) { if (item) { vec2_copy(&item->pos, pos); @@ -685,7 +686,7 @@ void obs_sceneitem_set_pos(obs_sceneitem_t item, const struct vec2 *pos) } } -void obs_sceneitem_set_rot(obs_sceneitem_t item, float rot) +void obs_sceneitem_set_rot(obs_sceneitem_t *item, float rot) { if (item) { item->rot = rot; @@ -693,7 +694,7 @@ void obs_sceneitem_set_rot(obs_sceneitem_t item, float rot) } } -void obs_sceneitem_set_scale(obs_sceneitem_t item, const struct vec2 *scale) +void obs_sceneitem_set_scale(obs_sceneitem_t *item, const struct vec2 *scale) { if (item) { vec2_copy(&item->scale, scale); @@ -701,7 +702,7 @@ void obs_sceneitem_set_scale(obs_sceneitem_t item, const struct vec2 *scale) } } -void obs_sceneitem_set_alignment(obs_sceneitem_t item, uint32_t alignment) +void obs_sceneitem_set_alignment(obs_sceneitem_t *item, uint32_t alignment) { if (item) { item->align = alignment; @@ -731,7 +732,7 @@ static inline void signal_move_dir(struct obs_scene_item *item, calldata_free(¶ms); } -void obs_sceneitem_set_order(obs_sceneitem_t item, +void obs_sceneitem_set_order(obs_sceneitem_t *item, enum obs_order_movement movement) { if (!item) return; @@ -774,7 +775,7 @@ void obs_sceneitem_set_order(obs_sceneitem_t item, obs_scene_release(scene); } -void obs_sceneitem_set_bounds_type(obs_sceneitem_t item, +void obs_sceneitem_set_bounds_type(obs_sceneitem_t *item, enum obs_bounds_type type) { if (item) { @@ -783,7 +784,7 @@ void obs_sceneitem_set_bounds_type(obs_sceneitem_t item, } } -void obs_sceneitem_set_bounds_alignment(obs_sceneitem_t item, +void obs_sceneitem_set_bounds_alignment(obs_sceneitem_t *item, uint32_t alignment) { if (item) { @@ -792,7 +793,7 @@ void obs_sceneitem_set_bounds_alignment(obs_sceneitem_t item, } } -void obs_sceneitem_set_bounds(obs_sceneitem_t item, const struct vec2 *bounds) +void obs_sceneitem_set_bounds(obs_sceneitem_t *item, const struct vec2 *bounds) { if (item) { item->bounds = *bounds; @@ -800,45 +801,45 @@ void obs_sceneitem_set_bounds(obs_sceneitem_t item, const struct vec2 *bounds) } } -void obs_sceneitem_get_pos(obs_sceneitem_t item, struct vec2 *pos) +void obs_sceneitem_get_pos(obs_sceneitem_t *item, struct vec2 *pos) { if (item) vec2_copy(pos, &item->pos); } -float obs_sceneitem_get_rot(obs_sceneitem_t item) +float obs_sceneitem_get_rot(obs_sceneitem_t *item) { return item ? item->rot : 0.0f; } -void obs_sceneitem_get_scale(obs_sceneitem_t item, struct vec2 *scale) +void obs_sceneitem_get_scale(obs_sceneitem_t *item, struct vec2 *scale) { if (item) vec2_copy(scale, &item->scale); } -uint32_t obs_sceneitem_get_alignment(obs_sceneitem_t item) +uint32_t obs_sceneitem_get_alignment(obs_sceneitem_t *item) { return item ? item->align : 0; } -enum obs_bounds_type obs_sceneitem_get_bounds_type(obs_sceneitem_t item) +enum obs_bounds_type obs_sceneitem_get_bounds_type(obs_sceneitem_t *item) { return item ? item->bounds_type : OBS_BOUNDS_NONE; } -uint32_t obs_sceneitem_get_bounds_alignment(obs_sceneitem_t item) +uint32_t obs_sceneitem_get_bounds_alignment(obs_sceneitem_t *item) { return item ? item->bounds_align : 0; } -void obs_sceneitem_get_bounds(obs_sceneitem_t item, struct vec2 *bounds) +void obs_sceneitem_get_bounds(obs_sceneitem_t *item, struct vec2 *bounds) { if (item) *bounds = item->bounds; } -void obs_sceneitem_get_info(obs_sceneitem_t item, +void obs_sceneitem_get_info(obs_sceneitem_t *item, struct obs_transform_info *info) { if (item && info) { @@ -852,7 +853,7 @@ void obs_sceneitem_get_info(obs_sceneitem_t item, } } -void obs_sceneitem_set_info(obs_sceneitem_t item, +void obs_sceneitem_set_info(obs_sceneitem_t *item, const struct obs_transform_info *info) { if (item && info) { @@ -867,14 +868,14 @@ void obs_sceneitem_set_info(obs_sceneitem_t item, } } -void obs_sceneitem_get_draw_transform(obs_sceneitem_t item, +void obs_sceneitem_get_draw_transform(obs_sceneitem_t *item, struct matrix4 *transform) { if (item) matrix4_copy(transform, &item->draw_transform); } -void obs_sceneitem_get_box_transform(obs_sceneitem_t item, +void obs_sceneitem_get_box_transform(obs_sceneitem_t *item, struct matrix4 *transform) { if (item) diff --git a/libobs/obs-service.c b/libobs/obs-service.c index c93aac88f..e8278e720 100644 --- a/libobs/obs-service.c +++ b/libobs/obs-service.c @@ -33,8 +33,8 @@ const char *obs_service_get_display_name(const char *id) return (info != NULL) ? info->get_name() : NULL; } -obs_service_t obs_service_create(const char *id, const char *name, - obs_data_t settings) +obs_service_t *obs_service_create(const char *id, const char *name, + obs_data_t *settings) { const struct obs_service_info *info = find_service(id); struct obs_service *service; @@ -82,7 +82,7 @@ static void actually_destroy_service(struct obs_service *service) bfree(service); } -void obs_service_destroy(obs_service_t service) +void obs_service_destroy(obs_service_t *service) { if (service) { obs_context_data_remove(&service->context); @@ -96,31 +96,31 @@ void obs_service_destroy(obs_service_t service) } } -const char *obs_service_get_name(obs_service_t service) +const char *obs_service_get_name(obs_service_t *service) { return service ? service->context.name : NULL; } -static inline obs_data_t get_defaults(const struct obs_service_info *info) +static inline obs_data_t *get_defaults(const struct obs_service_info *info) { - obs_data_t settings = obs_data_create(); + obs_data_t *settings = obs_data_create(); if (info->get_defaults) info->get_defaults(settings); return settings; } -obs_data_t obs_service_defaults(const char *id) +obs_data_t *obs_service_defaults(const char *id) { const struct obs_service_info *info = find_service(id); return (info) ? get_defaults(info) : NULL; } -obs_properties_t obs_get_service_properties(const char *id) +obs_properties_t *obs_get_service_properties(const char *id) { const struct obs_service_info *info = find_service(id); if (info && info->get_properties) { - obs_data_t defaults = get_defaults(info); - obs_properties_t properties; + obs_data_t *defaults = get_defaults(info); + obs_properties_t *properties; properties = info->get_properties(); obs_properties_apply_settings(properties, defaults); @@ -130,10 +130,10 @@ obs_properties_t obs_get_service_properties(const char *id) return NULL; } -obs_properties_t obs_service_properties(obs_service_t service) +obs_properties_t *obs_service_properties(obs_service_t *service) { if (service && service->info.get_properties) { - obs_properties_t props; + obs_properties_t *props; props = service->info.get_properties(); obs_properties_apply_settings(props, service->context.settings); return props; @@ -142,12 +142,12 @@ obs_properties_t obs_service_properties(obs_service_t service) return NULL; } -const char *obs_service_gettype(obs_service_t service) +const char *obs_service_gettype(obs_service_t *service) { return service ? service->info.id : NULL; } -void obs_service_update(obs_service_t service, obs_data_t settings) +void obs_service_update(obs_service_t *service, obs_data_t *settings) { if (!service) return; @@ -158,7 +158,7 @@ void obs_service_update(obs_service_t service, obs_data_t settings) service->context.settings); } -obs_data_t obs_service_get_settings(obs_service_t service) +obs_data_t *obs_service_get_settings(obs_service_t *service) { if (!service) return NULL; @@ -167,35 +167,35 @@ obs_data_t obs_service_get_settings(obs_service_t service) return service->context.settings; } -signal_handler_t obs_service_get_signal_handler(obs_service_t service) +signal_handler_t *obs_service_get_signal_handler(obs_service_t *service) { return service ? service->context.signals : NULL; } -proc_handler_t obs_service_get_proc_handler(obs_service_t service) +proc_handler_t *obs_service_get_proc_handler(obs_service_t *service) { return service ? service->context.procs : NULL; } -const char *obs_service_get_url(obs_service_t service) +const char *obs_service_get_url(obs_service_t *service) { if (!service || !service->info.get_url) return NULL; return service->info.get_url(service->context.data); } -const char *obs_service_get_key(obs_service_t service) +const char *obs_service_get_key(obs_service_t *service) { if (!service || !service->info.get_key) return NULL; return service->info.get_key(service->context.data); } -const char *obs_service_get_username(obs_service_t service) +const char *obs_service_get_username(obs_service_t *service) { if (!service || !service->info.get_username) return NULL; return service->info.get_username(service->context.data); } -const char *obs_service_get_password(obs_service_t service) +const char *obs_service_get_password(obs_service_t *service) { if (!service || !service->info.get_password) return NULL; return service->info.get_password(service->context.data); diff --git a/libobs/obs-service.h b/libobs/obs-service.h index 4985d2612..34ccb4212 100644 --- a/libobs/obs-service.h +++ b/libobs/obs-service.h @@ -22,18 +22,18 @@ struct obs_service_info { const char *id; const char *(*get_name)(void); - void *(*create)(obs_data_t settings, obs_service_t service); + void *(*create)(obs_data_t *settings, obs_service_t *service); void (*destroy)(void *data); /* optional */ - void (*activate)(void *data, obs_data_t settings); + void (*activate)(void *data, obs_data_t *settings); void (*deactivate)(void *data); - void (*update)(void *data, obs_data_t settings); + void (*update)(void *data, obs_data_t *settings); - void (*get_defaults)(obs_data_t settings); + void (*get_defaults)(obs_data_t *settings); - obs_properties_t (*get_properties)(void); + obs_properties_t *(*get_properties)(void); /** * Called when getting ready to start up an output, before the encoders @@ -44,7 +44,7 @@ struct obs_service_info { * @eturn true to allow the output to start up, * false to prevent output from starting up */ - bool (*initialize)(void *data, obs_output_t output); + bool (*initialize)(void *data, obs_output_t *output); const char *(*get_url)(void *data); const char *(*get_key)(void *data); diff --git a/libobs/obs-source.c b/libobs/obs-source.c index 33ac093b4..553d5d66f 100644 --- a/libobs/obs-source.c +++ b/libobs/obs-source.c @@ -86,7 +86,7 @@ static const char *source_signals[] = { }; bool obs_source_init_context(struct obs_source *source, - obs_data_t settings, const char *name) + obs_data_t *settings, const char *name) { if (!obs_context_data_init(&source->context, settings, name)) return false; @@ -152,8 +152,8 @@ static inline void obs_source_dosignal(struct obs_source *source, calldata_free(&data); } -obs_source_t obs_source_create(enum obs_source_type type, const char *id, - const char *name, obs_data_t settings) +obs_source_t *obs_source_create(enum obs_source_type type, const char *id, + const char *name, obs_data_t *settings) { struct obs_source *source = bzalloc(sizeof(struct obs_source)); @@ -266,13 +266,13 @@ void obs_source_destroy(struct obs_source *source) bfree(source); } -void obs_source_addref(obs_source_t source) +void obs_source_addref(obs_source_t *source) { if (source) os_atomic_inc_long(&source->refs); } -void obs_source_release(obs_source_t source) +void obs_source_release(obs_source_t *source) { if (!source) return; @@ -281,7 +281,7 @@ void obs_source_release(obs_source_t source) obs_source_destroy(source); } -void obs_source_remove(obs_source_t source) +void obs_source_remove(obs_source_t *source) { struct obs_core_data *data = &obs->data; size_t id; @@ -313,32 +313,32 @@ void obs_source_remove(obs_source_t source) obs_source_release(source); } -bool obs_source_removed(obs_source_t source) +bool obs_source_removed(obs_source_t *source) { return source ? source->removed : true; } -static inline obs_data_t get_defaults(const struct obs_source_info *info) +static inline obs_data_t *get_defaults(const struct obs_source_info *info) { - obs_data_t settings = obs_data_create(); + obs_data_t *settings = obs_data_create(); if (info->get_defaults) info->get_defaults(settings); return settings; } -obs_data_t obs_source_settings(enum obs_source_type type, const char *id) +obs_data_t *obs_source_settings(enum obs_source_type type, const char *id) { const struct obs_source_info *info = get_source_info(type, id); return (info) ? get_defaults(info) : NULL; } -obs_properties_t obs_get_source_properties(enum obs_source_type type, +obs_properties_t *obs_get_source_properties(enum obs_source_type type, const char *id) { const struct obs_source_info *info = get_source_info(type, id); if (info && info->get_properties) { - obs_data_t defaults = get_defaults(info); - obs_properties_t properties; + obs_data_t *defaults = get_defaults(info); + obs_properties_t *properties; properties = info->get_properties(); obs_properties_apply_settings(properties, defaults); @@ -348,10 +348,10 @@ obs_properties_t obs_get_source_properties(enum obs_source_type type, return NULL; } -obs_properties_t obs_source_properties(obs_source_t source) +obs_properties_t *obs_source_properties(obs_source_t *source) { if (source_valid(source) && source->info.get_properties) { - obs_properties_t props; + obs_properties_t *props; props = source->info.get_properties(); obs_properties_apply_settings(props, source->context.settings); return props; @@ -360,12 +360,12 @@ obs_properties_t obs_source_properties(obs_source_t source) return NULL; } -uint32_t obs_source_get_output_flags(obs_source_t source) +uint32_t obs_source_get_output_flags(obs_source_t *source) { return source ? source->info.output_flags : 0; } -static void obs_source_deferred_update(obs_source_t source) +static void obs_source_deferred_update(obs_source_t *source) { if (source->context.data && source->info.update) source->info.update(source->context.data, @@ -374,7 +374,7 @@ static void obs_source_deferred_update(obs_source_t source) source->defer_update = false; } -void obs_source_update(obs_source_t source, obs_data_t settings) +void obs_source_update(obs_source_t *source, obs_data_t *settings) { if (!source) return; @@ -389,7 +389,7 @@ void obs_source_update(obs_source_t source, obs_data_t settings) } } -void obs_source_send_mouse_click(obs_source_t source, +void obs_source_send_mouse_click(obs_source_t *source, const struct obs_mouse_event *event, int32_t type, bool mouse_up, uint32_t click_count) @@ -405,7 +405,7 @@ void obs_source_send_mouse_click(obs_source_t source, } } -void obs_source_send_mouse_move(obs_source_t source, +void obs_source_send_mouse_move(obs_source_t *source, const struct obs_mouse_event *event, bool mouse_leave) { if (!source) @@ -419,7 +419,7 @@ void obs_source_send_mouse_move(obs_source_t source, } } -void obs_source_send_mouse_wheel(obs_source_t source, +void obs_source_send_mouse_wheel(obs_source_t *source, const struct obs_mouse_event *event, int x_delta, int y_delta) { if (!source) @@ -433,7 +433,7 @@ void obs_source_send_mouse_wheel(obs_source_t source, } } -void obs_source_send_focus(obs_source_t source, bool focus) +void obs_source_send_focus(obs_source_t *source, bool focus) { if (!source) return; @@ -445,7 +445,7 @@ void obs_source_send_focus(obs_source_t source, bool focus) } } -void obs_source_send_key_click(obs_source_t source, +void obs_source_send_key_click(obs_source_t *source, const struct obs_key_event *event, bool key_up) { if (!source) @@ -459,35 +459,36 @@ void obs_source_send_key_click(obs_source_t source, } } -static void activate_source(obs_source_t source) +static void activate_source(obs_source_t *source) { if (source->context.data && source->info.activate) source->info.activate(source->context.data); obs_source_dosignal(source, "source_activate", "activate"); } -static void deactivate_source(obs_source_t source) +static void deactivate_source(obs_source_t *source) { if (source->context.data && source->info.deactivate) source->info.deactivate(source->context.data); obs_source_dosignal(source, "source_deactivate", "deactivate"); } -static void show_source(obs_source_t source) +static void show_source(obs_source_t *source) { if (source->context.data && source->info.show) source->info.show(source->context.data); obs_source_dosignal(source, "source_show", "show"); } -static void hide_source(obs_source_t source) +static void hide_source(obs_source_t *source) { if (source->context.data && source->info.hide) source->info.hide(source->context.data); obs_source_dosignal(source, "source_hide", "hide"); } -static void activate_tree(obs_source_t parent, obs_source_t child, void *param) +static void activate_tree(obs_source_t *parent, obs_source_t *child, + void *param) { if (os_atomic_inc_long(&child->activate_refs) == 1) activate_source(child); @@ -496,7 +497,7 @@ static void activate_tree(obs_source_t parent, obs_source_t child, void *param) UNUSED_PARAMETER(param); } -static void deactivate_tree(obs_source_t parent, obs_source_t child, +static void deactivate_tree(obs_source_t *parent, obs_source_t *child, void *param) { if (os_atomic_dec_long(&child->activate_refs) == 0) @@ -506,7 +507,7 @@ static void deactivate_tree(obs_source_t parent, obs_source_t child, UNUSED_PARAMETER(param); } -static void show_tree(obs_source_t parent, obs_source_t child, void *param) +static void show_tree(obs_source_t *parent, obs_source_t *child, void *param) { if (os_atomic_inc_long(&child->show_refs) == 1) show_source(child); @@ -515,7 +516,7 @@ static void show_tree(obs_source_t parent, obs_source_t child, void *param) UNUSED_PARAMETER(param); } -static void hide_tree(obs_source_t parent, obs_source_t child, void *param) +static void hide_tree(obs_source_t *parent, obs_source_t *child, void *param) { if (os_atomic_dec_long(&child->show_refs) == 0) hide_source(child); @@ -524,7 +525,7 @@ static void hide_tree(obs_source_t parent, obs_source_t child, void *param) UNUSED_PARAMETER(param); } -void obs_source_activate(obs_source_t source, enum view_type type) +void obs_source_activate(obs_source_t *source, enum view_type type) { if (!source) return; @@ -542,7 +543,7 @@ void obs_source_activate(obs_source_t source, enum view_type type) } } -void obs_source_deactivate(obs_source_t source, enum view_type type) +void obs_source_deactivate(obs_source_t *source, enum view_type type) { if (!source) return; @@ -560,7 +561,7 @@ void obs_source_deactivate(obs_source_t source, enum view_type type) } } -void obs_source_video_tick(obs_source_t source, float seconds) +void obs_source_video_tick(obs_source_t *source, float seconds) { if (!source) return; @@ -592,13 +593,13 @@ static inline uint64_t conv_frames_to_time(size_t frames) /* maximum time that timestamp can jump in nanoseconds */ #define MAX_TIMESTAMP_JUMP 2000000000ULL -static inline void reset_audio_timing(obs_source_t source, uint64_t timetamp) +static inline void reset_audio_timing(obs_source_t *source, uint64_t timetamp) { source->timing_set = true; source->timing_adjust = os_gettime_ns() - timetamp; } -static inline void handle_ts_jump(obs_source_t source, uint64_t expected, +static inline void handle_ts_jump(obs_source_t *source, uint64_t expected, uint64_t ts, uint64_t diff) { blog(LOG_DEBUG, "Timestamp for source '%s' jumped by '%"PRIu64"', " @@ -626,7 +627,7 @@ static void calc_volume_levels(struct obs_source *source, float *array, float max_val = 0.0f; float rms_val = 0.0f; - audio_t audio = obs_get_audio(); + audio_t *audio = obs_get_audio(); const uint32_t sample_rate = audio_output_get_sample_rate(audio); const size_t channels = audio_output_get_channels(audio); const size_t count = frames * channels; @@ -669,7 +670,7 @@ static void calc_volume_levels(struct obs_source *source, float *array, } /* TODO update peak/etc later */ -static void obs_source_update_volume_level(obs_source_t source, +static void obs_source_update_volume_level(obs_source_t *source, struct audio_data *in) { if (source && in) { @@ -692,7 +693,7 @@ static void obs_source_update_volume_level(obs_source_t source, } } -static void source_output_audio_line(obs_source_t source, +static void source_output_audio_line(obs_source_t *source, const struct audio_data *data) { struct audio_data in = *data; @@ -870,7 +871,7 @@ static inline bool set_async_texture_size(struct obs_source *source, return true; } -static void upload_raw_frame(gs_texture_t tex, +static void upload_raw_frame(gs_texture_t *tex, const struct obs_source_frame *frame) { switch (get_convert_type(frame->format)) { @@ -924,17 +925,17 @@ static const char *select_conversion_technique(enum video_format format) return NULL; } -static inline void set_eparam(gs_effect_t effect, const char *name, float val) +static inline void set_eparam(gs_effect_t *effect, const char *name, float val) { - gs_eparam_t param = gs_effect_get_param_by_name(effect, name); + gs_eparam_t *param = gs_effect_get_param_by_name(effect, name); gs_effect_set_float(param, val); } static bool update_async_texrender(struct obs_source *source, const struct obs_source_frame *frame) { - gs_texture_t tex = source->async_texture; - gs_texrender_t texrender = source->async_convert_texrender; + gs_texture_t *tex = source->async_texture; + gs_texrender_t *texrender = source->async_convert_texrender; gs_texrender_reset(texrender); @@ -946,8 +947,8 @@ static bool update_async_texrender(struct obs_source *source, float convert_width = (float)source->async_convert_width; float convert_height = (float)source->async_convert_height; - gs_effect_t conv = obs->video.conversion_effect; - gs_technique_t tech = gs_effect_get_technique(conv, + gs_effect_t *conv = obs->video.conversion_effect; + gs_technique_t *tech = gs_effect_get_technique(conv, select_conversion_technique(frame->format)); if (!gs_texrender_begin(texrender, cx, cy)) @@ -991,8 +992,8 @@ static bool update_async_texrender(struct obs_source *source, static bool update_async_texture(struct obs_source *source, const struct obs_source_frame *frame) { - gs_texture_t tex = source->async_texture; - gs_texrender_t texrender = source->async_convert_texrender; + gs_texture_t *tex = source->async_texture; + gs_texrender_t *texrender = source->async_convert_texrender; enum convert_type type = get_convert_type(frame->format); uint8_t *ptr; uint32_t linesize; @@ -1042,11 +1043,11 @@ static bool update_async_texture(struct obs_source *source, } static inline void obs_source_draw_texture(struct obs_source *source, - gs_effect_t effect, float *color_matrix, + gs_effect_t *effect, float *color_matrix, float const *color_range_min, float const *color_range_max) { - gs_texture_t tex = source->async_texture; - gs_eparam_t param; + gs_texture_t *tex = source->async_texture; + gs_eparam_t *param; if (source->async_convert_texrender) tex = gs_texrender_get_texture(source->async_convert_texrender); @@ -1076,12 +1077,12 @@ static inline void obs_source_draw_texture(struct obs_source *source, static void obs_source_draw_async_texture(struct obs_source *source) { - gs_effect_t effect = gs_get_effect(); + gs_effect_t *effect = gs_get_effect(); bool yuv = format_is_yuv(source->async_format); bool limited_range = yuv && !source->async_full_range; const char *type = yuv ? "DrawMatrix" : "Draw"; bool def_draw = (!effect); - gs_technique_t tech = NULL; + gs_technique_t *tech = NULL; if (def_draw) { effect = obs_get_default_effect(); @@ -1101,7 +1102,7 @@ static void obs_source_draw_async_texture(struct obs_source *source) } } -static void obs_source_render_async_video(obs_source_t source) +static void obs_source_render_async_video(obs_source_t *source) { if (!source->async_rendered) { struct obs_source_frame *frame = obs_source_get_frame(source); @@ -1121,19 +1122,19 @@ static void obs_source_render_async_video(obs_source_t source) obs_source_draw_async_texture(source); } -static inline void obs_source_render_filters(obs_source_t source) +static inline void obs_source_render_filters(obs_source_t *source) { source->rendering_filter = true; obs_source_video_render(source->filters.array[0]); source->rendering_filter = false; } -static inline void obs_source_default_render(obs_source_t source, +static inline void obs_source_default_render(obs_source_t *source, bool color_matrix) { - gs_effect_t effect = obs->video.default_effect; + gs_effect_t *effect = obs->video.default_effect; const char *tech_name = color_matrix ? "DrawMatrix" : "Draw"; - gs_technique_t tech = gs_effect_get_technique(effect, tech_name); + gs_technique_t *tech = gs_effect_get_technique(effect, tech_name); size_t passes, i; passes = gs_technique_begin(tech); @@ -1146,7 +1147,7 @@ static inline void obs_source_default_render(obs_source_t source, gs_technique_end(tech); } -static inline void obs_source_main_render(obs_source_t source) +static inline void obs_source_main_render(obs_source_t *source) { uint32_t flags = source->info.output_flags; bool color_matrix = (flags & OBS_SOURCE_COLOR_MATRIX) != 0; @@ -1162,7 +1163,7 @@ static inline void obs_source_main_render(obs_source_t source) custom_draw ? NULL : gs_get_effect()); } -void obs_source_video_render(obs_source_t source) +void obs_source_video_render(obs_source_t *source) { if (!source_valid(source)) return; @@ -1179,7 +1180,7 @@ void obs_source_video_render(obs_source_t source) obs_source_render_async_video(source); } -uint32_t obs_source_get_width(obs_source_t source) +uint32_t obs_source_get_width(obs_source_t *source) { if (!source_valid(source)) return 0; @@ -1188,7 +1189,7 @@ uint32_t obs_source_get_width(obs_source_t source) return source->async_width; } -uint32_t obs_source_get_height(obs_source_t source) +uint32_t obs_source_get_height(obs_source_t *source) { if (!source_valid(source)) return 0; @@ -1197,17 +1198,17 @@ uint32_t obs_source_get_height(obs_source_t source) return source->async_height; } -obs_source_t obs_filter_get_parent(obs_source_t filter) +obs_source_t *obs_filter_get_parent(obs_source_t *filter) { return filter ? filter->filter_parent : NULL; } -obs_source_t obs_filter_get_target(obs_source_t filter) +obs_source_t *obs_filter_get_target(obs_source_t *filter) { return filter ? filter->filter_target : NULL; } -void obs_source_filter_add(obs_source_t source, obs_source_t filter) +void obs_source_filter_add(obs_source_t *source, obs_source_t *filter) { if (!source || !filter) return; @@ -1221,7 +1222,7 @@ void obs_source_filter_add(obs_source_t source, obs_source_t filter) } if (source->filters.num) { - obs_source_t *back = da_end(source->filters); + obs_source_t **back = da_end(source->filters); (*back)->filter_target = filter; } @@ -1233,7 +1234,7 @@ void obs_source_filter_add(obs_source_t source, obs_source_t filter) filter->filter_target = source; } -void obs_source_filter_remove(obs_source_t source, obs_source_t filter) +void obs_source_filter_remove(obs_source_t *source, obs_source_t *filter) { size_t idx; @@ -1247,7 +1248,7 @@ void obs_source_filter_remove(obs_source_t source, obs_source_t filter) return; if (idx > 0) { - obs_source_t prev = source->filters.array[idx-1]; + obs_source_t *prev = source->filters.array[idx-1]; prev->filter_target = filter->filter_target; } @@ -1259,7 +1260,7 @@ void obs_source_filter_remove(obs_source_t source, obs_source_t filter) filter->filter_target = NULL; } -void obs_source_filter_set_order(obs_source_t source, obs_source_t filter, +void obs_source_filter_set_order(obs_source_t *source, obs_source_t *filter, enum obs_order_movement movement) { size_t idx, i; @@ -1294,13 +1295,13 @@ void obs_source_filter_set_order(obs_source_t source, obs_source_t filter, /* reorder filter targets, not the nicest way of dealing with things */ for (i = 0; i < source->filters.num; i++) { - obs_source_t next_filter = (i == source->filters.num-1) ? + obs_source_t *next_filter = (i == source->filters.num-1) ? source : source->filters.array[idx+1]; source->filters.array[i]->filter_target = next_filter; } } -obs_data_t obs_source_get_settings(obs_source_t source) +obs_data_t *obs_source_get_settings(obs_source_t *source) { if (!source) return NULL; @@ -1308,7 +1309,7 @@ obs_data_t obs_source_get_settings(obs_source_t source) return source->context.settings; } -static inline struct obs_source_frame *filter_async_video(obs_source_t source, +static inline struct obs_source_frame *filter_async_video(obs_source_t *source, struct obs_source_frame *in) { size_t i; @@ -1396,7 +1397,7 @@ static inline struct obs_source_frame *cache_video( return new_frame; } -static bool ready_async_frame(obs_source_t source, uint64_t sys_time); +static bool ready_async_frame(obs_source_t *source, uint64_t sys_time); static inline void cycle_frames(struct obs_source *source) { @@ -1404,7 +1405,7 @@ static inline void cycle_frames(struct obs_source *source) ready_async_frame(source, os_gettime_ns()); } -void obs_source_output_video(obs_source_t source, +void obs_source_output_video(obs_source_t *source, const struct obs_source_frame *frame) { if (!source || !frame) @@ -1424,7 +1425,7 @@ void obs_source_output_video(obs_source_t source, } } -static inline struct obs_audio_data *filter_async_audio(obs_source_t source, +static inline struct obs_audio_data *filter_async_audio(obs_source_t *source, struct obs_audio_data *in) { size_t i; @@ -1442,7 +1443,7 @@ static inline struct obs_audio_data *filter_async_audio(obs_source_t source, return in; } -static inline void reset_resampler(obs_source_t source, +static inline void reset_resampler(obs_source_t *source, const struct obs_source_audio *audio) { const struct audio_output_info *obs_info; @@ -1474,7 +1475,7 @@ static inline void reset_resampler(obs_source_t source, blog(LOG_ERROR, "creation of resampler failed"); } -static inline void copy_audio_data(obs_source_t source, +static inline void copy_audio_data(obs_source_t *source, const uint8_t *const data[], uint32_t frames, uint64_t ts) { size_t planes = audio_output_get_planes(obs->audio.audio); @@ -1500,7 +1501,7 @@ static inline void copy_audio_data(obs_source_t source, } /* resamples/remixes new audio to the designated main audio output format */ -static void process_audio(obs_source_t source, +static void process_audio(obs_source_t *source, const struct obs_source_audio *audio) { if (source->sample_info.samples_per_sec != audio->samples_per_sec || @@ -1530,7 +1531,7 @@ static void process_audio(obs_source_t source, } } -void obs_source_output_audio(obs_source_t source, +void obs_source_output_audio(obs_source_t *source, const struct obs_source_audio *audio) { uint32_t flags; @@ -1569,7 +1570,7 @@ void obs_source_output_audio(obs_source_t source, pthread_mutex_unlock(&source->filter_mutex); } -static inline bool frame_out_of_bounds(obs_source_t source, uint64_t ts) +static inline bool frame_out_of_bounds(obs_source_t *source, uint64_t ts) { if (ts < source->last_frame_ts) return ((source->last_frame_ts - ts) > MAX_TIMESTAMP_JUMP); @@ -1579,7 +1580,7 @@ static inline bool frame_out_of_bounds(obs_source_t source, uint64_t ts) /* #define DEBUG_ASYNC_FRAMES 1 */ -static bool ready_async_frame(obs_source_t source, uint64_t sys_time) +static bool ready_async_frame(obs_source_t *source, uint64_t sys_time) { struct obs_source_frame *next_frame = source->video_frames.array[0]; struct obs_source_frame *frame = NULL; @@ -1657,7 +1658,7 @@ static bool ready_async_frame(obs_source_t source, uint64_t sys_time) return frame != NULL; } -static inline struct obs_source_frame *get_closest_frame(obs_source_t source, +static inline struct obs_source_frame *get_closest_frame(obs_source_t *source, uint64_t sys_time) { if (ready_async_frame(source, sys_time)) { @@ -1675,7 +1676,7 @@ static inline struct obs_source_frame *get_closest_frame(obs_source_t source, * the frame with the closest timing to ensure sync. Also ensures that timing * with audio is synchronized. */ -struct obs_source_frame *obs_source_get_frame(obs_source_t source) +struct obs_source_frame *obs_source_get_frame(obs_source_t *source) { struct obs_source_frame *frame = NULL; uint64_t sys_time; @@ -1716,7 +1717,7 @@ unlock: return frame; } -void obs_source_release_frame(obs_source_t source, +void obs_source_release_frame(obs_source_t *source, struct obs_source_frame *frame) { if (source && frame) { @@ -1725,12 +1726,12 @@ void obs_source_release_frame(obs_source_t source, } } -const char *obs_source_get_name(obs_source_t source) +const char *obs_source_get_name(obs_source_t *source) { return source ? source->context.name : NULL; } -void obs_source_set_name(obs_source_t source, const char *name) +void obs_source_set_name(obs_source_t *source, const char *name) { if (!source) return; @@ -1750,21 +1751,21 @@ void obs_source_set_name(obs_source_t source, const char *name) } } -enum obs_source_type obs_source_get_type(obs_source_t source) +enum obs_source_type obs_source_get_type(obs_source_t *source) { return source ? source->info.type : OBS_SOURCE_TYPE_INPUT; } -const char *obs_source_get_id(obs_source_t source) +const char *obs_source_get_id(obs_source_t *source) { return source ? source->info.id : NULL; } -static inline void render_filter_bypass(obs_source_t target, gs_effect_t effect, - bool use_matrix) +static inline void render_filter_bypass(obs_source_t *target, + gs_effect_t *effect, bool use_matrix) { const char *tech_name = use_matrix ? "DrawMatrix" : "Draw"; - gs_technique_t tech = gs_effect_get_technique(effect, tech_name); + gs_technique_t *tech = gs_effect_get_technique(effect, tech_name); size_t passes, i; passes = gs_technique_begin(tech); @@ -1776,12 +1777,12 @@ static inline void render_filter_bypass(obs_source_t target, gs_effect_t effect, gs_technique_end(tech); } -static inline void render_filter_tex(gs_texture_t tex, gs_effect_t effect, +static inline void render_filter_tex(gs_texture_t *tex, gs_effect_t *effect, uint32_t width, uint32_t height, bool use_matrix) { const char *tech_name = use_matrix ? "DrawMatrix" : "Draw"; - gs_technique_t tech = gs_effect_get_technique(effect, tech_name); - gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); + gs_technique_t *tech = gs_effect_get_technique(effect, tech_name); + gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); size_t passes, i; gs_effect_set_texture(image, tex); @@ -1795,11 +1796,11 @@ static inline void render_filter_tex(gs_texture_t tex, gs_effect_t effect, gs_technique_end(tech); } -void obs_source_process_filter(obs_source_t filter, gs_effect_t effect, +void obs_source_process_filter(obs_source_t *filter, gs_effect_t *effect, uint32_t width, uint32_t height, enum gs_color_format format, enum obs_allow_direct_render allow_direct) { - obs_source_t target, parent; + obs_source_t *target, *parent; uint32_t target_flags, parent_flags; int cx, cy; bool use_matrix, expects_def, can_directly; @@ -1844,17 +1845,17 @@ void obs_source_process_filter(obs_source_t filter, gs_effect_t effect, effect, width, height, use_matrix); } -signal_handler_t obs_source_get_signal_handler(obs_source_t source) +signal_handler_t *obs_source_get_signal_handler(obs_source_t *source) { return source ? source->context.signals : NULL; } -proc_handler_t obs_source_get_proc_handler(obs_source_t source) +proc_handler_t *obs_source_get_proc_handler(obs_source_t *source) { return source ? source->context.procs : NULL; } -void obs_source_set_volume(obs_source_t source, float volume) +void obs_source_set_volume(obs_source_t *source, float volume) { if (source) { struct calldata data = {0}; @@ -1871,7 +1872,7 @@ void obs_source_set_volume(obs_source_t source, float volume) } } -static void set_tree_preset_vol(obs_source_t parent, obs_source_t child, +static void set_tree_preset_vol(obs_source_t *parent, obs_source_t *child, void *param) { float *vol = param; @@ -1880,7 +1881,7 @@ static void set_tree_preset_vol(obs_source_t parent, obs_source_t child, UNUSED_PARAMETER(parent); } -void obs_source_set_present_volume(obs_source_t source, float volume) +void obs_source_set_present_volume(obs_source_t *source, float volume) { if (source) { source->present_volume = volume; @@ -1894,23 +1895,23 @@ void obs_source_set_present_volume(obs_source_t source, float volume) } } -float obs_source_get_volume(obs_source_t source) +float obs_source_get_volume(obs_source_t *source) { return source ? source->user_volume : 0.0f; } -float obs_source_get_present_volume(obs_source_t source) +float obs_source_get_present_volume(obs_source_t *source) { return source ? source->present_volume : 0.0f; } -void obs_source_set_sync_offset(obs_source_t source, int64_t offset) +void obs_source_set_sync_offset(obs_source_t *source, int64_t offset) { if (source) source->sync_offset = offset; } -int64_t obs_source_get_sync_offset(obs_source_t source) +int64_t obs_source_get_sync_offset(obs_source_t *source) { return source ? source->sync_offset : 0; } @@ -1920,7 +1921,7 @@ struct source_enum_data { void *param; }; -static void enum_source_tree_callback(obs_source_t parent, obs_source_t child, +static void enum_source_tree_callback(obs_source_t *parent, obs_source_t *child, void *param) { struct source_enum_data *data = param; @@ -1938,7 +1939,7 @@ static void enum_source_tree_callback(obs_source_t parent, obs_source_t child, data->enum_callback(parent, child, data->param); } -void obs_source_enum_sources(obs_source_t source, +void obs_source_enum_sources(obs_source_t *source, obs_source_enum_proc_t enum_callback, void *param) { @@ -1956,7 +1957,7 @@ void obs_source_enum_sources(obs_source_t source, obs_source_release(source); } -void obs_source_enum_tree(obs_source_t source, +void obs_source_enum_tree(obs_source_t *source, obs_source_enum_proc_t enum_callback, void *param) { @@ -1978,7 +1979,7 @@ void obs_source_enum_tree(obs_source_t source, obs_source_release(source); } -void obs_source_add_child(obs_source_t parent, obs_source_t child) +void obs_source_add_child(obs_source_t *parent, obs_source_t *child) { if (!parent || !child) return; @@ -1989,7 +1990,7 @@ void obs_source_add_child(obs_source_t parent, obs_source_t child) } } -void obs_source_remove_child(obs_source_t parent, obs_source_t child) +void obs_source_remove_child(obs_source_t *parent, obs_source_t *child) { if (!parent || !child) return; @@ -2000,7 +2001,7 @@ void obs_source_remove_child(obs_source_t parent, obs_source_t child) } } -static void reset_transition_vol(obs_source_t parent, obs_source_t child, +static void reset_transition_vol(obs_source_t *parent, obs_source_t *child, void *param) { child->transition_volume = 0.0f; @@ -2009,7 +2010,7 @@ static void reset_transition_vol(obs_source_t parent, obs_source_t child, UNUSED_PARAMETER(param); } -static void add_transition_vol(obs_source_t parent, obs_source_t child, +static void add_transition_vol(obs_source_t *parent, obs_source_t *child, void *param) { float *vol = param; @@ -2018,7 +2019,7 @@ static void add_transition_vol(obs_source_t parent, obs_source_t child, UNUSED_PARAMETER(parent); } -static void apply_transition_vol(obs_source_t parent, obs_source_t child, +static void apply_transition_vol(obs_source_t *parent, obs_source_t *child, void *param) { child->present_volume = child->transition_volume; @@ -2027,13 +2028,13 @@ static void apply_transition_vol(obs_source_t parent, obs_source_t child, UNUSED_PARAMETER(param); } -void obs_transition_begin_frame(obs_source_t transition) +void obs_transition_begin_frame(obs_source_t *transition) { if (!transition) return; obs_source_enum_tree(transition, reset_transition_vol, NULL); } -void obs_source_set_transition_vol(obs_source_t source, float vol) +void obs_source_set_transition_vol(obs_source_t *source, float vol) { if (!source) return; @@ -2041,19 +2042,19 @@ void obs_source_set_transition_vol(obs_source_t source, float vol) obs_source_enum_tree(source, add_transition_vol, &vol); } -void obs_transition_end_frame(obs_source_t transition) +void obs_transition_end_frame(obs_source_t *transition) { if (!transition) return; obs_source_enum_tree(transition, apply_transition_vol, NULL); } -void obs_source_save(obs_source_t source) +void obs_source_save(obs_source_t *source) { if (!source_valid(source) || !source->info.save) return; source->info.save(source->context.data, source->context.settings); } -void obs_source_load(obs_source_t source) +void obs_source_load(obs_source_t *source) { if (!source_valid(source) || !source->info.load) return; source->info.load(source->context.data, source->context.settings); diff --git a/libobs/obs-source.h b/libobs/obs-source.h index 9bdccd375..97af92370 100644 --- a/libobs/obs-source.h +++ b/libobs/obs-source.h @@ -98,8 +98,8 @@ enum obs_source_type { /** @} */ -typedef void (*obs_source_enum_proc_t)(obs_source_t parent, obs_source_t child, - void *param); +typedef void (*obs_source_enum_proc_t)(obs_source_t *parent, + obs_source_t *child, void *param); /** * Source definition structure @@ -137,7 +137,7 @@ struct obs_source_info { * @param source Source that this data is assoicated with * @return The data associated with this source */ - void *(*create)(obs_data_t settings, obs_source_t source); + void *(*create)(obs_data_t *settings, obs_source_t *source); /** * Destroys the private data for the source @@ -163,14 +163,14 @@ struct obs_source_info { * * @param[out] settings Data to assign default settings to */ - void (*get_defaults)(obs_data_t settings); + void (*get_defaults)(obs_data_t *settings); /** * Gets the property information of this source * * @return The properties data */ - obs_properties_t (*get_properties)(void); + obs_properties_t *(*get_properties)(void); /** * Updates the settings for this source @@ -178,7 +178,7 @@ struct obs_source_info { * @param data Source data * @param settings New settings for this source */ - void (*update)(void *data, obs_data_t settings); + void (*update)(void *data, obs_data_t *settings); /** Called when the source has been activated in the main view */ void (*activate)(void *data); @@ -230,7 +230,7 @@ struct obs_source_info { * be NULL, and the source is expected to process with * an effect manually. */ - void (*video_render)(void *data, gs_effect_t effect); + void (*video_render)(void *data, gs_effect_t *effect); /** * Called to filter raw async video data. @@ -280,7 +280,7 @@ struct obs_source_info { * @param data Source data * @param settings Settings */ - void (*save)(void *data, obs_data_t settings); + void (*save)(void *data, obs_data_t *settings); /** * Called when loading a source from saved data. This should be called @@ -290,7 +290,7 @@ struct obs_source_info { * @param data Source data * @param settings Settings */ - void (*load)(void *data, obs_data_t settings); + void (*load)(void *data, obs_data_t *settings); /** * Called when interacting with a source and a mouse-down or mouse-up diff --git a/libobs/obs-video.c b/libobs/obs-video.c index e7d1ca839..44af5a5d9 100644 --- a/libobs/obs-video.c +++ b/libobs/obs-video.c @@ -113,16 +113,16 @@ static inline void render_main_texture(struct obs_core_video *video, static inline void render_output_texture(struct obs_core_video *video, int cur_texture, int prev_texture) { - gs_texture_t texture = video->render_textures[prev_texture]; - gs_texture_t target = video->output_textures[cur_texture]; + gs_texture_t *texture = video->render_textures[prev_texture]; + gs_texture_t *target = video->output_textures[cur_texture]; uint32_t width = gs_texture_get_width(target); uint32_t height = gs_texture_get_height(target); /* TODO: replace with actual downscalers or unpackers */ - gs_effect_t effect = video->default_effect; - gs_technique_t tech = gs_effect_get_technique(effect, "DrawMatrix"); - gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); - gs_eparam_t matrix = gs_effect_get_param_by_name(effect, + gs_effect_t *effect = video->default_effect; + gs_technique_t *tech = gs_effect_get_technique(effect, "DrawMatrix"); + gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); + gs_eparam_t *matrix = gs_effect_get_param_by_name(effect, "color_matrix"); size_t passes, i; @@ -155,24 +155,24 @@ static inline void render_output_texture(struct obs_core_video *video, video->textures_output[cur_texture] = true; } -static inline void set_eparam(gs_effect_t effect, const char *name, float val) +static inline void set_eparam(gs_effect_t *effect, const char *name, float val) { - gs_eparam_t param = gs_effect_get_param_by_name(effect, name); + gs_eparam_t *param = gs_effect_get_param_by_name(effect, name); gs_effect_set_float(param, val); } static void render_convert_texture(struct obs_core_video *video, int cur_texture, int prev_texture) { - gs_texture_t texture = video->output_textures[prev_texture]; - gs_texture_t target = video->convert_textures[cur_texture]; + gs_texture_t *texture = video->output_textures[prev_texture]; + gs_texture_t *target = video->convert_textures[cur_texture]; float fwidth = (float)video->output_width; float fheight = (float)video->output_height; size_t passes, i; - gs_effect_t effect = video->conversion_effect; - gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); - gs_technique_t tech = gs_effect_get_technique(effect, + gs_effect_t *effect = video->conversion_effect; + gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); + gs_technique_t *tech = gs_effect_get_technique(effect, video->conversion_tech); if (!video->textures_output[prev_texture]) @@ -210,9 +210,9 @@ static void render_convert_texture(struct obs_core_video *video, static inline void stage_output_texture(struct obs_core_video *video, int cur_texture, int prev_texture) { - gs_texture_t texture; + gs_texture_t *texture; bool texture_ready; - gs_stagesurf_t copy = video->copy_surfaces[cur_texture]; + gs_stagesurf_t *copy = video->copy_surfaces[cur_texture]; if (video->gpu_conversion) { texture = video->convert_textures[prev_texture]; @@ -256,7 +256,7 @@ static inline void render_video(struct obs_core_video *video, int cur_texture, static inline bool download_frame(struct obs_core_video *video, int prev_texture, struct video_data *frame) { - gs_stagesurf_t surface = video->copy_surfaces[prev_texture]; + gs_stagesurf_t *surface = video->copy_surfaces[prev_texture]; if (!video->textures_copied[prev_texture]) return false; diff --git a/libobs/obs-view.c b/libobs/obs-view.c index 156cc44b4..3810d2d9e 100644 --- a/libobs/obs-view.c +++ b/libobs/obs-view.c @@ -32,7 +32,7 @@ bool obs_view_init(struct obs_view *view) return true; } -obs_view_t obs_view_create(void) +obs_view_t *obs_view_create(void) { struct obs_view *view = bzalloc(sizeof(struct obs_view)); @@ -55,7 +55,7 @@ void obs_view_free(struct obs_view *view) pthread_mutex_destroy(&view->channels_mutex); } -void obs_view_destroy(obs_view_t view) +void obs_view_destroy(obs_view_t *view) { if (view) { obs_view_free(view); @@ -63,9 +63,9 @@ void obs_view_destroy(obs_view_t view) } } -obs_source_t obs_view_get_source(obs_view_t view, uint32_t channel) +obs_source_t *obs_view_get_source(obs_view_t *view, uint32_t channel) { - obs_source_t source; + obs_source_t *source; assert(channel < MAX_CHANNELS); if (!view) return NULL; @@ -82,8 +82,8 @@ obs_source_t obs_view_get_source(obs_view_t view, uint32_t channel) return source; } -void obs_view_set_source(obs_view_t view, uint32_t channel, - obs_source_t source) +void obs_view_set_source(obs_view_t *view, uint32_t channel, + obs_source_t *source) { struct obs_source *prev_source; @@ -110,7 +110,7 @@ void obs_view_set_source(obs_view_t view, uint32_t channel, } } -void obs_view_render(obs_view_t view) +void obs_view_render(obs_view_t *view) { if (!view) return; diff --git a/libobs/obs.c b/libobs/obs.c index ef940b6d6..e06ff457f 100644 --- a/libobs/obs.c +++ b/libobs/obs.c @@ -805,12 +805,12 @@ void obs_leave_graphics(void) gs_leave_context(); } -audio_t obs_get_audio(void) +audio_t *obs_get_audio(void) { return (obs != NULL) ? obs->audio.audio : NULL; } -video_t obs_get_video(void) +video_t *obs_get_video(void) { return (obs != NULL) ? obs->video.video : NULL; } @@ -875,7 +875,7 @@ void *obs_create_ui(const char *name, const char *task, const char *target, return callback ? callback->create(data, ui_data) : NULL; } -bool obs_add_source(obs_source_t source) +bool obs_add_source(obs_source_t *source) { struct calldata params = {0}; @@ -894,13 +894,13 @@ bool obs_add_source(obs_source_t source) return true; } -obs_source_t obs_get_output_source(uint32_t channel) +obs_source_t *obs_get_output_source(uint32_t channel) { if (!obs) return NULL; return obs_view_get_source(&obs->data.main_view, channel); } -void obs_set_output_source(uint32_t channel, obs_source_t source) +void obs_set_output_source(uint32_t channel, obs_source_t *source) { assert(channel < MAX_CHANNELS); @@ -937,7 +937,7 @@ void obs_set_output_source(uint32_t channel, obs_source_t source) } } -void obs_enum_sources(bool (*enum_proc)(void*, obs_source_t), void *param) +void obs_enum_sources(bool (*enum_proc)(void*, obs_source_t*), void *param) { if (!obs) return; @@ -975,28 +975,28 @@ static inline void obs_enum(void *pstart, pthread_mutex_t *mutex, void *proc, pthread_mutex_unlock(mutex); } -void obs_enum_outputs(bool (*enum_proc)(void*, obs_output_t), void *param) +void obs_enum_outputs(bool (*enum_proc)(void*, obs_output_t*), void *param) { if (!obs) return; obs_enum(&obs->data.first_output, &obs->data.outputs_mutex, enum_proc, param); } -void obs_enum_encoders(bool (*enum_proc)(void*, obs_encoder_t), void *param) +void obs_enum_encoders(bool (*enum_proc)(void*, obs_encoder_t*), void *param) { if (!obs) return; obs_enum(&obs->data.first_encoder, &obs->data.encoders_mutex, enum_proc, param); } -void obs_enum_services(bool (*enum_proc)(void*, obs_service_t), void *param) +void obs_enum_services(bool (*enum_proc)(void*, obs_service_t*), void *param) { if (!obs) return; obs_enum(&obs->data.first_service, &obs->data.services_mutex, enum_proc, param); } -obs_source_t obs_get_source_by_name(const char *name) +obs_source_t *obs_get_source_by_name(const char *name) { struct obs_core_data *data = &obs->data; struct obs_source *source = NULL; @@ -1038,46 +1038,46 @@ static inline void *get_context_by_name(void *vfirst, const char *name, return context; } -obs_output_t obs_get_output_by_name(const char *name) +obs_output_t *obs_get_output_by_name(const char *name) { if (!obs) return NULL; return get_context_by_name(&obs->data.first_output, name, &obs->data.outputs_mutex); } -obs_encoder_t obs_get_encoder_by_name(const char *name) +obs_encoder_t *obs_get_encoder_by_name(const char *name) { if (!obs) return NULL; return get_context_by_name(&obs->data.first_encoder, name, &obs->data.encoders_mutex); } -obs_service_t obs_get_service_by_name(const char *name) +obs_service_t *obs_get_service_by_name(const char *name) { if (!obs) return NULL; return get_context_by_name(&obs->data.first_service, name, &obs->data.services_mutex); } -gs_effect_t obs_get_default_effect(void) +gs_effect_t *obs_get_default_effect(void) { if (!obs) return NULL; return obs->video.default_effect; } -gs_effect_t obs_get_solid_effect(void) +gs_effect_t *obs_get_solid_effect(void) { if (!obs) return NULL; return obs->video.solid_effect; } -signal_handler_t obs_get_signal_handler(void) +signal_handler_t *obs_get_signal_handler(void) { if (!obs) return NULL; return obs->signals; } -proc_handler_t obs_get_proc_handler(void) +proc_handler_t *obs_get_proc_handler(void) { if (!obs) return NULL; return obs->procs; @@ -1143,12 +1143,12 @@ float obs_get_present_volume(void) return obs ? obs->audio.present_volume : 0.0f; } -obs_source_t obs_load_source(obs_data_t source_data) +obs_source_t *obs_load_source(obs_data_t *source_data) { - obs_source_t source; + obs_source_t *source; const char *name = obs_data_get_string(source_data, "name"); const char *id = obs_data_get_string(source_data, "id"); - obs_data_t settings = obs_data_get_obj(source_data, "settings"); + obs_data_t *settings = obs_data_get_obj(source_data, "settings"); double volume; source = obs_source_create(OBS_SOURCE_TYPE_INPUT, id, name, settings); @@ -1162,7 +1162,7 @@ obs_source_t obs_load_source(obs_data_t source_data) return source; } -void obs_load_sources(obs_data_array_t array) +void obs_load_sources(obs_data_array_t *array) { size_t count; size_t i; @@ -1174,8 +1174,8 @@ void obs_load_sources(obs_data_array_t array) pthread_mutex_lock(&obs->data.user_sources_mutex); for (i = 0; i < count; i++) { - obs_data_t source_data = obs_data_array_item(array, i); - obs_source_t source = obs_load_source(source_data); + obs_data_t *source_data = obs_data_array_item(array, i); + obs_source_t *source = obs_load_source(source_data); obs_add_source(source); @@ -1190,10 +1190,10 @@ void obs_load_sources(obs_data_array_t array) pthread_mutex_unlock(&obs->data.user_sources_mutex); } -obs_data_t obs_save_source(obs_source_t source) +obs_data_t *obs_save_source(obs_source_t *source) { - obs_data_t source_data = obs_data_create(); - obs_data_t settings = obs_source_get_settings(source); + obs_data_t *source_data = obs_data_create(); + obs_data_t *settings = obs_source_get_settings(source); float volume = obs_source_get_volume(source); const char *name = obs_source_get_name(source); const char *id = obs_source_get_id(source); @@ -1210,9 +1210,9 @@ obs_data_t obs_save_source(obs_source_t source) return source_data; } -obs_data_array_t obs_save_sources(void) +obs_data_array_t *obs_save_sources(void) { - obs_data_array_t array; + obs_data_array_t *array; size_t i; if (!obs) return NULL; @@ -1222,8 +1222,8 @@ obs_data_array_t obs_save_sources(void) pthread_mutex_lock(&obs->data.user_sources_mutex); for (i = 0; i < obs->data.user_sources.num; i++) { - obs_source_t source = obs->data.user_sources.array[i]; - obs_data_t source_data = obs_save_source(source); + obs_source_t *source = obs->data.user_sources.array[i]; + obs_data_t *source_data = obs_save_source(source); obs_data_array_push_back(array, source_data); obs_data_release(source_data); @@ -1250,7 +1250,7 @@ static inline char *dup_name(const char *name) static inline bool obs_context_data_init_wrap( struct obs_context_data *context, - obs_data_t settings, + obs_data_t *settings, const char *name) { assert(context); @@ -1275,7 +1275,7 @@ static inline bool obs_context_data_init_wrap( bool obs_context_data_init( struct obs_context_data *context, - obs_data_t settings, + obs_data_t *settings, const char *name) { if (obs_context_data_init_wrap(context, settings, name)) { diff --git a/libobs/obs.h b/libobs/obs.h index 8bbe8b2e5..e57e38208 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -48,15 +48,15 @@ struct obs_encoder; struct obs_service; struct obs_module; -typedef struct obs_display *obs_display_t; -typedef struct obs_view *obs_view_t; -typedef struct obs_source *obs_source_t; -typedef struct obs_scene *obs_scene_t; -typedef struct obs_scene_item *obs_sceneitem_t; -typedef struct obs_output *obs_output_t; -typedef struct obs_encoder *obs_encoder_t; -typedef struct obs_service *obs_service_t; -typedef struct obs_module *obs_module_t; +typedef struct obs_display obs_display_t; +typedef struct obs_view obs_view_t; +typedef struct obs_source obs_source_t; +typedef struct obs_scene obs_scene_t; +typedef struct obs_scene_item obs_sceneitem_t; +typedef struct obs_output obs_output_t; +typedef struct obs_encoder obs_encoder_t; +typedef struct obs_service obs_service_t; +typedef struct obs_module obs_module_t; #include "obs-source.h" #include "obs-encoder.h" @@ -280,7 +280,7 @@ EXPORT bool obs_get_audio_info(struct audio_output_info *ai); * MODULE_MISSING_EXPORTS if required exports are missing * MODULE_INCOMPATIBLE_VER if incompatible version */ -EXPORT int obs_open_module(obs_module_t *module, const char *path, +EXPORT int obs_open_module(obs_module_t **module, const char *path, const char *data_path); /** @@ -288,25 +288,25 @@ EXPORT int obs_open_module(obs_module_t *module, const char *path, * module is alrady loaded, then this function does nothing and returns * successful. */ -EXPORT bool obs_init_module(obs_module_t module); +EXPORT bool obs_init_module(obs_module_t *module); /** Returns the module file name */ -EXPORT const char *obs_get_module_file_name(obs_module_t module); +EXPORT const char *obs_get_module_file_name(obs_module_t *module); /** Returns the module full name */ -EXPORT const char *obs_get_module_name(obs_module_t module); +EXPORT const char *obs_get_module_name(obs_module_t *module); /** Returns the module author(s) */ -EXPORT const char *obs_get_module_author(obs_module_t module); +EXPORT const char *obs_get_module_author(obs_module_t *module); /** Returns the module description */ -EXPORT const char *obs_get_module_description(obs_module_t module); +EXPORT const char *obs_get_module_description(obs_module_t *module); /** Returns the module binary path */ -EXPORT const char *obs_get_module_binary_path(obs_module_t module); +EXPORT const char *obs_get_module_binary_path(obs_module_t *module); /** Returns the module data path */ -EXPORT const char *obs_get_module_data_path(obs_module_t module); +EXPORT const char *obs_get_module_data_path(obs_module_t *module); /** * Adds a module search path to be used with obs_find_modules. If the search @@ -332,13 +332,13 @@ typedef void (*obs_find_module_callback_t)(void *param, /** Finds all modules within the search paths added by obs_add_module_path. */ EXPORT void obs_find_modules(obs_find_module_callback_t callback, void *param); -typedef void (*obs_enum_module_callback_t)(void *param, obs_module_t module); +typedef void (*obs_enum_module_callback_t)(void *param, obs_module_t *module); /** Enumerates all loaded modules */ EXPORT void obs_enum_modules(obs_enum_module_callback_t callback, void *param); /** Helper function for using default module locale */ -EXPORT lookup_t obs_module_load_locale(obs_module_t module, +EXPORT lookup_t *obs_module_load_locale(obs_module_t *module, const char *default_locale, const char *locale); /** @@ -352,7 +352,7 @@ EXPORT lookup_t obs_module_load_locale(obs_module_t module, * @param file The file to locate * @return Path string, or NULL if not found. Use bfree to free string. */ -EXPORT char *obs_find_module_file(obs_module_t module, const char *file); +EXPORT char *obs_find_module_file(obs_module_t *module, const char *file); /** * Enumerates all available inputs source types. @@ -394,10 +394,10 @@ EXPORT void obs_enter_graphics(void); EXPORT void obs_leave_graphics(void); /** Gets the main audio output handler for this OBS context */ -EXPORT audio_t obs_get_audio(void); +EXPORT audio_t *obs_get_audio(void); /** Gets the main video output handler for this OBS context */ -EXPORT video_t obs_get_video(void); +EXPORT video_t *obs_get_video(void); /** * Adds a source to the user source list and increments the reference counter @@ -407,16 +407,16 @@ EXPORT video_t obs_get_video(void); * Typically when a transition is active, it is not meant to be accessible by * users, so there's no reason for a user to see such a source. */ -EXPORT bool obs_add_source(obs_source_t source); +EXPORT bool obs_add_source(obs_source_t *source); /** Sets the primary output source for a channel. */ -EXPORT void obs_set_output_source(uint32_t channel, obs_source_t source); +EXPORT void obs_set_output_source(uint32_t channel, obs_source_t *source); /** * Gets the primary output source for a channel and increments the reference * counter for that source. Use obs_source_release to release. */ -EXPORT obs_source_t obs_get_output_source(uint32_t channel); +EXPORT obs_source_t *obs_get_output_source(uint32_t channel); /** * Enumerates user sources @@ -424,19 +424,19 @@ EXPORT obs_source_t obs_get_output_source(uint32_t channel); * Callback function returns true to continue enumeration, or false to end * enumeration. */ -EXPORT void obs_enum_sources(bool (*enum_proc)(void*, obs_source_t), +EXPORT void obs_enum_sources(bool (*enum_proc)(void*, obs_source_t*), void *param); /** Enumerates outputs */ -EXPORT void obs_enum_outputs(bool (*enum_proc)(void*, obs_output_t), +EXPORT void obs_enum_outputs(bool (*enum_proc)(void*, obs_output_t*), void *param); /** Enumerates encoders */ -EXPORT void obs_enum_encoders(bool (*enum_proc)(void*, obs_encoder_t), +EXPORT void obs_enum_encoders(bool (*enum_proc)(void*, obs_encoder_t*), void *param); /** Enumerates encoders */ -EXPORT void obs_enum_services(bool (*enum_proc)(void*, obs_service_t), +EXPORT void obs_enum_services(bool (*enum_proc)(void*, obs_service_t*), void *param); /** @@ -445,28 +445,28 @@ EXPORT void obs_enum_services(bool (*enum_proc)(void*, obs_service_t), * Increments the source reference counter, use obs_source_release to * release it when complete. */ -EXPORT obs_source_t obs_get_source_by_name(const char *name); +EXPORT obs_source_t *obs_get_source_by_name(const char *name); /** Gets an output by its name. */ -EXPORT obs_output_t obs_get_output_by_name(const char *name); +EXPORT obs_output_t *obs_get_output_by_name(const char *name); /** Gets an encoder by its name. */ -EXPORT obs_encoder_t obs_get_encoder_by_name(const char *name); +EXPORT obs_encoder_t *obs_get_encoder_by_name(const char *name); /** Gets an service by its name. */ -EXPORT obs_service_t obs_get_service_by_name(const char *name); +EXPORT obs_service_t *obs_get_service_by_name(const char *name); /** Returns the default effect for generic RGB/YUV drawing */ -EXPORT gs_effect_t obs_get_default_effect(void); +EXPORT gs_effect_t *obs_get_default_effect(void); /** Returns the solid effect for drawing solid colors */ -EXPORT gs_effect_t obs_get_solid_effect(void); +EXPORT gs_effect_t *obs_get_solid_effect(void); /** Returns the primary obs signal handler */ -EXPORT signal_handler_t obs_get_signal_handler(void); +EXPORT signal_handler_t *obs_get_signal_handler(void); /** Returns the primary obs procedure handler */ -EXPORT proc_handler_t obs_get_proc_handler(void); +EXPORT proc_handler_t *obs_get_proc_handler(void); /** Adds a draw callback to the main render context */ EXPORT void obs_add_draw_callback( @@ -497,16 +497,16 @@ EXPORT float obs_get_master_volume(void); EXPORT float obs_get_present_volume(void); /** Saves a source to settings data */ -EXPORT obs_data_t obs_save_source(obs_source_t source); +EXPORT obs_data_t *obs_save_source(obs_source_t *source); /** Loads a source from settings data */ -EXPORT obs_source_t obs_load_source(obs_data_t data); +EXPORT obs_source_t *obs_load_source(obs_data_t *data); /** Loads sources from a data array */ -EXPORT void obs_load_sources(obs_data_array_t array); +EXPORT void obs_load_sources(obs_data_array_t *array); /** Saves sources to a data array */ -EXPORT obs_data_array_t obs_save_sources(void); +EXPORT obs_data_array_t *obs_save_sources(void); /* ------------------------------------------------------------------------- */ @@ -518,21 +518,21 @@ EXPORT obs_data_array_t obs_save_sources(void); * A view can be used for things like separate previews, or drawing * sources separately. */ -EXPORT obs_view_t obs_view_create(void); +EXPORT obs_view_t *obs_view_create(void); /** Destroys this view context */ -EXPORT void obs_view_destroy(obs_view_t view); +EXPORT void obs_view_destroy(obs_view_t *view); /** Sets the source to be used for this view context. */ -EXPORT void obs_view_set_source(obs_view_t view, uint32_t channel, - obs_source_t source); +EXPORT void obs_view_set_source(obs_view_t *view, uint32_t channel, + obs_source_t *source); /** Gets the source currently in use for this view context */ -EXPORT obs_source_t obs_view_get_source(obs_view_t view, +EXPORT obs_source_t *obs_view_get_source(obs_view_t *view, uint32_t channel); /** Renders the sources of this view context */ -EXPORT void obs_view_render(obs_view_t view); +EXPORT void obs_view_render(obs_view_t *view); /* ------------------------------------------------------------------------- */ @@ -545,13 +545,14 @@ EXPORT void obs_view_render(obs_view_t view); * @param graphics_data The swap chain initialization data. * @return The new display context, or NULL if failed. */ -EXPORT obs_display_t obs_display_create(struct gs_init_data *graphics_data); +EXPORT obs_display_t *obs_display_create(struct gs_init_data *graphics_data); /** Destroys a display context */ -EXPORT void obs_display_destroy(obs_display_t display); +EXPORT void obs_display_destroy(obs_display_t *display); /** Changes the size of this display */ -EXPORT void obs_display_resize(obs_display_t display, uint32_t cx, uint32_t cy); +EXPORT void obs_display_resize(obs_display_t *display, uint32_t cx, + uint32_t cy); /** * Adds a draw callback for this display context @@ -561,12 +562,12 @@ EXPORT void obs_display_resize(obs_display_t display, uint32_t cx, uint32_t cy); * updates. * @param param The user data to be associated with this draw callback. */ -EXPORT void obs_display_add_draw_callback(obs_display_t display, +EXPORT void obs_display_add_draw_callback(obs_display_t *display, void (*draw)(void *param, uint32_t cx, uint32_t cy), void *param); /** Removes a draw callback for this display context */ -EXPORT void obs_display_remove_draw_callback(obs_display_t display, +EXPORT void obs_display_remove_draw_callback(obs_display_t *display, void (*draw)(void *param, uint32_t cx, uint32_t cy), void *param); @@ -584,120 +585,121 @@ EXPORT const char *obs_source_get_display_name(enum obs_source_type type, * The "source" context is used for anything related to presenting * or modifying video/audio. Use obs_source_release to release it. */ -EXPORT obs_source_t obs_source_create(enum obs_source_type type, - const char *id, const char *name, obs_data_t settings); +EXPORT obs_source_t *obs_source_create(enum obs_source_type type, + const char *id, const char *name, obs_data_t *settings); /** * Adds/releases a reference to a source. When the last reference is * released, the source is destroyed. */ -EXPORT void obs_source_addref(obs_source_t source); -EXPORT void obs_source_release(obs_source_t source); +EXPORT void obs_source_addref(obs_source_t *source); +EXPORT void obs_source_release(obs_source_t *source); /** Notifies all references that the source should be released */ -EXPORT void obs_source_remove(obs_source_t source); +EXPORT void obs_source_remove(obs_source_t *source); /** Returns true if the source should be released */ -EXPORT bool obs_source_removed(obs_source_t source); +EXPORT bool obs_source_removed(obs_source_t *source); /** * Retrieves flags that specify what type of data the source presents/modifies. */ -EXPORT uint32_t obs_source_get_output_flags(obs_source_t source); +EXPORT uint32_t obs_source_get_output_flags(obs_source_t *source); /** Gets the default settings for a source type */ -EXPORT obs_data_t obs_get_source_defaults(enum obs_source_type type, +EXPORT obs_data_t *obs_get_source_defaults(enum obs_source_type type, const char *id); /** Returns the property list, if any. Free with obs_properties_destroy */ -EXPORT obs_properties_t obs_get_source_properties(enum obs_source_type type, +EXPORT obs_properties_t *obs_get_source_properties(enum obs_source_type type, const char *id); /** * Returns the properties list for a specific existing source. Free with * obs_properties_destroy */ -EXPORT obs_properties_t obs_source_properties(obs_source_t source); +EXPORT obs_properties_t *obs_source_properties(obs_source_t *source); /** Updates settings for this source */ -EXPORT void obs_source_update(obs_source_t source, obs_data_t settings); +EXPORT void obs_source_update(obs_source_t *source, obs_data_t *settings); /** Renders a video source. */ -EXPORT void obs_source_video_render(obs_source_t source); +EXPORT void obs_source_video_render(obs_source_t *source); /** Gets the width of a source (if it has video) */ -EXPORT uint32_t obs_source_get_width(obs_source_t source); +EXPORT uint32_t obs_source_get_width(obs_source_t *source); /** Gets the height of a source (if it has video) */ -EXPORT uint32_t obs_source_get_height(obs_source_t source); +EXPORT uint32_t obs_source_get_height(obs_source_t *source); /** If the source is a filter, returns the parent source of the filter */ -EXPORT obs_source_t obs_filter_get_parent(obs_source_t filter); +EXPORT obs_source_t *obs_filter_get_parent(obs_source_t *filter); /** If the source is a filter, returns the target source of the filter */ -EXPORT obs_source_t obs_filter_get_target(obs_source_t filter); +EXPORT obs_source_t *obs_filter_get_target(obs_source_t *filter); /** Adds a filter to the source (which is used whenever the source is used) */ -EXPORT void obs_source_filter_add(obs_source_t source, obs_source_t filter); +EXPORT void obs_source_filter_add(obs_source_t *source, obs_source_t *filter); /** Removes a filter from the source */ -EXPORT void obs_source_filter_remove(obs_source_t source, obs_source_t filter); +EXPORT void obs_source_filter_remove(obs_source_t *source, + obs_source_t *filter); /** Modifies the order of a specific filter */ -EXPORT void obs_source_filter_set_order(obs_source_t source, - obs_source_t filter, enum obs_order_movement movement); +EXPORT void obs_source_filter_set_order(obs_source_t *source, + obs_source_t *filter, enum obs_order_movement movement); /** Gets the settings string for a source */ -EXPORT obs_data_t obs_source_get_settings(obs_source_t source); +EXPORT obs_data_t *obs_source_get_settings(obs_source_t *source); /** Gets the name of a source */ -EXPORT const char *obs_source_get_name(obs_source_t source); +EXPORT const char *obs_source_get_name(obs_source_t *source); /** Sets the name of a source */ -EXPORT void obs_source_set_name(obs_source_t source, const char *name); +EXPORT void obs_source_set_name(obs_source_t *source, const char *name); /** Gets the source type */ -EXPORT enum obs_source_type obs_source_get_type(obs_source_t source); +EXPORT enum obs_source_type obs_source_get_type(obs_source_t *source); /** Gets the source identifier */ -EXPORT const char *obs_source_get_id(obs_source_t source); +EXPORT const char *obs_source_get_id(obs_source_t *source); /** Returns the signal handler for a source */ -EXPORT signal_handler_t obs_source_get_signal_handler(obs_source_t source); +EXPORT signal_handler_t *obs_source_get_signal_handler(obs_source_t *source); /** Returns the procedure handler for a source */ -EXPORT proc_handler_t obs_source_get_proc_handler(obs_source_t source); +EXPORT proc_handler_t *obs_source_get_proc_handler(obs_source_t *source); /** Sets the user volume for a source that has audio output */ -EXPORT void obs_source_set_volume(obs_source_t source, float volume); +EXPORT void obs_source_set_volume(obs_source_t *source, float volume); /** Sets the presentation volume for a source */ -EXPORT void obs_source_set_present_volume(obs_source_t source, float volume); +EXPORT void obs_source_set_present_volume(obs_source_t *source, float volume); /** Gets the user volume for a source that has audio output */ -EXPORT float obs_source_get_volume(obs_source_t source); +EXPORT float obs_source_get_volume(obs_source_t *source); /** Gets the presentation volume for a source */ -EXPORT float obs_source_get_present_volume(obs_source_t source); +EXPORT float obs_source_get_present_volume(obs_source_t *source); /** Sets the audio sync offset (in nanoseconds) for a source */ -EXPORT void obs_source_set_sync_offset(obs_source_t source, int64_t offset); +EXPORT void obs_source_set_sync_offset(obs_source_t *source, int64_t offset); /** Gets the audio sync offset (in nanoseconds) for a source */ -EXPORT int64_t obs_source_get_sync_offset(obs_source_t source); +EXPORT int64_t obs_source_get_sync_offset(obs_source_t *source); /** Enumerates child sources used by this source */ -EXPORT void obs_source_enum_sources(obs_source_t source, +EXPORT void obs_source_enum_sources(obs_source_t *source, obs_source_enum_proc_t enum_callback, void *param); /** Enumerates the entire child source tree used by this source */ -EXPORT void obs_source_enum_tree(obs_source_t source, +EXPORT void obs_source_enum_tree(obs_source_t *source, obs_source_enum_proc_t enum_callback, void *param); /** Returns true if active, false if not */ -EXPORT bool obs_source_active(obs_source_t source); +EXPORT bool obs_source_active(obs_source_t *source); /** * Sometimes sources need to be told when to save their settings so they @@ -705,7 +707,7 @@ EXPORT bool obs_source_active(obs_source_t source); * call the source's 'save' callback if any, which will save its current * data to its settings. */ -EXPORT void obs_source_save(obs_source_t source); +EXPORT void obs_source_save(obs_source_t *source); /** * Sometimes sources need to be told when they are loading their settings @@ -713,28 +715,28 @@ EXPORT void obs_source_save(obs_source_t source); * it's meant to be used after the source has been created and loaded from * somewhere (such as a saved file). */ -EXPORT void obs_source_load(obs_source_t source); +EXPORT void obs_source_load(obs_source_t *source); /* ------------------------------------------------------------------------- */ /* Functions used by sources */ /** Outputs asynchronous video data */ -EXPORT void obs_source_output_video(obs_source_t source, +EXPORT void obs_source_output_video(obs_source_t *source, const struct obs_source_frame *frame); /** Outputs audio data (always asynchronous) */ -EXPORT void obs_source_output_audio(obs_source_t source, +EXPORT void obs_source_output_audio(obs_source_t *source, const struct obs_source_audio *audio); /** Gets the current async video frame */ -EXPORT struct obs_source_frame *obs_source_get_frame(obs_source_t source); +EXPORT struct obs_source_frame *obs_source_get_frame(obs_source_t *source); /** Releases the current async video frame */ -EXPORT void obs_source_release_frame(obs_source_t source, +EXPORT void obs_source_release_frame(obs_source_t *source, struct obs_source_frame *frame); /** Default RGB filter handler for generic effect filters */ -EXPORT void obs_source_process_filter(obs_source_t filter, gs_effect_t effect, +EXPORT void obs_source_process_filter(obs_source_t *filter, gs_effect_t *effect, uint32_t width, uint32_t height, enum gs_color_format format, enum obs_allow_direct_render allow_direct); @@ -743,47 +745,47 @@ EXPORT void obs_source_process_filter(obs_source_t filter, gs_effect_t effect, * when the child is added. This ensures that the source is properly activated * if the parent is active. */ -EXPORT void obs_source_add_child(obs_source_t parent, obs_source_t child); +EXPORT void obs_source_add_child(obs_source_t *parent, obs_source_t *child); /** * Removes a child source. Must be called by parent sources on child sources * when the child is removed. This ensures that the source is properly * deactivated if the parent is active. */ -EXPORT void obs_source_remove_child(obs_source_t parent, obs_source_t child); +EXPORT void obs_source_remove_child(obs_source_t *parent, obs_source_t *child); /** Sends a mouse down/up event to a source */ -EXPORT void obs_source_send_mouse_click(obs_source_t source, +EXPORT void obs_source_send_mouse_click(obs_source_t *source, const struct obs_mouse_event *event, int32_t type, bool mouse_up, uint32_t click_count); /** Sends a mouse move event to a source. */ -EXPORT void obs_source_send_mouse_move(obs_source_t source, +EXPORT void obs_source_send_mouse_move(obs_source_t *source, const struct obs_mouse_event *event, bool mouse_leave); /** Sends a mouse wheel event to a source */ -EXPORT void obs_source_send_mouse_wheel(obs_source_t source, +EXPORT void obs_source_send_mouse_wheel(obs_source_t *source, const struct obs_mouse_event *event, int x_delta, int y_delta); /** Sends a got-focus or lost-focus event to a source */ -EXPORT void obs_source_send_focus(obs_source_t source, bool focus); +EXPORT void obs_source_send_focus(obs_source_t *source, bool focus); /** Sends a key up/down event to a source */ -EXPORT void obs_source_send_key_click(obs_source_t source, +EXPORT void obs_source_send_key_click(obs_source_t *source, const struct obs_key_event *event, bool key_up); /** Begins transition frame. Sets all transitioning volume values to 0.0f. */ -EXPORT void obs_transition_begin_frame(obs_source_t transition); +EXPORT void obs_transition_begin_frame(obs_source_t *transition); /** * Adds a transitioning volume value to a source that's being transitioned. * This value is applied to all the sources within the the source. */ -EXPORT void obs_source_set_transition_vol(obs_source_t source, float vol); +EXPORT void obs_source_set_transition_vol(obs_source_t *source, float vol); /** Ends transition frame and applies new presentation volumes to all sources */ -EXPORT void obs_transition_end_frame(obs_source_t transition); +EXPORT void obs_transition_end_frame(obs_source_t *transition); /* ------------------------------------------------------------------------- */ @@ -795,78 +797,80 @@ EXPORT void obs_transition_end_frame(obs_source_t transition); * A scene is a source which is a container of other sources with specific * display oriantations. Scenes can also be used like any other source. */ -EXPORT obs_scene_t obs_scene_create(const char *name); +EXPORT obs_scene_t *obs_scene_create(const char *name); -EXPORT void obs_scene_addref(obs_scene_t scene); -EXPORT void obs_scene_release(obs_scene_t scene); +EXPORT void obs_scene_addref(obs_scene_t *scene); +EXPORT void obs_scene_release(obs_scene_t *scene); /** Gets the scene's source context */ -EXPORT obs_source_t obs_scene_get_source(obs_scene_t scene); +EXPORT obs_source_t *obs_scene_get_source(obs_scene_t *scene); /** Gets the scene from its source, or NULL if not a scene */ -EXPORT obs_scene_t obs_scene_from_source(obs_source_t source); +EXPORT obs_scene_t *obs_scene_from_source(obs_source_t *source); /** Determines whether a source is within a scene */ -EXPORT obs_sceneitem_t obs_scene_find_source(obs_scene_t scene, +EXPORT obs_sceneitem_t *obs_scene_find_source(obs_scene_t *scene, const char *name); /** Enumerates sources within a scene */ -EXPORT void obs_scene_enum_items(obs_scene_t scene, - bool (*callback)(obs_scene_t, obs_sceneitem_t, void*), +EXPORT void obs_scene_enum_items(obs_scene_t *scene, + bool (*callback)(obs_scene_t*, obs_sceneitem_t*, void*), void *param); /** Adds/creates a new scene item for a source */ -EXPORT obs_sceneitem_t obs_scene_add(obs_scene_t scene, obs_source_t source); +EXPORT obs_sceneitem_t *obs_scene_add(obs_scene_t *scene, obs_source_t *source); -EXPORT void obs_sceneitem_addref(obs_sceneitem_t item); -EXPORT void obs_sceneitem_release(obs_sceneitem_t item); +EXPORT void obs_sceneitem_addref(obs_sceneitem_t *item); +EXPORT void obs_sceneitem_release(obs_sceneitem_t *item); /** Removes a scene item. */ -EXPORT void obs_sceneitem_remove(obs_sceneitem_t item); +EXPORT void obs_sceneitem_remove(obs_sceneitem_t *item); /** Gets the scene parent associated with the scene item. */ -EXPORT obs_scene_t obs_sceneitem_get_scene(obs_sceneitem_t item); +EXPORT obs_scene_t *obs_sceneitem_get_scene(obs_sceneitem_t *item); /** Gets the source of a scene item. */ -EXPORT obs_source_t obs_sceneitem_get_source(obs_sceneitem_t item); +EXPORT obs_source_t *obs_sceneitem_get_source(obs_sceneitem_t *item); -EXPORT void obs_sceneitem_select(obs_sceneitem_t item, bool select); -EXPORT bool obs_sceneitem_selected(obs_sceneitem_t item); +EXPORT void obs_sceneitem_select(obs_sceneitem_t *item, bool select); +EXPORT bool obs_sceneitem_selected(obs_sceneitem_t *item); /* Functions for gettings/setting specific orientation of a scene item */ -EXPORT void obs_sceneitem_set_pos(obs_sceneitem_t item, const struct vec2 *pos); -EXPORT void obs_sceneitem_set_rot(obs_sceneitem_t item, float rot_deg); -EXPORT void obs_sceneitem_set_scale(obs_sceneitem_t item, +EXPORT void obs_sceneitem_set_pos(obs_sceneitem_t *item, const struct vec2 *pos); +EXPORT void obs_sceneitem_set_rot(obs_sceneitem_t *item, float rot_deg); +EXPORT void obs_sceneitem_set_scale(obs_sceneitem_t *item, const struct vec2 *scale); -EXPORT void obs_sceneitem_set_alignment(obs_sceneitem_t item, +EXPORT void obs_sceneitem_set_alignment(obs_sceneitem_t *item, uint32_t alignment); -EXPORT void obs_sceneitem_set_order(obs_sceneitem_t item, +EXPORT void obs_sceneitem_set_order(obs_sceneitem_t *item, enum obs_order_movement movement); -EXPORT void obs_sceneitem_set_bounds_type(obs_sceneitem_t item, +EXPORT void obs_sceneitem_set_bounds_type(obs_sceneitem_t *item, enum obs_bounds_type type); -EXPORT void obs_sceneitem_set_bounds_alignment(obs_sceneitem_t item, +EXPORT void obs_sceneitem_set_bounds_alignment(obs_sceneitem_t *item, uint32_t alignment); -EXPORT void obs_sceneitem_set_bounds(obs_sceneitem_t item, +EXPORT void obs_sceneitem_set_bounds(obs_sceneitem_t *item, const struct vec2 *bounds); -EXPORT void obs_sceneitem_get_pos(obs_sceneitem_t item, struct vec2 *pos); -EXPORT float obs_sceneitem_get_rot(obs_sceneitem_t item); -EXPORT void obs_sceneitem_get_scale(obs_sceneitem_t item, struct vec2 *scale); -EXPORT uint32_t obs_sceneitem_get_alignment(obs_sceneitem_t item); +EXPORT void obs_sceneitem_get_pos(obs_sceneitem_t *item, struct vec2 *pos); +EXPORT float obs_sceneitem_get_rot(obs_sceneitem_t *item); +EXPORT void obs_sceneitem_get_scale(obs_sceneitem_t *item, struct vec2 *scale); +EXPORT uint32_t obs_sceneitem_get_alignment(obs_sceneitem_t *item); -EXPORT enum obs_bounds_type obs_sceneitem_get_bounds_type(obs_sceneitem_t item); -EXPORT uint32_t obs_sceneitem_get_bounds_alignment(obs_sceneitem_t item); -EXPORT void obs_sceneitem_get_bounds(obs_sceneitem_t item, struct vec2 *bounds); +EXPORT enum obs_bounds_type obs_sceneitem_get_bounds_type( + obs_sceneitem_t *item); +EXPORT uint32_t obs_sceneitem_get_bounds_alignment(obs_sceneitem_t *item); +EXPORT void obs_sceneitem_get_bounds(obs_sceneitem_t *item, + struct vec2 *bounds); -EXPORT void obs_sceneitem_get_info(obs_sceneitem_t item, +EXPORT void obs_sceneitem_get_info(obs_sceneitem_t *item, struct obs_transform_info *info); -EXPORT void obs_sceneitem_set_info(obs_sceneitem_t item, +EXPORT void obs_sceneitem_set_info(obs_sceneitem_t *item, const struct obs_transform_info *info); -EXPORT void obs_sceneitem_get_draw_transform(obs_sceneitem_t item, +EXPORT void obs_sceneitem_get_draw_transform(obs_sceneitem_t *item, struct matrix4 *transform); -EXPORT void obs_sceneitem_get_box_transform(obs_sceneitem_t item, +EXPORT void obs_sceneitem_get_box_transform(obs_sceneitem_t *item, struct matrix4 *transform); @@ -881,105 +885,106 @@ EXPORT const char *obs_output_get_display_name(const char *id); * Outputs allow outputting to file, outputting to network, outputting to * directshow, or other custom outputs. */ -EXPORT obs_output_t obs_output_create(const char *id, const char *name, - obs_data_t settings); -EXPORT void obs_output_destroy(obs_output_t output); +EXPORT obs_output_t *obs_output_create(const char *id, const char *name, + obs_data_t *settings); +EXPORT void obs_output_destroy(obs_output_t *output); -EXPORT const char *obs_output_get_name(obs_output_t output); +EXPORT const char *obs_output_get_name(obs_output_t *output); /** Starts the output. */ -EXPORT bool obs_output_start(obs_output_t output); +EXPORT bool obs_output_start(obs_output_t *output); /** Stops the output. */ -EXPORT void obs_output_stop(obs_output_t output); +EXPORT void obs_output_stop(obs_output_t *output); /** Returns whether the output is active */ -EXPORT bool obs_output_active(obs_output_t output); +EXPORT bool obs_output_active(obs_output_t *output); /** Gets the default settings for an output type */ -EXPORT obs_data_t obs_output_defaults(const char *id); +EXPORT obs_data_t *obs_output_defaults(const char *id); /** Returns the property list, if any. Free with obs_properties_destroy */ -EXPORT obs_properties_t obs_get_output_properties(const char *id); +EXPORT obs_properties_t *obs_get_output_properties(const char *id); /** * Returns the property list of an existing output, if any. Free with * obs_properties_destroy */ -EXPORT obs_properties_t obs_output_properties(obs_output_t output); +EXPORT obs_properties_t *obs_output_properties(obs_output_t *output); /** Updates the settings for this output context */ -EXPORT void obs_output_update(obs_output_t output, obs_data_t settings); +EXPORT void obs_output_update(obs_output_t *output, obs_data_t *settings); /** Specifies whether the output can be paused */ -EXPORT bool obs_output_canpause(obs_output_t output); +EXPORT bool obs_output_canpause(obs_output_t *output); /** Pauses the output (if the functionality is allowed by the output */ -EXPORT void obs_output_pause(obs_output_t output); +EXPORT void obs_output_pause(obs_output_t *output); /* Gets the current output settings string */ -EXPORT obs_data_t obs_output_get_settings(obs_output_t output); +EXPORT obs_data_t *obs_output_get_settings(obs_output_t *output); /** Returns the signal handler for an output */ -EXPORT signal_handler_t obs_output_get_signal_handler(obs_output_t output); +EXPORT signal_handler_t *obs_output_get_signal_handler(obs_output_t *output); /** Returns the procedure handler for an output */ -EXPORT proc_handler_t obs_output_get_proc_handler(obs_output_t output); +EXPORT proc_handler_t *obs_output_get_proc_handler(obs_output_t *output); /** * Sets the current video media context associated with this output, * required for non-encoded outputs */ -EXPORT void obs_output_set_video(obs_output_t output, video_t video); +EXPORT void obs_output_set_video(obs_output_t *output, video_t *video); /** * Sets the current audio/video media contexts associated with this output, * required for non-encoded outputs. Can be null. */ -EXPORT void obs_output_set_media(obs_output_t output, - video_t video, audio_t audio); +EXPORT void obs_output_set_media(obs_output_t *output, + video_t *video, audio_t *audio); /** Returns the video media context associated with this output */ -EXPORT video_t obs_output_video(obs_output_t output); +EXPORT video_t *obs_output_video(obs_output_t *output); /** Returns the audio media context associated with this output */ -EXPORT audio_t obs_output_audio(obs_output_t output); +EXPORT audio_t *obs_output_audio(obs_output_t *output); /** * Sets the current video encoder associated with this output, * required for encoded outputs */ -EXPORT void obs_output_set_video_encoder(obs_output_t output, - obs_encoder_t encoder); +EXPORT void obs_output_set_video_encoder(obs_output_t *output, + obs_encoder_t *encoder); /** * Sets the current audio encoder associated with this output, * required for encoded outputs */ -EXPORT void obs_output_set_audio_encoder(obs_output_t output, - obs_encoder_t encoder); +EXPORT void obs_output_set_audio_encoder(obs_output_t *output, + obs_encoder_t *encoder); /** Returns the current video encoder associated with this output */ -EXPORT obs_encoder_t obs_output_get_video_encoder(obs_output_t output); +EXPORT obs_encoder_t *obs_output_get_video_encoder(obs_output_t *output); /** Returns the current audio encoder associated with this output */ -EXPORT obs_encoder_t obs_output_get_audio_encoder(obs_output_t output); +EXPORT obs_encoder_t *obs_output_get_audio_encoder(obs_output_t *output); /** Sets the current service associated with this output. */ -EXPORT void obs_output_set_service(obs_output_t output, obs_service_t service); +EXPORT void obs_output_set_service(obs_output_t *output, + obs_service_t *service); /** Gets the current service associated with this output. */ -EXPORT obs_service_t obs_output_get_service(obs_output_t output); +EXPORT obs_service_t *obs_output_get_service(obs_output_t *output); /** * Sets the reconnect settings. Set retry_count to 0 to disable reconnecting. */ -EXPORT void obs_output_set_reconnect_settings(obs_output_t output, +EXPORT void obs_output_set_reconnect_settings(obs_output_t *output, int retry_count, int retry_sec); -EXPORT uint64_t obs_output_get_total_bytes(obs_output_t output); -EXPORT int obs_output_get_frames_dropped(obs_output_t output); -EXPORT int obs_output_get_total_frames(obs_output_t output); +EXPORT uint64_t obs_output_get_total_bytes(obs_output_t *output); +EXPORT int obs_output_get_frames_dropped(obs_output_t *output); +EXPORT int obs_output_get_total_frames(obs_output_t *output); /** * Sets the preferred scaled resolution for this output. Set width and height @@ -989,32 +994,33 @@ EXPORT int obs_output_get_total_frames(obs_output_t output); * the encoder before the stream is started. If the encoder is already active, * then this function will trigger a warning and do nothing. */ -EXPORT void obs_output_set_preferred_size(obs_output_t output, uint32_t width, +EXPORT void obs_output_set_preferred_size(obs_output_t *output, uint32_t width, uint32_t height); /** For video outputs, returns the width of the encoded image */ -EXPORT uint32_t obs_output_get_width(obs_output_t output); +EXPORT uint32_t obs_output_get_width(obs_output_t *output); /** For video outputs, returns the height of the encoded image */ -EXPORT uint32_t obs_output_get_height(obs_output_t output); +EXPORT uint32_t obs_output_get_height(obs_output_t *output); /* ------------------------------------------------------------------------- */ /* Functions used by outputs */ /** Optionally sets the video conversion info. Used only for raw output */ -EXPORT void obs_output_set_video_conversion(obs_output_t output, +EXPORT void obs_output_set_video_conversion(obs_output_t *output, const struct video_scale_info *conversion); /** Optionally sets the audio conversion info. Used only for raw output */ -EXPORT void obs_output_set_audio_conversion(obs_output_t output, +EXPORT void obs_output_set_audio_conversion(obs_output_t *output, const struct audio_convert_info *conversion); /** Returns whether data capture can begin with the specified flags */ -EXPORT bool obs_output_can_begin_data_capture(obs_output_t output, +EXPORT bool obs_output_can_begin_data_capture(obs_output_t *output, uint32_t flags); /** Initializes encoders (if any) */ -EXPORT bool obs_output_initialize_encoders(obs_output_t output, uint32_t flags); +EXPORT bool obs_output_initialize_encoders(obs_output_t *output, + uint32_t flags); /** * Begins data capture from media/encoders. @@ -1028,10 +1034,10 @@ EXPORT bool obs_output_initialize_encoders(obs_output_t output, uint32_t flags); * and video. * @return true if successful, false otherwise. */ -EXPORT bool obs_output_begin_data_capture(obs_output_t output, uint32_t flags); +EXPORT bool obs_output_begin_data_capture(obs_output_t *output, uint32_t flags); /** Ends data capture from media/encoders */ -EXPORT void obs_output_end_data_capture(obs_output_t output); +EXPORT void obs_output_end_data_capture(obs_output_t *output); /** * Signals that the output has stopped itself. @@ -1039,7 +1045,7 @@ EXPORT void obs_output_end_data_capture(obs_output_t output); * @param output Output context * @param code Error code (or OBS_OUTPUT_SUCCESS if not an error) */ -EXPORT void obs_output_signal_stop(obs_output_t output, int code); +EXPORT void obs_output_signal_stop(obs_output_t *output, int code); /* ------------------------------------------------------------------------- */ @@ -1055,8 +1061,8 @@ EXPORT const char *obs_encoder_getdisplayname(const char *id); * @param settings Settings * @return The video encoder context, or NULL if failed or not found. */ -EXPORT obs_encoder_t obs_video_encoder_create(const char *id, const char *name, - obs_data_t settings); +EXPORT obs_encoder_t *obs_video_encoder_create(const char *id, const char *name, + obs_data_t *settings); /** * Creates an audio encoder context @@ -1066,76 +1072,76 @@ EXPORT obs_encoder_t obs_video_encoder_create(const char *id, const char *name, * @param settings Settings * @return The video encoder context, or NULL if failed or not found. */ -EXPORT obs_encoder_t obs_audio_encoder_create(const char *id, const char *name, - obs_data_t settings); +EXPORT obs_encoder_t *obs_audio_encoder_create(const char *id, const char *name, + obs_data_t *settings); /** Destroys an encoder context */ -EXPORT void obs_encoder_destroy(obs_encoder_t encoder); +EXPORT void obs_encoder_destroy(obs_encoder_t *encoder); -EXPORT const char *obs_encoder_get_name(obs_encoder_t encoder); +EXPORT const char *obs_encoder_get_name(obs_encoder_t *encoder); /** Returns the codec of the encoder */ -EXPORT const char *obs_encoder_get_codec(obs_encoder_t encoder); +EXPORT const char *obs_encoder_get_codec(obs_encoder_t *encoder); /** * Sets the scaled resolution for a video encoder. Set width and height to 0 * to disable scaling. If the encoder is active, this function will trigger * a warning, and do nothing. */ -EXPORT void obs_encoder_set_scaled_size(obs_encoder_t encoder, uint32_t width, +EXPORT void obs_encoder_set_scaled_size(obs_encoder_t *encoder, uint32_t width, uint32_t height); /** For video encoders, returns the width of the encoded image */ -EXPORT uint32_t obs_encoder_get_width(obs_encoder_t encoder); +EXPORT uint32_t obs_encoder_get_width(obs_encoder_t *encoder); /** For video encoders, returns the height of the encoded image */ -EXPORT uint32_t obs_encoder_get_height(obs_encoder_t encoder); +EXPORT uint32_t obs_encoder_get_height(obs_encoder_t *encoder); /** Gets the default settings for an encoder type */ -EXPORT obs_data_t obs_encoder_defaults(const char *id); +EXPORT obs_data_t *obs_encoder_defaults(const char *id); /** Returns the property list, if any. Free with obs_properties_destroy */ -EXPORT obs_properties_t obs_get_encoder_properties(const char *id); +EXPORT obs_properties_t *obs_get_encoder_properties(const char *id); /** * Returns the property list of an existing encoder, if any. Free with * obs_properties_destroy */ -EXPORT obs_properties_t obs_encoder_properties(obs_encoder_t encoder); +EXPORT obs_properties_t *obs_encoder_properties(obs_encoder_t *encoder); /** * Updates the settings of the encoder context. Usually used for changing * bitrate while active */ -EXPORT void obs_encoder_update(obs_encoder_t encoder, obs_data_t settings); +EXPORT void obs_encoder_update(obs_encoder_t *encoder, obs_data_t *settings); /** Gets extra data (headers) associated with this context */ -EXPORT bool obs_encoder_get_extra_data(obs_encoder_t encoder, +EXPORT bool obs_encoder_get_extra_data(obs_encoder_t *encoder, uint8_t **extra_data, size_t *size); /** Returns the current settings for this encoder */ -EXPORT obs_data_t obs_encoder_get_settings(obs_encoder_t encoder); +EXPORT obs_data_t *obs_encoder_get_settings(obs_encoder_t *encoder); /** Sets the video output context to be used with this encoder */ -EXPORT void obs_encoder_set_video(obs_encoder_t encoder, video_t video); +EXPORT void obs_encoder_set_video(obs_encoder_t *encoder, video_t *video); /** Sets the audio output context to be used with this encoder */ -EXPORT void obs_encoder_set_audio(obs_encoder_t encoder, audio_t audio); +EXPORT void obs_encoder_set_audio(obs_encoder_t *encoder, audio_t *audio); /** * Returns the video output context used with this encoder, or NULL if not * a video context */ -EXPORT video_t obs_encoder_video(obs_encoder_t encoder); +EXPORT video_t *obs_encoder_video(obs_encoder_t *encoder); /** * Returns the audio output context used with this encoder, or NULL if not * a audio context */ -EXPORT audio_t obs_encoder_audio(obs_encoder_t encoder); +EXPORT audio_t *obs_encoder_audio(obs_encoder_t *encoder); /** Returns true if encoder is active, false otherwise */ -EXPORT bool obs_encoder_active(obs_encoder_t encoder); +EXPORT bool obs_encoder_active(obs_encoder_t *encoder); /** Duplicates an encoder packet */ EXPORT void obs_duplicate_encoder_packet(struct encoder_packet *dst, @@ -1149,44 +1155,44 @@ EXPORT void obs_free_encoder_packet(struct encoder_packet *packet); EXPORT const char *obs_service_get_display_name(const char *id); -EXPORT obs_service_t obs_service_create(const char *id, const char *name, - obs_data_t settings); -EXPORT void obs_service_destroy(obs_service_t service); +EXPORT obs_service_t *obs_service_create(const char *id, const char *name, + obs_data_t *settings); +EXPORT void obs_service_destroy(obs_service_t *service); -EXPORT const char *obs_service_get_name(obs_service_t service); +EXPORT const char *obs_service_get_name(obs_service_t *service); /** Gets the default settings for a service */ -EXPORT obs_data_t obs_service_defaults(const char *id); +EXPORT obs_data_t *obs_service_defaults(const char *id); /** Returns the property list, if any. Free with obs_properties_destroy */ -EXPORT obs_properties_t obs_get_service_properties(const char *id); +EXPORT obs_properties_t *obs_get_service_properties(const char *id); /** * Returns the property list of an existing service context, if any. Free with * obs_properties_destroy */ -EXPORT obs_properties_t obs_service_properties(obs_service_t service); +EXPORT obs_properties_t *obs_service_properties(obs_service_t *service); /** Gets the service type */ -EXPORT const char *obs_service_gettype(obs_service_t service); +EXPORT const char *obs_service_gettype(obs_service_t *service); /** Updates the settings of the service context */ -EXPORT void obs_service_update(obs_service_t service, obs_data_t settings); +EXPORT void obs_service_update(obs_service_t *service, obs_data_t *settings); /** Returns the current settings for this service */ -EXPORT obs_data_t obs_service_get_settings(obs_service_t service); +EXPORT obs_data_t *obs_service_get_settings(obs_service_t *service); /** Returns the URL for this service context */ -EXPORT const char *obs_service_get_url(obs_service_t service); +EXPORT const char *obs_service_get_url(obs_service_t *service); /** Returns the stream key (if any) for this service context */ -EXPORT const char *obs_service_get_key(obs_service_t service); +EXPORT const char *obs_service_get_key(obs_service_t *service); /** Returns the username (if any) for this service context */ -EXPORT const char *obs_service_get_username(obs_service_t service); +EXPORT const char *obs_service_get_username(obs_service_t *service); /** Returns the password (if any) for this service context */ -EXPORT const char *obs_service_get_password(obs_service_t service); +EXPORT const char *obs_service_get_password(obs_service_t *service); /* ------------------------------------------------------------------------- */ diff --git a/libobs/obs.hpp b/libobs/obs.hpp index 7c9272731..9e9fc35a5 100644 --- a/libobs/obs.hpp +++ b/libobs/obs.hpp @@ -62,12 +62,12 @@ public: inline bool operator!=(T p) const {return val != p;} }; -using OBSSource = OBSRef; -using OBSScene = OBSRef; -using OBSSceneItem = OBSRef; +using OBSScene = OBSRef; +using OBSSceneItem = OBSRef; -using OBSData = OBSRef; -using OBSDataArray = OBSRef; +using OBSDataArray = OBSRef; /* objects that are not meant to be instanced */ @@ -94,14 +94,14 @@ public: inline bool operator!=(T p) const {return obj != p;} }; -using OBSDisplay = OBSObj; -using OBSEncoder = OBSObj; -using OBSView = OBSObj; -using OBSOutput = OBSObj; +using OBSDisplay = OBSObj; +using OBSEncoder = OBSObj; +using OBSView = OBSObj; +using OBSOutput = OBSObj; /* signal handler connection */ class OBSSignal { - signal_handler_t handler; + signal_handler_t *handler; const char *signal; signal_callback_t callback; void *param; @@ -114,7 +114,7 @@ public: param (nullptr) {} - inline OBSSignal(signal_handler_t handler_, + inline OBSSignal(signal_handler_t *handler_, const char *signal_, signal_callback_t callback_, void *param_) @@ -137,7 +137,7 @@ public: inline ~OBSSignal() {Disconnect();} - inline void Connect(signal_handler_t handler_, + inline void Connect(signal_handler_t *handler_, const char *signal_, signal_callback_t callback_, void *param_) diff --git a/libobs/util/config-file.c b/libobs/util/config-file.c index 8e34eaf71..dd5bfd64f 100644 --- a/libobs/util/config-file.c +++ b/libobs/util/config-file.c @@ -58,7 +58,7 @@ struct config_data { struct darray defaults; /* struct config_section */ }; -config_t config_create(const char *file) +config_t *config_create(const char *file) { struct config_data *config; FILE *f; @@ -224,7 +224,7 @@ complete: return CONFIG_SUCCESS; } -int config_open(config_t *config, const char *file, +int config_open(config_t **config, const char *file, enum config_open_type open_type) { int errorcode; @@ -249,7 +249,7 @@ int config_open(config_t *config, const char *file, return errorcode; } -int config_open_defaults(config_t config, const char *file) +int config_open_defaults(config_t *config, const char *file) { if (!config) return CONFIG_ERROR; @@ -257,7 +257,7 @@ int config_open_defaults(config_t config, const char *file) return config_parse(&config->defaults, file, false); } -int config_save(config_t config) +int config_save(config_t *config) { FILE *f; struct dstr str; @@ -306,7 +306,7 @@ int config_save(config_t config) return CONFIG_SUCCESS; } -void config_close(config_t config) +void config_close(config_t *config) { struct config_section *defaults, *sections; size_t i; @@ -327,12 +327,12 @@ void config_close(config_t config) bfree(config); } -size_t config_num_sections(config_t config) +size_t config_num_sections(config_t *config) { return config->sections.num; } -const char *config_get_section(config_t config, size_t idx) +const char *config_get_section(config_t *config, size_t idx) { struct config_section *section; @@ -408,7 +408,7 @@ static void config_set_item(struct darray *sections, const char *section, item->value = value; } -void config_set_string(config_t config, const char *section, +void config_set_string(config_t *config, const char *section, const char *name, const char *value) { if (!value) @@ -416,7 +416,7 @@ void config_set_string(config_t config, const char *section, config_set_item(&config->sections, section, name, bstrdup(value)); } -void config_set_int(config_t config, const char *section, +void config_set_int(config_t *config, const char *section, const char *name, int64_t value) { struct dstr str; @@ -425,7 +425,7 @@ void config_set_int(config_t config, const char *section, config_set_item(&config->sections, section, name, str.array); } -void config_set_uint(config_t config, const char *section, +void config_set_uint(config_t *config, const char *section, const char *name, uint64_t value) { struct dstr str; @@ -434,14 +434,14 @@ void config_set_uint(config_t config, const char *section, config_set_item(&config->sections, section, name, str.array); } -void config_set_bool(config_t config, const char *section, +void config_set_bool(config_t *config, const char *section, const char *name, bool value) { char *str = bstrdup(value ? "true" : "false"); config_set_item(&config->sections, section, name, str); } -void config_set_double(config_t config, const char *section, +void config_set_double(config_t *config, const char *section, const char *name, double value) { struct dstr str; @@ -450,7 +450,7 @@ void config_set_double(config_t config, const char *section, config_set_item(&config->sections, section, name, str.array); } -void config_set_default_string(config_t config, const char *section, +void config_set_default_string(config_t *config, const char *section, const char *name, const char *value) { if (!value) @@ -458,7 +458,7 @@ void config_set_default_string(config_t config, const char *section, config_set_item(&config->defaults, section, name, bstrdup(value)); } -void config_set_default_int(config_t config, const char *section, +void config_set_default_int(config_t *config, const char *section, const char *name, int64_t value) { struct dstr str; @@ -467,7 +467,7 @@ void config_set_default_int(config_t config, const char *section, config_set_item(&config->defaults, section, name, str.array); } -void config_set_default_uint(config_t config, const char *section, +void config_set_default_uint(config_t *config, const char *section, const char *name, uint64_t value) { struct dstr str; @@ -476,14 +476,14 @@ void config_set_default_uint(config_t config, const char *section, config_set_item(&config->defaults, section, name, str.array); } -void config_set_default_bool(config_t config, const char *section, +void config_set_default_bool(config_t *config, const char *section, const char *name, bool value) { char *str = bstrdup(value ? "true" : "false"); config_set_item(&config->defaults, section, name, str); } -void config_set_default_double(config_t config, const char *section, +void config_set_default_double(config_t *config, const char *section, const char *name, double value) { struct dstr str; @@ -492,7 +492,7 @@ void config_set_default_double(config_t config, const char *section, config_set_item(&config->defaults, section, name, str.array); } -const char *config_get_string(config_t config, const char *section, +const char *config_get_string(config_t *config, const char *section, const char *name) { struct config_item *item = config_find_item(&config->sections, @@ -505,7 +505,7 @@ const char *config_get_string(config_t config, const char *section, return item->value; } -int64_t config_get_int(config_t config, const char *section, +int64_t config_get_int(config_t *config, const char *section, const char *name) { const char *value = config_get_string(config, section, name); @@ -515,7 +515,7 @@ int64_t config_get_int(config_t config, const char *section, return 0; } -uint64_t config_get_uint(config_t config, const char *section, +uint64_t config_get_uint(config_t *config, const char *section, const char *name) { const char *value = config_get_string(config, section, name); @@ -525,7 +525,7 @@ uint64_t config_get_uint(config_t config, const char *section, return 0; } -bool config_get_bool(config_t config, const char *section, +bool config_get_bool(config_t *config, const char *section, const char *name) { const char *value = config_get_string(config, section, name); @@ -536,7 +536,7 @@ bool config_get_bool(config_t config, const char *section, return false; } -double config_get_double(config_t config, const char *section, +double config_get_double(config_t *config, const char *section, const char *name) { const char *value = config_get_string(config, section, name); @@ -546,7 +546,7 @@ double config_get_double(config_t config, const char *section, return 0.0; } -const char *config_get_default_string(config_t config, const char *section, +const char *config_get_default_string(config_t *config, const char *section, const char *name) { struct config_item *item; @@ -558,7 +558,7 @@ const char *config_get_default_string(config_t config, const char *section, return item->value; } -int64_t config_get_default_int(config_t config, const char *section, +int64_t config_get_default_int(config_t *config, const char *section, const char *name) { const char *value = config_get_default_string(config, section, name); @@ -568,7 +568,7 @@ int64_t config_get_default_int(config_t config, const char *section, return 0; } -uint64_t config_get_default_uint(config_t config, const char *section, +uint64_t config_get_default_uint(config_t *config, const char *section, const char *name) { const char *value = config_get_default_string(config, section, name); @@ -578,7 +578,7 @@ uint64_t config_get_default_uint(config_t config, const char *section, return 0; } -bool config_get_default_bool(config_t config, const char *section, +bool config_get_default_bool(config_t *config, const char *section, const char *name) { const char *value = config_get_default_string(config, section, name); @@ -589,7 +589,7 @@ bool config_get_default_bool(config_t config, const char *section, return false; } -double config_get_default_double(config_t config, const char *section, +double config_get_default_double(config_t *config, const char *section, const char *name) { const char *value = config_get_default_string(config, section, name); @@ -599,13 +599,13 @@ double config_get_default_double(config_t config, const char *section, return 0.0; } -bool config_has_user_value(config_t config, const char *section, +bool config_has_user_value(config_t *config, const char *section, const char *name) { return config_find_item(&config->sections, section, name) != NULL; } -bool config_has_default_value(config_t config, const char *section, +bool config_has_default_value(config_t *config, const char *section, const char *name) { return config_find_item(&config->defaults, section, name) != NULL; diff --git a/libobs/util/config-file.h b/libobs/util/config-file.h index 6cfd034f9..7a41d2573 100644 --- a/libobs/util/config-file.h +++ b/libobs/util/config-file.h @@ -30,7 +30,7 @@ extern "C" { #endif struct config_data; -typedef struct config_data *config_t; +typedef struct config_data config_t; #define CONFIG_SUCCESS 0 #define CONFIG_FILENOTFOUND -1 @@ -41,35 +41,35 @@ enum config_open_type { CONFIG_OPEN_ALWAYS, }; -EXPORT config_t config_create(const char *file); -EXPORT int config_open(config_t *config, const char *file, +EXPORT config_t *config_create(const char *file); +EXPORT int config_open(config_t **config, const char *file, enum config_open_type open_type); -EXPORT int config_save(config_t config); -EXPORT void config_close(config_t config); +EXPORT int config_save(config_t *config); +EXPORT void config_close(config_t *config); -EXPORT size_t config_num_sections(config_t config); -EXPORT const char *config_get_section(config_t config, size_t idx); +EXPORT size_t config_num_sections(config_t *config); +EXPORT const char *config_get_section(config_t *config, size_t idx); -EXPORT void config_set_string(config_t config, const char *section, +EXPORT void config_set_string(config_t *config, const char *section, const char *name, const char *value); -EXPORT void config_set_int(config_t config, const char *section, +EXPORT void config_set_int(config_t *config, const char *section, const char *name, int64_t value); -EXPORT void config_set_uint(config_t config, const char *section, +EXPORT void config_set_uint(config_t *config, const char *section, const char *name, uint64_t value); -EXPORT void config_set_bool(config_t config, const char *section, +EXPORT void config_set_bool(config_t *config, const char *section, const char *name, bool value); -EXPORT void config_set_double(config_t config, const char *section, +EXPORT void config_set_double(config_t *config, const char *section, const char *name, double value); -EXPORT const char *config_get_string(config_t config, const char *section, +EXPORT const char *config_get_string(config_t *config, const char *section, const char *name); -EXPORT int64_t config_get_int(config_t config, const char *section, +EXPORT int64_t config_get_int(config_t *config, const char *section, const char *name); -EXPORT uint64_t config_get_uint(config_t config, const char *section, +EXPORT uint64_t config_get_uint(config_t *config, const char *section, const char *name); -EXPORT bool config_get_bool(config_t config, const char *section, +EXPORT bool config_get_bool(config_t *config, const char *section, const char *name); -EXPORT double config_get_double(config_t config, const char *section, +EXPORT double config_get_double(config_t *config, const char *section, const char *name); /* @@ -86,35 +86,35 @@ EXPORT double config_get_double(config_t config, const char *section, * functions (recommended for most cases), or you can initialize it via a file * with config_open_defaults. */ -EXPORT int config_open_defaults(config_t config, const char *file); +EXPORT int config_open_defaults(config_t *config, const char *file); -EXPORT void config_set_default_string(config_t config, const char *section, +EXPORT void config_set_default_string(config_t *config, const char *section, const char *name, const char *value); -EXPORT void config_set_default_int(config_t config, const char *section, +EXPORT void config_set_default_int(config_t *config, const char *section, const char *name, int64_t value); -EXPORT void config_set_default_uint(config_t config, const char *section, +EXPORT void config_set_default_uint(config_t *config, const char *section, const char *name, uint64_t value); -EXPORT void config_set_default_bool(config_t config, const char *section, +EXPORT void config_set_default_bool(config_t *config, const char *section, const char *name, bool value); -EXPORT void config_set_default_double(config_t config, const char *section, +EXPORT void config_set_default_double(config_t *config, const char *section, const char *name, double value); /* These functions allow you to get the current default values rather than get * the actual values. Probably almost never really needed */ -EXPORT const char *config_get_default_string(config_t config, +EXPORT const char *config_get_default_string(config_t *config, const char *section, const char *name); -EXPORT int64_t config_get_default_int(config_t config, const char *section, +EXPORT int64_t config_get_default_int(config_t *config, const char *section, const char *name); -EXPORT uint64_t config_get_default_uint(config_t config, const char *section, +EXPORT uint64_t config_get_default_uint(config_t *config, const char *section, const char *name); -EXPORT bool config_get_default_bool(config_t config, const char *section, +EXPORT bool config_get_default_bool(config_t *config, const char *section, const char *name); -EXPORT double config_get_default_double(config_t config, const char *section, +EXPORT double config_get_default_double(config_t *config, const char *section, const char *name); -EXPORT bool config_has_user_value(config_t config, const char *section, +EXPORT bool config_has_user_value(config_t *config, const char *section, const char *name); -EXPORT bool config_has_default_value(config_t config, const char *section, +EXPORT bool config_has_default_value(config_t *config, const char *section, const char *name); #ifdef __cplusplus diff --git a/libobs/util/platform-cocoa.m b/libobs/util/platform-cocoa.m index b19d569d3..8c11d8a9b 100644 --- a/libobs/util/platform-cocoa.m +++ b/libobs/util/platform-cocoa.m @@ -146,7 +146,7 @@ static bool get_time_info(int64_t *cpu_time, int64_t *sys_time) return true; } -os_cpu_usage_info_t os_cpu_usage_info_start(void) +os_cpu_usage_info_t *os_cpu_usage_info_start(void) { struct os_cpu_usage_info *info = bmalloc(sizeof(*info)); @@ -159,7 +159,7 @@ os_cpu_usage_info_t os_cpu_usage_info_start(void) return info; } -double os_cpu_usage_info_query(os_cpu_usage_info_t info) +double os_cpu_usage_info_query(os_cpu_usage_info_t *info) { int64_t sys_time, cpu_time; int64_t sys_time_delta, cpu_time_delta; @@ -180,13 +180,13 @@ double os_cpu_usage_info_query(os_cpu_usage_info_t info) (double)info->core_count; } -void os_cpu_usage_info_destroy(os_cpu_usage_info_t info) +void os_cpu_usage_info_destroy(os_cpu_usage_info_t *info) { if (info) bfree(info); } -os_performance_token_t os_request_high_performance(const char *reason) +os_performance_token_t *os_request_high_performance(const char *reason) { @autoreleasepool { NSProcessInfo *pi = [NSProcessInfo processInfo]; @@ -202,7 +202,7 @@ os_performance_token_t os_request_high_performance(const char *reason) } } -void os_end_high_performance(os_performance_token_t token) +void os_end_high_performance(os_performance_token_t *token) { @autoreleasepool { NSProcessInfo *pi = [NSProcessInfo processInfo]; diff --git a/libobs/util/platform-nix.c b/libobs/util/platform-nix.c index 6757f0cc9..5dda75b47 100644 --- a/libobs/util/platform-nix.c +++ b/libobs/util/platform-nix.c @@ -70,7 +70,7 @@ struct os_cpu_usage_info { int core_count; }; -os_cpu_usage_info_t os_cpu_usage_info_start(void) +os_cpu_usage_info_t *os_cpu_usage_info_start(void) { struct os_cpu_usage_info *info = bmalloc(sizeof(*info)); struct tms time_sample; @@ -82,7 +82,7 @@ os_cpu_usage_info_t os_cpu_usage_info_start(void) return info; } -double os_cpu_usage_info_query(os_cpu_usage_info_t info) +double os_cpu_usage_info_query(os_cpu_usage_info_t *info) { struct tms time_sample; clock_t cur_cpu_time; @@ -109,7 +109,7 @@ double os_cpu_usage_info_query(os_cpu_usage_info_t info) return percent * 100.0; } -void os_cpu_usage_info_destroy(os_cpu_usage_info_t info) +void os_cpu_usage_info_destroy(os_cpu_usage_info_t *info) { if (info) bfree(info); @@ -181,7 +181,7 @@ struct os_dir { struct os_dirent out; }; -os_dir_t os_opendir(const char *path) +os_dir_t *os_opendir(const char *path) { struct os_dir *dir; DIR *dir_val; @@ -206,7 +206,7 @@ static inline bool is_dir(const char *path) return false; } -struct os_dirent *os_readdir(os_dir_t dir) +struct os_dirent *os_readdir(os_dir_t *dir) { struct dstr file_path = {0}; @@ -229,7 +229,7 @@ struct os_dirent *os_readdir(os_dir_t dir) return &dir->out; } -void os_closedir(os_dir_t dir) +void os_closedir(os_dir_t *dir) { if (dir) { closedir(dir->dir); @@ -242,7 +242,7 @@ struct posix_glob_info { glob_t gl; }; -int os_glob(const char *pattern, int flags, os_glob_t *pglob) +int os_glob(const char *pattern, int flags, os_glob_t **pglob) { struct posix_glob_info pgi; int ret = glob(pattern, 0, NULL, &pgi.gl); @@ -271,7 +271,7 @@ int os_glob(const char *pattern, int flags, os_glob_t *pglob) return ret; } -void os_globfree(os_glob_t pglob) +void os_globfree(os_glob_t *pglob) { if (pglob) { struct posix_glob_info *pgi = (struct posix_glob_info*)pglob; @@ -296,13 +296,13 @@ int os_mkdir(const char *path) } #if !defined(__APPLE__) -os_performance_token_t os_request_high_performance(const char *reason) +os_performance_token_t *os_request_high_performance(const char *reason) { UNUSED_PARAMETER(reason); return NULL; } -void os_end_high_performance(os_performance_token_t token) +void os_end_high_performance(os_performance_token_t *token) { UNUSED_PARAMETER(token); } diff --git a/libobs/util/platform-windows.c b/libobs/util/platform-windows.c index c755b57e3..1b4cd5a4f 100644 --- a/libobs/util/platform-windows.c +++ b/libobs/util/platform-windows.c @@ -97,7 +97,7 @@ struct os_cpu_usage_info { DWORD core_count; }; -os_cpu_usage_info_t os_cpu_usage_info_start(void) +os_cpu_usage_info_t *os_cpu_usage_info_start(void) { struct os_cpu_usage_info *info = bzalloc(sizeof(*info)); SYSTEM_INFO si; @@ -112,7 +112,7 @@ os_cpu_usage_info_t os_cpu_usage_info_start(void) return info; } -double os_cpu_usage_info_query(os_cpu_usage_info_t info) +double os_cpu_usage_info_query(os_cpu_usage_info_t *info) { union time_data cur_time, cur_sys_time, cur_user_time; FILETIME dummy; @@ -137,7 +137,7 @@ double os_cpu_usage_info_query(os_cpu_usage_info_t info) return percent * 100.0; } -void os_cpu_usage_info_destroy(os_cpu_usage_info_t info) +void os_cpu_usage_info_destroy(os_cpu_usage_info_t *info) { if (info) bfree(info); @@ -231,7 +231,7 @@ struct os_dir { struct os_dirent out; }; -os_dir_t os_opendir(const char *path) +os_dir_t *os_opendir(const char *path) { struct dstr path_str = {0}; struct os_dir *dir = NULL; @@ -264,7 +264,7 @@ static inline bool is_dir(WIN32_FIND_DATA *wfd) return !!(wfd->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); } -struct os_dirent *os_readdir(os_dir_t dir) +struct os_dirent *os_readdir(os_dir_t *dir) { if (!dir) return NULL; @@ -284,7 +284,7 @@ struct os_dirent *os_readdir(os_dir_t dir) return &dir->out; } -void os_closedir(os_dir_t dir) +void os_closedir(os_dir_t *dir) { if (dir) { FindClose(dir->handle); @@ -314,13 +314,13 @@ static void make_globent(struct os_globent *ent, WIN32_FIND_DATA *wfd, dstr_free(&name); } -int os_glob(const char *pattern, int flags, os_glob_t *pglob) +int os_glob(const char *pattern, int flags, os_glob_t **pglob) { DARRAY(struct os_globent) files; HANDLE handle; WIN32_FIND_DATA wfd; int ret = -1; - os_glob_t out = NULL; + os_glob_t *out = NULL; wchar_t *w_path; da_init(files); @@ -353,7 +353,7 @@ int os_glob(const char *pattern, int flags, os_glob_t *pglob) return ret; } -void os_globfree(os_glob_t pglob) +void os_globfree(os_glob_t *pglob) { if (pglob) { for (size_t i = 0; i < pglob->gl_pathc; i++) @@ -433,13 +433,13 @@ BOOL WINAPI DllMain(HINSTANCE hinst_dll, DWORD reason, LPVOID reserved) return true; } -os_performance_token_t os_request_high_performance(const char *reason) +os_performance_token_t *os_request_high_performance(const char *reason) { UNUSED_PARAMETER(reason); return NULL; } -void os_end_high_performance(os_performance_token_t token) +void os_end_high_performance(os_performance_token_t *token) { UNUSED_PARAMETER(token); } diff --git a/libobs/util/platform.h b/libobs/util/platform.h index 6c42e6c87..a5298c5da 100644 --- a/libobs/util/platform.h +++ b/libobs/util/platform.h @@ -70,15 +70,15 @@ EXPORT void *os_dlsym(void *module, const char *func); EXPORT void os_dlclose(void *module); struct os_cpu_usage_info; -typedef struct os_cpu_usage_info *os_cpu_usage_info_t; +typedef struct os_cpu_usage_info os_cpu_usage_info_t; -EXPORT os_cpu_usage_info_t os_cpu_usage_info_start(void); -EXPORT double os_cpu_usage_info_query(os_cpu_usage_info_t info); -EXPORT void os_cpu_usage_info_destroy(os_cpu_usage_info_t info); +EXPORT os_cpu_usage_info_t *os_cpu_usage_info_start(void); +EXPORT double os_cpu_usage_info_query(os_cpu_usage_info_t *info); +EXPORT void os_cpu_usage_info_destroy(os_cpu_usage_info_t *info); -typedef const void *os_performance_token_t; -EXPORT os_performance_token_t os_request_high_performance(const char *reason); -EXPORT void os_end_high_performance(os_performance_token_t); +typedef const void os_performance_token_t; +EXPORT os_performance_token_t *os_request_high_performance(const char *reason); +EXPORT void os_end_high_performance(os_performance_token_t *); /** * Sleeps to a specific time (in nanoseconds). Doesn't have to be super @@ -95,16 +95,16 @@ EXPORT char *os_get_config_path(const char *name); EXPORT bool os_file_exists(const char *path); struct os_dir; -typedef struct os_dir *os_dir_t; +typedef struct os_dir os_dir_t; struct os_dirent { char d_name[256]; bool directory; }; -EXPORT os_dir_t os_opendir(const char *path); -EXPORT struct os_dirent *os_readdir(os_dir_t dir); -EXPORT void os_closedir(os_dir_t dir); +EXPORT os_dir_t *os_opendir(const char *path); +EXPORT struct os_dirent *os_readdir(os_dir_t *dir); +EXPORT void os_closedir(os_dir_t *dir); struct os_globent { char *path; @@ -116,12 +116,12 @@ struct os_glob_info { struct os_globent *gl_pathv; }; -typedef struct os_glob_info *os_glob_t; +typedef struct os_glob_info os_glob_t; /* currently no flags available */ -EXPORT int os_glob(const char *pattern, int flags, os_glob_t *pglob); -EXPORT void os_globfree(os_glob_t pglob); +EXPORT int os_glob(const char *pattern, int flags, os_glob_t **pglob); +EXPORT void os_globfree(os_glob_t *pglob); EXPORT int os_unlink(const char *path); diff --git a/libobs/util/text-lookup.c b/libobs/util/text-lookup.c index ef8ed3dd1..266989039 100644 --- a/libobs/util/text-lookup.c +++ b/libobs/util/text-lookup.c @@ -358,7 +358,7 @@ static inline bool lookup_getstring(const char *lookup_val, /* ------------------------------------------------------------------------- */ -lookup_t text_lookup_create(const char *path) +lookup_t *text_lookup_create(const char *path) { struct text_lookup *lookup = bzalloc(sizeof(struct text_lookup)); @@ -370,7 +370,7 @@ lookup_t text_lookup_create(const char *path) return lookup; } -bool text_lookup_add(lookup_t lookup, const char *path) +bool text_lookup_add(lookup_t *lookup, const char *path) { struct dstr file_str; char *temp = NULL; @@ -397,7 +397,7 @@ bool text_lookup_add(lookup_t lookup, const char *path) return true; } -void text_lookup_destroy(lookup_t lookup) +void text_lookup_destroy(lookup_t *lookup) { if (lookup) { dstr_free(&lookup->language); @@ -407,7 +407,7 @@ void text_lookup_destroy(lookup_t lookup) } } -bool text_lookup_getstr(lookup_t lookup, const char *lookup_val, +bool text_lookup_getstr(lookup_t *lookup, const char *lookup_val, const char **out) { if (lookup) diff --git a/libobs/util/text-lookup.h b/libobs/util/text-lookup.h index f9855176f..306e6010e 100644 --- a/libobs/util/text-lookup.h +++ b/libobs/util/text-lookup.h @@ -32,13 +32,13 @@ extern "C" { /* opaque typdef */ struct text_lookup; -typedef struct text_lookup *lookup_t; +typedef struct text_lookup lookup_t; /* functions */ -EXPORT lookup_t text_lookup_create(const char *path); -EXPORT bool text_lookup_add(lookup_t lookup, const char *path); -EXPORT void text_lookup_destroy(lookup_t lookup); -EXPORT bool text_lookup_getstr(lookup_t lookup, const char *lookup_val, +EXPORT lookup_t *text_lookup_create(const char *path); +EXPORT bool text_lookup_add(lookup_t *lookup, const char *path); +EXPORT void text_lookup_destroy(lookup_t *lookup); +EXPORT bool text_lookup_getstr(lookup_t *lookup, const char *lookup_val, const char **out); #ifdef __cplusplus diff --git a/libobs/util/threading-posix.c b/libobs/util/threading-posix.c index a86f1ac71..e97cdc9f0 100644 --- a/libobs/util/threading-posix.c +++ b/libobs/util/threading-posix.c @@ -33,7 +33,7 @@ struct os_event_data { bool manual; }; -int os_event_init(os_event_t *event, enum os_event_type type) +int os_event_init(os_event_t **event, enum os_event_type type) { int code = 0; @@ -57,7 +57,7 @@ int os_event_init(os_event_t *event, enum os_event_type type) return 0; } -void os_event_destroy(os_event_t event) +void os_event_destroy(os_event_t *event) { if (event) { pthread_mutex_destroy(&event->mutex); @@ -66,7 +66,7 @@ void os_event_destroy(os_event_t event) } } -int os_event_wait(os_event_t event) +int os_event_wait(os_event_t *event) { int code = 0; pthread_mutex_lock(&event->mutex); @@ -93,7 +93,7 @@ static inline void add_ms_to_ts(struct timespec *ts, } } -int os_event_timedwait(os_event_t event, unsigned long milliseconds) +int os_event_timedwait(os_event_t *event, unsigned long milliseconds) { int code = 0; pthread_mutex_lock(&event->mutex); @@ -121,7 +121,7 @@ int os_event_timedwait(os_event_t event, unsigned long milliseconds) return code; } -int os_event_try(os_event_t event) +int os_event_try(os_event_t *event) { int ret = EAGAIN; @@ -136,7 +136,7 @@ int os_event_try(os_event_t event) return ret; } -int os_event_signal(os_event_t event) +int os_event_signal(os_event_t *event) { int code = 0; @@ -148,7 +148,7 @@ int os_event_signal(os_event_t event) return code; } -void os_event_reset(os_event_t event) +void os_event_reset(os_event_t *event) { pthread_mutex_lock(&event->mutex); event->signalled = false; @@ -162,7 +162,7 @@ struct os_sem_data { task_t task; }; -int os_sem_init(os_sem_t *sem, int value) +int os_sem_init(os_sem_t **sem, int value) { semaphore_t new_sem; task_t task = mach_task_self(); @@ -179,7 +179,7 @@ int os_sem_init(os_sem_t *sem, int value) return 0; } -void os_sem_destroy(os_sem_t sem) +void os_sem_destroy(os_sem_t *sem) { if (sem) { semaphore_destroy(sem->task, sem->sem); @@ -187,13 +187,13 @@ void os_sem_destroy(os_sem_t sem) } } -int os_sem_post(os_sem_t sem) +int os_sem_post(os_sem_t *sem) { if (!sem) return -1; return (semaphore_signal(sem->sem) == KERN_SUCCESS) ? 0 : -1; } -int os_sem_wait(os_sem_t sem) +int os_sem_wait(os_sem_t *sem) { if (!sem) return -1; return (semaphore_wait(sem->sem) == KERN_SUCCESS) ? 0 : -1; @@ -205,7 +205,7 @@ struct os_sem_data { sem_t sem; }; -int os_sem_init(os_sem_t *sem, int value) +int os_sem_init(os_sem_t **sem, int value) { sem_t new_sem; int ret = sem_init(&new_sem, 0, value); @@ -217,7 +217,7 @@ int os_sem_init(os_sem_t *sem, int value) return 0; } -void os_sem_destroy(os_sem_t sem) +void os_sem_destroy(os_sem_t *sem) { if (sem) { sem_destroy(&sem->sem); @@ -225,13 +225,13 @@ void os_sem_destroy(os_sem_t sem) } } -int os_sem_post(os_sem_t sem) +int os_sem_post(os_sem_t *sem) { if (!sem) return -1; return sem_post(&sem->sem); } -int os_sem_wait(os_sem_t sem) +int os_sem_wait(os_sem_t *sem) { if (!sem) return -1; return sem_wait(&sem->sem); diff --git a/libobs/util/threading-windows.c b/libobs/util/threading-windows.c index cce3b630f..bb00960cc 100644 --- a/libobs/util/threading-windows.c +++ b/libobs/util/threading-windows.c @@ -28,7 +28,7 @@ struct os_sem_data { HANDLE handle; }; -int os_event_init(os_event_t *event, enum os_event_type type) +int os_event_init(os_event_t **event, enum os_event_type type) { HANDLE handle; struct os_event_data *data; @@ -44,7 +44,7 @@ int os_event_init(os_event_t *event, enum os_event_type type) return 0; } -void os_event_destroy(os_event_t event) +void os_event_destroy(os_event_t *event) { if (event) { CloseHandle(event->handle); @@ -52,7 +52,7 @@ void os_event_destroy(os_event_t event) } } -int os_event_wait(os_event_t event) +int os_event_wait(os_event_t *event) { DWORD code; @@ -66,7 +66,7 @@ int os_event_wait(os_event_t event) return 0; } -int os_event_timedwait(os_event_t event, unsigned long milliseconds) +int os_event_timedwait(os_event_t *event, unsigned long milliseconds) { DWORD code; @@ -82,7 +82,7 @@ int os_event_timedwait(os_event_t event, unsigned long milliseconds) return 0; } -int os_event_try(os_event_t event) +int os_event_try(os_event_t *event) { DWORD code; @@ -98,7 +98,7 @@ int os_event_try(os_event_t event) return 0; } -int os_event_signal(os_event_t event) +int os_event_signal(os_event_t *event) { if (!event) return EINVAL; @@ -109,7 +109,7 @@ int os_event_signal(os_event_t event) return 0; } -void os_event_reset(os_event_t event) +void os_event_reset(os_event_t *event) { if (!event) return; @@ -117,7 +117,7 @@ void os_event_reset(os_event_t event) ResetEvent(event->handle); } -int os_sem_init(os_sem_t *sem, int value) +int os_sem_init(os_sem_t **sem, int value) { HANDLE handle = CreateSemaphore(NULL, (LONG)value, 0x7FFFFFFF, NULL); if (!handle) @@ -128,7 +128,7 @@ int os_sem_init(os_sem_t *sem, int value) return 0; } -void os_sem_destroy(os_sem_t sem) +void os_sem_destroy(os_sem_t *sem) { if (sem) { CloseHandle(sem->handle); @@ -136,13 +136,13 @@ void os_sem_destroy(os_sem_t sem) } } -int os_sem_post(os_sem_t sem) +int os_sem_post(os_sem_t *sem) { if (!sem) return -1; return ReleaseSemaphore(sem->handle, 1, NULL) ? 0 : -1; } -int os_sem_wait(os_sem_t sem) +int os_sem_wait(os_sem_t *sem) { DWORD ret; diff --git a/libobs/util/threading.h b/libobs/util/threading.h index 4df01dafb..27b6db104 100644 --- a/libobs/util/threading.h +++ b/libobs/util/threading.h @@ -54,21 +54,21 @@ enum os_event_type { struct os_event_data; struct os_sem_data; -typedef struct os_event_data *os_event_t; -typedef struct os_sem_data *os_sem_t; +typedef struct os_event_data os_event_t; +typedef struct os_sem_data os_sem_t; -EXPORT int os_event_init(os_event_t *event, enum os_event_type type); -EXPORT void os_event_destroy(os_event_t event); -EXPORT int os_event_wait(os_event_t event); -EXPORT int os_event_timedwait(os_event_t event, unsigned long milliseconds); -EXPORT int os_event_try(os_event_t event); -EXPORT int os_event_signal(os_event_t event); -EXPORT void os_event_reset(os_event_t event); +EXPORT int os_event_init(os_event_t **event, enum os_event_type type); +EXPORT void os_event_destroy(os_event_t *event); +EXPORT int os_event_wait(os_event_t *event); +EXPORT int os_event_timedwait(os_event_t *event, unsigned long milliseconds); +EXPORT int os_event_try(os_event_t *event); +EXPORT int os_event_signal(os_event_t *event); +EXPORT void os_event_reset(os_event_t *event); -EXPORT int os_sem_init(os_sem_t *sem, int value); -EXPORT void os_sem_destroy(os_sem_t sem); -EXPORT int os_sem_post(os_sem_t sem); -EXPORT int os_sem_wait(os_sem_t sem); +EXPORT int os_sem_init(os_sem_t **sem, int value); +EXPORT void os_sem_destroy(os_sem_t *sem); +EXPORT int os_sem_post(os_sem_t *sem); +EXPORT int os_sem_wait(os_sem_t *sem); EXPORT long os_atomic_inc_long(volatile long *val); EXPORT long os_atomic_dec_long(volatile long *val); diff --git a/libobs/util/util.hpp b/libobs/util/util.hpp index 2fe99b029..a38fd1c89 100644 --- a/libobs/util/util.hpp +++ b/libobs/util/util.hpp @@ -49,7 +49,7 @@ public: }; class ConfigFile { - config_t config; + config_t *config; ConfigFile(ConfigFile const&) = delete; ConfigFile &operator=(ConfigFile const&) = delete; @@ -89,32 +89,32 @@ public: config = NULL; } - inline operator config_t() const {return config;} + inline operator config_t*() const {return config;} }; class TextLookup { - lookup_t lookup; + lookup_t *lookup; TextLookup(TextLookup const&) = delete; TextLookup &operator=(TextLookup const&) = delete; public: - inline TextLookup(lookup_t lookup=nullptr) : lookup(lookup) {} + inline TextLookup(lookup_t *lookup=nullptr) : lookup(lookup) {} inline TextLookup(TextLookup &&other) : lookup(other.lookup) { other.lookup = nullptr; } inline ~TextLookup() {text_lookup_destroy(lookup);} - inline TextLookup& operator=(lookup_t val) + inline TextLookup& operator=(lookup_t *val) { text_lookup_destroy(lookup); lookup = val; return *this; } - inline operator lookup_t() const {return lookup;} + inline operator lookup_t*() const {return lookup;} inline const char *GetString(const char *lookupVal) const { diff --git a/obs/obs-app.cpp b/obs/obs-app.cpp index d74969ad9..fd11e776a 100644 --- a/obs/obs-app.cpp +++ b/obs/obs-app.cpp @@ -415,7 +415,7 @@ static void delete_oldest_log(void) unsigned int maxLogs = (unsigned int)config_get_uint( App()->GlobalConfig(), "General", "MaxLogs"); - os_dir_t dir = os_opendir(logDir); + os_dir_t *dir = os_opendir(logDir); if (dir) { unsigned int count = 0; @@ -450,7 +450,7 @@ static void get_last_log(void) { BPtr logDir(os_get_config_path("obs-studio/logs")); struct os_dirent *entry; - os_dir_t dir = os_opendir(logDir); + os_dir_t *dir = os_opendir(logDir); uint64_t highest_ts = 0; if (dir) { diff --git a/obs/obs-app.hpp b/obs/obs-app.hpp index 89c8e62ac..b13f8eb8e 100644 --- a/obs/obs-app.hpp +++ b/obs/obs-app.hpp @@ -71,14 +71,14 @@ public: inline QMainWindow *GetMainWindow() const {return mainWindow.data();} - inline config_t GlobalConfig() const {return globalConfig;} + inline config_t *GlobalConfig() const {return globalConfig;} inline const char *GetLocale() const { return locale.c_str(); } - inline lookup_t GetTextLookup() const {return textLookup;} + inline lookup_t *GetTextLookup() const {return textLookup;} inline const char *GetString(const char *lookupVal) const { @@ -98,7 +98,7 @@ public: inline OBSApp *App() {return static_cast(qApp);} -inline config_t GetGlobalConfig() {return App()->GlobalConfig();} +inline config_t *GetGlobalConfig() {return App()->GlobalConfig();} std::vector> GetLocaleNames(); inline const char *Str(const char *lookup) {return App()->GetString(lookup);} diff --git a/obs/properties-view.cpp b/obs/properties-view.cpp index cee1671a9..e4ecb1288 100644 --- a/obs/properties-view.cpp +++ b/obs/properties-view.cpp @@ -58,7 +58,7 @@ void OBSPropertiesView::RefreshProperties() layout->setSizeConstraint(QLayout::SetMaximumSize); layout->setLabelAlignment(Qt::AlignRight); - obs_property_t property = obs_properties_first(properties); + obs_property_t *property = obs_properties_first(properties); while (property) { AddProperty(property, layout); @@ -77,7 +77,7 @@ void OBSPropertiesView::RefreshProperties() } OBSPropertiesView::OBSPropertiesView(OBSData settings_, - obs_properties_t properties_, void *obj_, + obs_properties_t *properties_, void *obj_, PropertiesUpdateCallback callback_, int minSize_) : QScrollArea (nullptr), widget (nullptr), @@ -98,7 +98,7 @@ void OBSPropertiesView::resizeEvent(QResizeEvent *event) UNUSED_PARAMETER(event); } -QWidget *OBSPropertiesView::NewWidget(obs_property_t prop, QWidget *widget, +QWidget *OBSPropertiesView::NewWidget(obs_property_t *prop, QWidget *widget, const char *signal) { WidgetInfo *info = new WidgetInfo(this, prop, widget); @@ -107,7 +107,7 @@ QWidget *OBSPropertiesView::NewWidget(obs_property_t prop, QWidget *widget, return widget; } -QWidget *OBSPropertiesView::AddCheckbox(obs_property_t prop) +QWidget *OBSPropertiesView::AddCheckbox(obs_property_t *prop) { const char *name = obs_property_name(prop); const char *desc = obs_property_description(prop); @@ -118,7 +118,7 @@ QWidget *OBSPropertiesView::AddCheckbox(obs_property_t prop) return NewWidget(prop, checkbox, SIGNAL(stateChanged(int))); } -QWidget *OBSPropertiesView::AddText(obs_property_t prop) +QWidget *OBSPropertiesView::AddText(obs_property_t *prop) { const char *name = obs_property_name(prop); const char *val = obs_data_get_string(settings, name); @@ -139,7 +139,7 @@ QWidget *OBSPropertiesView::AddText(obs_property_t prop) return NewWidget(prop, edit, SIGNAL(textEdited(const QString &))); } -void OBSPropertiesView::AddPath(obs_property_t prop, QFormLayout *layout, +void OBSPropertiesView::AddPath(obs_property_t *prop, QFormLayout *layout, QLabel **label) { const char *name = obs_property_name(prop); @@ -162,7 +162,7 @@ void OBSPropertiesView::AddPath(obs_property_t prop, QFormLayout *layout, layout->addRow(*label, subLayout); } -QWidget *OBSPropertiesView::AddInt(obs_property_t prop) +QWidget *OBSPropertiesView::AddInt(obs_property_t *prop) { const char *name = obs_property_name(prop); int val = (int)obs_data_get_int(settings, name); @@ -176,7 +176,7 @@ QWidget *OBSPropertiesView::AddInt(obs_property_t prop) return NewWidget(prop, spin, SIGNAL(valueChanged(int))); } -QWidget *OBSPropertiesView::AddFloat(obs_property_t prop) +QWidget *OBSPropertiesView::AddFloat(obs_property_t *prop) { const char *name = obs_property_name(prop); double val = obs_data_get_double(settings, name); @@ -190,7 +190,7 @@ QWidget *OBSPropertiesView::AddFloat(obs_property_t prop) return NewWidget(prop, spin, SIGNAL(valueChanged(double))); } -static void AddComboItem(QComboBox *combo, obs_property_t prop, +static void AddComboItem(QComboBox *combo, obs_property_t *prop, obs_combo_format format, size_t idx) { const char *name = obs_property_list_item_name(prop, idx); @@ -226,10 +226,10 @@ static void AddComboItem(QComboBox *combo, obs_property_t prop, item->setFlags(Qt::NoItemFlags); } -template -static string from_obs_data(obs_data_t data, const char *name, +template +static string from_obs_data(obs_data_t *data, const char *name, obs_combo_format format) { switch (format) { @@ -244,14 +244,14 @@ static string from_obs_data(obs_data_t data, const char *name, } } -static string from_obs_data(obs_data_t data, const char *name, +static string from_obs_data(obs_data_t *data, const char *name, obs_combo_format format) { return from_obs_data(data, name, format); } -static string from_obs_data_autoselect(obs_data_t data, const char *name, +static string from_obs_data_autoselect(obs_data_t *data, const char *name, obs_combo_format format) { return from_obs_data(data, name, format); } -QWidget *OBSPropertiesView::AddList(obs_property_t prop, bool &warning) +QWidget *OBSPropertiesView::AddList(obs_property_t *prop, bool &warning) { const char *name = obs_property_name(prop); QComboBox *combo = new QComboBox(); @@ -321,7 +321,7 @@ QWidget *OBSPropertiesView::AddList(obs_property_t prop, bool &warning) return combo; } -QWidget *OBSPropertiesView::AddButton(obs_property_t prop) +QWidget *OBSPropertiesView::AddButton(obs_property_t *prop) { const char *desc = obs_property_description(prop); @@ -330,7 +330,7 @@ QWidget *OBSPropertiesView::AddButton(obs_property_t prop) return NewWidget(prop, button, SIGNAL(clicked())); } -void OBSPropertiesView::AddColor(obs_property_t prop, QFormLayout *layout, +void OBSPropertiesView::AddColor(obs_property_t *prop, QFormLayout *layout, QLabel *&label) { QPushButton *button = new QPushButton; @@ -361,7 +361,7 @@ void OBSPropertiesView::AddColor(obs_property_t prop, QFormLayout *layout, layout->addRow(label, subLayout); } -static void MakeQFont(obs_data_t font_obj, QFont &font) +static void MakeQFont(obs_data_t *font_obj, QFont &font) { const char *face = obs_data_get_string(font_obj, "face"); const char *style = obs_data_get_string(font_obj, "style"); @@ -382,11 +382,11 @@ static void MakeQFont(obs_data_t font_obj, QFont &font) if (flags & OBS_FONT_STRIKEOUT) font.setStrikeOut(true); } -void OBSPropertiesView::AddFont(obs_property_t prop, QFormLayout *layout, +void OBSPropertiesView::AddFont(obs_property_t *prop, QFormLayout *layout, QLabel *&label) { const char *name = obs_property_name(prop); - obs_data_t font_obj = obs_data_get_obj(settings, name); + obs_data_t *font_obj = obs_data_get_obj(settings, name); const char *face = obs_data_get_string(font_obj, "face"); const char *style = obs_data_get_string(font_obj, "style"); QPushButton *button = new QPushButton; @@ -419,7 +419,7 @@ void OBSPropertiesView::AddFont(obs_property_t prop, QFormLayout *layout, obs_data_release(font_obj); } -void OBSPropertiesView::AddProperty(obs_property_t property, +void OBSPropertiesView::AddProperty(obs_property_t *property, QFormLayout *layout) { const char *name = obs_property_name(property); @@ -619,7 +619,7 @@ bool WidgetInfo::ColorChanged(const char *setting) bool WidgetInfo::FontChanged(const char *setting) { - obs_data_t font_obj = obs_data_get_obj(view->settings, setting); + obs_data_t *font_obj = obs_data_get_obj(view->settings, setting); bool success; uint32_t flags; QFont font; diff --git a/obs/properties-view.hpp b/obs/properties-view.hpp index a077560c8..e891e5105 100644 --- a/obs/properties-view.hpp +++ b/obs/properties-view.hpp @@ -9,7 +9,7 @@ class QFormLayout; class OBSPropertiesView; class QLabel; -typedef void (*PropertiesUpdateCallback)(void *obj, obs_data_t settings); +typedef void (*PropertiesUpdateCallback)(void *obj, obs_data_t *settings); /* ------------------------------------------------------------------------- */ @@ -18,7 +18,7 @@ class WidgetInfo : public QObject { private: OBSPropertiesView *view; - obs_property_t property; + obs_property_t *property; QWidget *widget; void BoolChanged(const char *setting); @@ -32,7 +32,7 @@ private: void ButtonClicked(); public: - inline WidgetInfo(OBSPropertiesView *view_, obs_property_t prop, + inline WidgetInfo(OBSPropertiesView *view_, obs_property_t *prop, QWidget *widget_) : view(view_), property(prop), widget(widget_) {} @@ -50,7 +50,7 @@ class OBSPropertiesView : public QScrollArea { private: QWidget *widget; - obs_properties_t properties; + obs_properties_t *properties; OBSData settings; void *obj; PropertiesUpdateCallback callback; @@ -59,20 +59,20 @@ private: std::string lastFocused; QWidget *lastWidget; - QWidget *NewWidget(obs_property_t prop, QWidget *widget, + QWidget *NewWidget(obs_property_t *prop, QWidget *widget, const char *signal); - QWidget *AddCheckbox(obs_property_t prop); - QWidget *AddText(obs_property_t prop); - void AddPath(obs_property_t prop, QFormLayout *layout, QLabel **label); - QWidget *AddInt(obs_property_t prop); - QWidget *AddFloat(obs_property_t prop); - QWidget *AddList(obs_property_t prop, bool &warning); - QWidget *AddButton(obs_property_t prop); - void AddColor(obs_property_t prop, QFormLayout *layout, QLabel *&label); - void AddFont(obs_property_t prop, QFormLayout *layout, QLabel *&label); + QWidget *AddCheckbox(obs_property_t *prop); + QWidget *AddText(obs_property_t *prop); + void AddPath(obs_property_t *prop, QFormLayout *layout, QLabel **label); + QWidget *AddInt(obs_property_t *prop); + QWidget *AddFloat(obs_property_t *prop); + QWidget *AddList(obs_property_t *prop, bool &warning); + QWidget *AddButton(obs_property_t *prop); + void AddColor(obs_property_t *prop, QFormLayout *layout, QLabel *&label); + void AddFont(obs_property_t *prop, QFormLayout *layout, QLabel *&label); - void AddProperty(obs_property_t property, QFormLayout *layout); + void AddProperty(obs_property_t *property, QFormLayout *layout); void resizeEvent(QResizeEvent *event) override; @@ -84,7 +84,7 @@ signals: public: OBSPropertiesView(OBSData settings, - obs_properties_t properties, + obs_properties_t *properties, void *obj, PropertiesUpdateCallback callback, int minSize = 0); diff --git a/obs/volume-control.cpp b/obs/volume-control.cpp index cd3785eca..d00aa3b31 100644 --- a/obs/volume-control.cpp +++ b/obs/volume-control.cpp @@ -37,7 +37,7 @@ static inline float DBToLinear(float db_full) return (DBToLog(db) - VOL_MIN_LOG) / (VOL_MAX_LOG - VOL_MIN_LOG); } -void VolControl::OBSVolumeChanged(void *data, calldata_t calldata) +void VolControl::OBSVolumeChanged(void *data, calldata_t *calldata) { VolControl *volControl = static_cast(data); int vol = (int)(calldata_float(calldata, "volume") * 100.0f + 0.5f); @@ -45,7 +45,7 @@ void VolControl::OBSVolumeChanged(void *data, calldata_t calldata) QMetaObject::invokeMethod(volControl, "VolumeChanged", Q_ARG(int, vol)); } -void VolControl::OBSVolumeLevel(void *data, calldata_t calldata) +void VolControl::OBSVolumeLevel(void *data, calldata_t *calldata) { VolControl *volControl = static_cast(data); float peak = calldata_float(calldata, "level"); diff --git a/obs/volume-control.hpp b/obs/volume-control.hpp index 407b44739..0ded938a3 100644 --- a/obs/volume-control.hpp +++ b/obs/volume-control.hpp @@ -37,8 +37,8 @@ private: float levelTotal; float levelCount; - static void OBSVolumeChanged(void *param, calldata_t calldata); - static void OBSVolumeLevel(void *data, calldata_t calldata); + static void OBSVolumeChanged(void *param, calldata_t *calldata); + static void OBSVolumeLevel(void *data, calldata_t *calldata); private slots: void VolumeChanged(int vol); @@ -49,7 +49,7 @@ public: VolControl(OBSSource source); ~VolControl(); - inline obs_source_t GetSource() const {return source;} + inline obs_source_t *GetSource() const {return source;} QString GetName() const; void SetName(const QString &newName); diff --git a/obs/window-basic-interaction.cpp b/obs/window-basic-interaction.cpp index 1d79c15d5..1f5403fa3 100644 --- a/obs/window-basic-interaction.cpp +++ b/obs/window-basic-interaction.cpp @@ -107,7 +107,7 @@ OBSEventFilter *OBSBasicInteraction::BuildEventFilter() }); } -void OBSBasicInteraction::SourceRemoved(void *data, calldata_t params) +void OBSBasicInteraction::SourceRemoved(void *data, calldata_t *params) { QMetaObject::invokeMethod(static_cast(data), "close"); diff --git a/obs/window-basic-interaction.hpp b/obs/window-basic-interaction.hpp index 4c8e3c208..a6453f936 100644 --- a/obs/window-basic-interaction.hpp +++ b/obs/window-basic-interaction.hpp @@ -44,7 +44,7 @@ private: OBSSignal removedSignal; std::unique_ptr eventFilter; - static void SourceRemoved(void *data, calldata_t params); + static void SourceRemoved(void *data, calldata_t *params); static void DrawPreview(void *data, uint32_t cx, uint32_t cy); bool GetSourceRelativeXY(int mouseX, int mouseY, int &x, int &y); diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index ed9a81a0b..73d8997e7 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -120,13 +120,13 @@ OBSBasic::OBSBasic(QWidget *parent) #endif } -static void SaveAudioDevice(const char *name, int channel, obs_data_t parent) +static void SaveAudioDevice(const char *name, int channel, obs_data_t *parent) { - obs_source_t source = obs_get_output_source(channel); + obs_source_t *source = obs_get_output_source(channel); if (!source) return; - obs_data_t data = obs_save_source(source); + obs_data_t *data = obs_save_source(source); obs_data_set_obj(parent, name, data); @@ -134,11 +134,11 @@ static void SaveAudioDevice(const char *name, int channel, obs_data_t parent) obs_source_release(source); } -static obs_data_t GenerateSaveData() +static obs_data_t *GenerateSaveData() { - obs_data_t saveData = obs_data_create(); - obs_data_array_t sourcesArray = obs_save_sources(); - obs_source_t currentScene = obs_get_output_source(0); + obs_data_t *saveData = obs_data_create(); + obs_data_array_t *sourcesArray = obs_save_sources(); + obs_source_t *currentScene = obs_get_output_source(0); const char *sceneName = obs_source_get_name(currentScene); SaveAudioDevice(DESKTOP_AUDIO_1, 1, saveData); @@ -169,7 +169,7 @@ void OBSBasic::ClearVolumeControls() void OBSBasic::Save(const char *file) { - obs_data_t saveData = GenerateSaveData(); + obs_data_t *saveData = GenerateSaveData(); const char *jsonData = obs_data_get_json(saveData); /* TODO maybe a message box here? */ @@ -179,13 +179,13 @@ void OBSBasic::Save(const char *file) obs_data_release(saveData); } -static void LoadAudioDevice(const char *name, int channel, obs_data_t parent) +static void LoadAudioDevice(const char *name, int channel, obs_data_t *parent) { - obs_data_t data = obs_data_get_obj(parent, name); + obs_data_t *data = obs_data_get_obj(parent, name); if (!data) return; - obs_source_t source = obs_load_source(data); + obs_source_t *source = obs_load_source(data); if (source) { obs_set_output_source(channel, source); obs_source_release(source); @@ -196,8 +196,8 @@ static void LoadAudioDevice(const char *name, int channel, obs_data_t parent) void OBSBasic::CreateDefaultScene() { - obs_scene_t scene = obs_scene_create(Str("Basic.Scene")); - obs_source_t source = obs_scene_get_source(scene); + obs_scene_t *scene = obs_scene_create(Str("Basic.Scene")); + obs_source_t *source = obs_scene_get_source(scene); obs_add_source(source); @@ -229,11 +229,11 @@ void OBSBasic::Load(const char *file) return; } - obs_data_t data = obs_data_create_from_json(jsonData); - obs_data_array_t sources = obs_data_get_array(data, "sources"); + obs_data_t *data = obs_data_create_from_json(jsonData); + obs_data_array_t *sources = obs_data_get_array(data, "sources"); const char *sceneName = obs_data_get_string(data, "current_scene"); - obs_source_t curScene; + obs_source_t *curScene; LoadAudioDevice(DESKTOP_AUDIO_1, 1, data); LoadAudioDevice(DESKTOP_AUDIO_2, 2, data); @@ -254,14 +254,14 @@ void OBSBasic::Load(const char *file) static inline bool HasAudioDevices(const char *source_id) { const char *output_id = source_id; - obs_properties_t props = obs_get_source_properties( + obs_properties_t *props = obs_get_source_properties( OBS_SOURCE_TYPE_INPUT, output_id); size_t count = 0; if (!props) return false; - obs_property_t devices = obs_properties_get(props, "device_id"); + obs_property_t *devices = obs_properties_get(props, "device_id"); if (devices) count = obs_property_list_item_count(devices); @@ -270,21 +270,21 @@ static inline bool HasAudioDevices(const char *source_id) return count != 0; } -static void OBSStartStreaming(void *data, calldata_t params) +static void OBSStartStreaming(void *data, calldata_t *params) { UNUSED_PARAMETER(params); QMetaObject::invokeMethod(static_cast(data), "StreamingStart"); } -static void OBSStopStreaming(void *data, calldata_t params) +static void OBSStopStreaming(void *data, calldata_t *params) { int code = (int)calldata_int(params, "code"); QMetaObject::invokeMethod(static_cast(data), "StreamingStop", Q_ARG(int, code)); } -static void OBSStartRecording(void *data, calldata_t params) +static void OBSStartRecording(void *data, calldata_t *params) { UNUSED_PARAMETER(params); @@ -292,7 +292,7 @@ static void OBSStartRecording(void *data, calldata_t params) "RecordingStart"); } -static void OBSStopRecording(void *data, calldata_t params) +static void OBSStopRecording(void *data, calldata_t *params) { UNUSED_PARAMETER(params); @@ -311,8 +311,8 @@ void OBSBasic::SaveService() if (!serviceJsonPath) return; - obs_data_t data = obs_data_create(); - obs_data_t settings = obs_service_get_settings(service); + obs_data_t *data = obs_data_create(); + obs_data_t *settings = obs_service_get_settings(service); obs_data_set_string(data, "type", obs_service_gettype(service)); obs_data_set_obj(data, "settings", settings); @@ -337,12 +337,12 @@ bool OBSBasic::LoadService() if (!jsonText) return false; - obs_data_t data = obs_data_create_from_json(jsonText); + obs_data_t *data = obs_data_create_from_json(jsonText); obs_data_set_default_string(data, "type", "rtmp_common"); type = obs_data_get_string(data, "type"); - obs_data_t settings = obs_data_get_obj(data, "settings"); + obs_data_t *settings = obs_data_get_obj(data, "settings"); service = obs_service_create(type, "default_service", settings); @@ -643,7 +643,7 @@ void OBSBasic::UpdateSources(OBSScene scene) ui->sources->clear(); obs_scene_enum_items(scene, - [] (obs_scene_t scene, obs_sceneitem_t item, void *p) + [] (obs_scene_t *scene, obs_sceneitem_t *item, void *p) { OBSBasic *window = static_cast(p); window->InsertSceneItem(item); @@ -653,9 +653,9 @@ void OBSBasic::UpdateSources(OBSScene scene) }, this); } -void OBSBasic::InsertSceneItem(obs_sceneitem_t item) +void OBSBasic::InsertSceneItem(obs_sceneitem_t *item) { - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); const char *name = obs_source_get_name(source); QListWidgetItem *listItem = new QListWidgetItem(QT_UTF8(name)); @@ -671,7 +671,7 @@ void OBSBasic::InsertSceneItem(obs_sceneitem_t item) CreatePropertiesWindow(source); } -void OBSBasic::CreateInteractionWindow(obs_source_t source) +void OBSBasic::CreateInteractionWindow(obs_source_t *source) { if (interaction) interaction->close(); @@ -681,7 +681,7 @@ void OBSBasic::CreateInteractionWindow(obs_source_t source) interaction->setAttribute(Qt::WA_DeleteOnClose, true); } -void OBSBasic::CreatePropertiesWindow(obs_source_t source) +void OBSBasic::CreatePropertiesWindow(obs_source_t *source) { if (properties) properties->close(); @@ -696,14 +696,14 @@ void OBSBasic::CreatePropertiesWindow(obs_source_t source) void OBSBasic::AddScene(OBSSource source) { const char *name = obs_source_get_name(source); - obs_scene_t scene = obs_scene_from_source(source); + obs_scene_t *scene = obs_scene_from_source(source); QListWidgetItem *item = new QListWidgetItem(QT_UTF8(name)); item->setFlags(item->flags() | Qt::ItemIsEditable); item->setData(Qt::UserRole, QVariant::fromValue(OBSScene(scene))); ui->scenes->addItem(item); - signal_handler_t handler = obs_source_get_signal_handler(source); + signal_handler_t *handler = obs_source_get_signal_handler(source); signal_handler_connect(handler, "item_add", OBSBasic::SceneItemAdded, this); signal_handler_connect(handler, "item_remove", @@ -735,8 +735,8 @@ void OBSBasic::RemoveScene(OBSSource source) void OBSBasic::AddSceneItem(OBSSceneItem item) { - obs_scene_t scene = obs_sceneitem_get_scene(item); - obs_source_t source = obs_sceneitem_get_source(item); + obs_scene_t *scene = obs_sceneitem_get_scene(item); + obs_source_t *source = obs_sceneitem_get_source(item); if (GetCurrentScene() == scene) InsertSceneItem(item); @@ -746,7 +746,7 @@ void OBSBasic::AddSceneItem(OBSSceneItem item) void OBSBasic::RemoveSceneItem(OBSSceneItem item) { - obs_scene_t scene = obs_sceneitem_get_scene(item); + obs_scene_t *scene = obs_sceneitem_get_scene(item); if (GetCurrentScene() == scene) { for (int i = 0; i < ui->sources->count(); i++) { @@ -760,7 +760,7 @@ void OBSBasic::RemoveSceneItem(OBSSceneItem item) } } - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); int scenes = sourceSceneRefs[source] - 1; sourceSceneRefs[source] = scenes; @@ -774,7 +774,7 @@ void OBSBasic::RemoveSceneItem(OBSSceneItem item) void OBSBasic::UpdateSceneSelection(OBSSource source) { if (source) { - obs_scene_t scene = obs_scene_from_source(source); + obs_scene_t *scene = obs_scene_from_source(source); const char *name = obs_source_get_name(source); if (!scene) @@ -869,7 +869,7 @@ void OBSBasic::DeactivateAudioSource(OBSSource source) } } -bool OBSBasic::QueryRemoveSource(obs_source_t source) +bool OBSBasic::QueryRemoveSource(obs_source_t *source) { const char *name = obs_source_get_name(source); @@ -955,8 +955,8 @@ void OBSBasic::updateFileFinished() if (!jsonReply || !*jsonReply) return; - obs_data_t returnData = obs_data_create_from_json(jsonReply); - obs_data_t versionData = obs_data_get_obj(returnData, VERSION_ENTRY); + obs_data_t *returnData = obs_data_create_from_json(jsonReply); + obs_data_t *versionData = obs_data_get_obj(returnData, VERSION_ENTRY); const char *description = obs_data_get_string(returnData, "description"); const char *download = obs_data_get_string(versionData, "download"); @@ -1004,7 +1004,7 @@ void OBSBasic::RemoveSelectedScene() { OBSScene scene = GetCurrentScene(); if (scene) { - obs_source_t source = obs_scene_get_source(scene); + obs_source_t *source = obs_scene_get_source(scene); if (QueryRemoveSource(source)) obs_source_remove(source); } @@ -1014,7 +1014,7 @@ void OBSBasic::RemoveSelectedSceneItem() { OBSSceneItem item = GetCurrentSceneItem(); if (item) { - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); if (QueryRemoveSource(source)) obs_sceneitem_remove(item); } @@ -1022,30 +1022,30 @@ void OBSBasic::RemoveSelectedSceneItem() /* OBS Callbacks */ -void OBSBasic::SceneItemAdded(void *data, calldata_t params) +void OBSBasic::SceneItemAdded(void *data, calldata_t *params) { OBSBasic *window = static_cast(data); - obs_sceneitem_t item = (obs_sceneitem_t)calldata_ptr(params, "item"); + obs_sceneitem_t *item = (obs_sceneitem_t*)calldata_ptr(params, "item"); QMetaObject::invokeMethod(window, "AddSceneItem", Q_ARG(OBSSceneItem, OBSSceneItem(item))); } -void OBSBasic::SceneItemRemoved(void *data, calldata_t params) +void OBSBasic::SceneItemRemoved(void *data, calldata_t *params) { OBSBasic *window = static_cast(data); - obs_sceneitem_t item = (obs_sceneitem_t)calldata_ptr(params, "item"); + obs_sceneitem_t *item = (obs_sceneitem_t*)calldata_ptr(params, "item"); QMetaObject::invokeMethod(window, "RemoveSceneItem", Q_ARG(OBSSceneItem, OBSSceneItem(item))); } -void OBSBasic::SourceAdded(void *data, calldata_t params) +void OBSBasic::SourceAdded(void *data, calldata_t *params) { OBSBasic *window = static_cast(data); - obs_source_t source = (obs_source_t)calldata_ptr(params, "source"); + obs_source_t *source = (obs_source_t*)calldata_ptr(params, "source"); if (obs_scene_from_source(source) != NULL) QMetaObject::invokeMethod(window, @@ -1053,9 +1053,9 @@ void OBSBasic::SourceAdded(void *data, calldata_t params) Q_ARG(OBSSource, OBSSource(source))); } -void OBSBasic::SourceRemoved(void *data, calldata_t params) +void OBSBasic::SourceRemoved(void *data, calldata_t *params) { - obs_source_t source = (obs_source_t)calldata_ptr(params, "source"); + obs_source_t *source = (obs_source_t*)calldata_ptr(params, "source"); if (obs_scene_from_source(source) != NULL) QMetaObject::invokeMethod(static_cast(data), @@ -1063,9 +1063,9 @@ void OBSBasic::SourceRemoved(void *data, calldata_t params) Q_ARG(OBSSource, OBSSource(source))); } -void OBSBasic::SourceActivated(void *data, calldata_t params) +void OBSBasic::SourceActivated(void *data, calldata_t *params) { - obs_source_t source = (obs_source_t)calldata_ptr(params, "source"); + obs_source_t *source = (obs_source_t*)calldata_ptr(params, "source"); uint32_t flags = obs_source_get_output_flags(source); if (flags & OBS_SOURCE_AUDIO) @@ -1074,9 +1074,9 @@ void OBSBasic::SourceActivated(void *data, calldata_t params) Q_ARG(OBSSource, OBSSource(source))); } -void OBSBasic::SourceDeactivated(void *data, calldata_t params) +void OBSBasic::SourceDeactivated(void *data, calldata_t *params) { - obs_source_t source = (obs_source_t)calldata_ptr(params, "source"); + obs_source_t *source = (obs_source_t*)calldata_ptr(params, "source"); uint32_t flags = obs_source_get_output_flags(source); if (flags & OBS_SOURCE_AUDIO) @@ -1085,7 +1085,7 @@ void OBSBasic::SourceDeactivated(void *data, calldata_t params) Q_ARG(OBSSource, OBSSource(source))); } -void OBSBasic::SourceRenamed(void *data, calldata_t params) +void OBSBasic::SourceRenamed(void *data, calldata_t *params) { const char *newName = calldata_string(params, "new_name"); const char *prevName = calldata_string(params, "prev_name"); @@ -1096,9 +1096,9 @@ void OBSBasic::SourceRenamed(void *data, calldata_t params) Q_ARG(QString, QT_UTF8(prevName))); } -void OBSBasic::ChannelChanged(void *data, calldata_t params) +void OBSBasic::ChannelChanged(void *data, calldata_t *params) { - obs_source_t source = (obs_source_t)calldata_ptr(params, "source"); + obs_source_t *source = (obs_source_t*)calldata_ptr(params, "source"); uint32_t channel = (uint32_t)calldata_int(params, "channel"); if (channel == 0) @@ -1112,9 +1112,9 @@ void OBSBasic::DrawBackdrop(float cx, float cy) if (!box) return; - gs_effect_t solid = obs_get_solid_effect(); - gs_eparam_t color = gs_effect_get_param_by_name(solid, "color"); - gs_technique_t tech = gs_effect_get_technique(solid, "Solid"); + gs_effect_t *solid = obs_get_solid_effect(); + gs_eparam_t *color = gs_effect_get_param_by_name(solid, "color"); + gs_technique_t *tech = gs_effect_get_technique(solid, "Solid"); vec4 colorVal; vec4_set(&colorVal, 0.0f, 0.0f, 0.0f, 1.0f); @@ -1183,36 +1183,36 @@ void OBSBasic::RenderMain(void *data, uint32_t cx, uint32_t cy) UNUSED_PARAMETER(cy); } -void OBSBasic::SceneItemMoveUp(void *data, calldata_t params) +void OBSBasic::SceneItemMoveUp(void *data, calldata_t *params) { - OBSSceneItem item = (obs_sceneitem_t)calldata_ptr(params, "item"); + OBSSceneItem item = (obs_sceneitem_t*)calldata_ptr(params, "item"); QMetaObject::invokeMethod(static_cast(data), "MoveSceneItem", Q_ARG(OBSSceneItem, OBSSceneItem(item)), Q_ARG(obs_order_movement, OBS_ORDER_MOVE_UP)); } -void OBSBasic::SceneItemMoveDown(void *data, calldata_t params) +void OBSBasic::SceneItemMoveDown(void *data, calldata_t *params) { - OBSSceneItem item = (obs_sceneitem_t)calldata_ptr(params, "item"); + OBSSceneItem item = (obs_sceneitem_t*)calldata_ptr(params, "item"); QMetaObject::invokeMethod(static_cast(data), "MoveSceneItem", Q_ARG(OBSSceneItem, OBSSceneItem(item)), Q_ARG(obs_order_movement, OBS_ORDER_MOVE_DOWN)); } -void OBSBasic::SceneItemMoveTop(void *data, calldata_t params) +void OBSBasic::SceneItemMoveTop(void *data, calldata_t *params) { - OBSSceneItem item = (obs_sceneitem_t)calldata_ptr(params, "item"); + OBSSceneItem item = (obs_sceneitem_t*)calldata_ptr(params, "item"); QMetaObject::invokeMethod(static_cast(data), "MoveSceneItem", Q_ARG(OBSSceneItem, OBSSceneItem(item)), Q_ARG(obs_order_movement, OBS_ORDER_MOVE_TOP)); } -void OBSBasic::SceneItemMoveBottom(void *data, calldata_t params) +void OBSBasic::SceneItemMoveBottom(void *data, calldata_t *params) { - OBSSceneItem item = (obs_sceneitem_t)calldata_ptr(params, "item"); + OBSSceneItem item = (obs_sceneitem_t*)calldata_ptr(params, "item"); QMetaObject::invokeMethod(static_cast(data), "MoveSceneItem", Q_ARG(OBSSceneItem, OBSSceneItem(item)), @@ -1221,14 +1221,14 @@ void OBSBasic::SceneItemMoveBottom(void *data, calldata_t params) /* Main class functions */ -obs_service_t OBSBasic::GetService() +obs_service_t *OBSBasic::GetService() { if (!service) service = obs_service_create("rtmp_common", NULL, NULL); return service; } -void OBSBasic::SetService(obs_service_t newService) +void OBSBasic::SetService(obs_service_t *newService) { if (newService) { if (service) @@ -1335,8 +1335,8 @@ void OBSBasic::ResetAudioDevice(const char *sourceId, const char *deviceName, { const char *deviceId = config_get_string(basicConfig, "Audio", deviceName); - obs_source_t source; - obs_data_t settings; + obs_source_t *source; + obs_data_t *settings; bool same = false; source = obs_get_output_source(channel); @@ -1354,7 +1354,7 @@ void OBSBasic::ResetAudioDevice(const char *sourceId, const char *deviceName, obs_set_output_source(channel, nullptr); if (!same && strcmp(deviceId, "disabled") != 0) { - obs_data_t settings = obs_data_create(); + obs_data_t *settings = obs_data_create(); obs_data_set_string(settings, "device_id", deviceId); source = obs_source_create(OBS_SOURCE_TYPE_INPUT, sourceId, deviceDesc, settings); @@ -1469,13 +1469,13 @@ void OBSBasic::on_action_Settings_triggered() void OBSBasic::on_scenes_currentItemChanged(QListWidgetItem *current, QListWidgetItem *prev) { - obs_source_t source = NULL; + obs_source_t *source = NULL; if (sceneChanging) return; if (current) { - obs_scene_t scene; + obs_scene_t *scene; scene = current->data(Qt::UserRole).value(); source = obs_scene_get_source(scene); @@ -1514,7 +1514,7 @@ void OBSBasic::on_actionAddScene_triggered() int i = 1; QString placeHolderText = format.arg(i); - obs_source_t source = nullptr; + obs_source_t *source = nullptr; while ((source = obs_get_source_by_name(QT_TO_UTF8(placeHolderText)))) { obs_source_release(source); placeHolderText = format.arg(++i); @@ -1535,7 +1535,7 @@ void OBSBasic::on_actionAddScene_triggered() return; } - obs_source_t source = obs_get_source_by_name(name.c_str()); + obs_source_t *source = obs_get_source_by_name(name.c_str()); if (source) { QMessageBox::information(this, QTStr("NameExists.Title"), @@ -1546,7 +1546,7 @@ void OBSBasic::on_actionAddScene_triggered() return; } - obs_scene_t scene = obs_scene_create(name.c_str()); + obs_scene_t *scene = obs_scene_create(name.c_str()); source = obs_scene_get_source(scene); obs_add_source(source); obs_scene_release(scene); @@ -1558,7 +1558,7 @@ void OBSBasic::on_actionAddScene_triggered() void OBSBasic::on_actionRemoveScene_triggered() { OBSScene scene = GetCurrentScene(); - obs_source_t source = obs_scene_get_source(scene); + obs_source_t *source = obs_scene_get_source(scene); if (source && QueryRemoveSource(source)) obs_source_remove(source); @@ -1582,10 +1582,10 @@ void OBSBasic::on_actionSceneDown_triggered() void OBSBasic::on_sources_currentItemChanged(QListWidgetItem *current, QListWidgetItem *prev) { - auto select_one = [] (obs_scene_t scene, obs_sceneitem_t item, + auto select_one = [] (obs_scene_t *scene, obs_sceneitem_t *item, void *param) { - obs_sceneitem_t selectedItem = + obs_sceneitem_t *selectedItem = *reinterpret_cast(param); obs_sceneitem_select(item, (selectedItem == item)); @@ -1597,7 +1597,7 @@ void OBSBasic::on_sources_currentItemChanged(QListWidgetItem *current, return; OBSSceneItem item = current->data(Qt::UserRole).value(); - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); if ((obs_source_get_output_flags(source) & OBS_SOURCE_VIDEO) == 0) return; @@ -1625,7 +1625,7 @@ void OBSBasic::on_sources_customContextMenuRequested(const QPoint &pos) popup.addSeparator(); OBSSceneItem sceneItem = GetSceneItem(item); - obs_source_t source = obs_sceneitem_get_source(sceneItem); + obs_source_t *source = obs_sceneitem_get_source(sceneItem); QAction *action; popup.addAction(QTStr("Rename"), this, @@ -1722,7 +1722,7 @@ void OBSBasic::on_actionAddSource_triggered() void OBSBasic::on_actionRemoveSource_triggered() { OBSSceneItem item = GetCurrentSceneItem(); - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); if (source && QueryRemoveSource(source)) obs_sceneitem_remove(item); @@ -1809,7 +1809,7 @@ void OBSBasic::UploadLog(const char *file) ui->menuLogFiles->setEnabled(false); - auto data_deleter = [](obs_data_t d) { obs_data_release(d); }; + auto data_deleter = [](obs_data_t *d) { obs_data_release(d); }; using data_t = unique_ptr; data_t content{obs_data_create(), data_deleter}; @@ -1886,7 +1886,7 @@ void OBSBasic::logUploadFinished() if (!jsonReply || !*jsonReply) return; - obs_data_t returnData = obs_data_create_from_json(jsonReply); + obs_data_t *returnData = obs_data_create_from_json(jsonReply); QString logURL = obs_data_get_string(returnData, "html_url"); obs_data_release(returnData); @@ -1897,10 +1897,10 @@ void OBSBasic::logUploadFinished() } static void RenameListItem(OBSBasic *parent, QListWidget *listWidget, - obs_source_t source, const string &name) + obs_source_t *source, const string &name) { const char *prevName = obs_source_get_name(source); - obs_source_t foundSource = obs_get_source_by_name(name.c_str()); + obs_source_t *foundSource = obs_get_source_by_name(name.c_str()); QListWidgetItem *listItem = listWidget->currentItem(); if (foundSource || name.compare(prevName) == 0 || name.empty()) { @@ -1933,7 +1933,7 @@ void OBSBasic::SceneNameEdited(QWidget *editor, if (!scene) return; - obs_source_t source = obs_scene_get_source(scene); + obs_source_t *source = obs_scene_get_source(scene); RenameListItem(this, ui->scenes, source, text); UNUSED_PARAMETER(endHint); @@ -1949,7 +1949,7 @@ void OBSBasic::SceneItemNameEdited(QWidget *editor, if (!item) return; - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); RenameListItem(this, ui->sources, source, text); UNUSED_PARAMETER(endHint); @@ -2017,8 +2017,8 @@ void OBSBasic::RecordingStop() void OBSBasic::SetupEncoders() { if (activeRefs == 0) { - obs_data_t x264Settings = obs_data_create(); - obs_data_t aacSettings = obs_data_create(); + obs_data_t *x264Settings = obs_data_create(); + obs_data_t *aacSettings = obs_data_create(); int videoBitrate = config_get_uint(basicConfig, "SimpleOutput", "VBitrate"); @@ -2101,7 +2101,7 @@ void OBSBasic::on_recordButton_clicked() const char *path = config_get_string(basicConfig, "SimpleOutput", "FilePath"); - os_dir_t dir = path ? os_opendir(path) : nullptr; + os_dir_t *dir = path ? os_opendir(path) : nullptr; if (!dir) { QMessageBox::information(this, @@ -2126,7 +2126,7 @@ void OBSBasic::on_recordButton_clicked() obs_output_set_video_encoder(fileOutput, x264); obs_output_set_audio_encoder(fileOutput, aac); - obs_data_t settings = obs_data_create(); + obs_data_t *settings = obs_data_create(); obs_data_set_string(settings, "path", strPath.c_str()); obs_output_update(fileOutput, settings); @@ -2211,7 +2211,7 @@ void OBSBasic::GetConfigFPS(uint32_t &num, uint32_t &den) const GetFPSCommon(num, den); } -config_t OBSBasic::Config() const +config_t *OBSBasic::Config() const { return basicConfig; } @@ -2228,7 +2228,7 @@ void OBSBasic::on_actionEditTransform_triggered() void OBSBasic::on_actionResetTransform_triggered() { - auto func = [] (obs_scene_t scene, obs_sceneitem_t item, void *param) + auto func = [] (obs_scene_t *scene, obs_sceneitem_t *item, void *param) { if (!obs_sceneitem_selected(item)) return true; @@ -2251,7 +2251,7 @@ void OBSBasic::on_actionResetTransform_triggered() obs_scene_enum_items(GetCurrentScene(), func, nullptr); } -static void GetItemBox(obs_sceneitem_t item, vec3 &tl, vec3 &br) +static void GetItemBox(obs_sceneitem_t *item, vec3 &tl, vec3 &br) { matrix4 boxTransform; obs_sceneitem_get_box_transform(item, &boxTransform); @@ -2274,14 +2274,14 @@ static void GetItemBox(obs_sceneitem_t item, vec3 &tl, vec3 &br) GetMinPos(1.0f, 1.0f); } -static vec3 GetItemTL(obs_sceneitem_t item) +static vec3 GetItemTL(obs_sceneitem_t *item) { vec3 tl, br; GetItemBox(item, tl, br); return tl; } -static void SetItemTL(obs_sceneitem_t item, const vec3 &tl) +static void SetItemTL(obs_sceneitem_t *item, const vec3 &tl) { vec3 newTL; vec2 pos; @@ -2293,7 +2293,7 @@ static void SetItemTL(obs_sceneitem_t item, const vec3 &tl) obs_sceneitem_set_pos(item, &pos); } -static bool RotateSelectedSources(obs_scene_t scene, obs_sceneitem_t item, +static bool RotateSelectedSources(obs_scene_t *scene, obs_sceneitem_t *item, void *param) { if (!obs_sceneitem_selected(item)) @@ -2333,7 +2333,7 @@ void OBSBasic::on_actionRotate180_triggered() obs_scene_enum_items(GetCurrentScene(), RotateSelectedSources, &f180); } -static bool MultiplySelectedItemScale(obs_scene_t scene, obs_sceneitem_t item, +static bool MultiplySelectedItemScale(obs_scene_t *scene, obs_sceneitem_t *item, void *param) { vec2 &mul = *reinterpret_cast(param); @@ -2370,7 +2370,7 @@ void OBSBasic::on_actionFlipVertical_triggered() &scale); } -static bool CenterAlignSelectedItems(obs_scene_t scene, obs_sceneitem_t item, +static bool CenterAlignSelectedItems(obs_scene_t *scene, obs_sceneitem_t *item, void *param) { obs_bounds_type boundsType = *reinterpret_cast(param); @@ -2414,7 +2414,7 @@ void OBSBasic::on_actionStretchToScreen_triggered() void OBSBasic::on_actionCenterToScreen_triggered() { - auto func = [] (obs_scene_t scene, obs_sceneitem_t item, void *param) + auto func = [] (obs_scene_t *scene, obs_sceneitem_t *item, void *param) { vec3 tl, br, itemCenter, screenCenter, offset; obs_video_info ovi; diff --git a/obs/window-basic-main.hpp b/obs/window-basic-main.hpp index 72795183e..79cc2594b 100644 --- a/obs/window-basic-main.hpp +++ b/obs/window-basic-main.hpp @@ -52,7 +52,7 @@ class OBSBasic : public OBSMainWindow { friend class OBSBasicPreview; private: - std::unordered_map sourceSceneRefs; + std::unordered_map sourceSceneRefs; std::vector volumes; @@ -65,7 +65,7 @@ private: QNetworkAccessManager networkManager; QPointer cpuUsageTimer; - os_cpu_usage_info_t cpuUsageInfo = nullptr; + os_cpu_usage_info_t *cpuUsageInfo = nullptr; QBuffer logUploadPostData; QNetworkReply *logUploadReply = nullptr; @@ -75,14 +75,14 @@ private: QNetworkReply *updateReply = nullptr; QByteArray updateReturnData; - obs_output_t fileOutput = nullptr; - obs_output_t streamOutput = nullptr; - obs_service_t service = nullptr; - obs_encoder_t aac = nullptr; - obs_encoder_t x264 = nullptr; + obs_output_t *fileOutput = nullptr; + obs_output_t *streamOutput = nullptr; + obs_service_t *service = nullptr; + obs_encoder_t *aac = nullptr; + obs_encoder_t *x264 = nullptr; - gs_vertbuffer_t box = nullptr; - gs_vertbuffer_t circle = nullptr; + gs_vertbuffer_t *box = nullptr; + gs_vertbuffer_t *circle = nullptr; bool sceneChanging = false; @@ -125,7 +125,7 @@ private: OBSSceneItem GetSceneItem(QListWidgetItem *item); OBSSceneItem GetCurrentSceneItem(); - bool QueryRemoveSource(obs_source_t source); + bool QueryRemoveSource(obs_source_t *source); void TimedCheckForUpdates(); void CheckForUpdates(); @@ -137,14 +137,14 @@ private: void GetConfigFPS(uint32_t &num, uint32_t &den) const; void UpdateSources(OBSScene scene); - void InsertSceneItem(obs_sceneitem_t item); + void InsertSceneItem(obs_sceneitem_t *item); void TempFileOutput(const char *path, int vBitrate, int aBitrate); void TempStreamOutput(const char *url, const char *key, int vBitrate, int aBitrate); - void CreateInteractionWindow(obs_source_t source); - void CreatePropertiesWindow(obs_source_t source); + void CreateInteractionWindow(obs_source_t *source); + void CreatePropertiesWindow(obs_source_t *source); public slots: void StreamingStart(); @@ -171,20 +171,20 @@ private slots: private: /* OBS Callbacks */ - static void SceneItemAdded(void *data, calldata_t params); - static void SceneItemRemoved(void *data, calldata_t params); - static void SourceAdded(void *data, calldata_t params); - static void SourceRemoved(void *data, calldata_t params); - static void SourceActivated(void *data, calldata_t params); - static void SourceDeactivated(void *data, calldata_t params); - static void SourceRenamed(void *data, calldata_t params); - static void ChannelChanged(void *data, calldata_t params); + static void SceneItemAdded(void *data, calldata_t *params); + static void SceneItemRemoved(void *data, calldata_t *params); + static void SourceAdded(void *data, calldata_t *params); + static void SourceRemoved(void *data, calldata_t *params); + static void SourceActivated(void *data, calldata_t *params); + static void SourceDeactivated(void *data, calldata_t *params); + static void SourceRenamed(void *data, calldata_t *params); + static void ChannelChanged(void *data, calldata_t *params); static void RenderMain(void *data, uint32_t cx, uint32_t cy); - static void SceneItemMoveUp(void *data, calldata_t params); - static void SceneItemMoveDown(void *data, calldata_t params); - static void SceneItemMoveTop(void *data, calldata_t params); - static void SceneItemMoveBottom(void *data, calldata_t params); + static void SceneItemMoveUp(void *data, calldata_t *params); + static void SceneItemMoveDown(void *data, calldata_t *params); + static void SceneItemMoveTop(void *data, calldata_t *params); + static void SceneItemMoveBottom(void *data, calldata_t *params); void ResizePreview(uint32_t cx, uint32_t cy); @@ -195,8 +195,8 @@ private: public: OBSScene GetCurrentScene(); - obs_service_t GetService(); - void SetService(obs_service_t service); + obs_service_t *GetService(); + void SetService(obs_service_t *service); int ResetVideo(); bool ResetAudio(); @@ -299,7 +299,7 @@ public: virtual void OBSInit() override; - virtual config_t Config() const override; + virtual config_t *Config() const override; private: std::unique_ptr ui; diff --git a/obs/window-basic-preview.cpp b/obs/window-basic-preview.cpp index 830957bae..669a0c939 100644 --- a/obs/window-basic-preview.cpp +++ b/obs/window-basic-preview.cpp @@ -49,14 +49,15 @@ struct SceneFindData { {} }; -static bool SceneItemHasVideo(obs_sceneitem_t item) +static bool SceneItemHasVideo(obs_sceneitem_t *item) { - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); uint32_t flags = obs_source_get_output_flags(source); return (flags & OBS_SOURCE_VIDEO) != 0; } -static bool FindItemAtPos(obs_scene_t scene, obs_sceneitem_t item, void *param) +static bool FindItemAtPos(obs_scene_t *scene, obs_sceneitem_t *item, + void *param) { SceneFindData *data = reinterpret_cast(param); matrix4 transform; @@ -159,7 +160,7 @@ OBSSceneItem OBSBasicPreview::GetItemAtPos(const vec2 &pos, bool selectBelow) return data.item; } -static bool CheckItemSelected(obs_scene_t scene, obs_sceneitem_t item, +static bool CheckItemSelected(obs_scene_t *scene, obs_sceneitem_t *item, void *param) { SceneFindData *data = reinterpret_cast(param); @@ -220,7 +221,7 @@ struct HandleFindData { {} }; -static bool FindHandleAtPos(obs_scene_t scene, obs_sceneitem_t item, +static bool FindHandleAtPos(obs_scene_t *scene, obs_sceneitem_t *item, void *param) { if (!obs_sceneitem_selected(item)) @@ -263,7 +264,7 @@ static bool FindHandleAtPos(obs_scene_t scene, obs_sceneitem_t item, return true; } -static vec2 GetItemSize(obs_sceneitem_t item) +static vec2 GetItemSize(obs_sceneitem_t *item) { obs_bounds_type boundsType = obs_sceneitem_get_bounds_type(item); vec2 size; @@ -271,7 +272,7 @@ static vec2 GetItemSize(obs_sceneitem_t item) if (boundsType != OBS_BOUNDS_NONE) { obs_sceneitem_get_bounds(item, &size); } else { - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); vec2 scale; obs_sceneitem_get_scale(item, &scale); @@ -345,9 +346,10 @@ void OBSBasicPreview::mousePressEvent(QMouseEvent *event) vec2_zero(&lastMoveOffset); } -static bool select_one(obs_scene_t scene, obs_sceneitem_t item, void *param) +static bool select_one(obs_scene_t *scene, obs_sceneitem_t *item, void *param) { - obs_sceneitem_t selectedItem = reinterpret_cast(param); + obs_sceneitem_t *selectedItem = + reinterpret_cast(param); obs_sceneitem_select(item, (selectedItem == item)); UNUSED_PARAMETER(scene); @@ -361,7 +363,7 @@ void OBSBasicPreview::DoSelect(const vec2 &pos) OBSScene scene = main->GetCurrentScene(); OBSSceneItem item = GetItemAtPos(pos, true); - obs_scene_enum_items(scene, select_one, (obs_sceneitem_t)item); + obs_scene_enum_items(scene, select_one, (obs_sceneitem_t*)item); } void OBSBasicPreview::DoCtrlSelect(const vec2 &pos) @@ -403,7 +405,7 @@ struct SelectedItemBounds { vec3 tl, br; }; -static bool AddItemBounds(obs_scene_t scene, obs_sceneitem_t item, +static bool AddItemBounds(obs_scene_t *scene, obs_sceneitem_t *item, void *param) { SelectedItemBounds *data = reinterpret_cast(param); @@ -454,7 +456,7 @@ void OBSBasicPreview::SnapItemMovement(vec2 &offset) offset.y += snapOffset.y; } -static bool move_items(obs_scene_t scene, obs_sceneitem_t item, void *param) +static bool move_items(obs_scene_t *scene, obs_sceneitem_t *item, void *param) { vec2 *offset = reinterpret_cast(param); @@ -613,7 +615,7 @@ void OBSBasicPreview::StretchItem(const vec2 &pos) if (!(modifiers & Qt::ControlModifier)) SnapStretchingToScreen(tl, br); - obs_source_t source = obs_sceneitem_get_source(stretchItem); + obs_source_t *source = obs_sceneitem_get_source(stretchItem); vec2 baseSize; vec2_set(&baseSize, @@ -687,8 +689,8 @@ static void DrawCircleAtPos(float x, float y, matrix4 &matrix, gs_matrix_pop(); } -bool OBSBasicPreview::DrawSelectedItem(obs_scene_t scene, obs_sceneitem_t item, - void *param) +bool OBSBasicPreview::DrawSelectedItem(obs_scene_t *scene, + obs_sceneitem_t *item, void *param) { if (!obs_sceneitem_selected(item)) return true; @@ -727,8 +729,8 @@ void OBSBasicPreview::DrawSceneEditing() { OBSBasic *main = reinterpret_cast(App()->GetMainWindow()); - gs_effect_t solid = obs_get_solid_effect(); - gs_technique_t tech = gs_effect_get_technique(solid, "Solid"); + gs_effect_t *solid = obs_get_solid_effect(); + gs_technique_t *tech = gs_effect_get_technique(solid, "Solid"); vec4 color; vec4_set(&color, 1.0f, 0.0f, 0.0f, 1.0f); diff --git a/obs/window-basic-preview.hpp b/obs/window-basic-preview.hpp index 602e3c10b..aaa8bddc2 100644 --- a/obs/window-basic-preview.hpp +++ b/obs/window-basic-preview.hpp @@ -43,7 +43,7 @@ private: bool mouseOverItems = false; static vec2 GetMouseEventPos(QMouseEvent *event); - static bool DrawSelectedItem(obs_scene_t scene, obs_sceneitem_t item, + static bool DrawSelectedItem(obs_scene_t *scene, obs_sceneitem_t *item, void *param); static OBSSceneItem GetItemAtPos(const vec2 &pos, bool selectBelow); diff --git a/obs/window-basic-properties.cpp b/obs/window-basic-properties.cpp index 9defa4d17..aa535e26e 100644 --- a/obs/window-basic-properties.cpp +++ b/obs/window-basic-properties.cpp @@ -71,7 +71,7 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_) setWindowTitle(QTStr("Basic.PropertiesWindow").arg(QT_UTF8(name))); } -void OBSBasicProperties::SourceRemoved(void *data, calldata_t params) +void OBSBasicProperties::SourceRemoved(void *data, calldata_t *params) { QMetaObject::invokeMethod(static_cast(data), "close"); diff --git a/obs/window-basic-properties.hpp b/obs/window-basic-properties.hpp index 943a81320..324b5e684 100644 --- a/obs/window-basic-properties.hpp +++ b/obs/window-basic-properties.hpp @@ -41,7 +41,7 @@ private: OBSSignal removedSignal; OBSPropertiesView *view; - static void SourceRemoved(void *data, calldata_t params); + static void SourceRemoved(void *data, calldata_t *params); static void DrawPreview(void *data, uint32_t cx, uint32_t cy); private slots: diff --git a/obs/window-basic-settings.cpp b/obs/window-basic-settings.cpp index 615c77316..aeafb39be 100644 --- a/obs/window-basic-settings.cpp +++ b/obs/window-basic-settings.cpp @@ -237,9 +237,9 @@ void OBSBasicSettings::LoadServiceTypes() void OBSBasicSettings::LoadServiceInfo() { QLayout *layout = ui->streamContainer->layout(); - obs_service_t service = main->GetService(); - obs_data_t settings = obs_service_get_settings(service); - obs_properties_t properties = obs_service_properties(service); + obs_service_t *service = main->GetService(); + obs_data_t *settings = obs_service_get_settings(service); + obs_properties_t *properties = obs_service_properties(service); delete streamProperties; streamProperties = new OBSPropertiesView( @@ -475,7 +475,7 @@ static inline void LoadListValue(QComboBox *widget, const char *text, widget->addItem(QT_UTF8(text), QT_UTF8(val)); } -void OBSBasicSettings::LoadListValues(QComboBox *widget, obs_property_t prop, +void OBSBasicSettings::LoadListValues(QComboBox *widget, obs_property_t *prop, const char *configName) { size_t count = obs_property_list_item_count(prop); @@ -506,13 +506,13 @@ void OBSBasicSettings::LoadAudioDevices() const char *input_id = App()->InputAudioSource(); const char *output_id = App()->OutputAudioSource(); - obs_properties_t input_props = obs_get_source_properties( + obs_properties_t *input_props = obs_get_source_properties( OBS_SOURCE_TYPE_INPUT, input_id); - obs_properties_t output_props = obs_get_source_properties( + obs_properties_t *output_props = obs_get_source_properties( OBS_SOURCE_TYPE_INPUT, output_id); if (input_props) { - obs_property_t inputs = obs_properties_get(input_props, + obs_property_t *inputs = obs_properties_get(input_props, "device_id"); LoadListValues(ui->auxAudioDevice1, inputs, "AuxDevice1"); LoadListValues(ui->auxAudioDevice2, inputs, "AuxDevice2"); @@ -521,7 +521,7 @@ void OBSBasicSettings::LoadAudioDevices() } if (output_props) { - obs_property_t outputs = obs_properties_get(output_props, + obs_property_t *outputs = obs_properties_get(output_props, "device_id"); LoadListValues(ui->desktopAudioDevice1, outputs, "DesktopDevice1"); @@ -738,7 +738,7 @@ void OBSBasicSettings::on_buttonBox_clicked(QAbstractButton *button) void OBSBasicSettings::on_streamType_currentIndexChanged(int idx) { QString val = ui->streamType->itemData(idx).toString(); - obs_service_t newService; + obs_service_t *newService; if (loading) return; diff --git a/obs/window-basic-settings.hpp b/obs/window-basic-settings.hpp index 80bdbe985..378d765fc 100644 --- a/obs/window-basic-settings.hpp +++ b/obs/window-basic-settings.hpp @@ -97,7 +97,7 @@ private: void LoadSimpleOutputSettings(); /* audio */ - void LoadListValues(QComboBox *widget, obs_property_t prop, + void LoadListValues(QComboBox *widget, obs_property_t *prop, const char *configName); void LoadAudioDevices(); diff --git a/obs/window-basic-source-select.cpp b/obs/window-basic-source-select.cpp index fd32a13c5..bc67f58dc 100644 --- a/obs/window-basic-source-select.cpp +++ b/obs/window-basic-source-select.cpp @@ -21,7 +21,7 @@ #include "qt-wrappers.hpp" #include "obs-app.hpp" -bool OBSBasicSourceSelect::EnumSources(void *data, obs_source_t source) +bool OBSBasicSourceSelect::EnumSources(void *data, obs_source_t *source) { OBSBasicSourceSelect *window = static_cast(data); const char *name = obs_source_get_name(source); @@ -33,19 +33,19 @@ bool OBSBasicSourceSelect::EnumSources(void *data, obs_source_t source) return true; } -void OBSBasicSourceSelect::OBSSourceAdded(void *data, calldata_t calldata) +void OBSBasicSourceSelect::OBSSourceAdded(void *data, calldata_t *calldata) { OBSBasicSourceSelect *window = static_cast(data); - obs_source_t source = (obs_source_t)calldata_ptr(calldata, "source"); + obs_source_t *source = (obs_source_t*)calldata_ptr(calldata, "source"); QMetaObject::invokeMethod(window, "SourceAdded", Q_ARG(OBSSource, source)); } -void OBSBasicSourceSelect::OBSSourceRemoved(void *data, calldata_t calldata) +void OBSBasicSourceSelect::OBSSourceRemoved(void *data, calldata_t *calldata) { OBSBasicSourceSelect *window = static_cast(data); - obs_source_t source = (obs_source_t)calldata_ptr(calldata, "source"); + obs_source_t *source = (obs_source_t*)calldata_ptr(calldata, "source"); QMetaObject::invokeMethod(window, "SourceRemoved", Q_ARG(OBSSource, source)); @@ -81,8 +81,8 @@ void OBSBasicSourceSelect::SourceRemoved(OBSSource source) static void AddExisting(const char *name) { - obs_source_t source = obs_get_output_source(0); - obs_scene_t scene = obs_scene_from_source(source); + obs_source_t *source = obs_get_output_source(0); + obs_scene_t *scene = obs_scene_from_source(source); if (!scene) return; @@ -97,8 +97,8 @@ static void AddExisting(const char *name) bool AddNew(QWidget *parent, const char *id, const char *name) { - obs_source_t source = obs_get_output_source(0); - obs_scene_t scene = obs_scene_from_source(source); + obs_source_t *source = obs_get_output_source(0); + obs_scene_t *scene = obs_scene_from_source(source); bool success = false; if (!source) return false; @@ -169,7 +169,7 @@ OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *id_) QString text{placeHolderText}; int i = 1; - obs_source_t source = nullptr; + obs_source_t *source = nullptr; while ((source = obs_get_source_by_name(QT_TO_UTF8(text)))) { obs_source_release(source); text = QString("%1 %2").arg(placeHolderText).arg(i++); diff --git a/obs/window-basic-source-select.hpp b/obs/window-basic-source-select.hpp index dbebf0cb3..49cbe4290 100644 --- a/obs/window-basic-source-select.hpp +++ b/obs/window-basic-source-select.hpp @@ -31,10 +31,10 @@ private: std::unique_ptr ui; const char *id; - static bool EnumSources(void *data, obs_source_t source); + static bool EnumSources(void *data, obs_source_t *source); - static void OBSSourceRemoved(void *data, calldata_t calldata); - static void OBSSourceAdded(void *data, calldata_t calldata); + static void OBSSourceRemoved(void *data, calldata_t *calldata); + static void OBSSourceAdded(void *data, calldata_t *calldata); private slots: void on_buttonBox_accepted(); diff --git a/obs/window-basic-status-bar.cpp b/obs/window-basic-status-bar.cpp index 51f6add7a..b092d75f7 100644 --- a/obs/window-basic-status-bar.cpp +++ b/obs/window-basic-status-bar.cpp @@ -127,7 +127,7 @@ void OBSBasicStatusBar::UpdateDroppedFrames() droppedFrames->setMinimumWidth(droppedFrames->width()); } -void OBSBasicStatusBar::OBSOutputReconnect(void *data, calldata_t params) +void OBSBasicStatusBar::OBSOutputReconnect(void *data, calldata_t *params) { OBSBasicStatusBar *statusBar = reinterpret_cast(data); @@ -136,7 +136,7 @@ void OBSBasicStatusBar::OBSOutputReconnect(void *data, calldata_t params) UNUSED_PARAMETER(params); } -void OBSBasicStatusBar::OBSOutputReconnectSuccess(void *data, calldata_t params) +void OBSBasicStatusBar::OBSOutputReconnectSuccess(void *data, calldata_t *params) { OBSBasicStatusBar *statusBar = reinterpret_cast(data); @@ -169,7 +169,7 @@ void OBSBasicStatusBar::UpdateStatusBar() UpdateDroppedFrames(); } -void OBSBasicStatusBar::StreamStarted(obs_output_t output) +void OBSBasicStatusBar::StreamStarted(obs_output_t *output) { streamOutput = output; @@ -201,7 +201,7 @@ void OBSBasicStatusBar::StreamStopped() } } -void OBSBasicStatusBar::RecordingStarted(obs_output_t output) +void OBSBasicStatusBar::RecordingStarted(obs_output_t *output) { recordOutput = output; IncRef(); diff --git a/obs/window-basic-status-bar.hpp b/obs/window-basic-status-bar.hpp index 1e2d1952f..2086a81f7 100644 --- a/obs/window-basic-status-bar.hpp +++ b/obs/window-basic-status-bar.hpp @@ -17,8 +17,8 @@ private: QLabel *cpuUsage; QLabel *kbps; - obs_output_t streamOutput = nullptr; - obs_output_t recordOutput = nullptr; + obs_output_t *streamOutput = nullptr; + obs_output_t *recordOutput = nullptr; int retries = 0; int activeRefs = 0; @@ -33,14 +33,14 @@ private: void DecRef(); void IncRef(); - obs_output_t GetOutput(); + obs_output_t *GetOutput(); void UpdateBandwidth(); void UpdateSessionTime(); void UpdateDroppedFrames(); - static void OBSOutputReconnect(void *data, calldata_t params); - static void OBSOutputReconnectSuccess(void *data, calldata_t params); + static void OBSOutputReconnect(void *data, calldata_t *params); + static void OBSOutputReconnectSuccess(void *data, calldata_t *params); private slots: void Reconnect(); @@ -51,8 +51,8 @@ private slots: public: OBSBasicStatusBar(QWidget *parent); - void StreamStarted(obs_output_t output); + void StreamStarted(obs_output_t *output); void StreamStopped(); - void RecordingStarted(obs_output_t output); + void RecordingStarted(obs_output_t *output); void RecordingStopped(); }; diff --git a/obs/window-basic-transform.cpp b/obs/window-basic-transform.cpp index 03c8ec924..0dca0f496 100644 --- a/obs/window-basic-transform.cpp +++ b/obs/window-basic-transform.cpp @@ -5,7 +5,7 @@ Q_DECLARE_METATYPE(OBSSceneItem); static OBSSceneItem FindASelectedItem(OBSScene scene) { - auto func = [] (obs_scene_t scene, obs_sceneitem_t item, void *param) + auto func = [] (obs_scene_t *scene, obs_sceneitem_t *item, void *param) { OBSSceneItem &dst = *reinterpret_cast(param); @@ -67,7 +67,7 @@ void OBSBasicTransform::SetScene(OBSScene scene) if (scene) { OBSSource source = obs_scene_get_source(scene); - signal_handler_t signal = obs_source_get_signal_handler(source); + signal_handler_t *signal = obs_source_get_signal_handler(source); transformSignal.Connect(signal, "item_transform", OBSSceneItemTransform, this); @@ -95,11 +95,11 @@ void OBSBasicTransform::SetItemQt(OBSSceneItem newItem) setEnabled(!!item); } -void OBSBasicTransform::OBSChannelChanged(void *param, calldata_t data) +void OBSBasicTransform::OBSChannelChanged(void *param, calldata_t *data) { OBSBasicTransform *window = reinterpret_cast(param); uint32_t channel = (uint32_t)calldata_int(data, "channel"); - OBSSource source = (obs_source_t)calldata_ptr(data, "source"); + OBSSource source = (obs_source_t*)calldata_ptr(data, "source"); if (channel == 0) { OBSScene scene = obs_scene_from_source(source); @@ -112,39 +112,39 @@ void OBSBasicTransform::OBSChannelChanged(void *param, calldata_t data) } } -void OBSBasicTransform::OBSSceneItemTransform(void *param, calldata_t data) +void OBSBasicTransform::OBSSceneItemTransform(void *param, calldata_t *data) { OBSBasicTransform *window = reinterpret_cast(param); - OBSSceneItem item = (obs_sceneitem_t)calldata_ptr(data, "item"); + OBSSceneItem item = (obs_sceneitem_t*)calldata_ptr(data, "item"); if (item == window->item && !window->ignoreTransformSignal) QMetaObject::invokeMethod(window, "RefreshControls"); } -void OBSBasicTransform::OBSSceneItemRemoved(void *param, calldata_t data) +void OBSBasicTransform::OBSSceneItemRemoved(void *param, calldata_t *data) { OBSBasicTransform *window = reinterpret_cast(param); - OBSScene scene = (obs_scene_t)calldata_ptr(data, "scene"); - OBSSceneItem item = (obs_sceneitem_t)calldata_ptr(data, "item"); + OBSScene scene = (obs_scene_t*)calldata_ptr(data, "scene"); + OBSSceneItem item = (obs_sceneitem_t*)calldata_ptr(data, "item"); if (item == window->item) window->SetItem(FindASelectedItem(scene)); } -void OBSBasicTransform::OBSSceneItemSelect(void *param, calldata_t data) +void OBSBasicTransform::OBSSceneItemSelect(void *param, calldata_t *data) { OBSBasicTransform *window = reinterpret_cast(param); - OBSSceneItem item = (obs_sceneitem_t)calldata_ptr(data, "item"); + OBSSceneItem item = (obs_sceneitem_t*)calldata_ptr(data, "item"); if (item != window->item) window->SetItem(item); } -void OBSBasicTransform::OBSSceneItemDeselect(void *param, calldata_t data) +void OBSBasicTransform::OBSSceneItemDeselect(void *param, calldata_t *data) { OBSBasicTransform *window = reinterpret_cast(param); - OBSScene scene = (obs_scene_t)calldata_ptr(data, "scene"); - OBSSceneItem item = (obs_sceneitem_t)calldata_ptr(data, "item"); + OBSScene scene = (obs_scene_t*)calldata_ptr(data, "scene"); + OBSSceneItem item = (obs_sceneitem_t*)calldata_ptr(data, "item"); if (item == window->item) window->SetItem(FindASelectedItem(scene)); @@ -183,7 +183,7 @@ void OBSBasicTransform::RefreshControls() obs_transform_info osi; obs_sceneitem_get_info(item, &osi); - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); float width = float(obs_source_get_width(source)); float height = float(obs_source_get_height(source)); @@ -237,7 +237,7 @@ void OBSBasicTransform::OnControlChanged() if (ignoreItemChange) return; - obs_source_t source = obs_sceneitem_get_source(item); + obs_source_t *source = obs_sceneitem_get_source(item); double width = double(obs_source_get_width(source)); double height = double(obs_source_get_height(source)); diff --git a/obs/window-basic-transform.hpp b/obs/window-basic-transform.hpp index 6730d0fc8..c8e2e4045 100644 --- a/obs/window-basic-transform.hpp +++ b/obs/window-basic-transform.hpp @@ -29,12 +29,12 @@ private: void SetScene(OBSScene scene); void SetItem(OBSSceneItem newItem); - static void OBSChannelChanged(void *param, calldata_t data); + static void OBSChannelChanged(void *param, calldata_t *data); - static void OBSSceneItemTransform(void *param, calldata_t data); - static void OBSSceneItemRemoved(void *param, calldata_t data); - static void OBSSceneItemSelect(void *param, calldata_t data); - static void OBSSceneItemDeselect(void *param, calldata_t data); + static void OBSSceneItemTransform(void *param, calldata_t *data); + static void OBSSceneItemRemoved(void *param, calldata_t *data); + static void OBSSceneItemSelect(void *param, calldata_t *data); + static void OBSSceneItemDeselect(void *param, calldata_t *data); private slots: void RefreshControls(); diff --git a/obs/window-main.hpp b/obs/window-main.hpp index 6721c742c..c98be146e 100644 --- a/obs/window-main.hpp +++ b/obs/window-main.hpp @@ -10,6 +10,6 @@ class OBSMainWindow : public QMainWindow { public: inline OBSMainWindow(QWidget *parent) : QMainWindow(parent) {} - virtual config_t Config() const=0; + virtual config_t *Config() const=0; virtual void OBSInit()=0; }; diff --git a/plugins/image-source/image-source.c b/plugins/image-source/image-source.c index c5b27311c..1a5a2f70b 100644 --- a/plugins/image-source/image-source.c +++ b/plugins/image-source/image-source.c @@ -5,9 +5,9 @@ obs_source_get_name(context->source), ##__VA_ARGS__) struct image_source { - obs_source_t source; + obs_source_t *source; - gs_texture_t tex; + gs_texture_t *tex; uint32_t cx; uint32_t cy; }; @@ -17,7 +17,7 @@ static const char *image_source_get_name(void) return obs_module_text("ImageInput"); } -static void image_source_update(void *data, obs_data_t settings) +static void image_source_update(void *data, obs_data_t *settings) { struct image_source *context = data; const char *file = obs_data_get_string(settings, "file"); @@ -44,7 +44,7 @@ static void image_source_update(void *data, obs_data_t settings) obs_leave_graphics(); } -static void *image_source_create(obs_data_t settings, obs_source_t source) +static void *image_source_create(obs_data_t *settings, obs_source_t *source) { struct image_source *context = bzalloc(sizeof(struct image_source)); context->source = source; @@ -76,7 +76,7 @@ static uint32_t image_source_getheight(void *data) return context->cy; } -static void image_source_render(void *data, gs_effect_t effect) +static void image_source_render(void *data, gs_effect_t *effect) { struct image_source *context = data; if (!context->tex) @@ -96,9 +96,9 @@ static const char *image_filter = "JPEG Files (*.jpeg *.jpg);;" "GIF Files (*.gif)"; -static obs_properties_t image_source_properties(void) +static obs_properties_t *image_source_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); obs_properties_add_path(props, "file", obs_module_text("File"), diff --git a/plugins/linux-capture/xcompcap-main.cpp b/plugins/linux-capture/xcompcap-main.cpp index a6e1f9cd5..3fb10891e 100644 --- a/plugins/linux-capture/xcompcap-main.cpp +++ b/plugins/linux-capture/xcompcap-main.cpp @@ -47,11 +47,11 @@ void XCompcapMain::deinit() XCompcap::cleanupDisplay(); } -obs_properties_t XCompcapMain::properties() +obs_properties_t *XCompcapMain::properties() { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); - obs_property_t wins = obs_properties_add_list(props, "capture_window", + obs_property_t *wins = obs_properties_add_list(props, "capture_window", obs_module_text("Window"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); @@ -86,7 +86,7 @@ obs_properties_t XCompcapMain::properties() return props; } -void XCompcapMain::defaults(obs_data_t settings) +void XCompcapMain::defaults(obs_data_t *settings) { obs_data_set_default_string(settings, "capture_window", ""); obs_data_set_default_int(settings, "cut_top", 0); @@ -126,7 +126,7 @@ struct XCompcapMain_private pthread_mutexattr_destroy(&lockattr); } - obs_source_t source; + obs_source_t *source; Window win; int cut_top, cur_cut_top; @@ -142,8 +142,8 @@ struct XCompcapMain_private Pixmap pixmap; GLXPixmap glxpixmap; - gs_texture_t tex; - gs_texture_t gltex; + gs_texture_t *tex; + gs_texture_t *gltex; pthread_mutex_t lock; pthread_mutexattr_t lockattr; @@ -154,7 +154,7 @@ struct XCompcapMain_private }; -XCompcapMain::XCompcapMain(obs_data_t settings, obs_source_t source) +XCompcapMain::XCompcapMain(obs_data_t *settings, obs_source_t *source) { p = new XCompcapMain_private; p->source = source; @@ -250,7 +250,7 @@ static void xcc_cleanup(XCompcapMain_private *p) } } -void XCompcapMain::updateSettings(obs_data_t settings) +void XCompcapMain::updateSettings(obs_data_t *settings) { PLock lock(&p->lock); XErrorLock xlock; @@ -468,14 +468,14 @@ void XCompcapMain::tick(float seconds) obs_leave_graphics(); } -void XCompcapMain::render(gs_effect_t effect) +void XCompcapMain::render(gs_effect_t *effect) { PLock lock(&p->lock, true); if (!lock.isLocked() || !p->tex) return; - gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); + gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); gs_effect_set_texture(image, p->tex); gs_enable_blending(false); diff --git a/plugins/linux-capture/xcompcap-main.hpp b/plugins/linux-capture/xcompcap-main.hpp index e0f63062d..a07616700 100644 --- a/plugins/linux-capture/xcompcap-main.hpp +++ b/plugins/linux-capture/xcompcap-main.hpp @@ -8,16 +8,16 @@ class XCompcapMain static bool init(); static void deinit(); - static obs_properties_t properties(); - static void defaults(obs_data_t settings); + static obs_properties_t *properties(); + static void defaults(obs_data_t *settings); - XCompcapMain(obs_data_t settings, obs_source_t source); + XCompcapMain(obs_data_t *settings, obs_source_t *source); ~XCompcapMain(); - void updateSettings(obs_data_t settings); + void updateSettings(obs_data_t *settings); void tick(float seconds); - void render(gs_effect_t effect); + void render(gs_effect_t *effect); uint32_t width(); uint32_t height(); diff --git a/plugins/linux-capture/xcomposite-main.cpp b/plugins/linux-capture/xcomposite-main.cpp index a901800fa..d79001599 100644 --- a/plugins/linux-capture/xcomposite-main.cpp +++ b/plugins/linux-capture/xcomposite-main.cpp @@ -2,7 +2,7 @@ #include "xcompcap-main.hpp" -static void* xcompcap_create(obs_data_t settings, obs_source_t source) +static void* xcompcap_create(obs_data_t *settings, obs_source_t *source) { return new XCompcapMain(settings, source); } @@ -19,7 +19,7 @@ static void xcompcap_video_tick(void* data, float seconds) cc->tick(seconds); } -static void xcompcap_video_render(void* data, gs_effect_t effect) +static void xcompcap_video_render(void* data, gs_effect_t *effect) { XCompcapMain* cc = (XCompcapMain*)data; cc->render(effect); @@ -37,17 +37,17 @@ static uint32_t xcompcap_getheight(void* data) return cc->height(); } -static obs_properties_t xcompcap_props(void) +static obs_properties_t *xcompcap_props(void) { return XCompcapMain::properties(); } -void xcompcap_defaults(obs_data_t settings) +void xcompcap_defaults(obs_data_t *settings) { XCompcapMain::defaults(settings); } -void xcompcap_update(void *data, obs_data_t settings) +void xcompcap_update(void *data, obs_data_t *settings) { XCompcapMain* cc = (XCompcapMain*)data; cc->updateSettings(settings); diff --git a/plugins/linux-capture/xcursor.c b/plugins/linux-capture/xcursor.c index 417e8db23..6f4ea5f11 100644 --- a/plugins/linux-capture/xcursor.c +++ b/plugins/linux-capture/xcursor.c @@ -95,8 +95,8 @@ void xcursor_tick(xcursor_t *data) { } void xcursor_render(xcursor_t *data) { - gs_effect_t effect = gs_get_effect(); - gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); + gs_effect_t *effect = gs_get_effect(); + gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); gs_effect_set_texture(image, data->tex); gs_matrix_push(); diff --git a/plugins/linux-capture/xcursor.h b/plugins/linux-capture/xcursor.h index 9c923d5e5..663156146 100644 --- a/plugins/linux-capture/xcursor.h +++ b/plugins/linux-capture/xcursor.h @@ -30,7 +30,7 @@ typedef struct { unsigned long last_serial; uint_fast32_t last_width; uint_fast32_t last_height; - gs_texture_t tex; + gs_texture_t *tex; int_fast32_t x, y; int_fast32_t x_org; diff --git a/plugins/linux-capture/xshm-input.c b/plugins/linux-capture/xshm-input.c index 81f30e464..585106827 100644 --- a/plugins/linux-capture/xshm-input.c +++ b/plugins/linux-capture/xshm-input.c @@ -35,7 +35,7 @@ struct xshm_data { int_fast32_t width, height; xshm_t *xshm; - gs_texture_t texture; + gs_texture_t *texture; bool show_cursor; xcursor_t *cursor; @@ -66,7 +66,7 @@ static void xshm_resize_texture(struct xshm_data *data) * @return < 0 on error, 0 when size is unchanged, > 1 on size change */ static int_fast32_t xshm_update_geometry(struct xshm_data *data, - obs_data_t settings) + obs_data_t *settings) { int_fast32_t old_width = data->width; int_fast32_t old_height = data->height; @@ -116,7 +116,7 @@ static const char* xshm_getname(void) /** * Update the capture with changed settings */ -static void xshm_update(void *vptr, obs_data_t settings) +static void xshm_update(void *vptr, obs_data_t *settings) { XSHM_DATA(vptr); @@ -144,7 +144,7 @@ static void xshm_update(void *vptr, obs_data_t settings) /** * Get the default settings for the capture */ -static void xshm_defaults(obs_data_t defaults) +static void xshm_defaults(obs_data_t *defaults) { obs_data_set_default_int(defaults, "screen", 0); obs_data_set_default_bool(defaults, "show_cursor", true); @@ -153,9 +153,9 @@ static void xshm_defaults(obs_data_t defaults) /** * Get the properties for the capture */ -static obs_properties_t xshm_properties(void) +static obs_properties_t *xshm_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); int_fast32_t screen_max; Display *dpy = XOpenDisplay(NULL); @@ -203,7 +203,7 @@ static void xshm_destroy(void *vptr) /** * Create the capture */ -static void *xshm_create(obs_data_t settings, obs_source_t source) +static void *xshm_create(obs_data_t *settings, obs_source_t *source) { UNUSED_PARAMETER(source); @@ -260,14 +260,14 @@ static void xshm_video_tick(void *vptr, float seconds) /** * Render the capture data */ -static void xshm_video_render(void *vptr, gs_effect_t effect) +static void xshm_video_render(void *vptr, gs_effect_t *effect) { XSHM_DATA(vptr); if (!data->xshm) return; - gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); + gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); gs_effect_set_texture(image, data->texture); gs_enable_blending(false); diff --git a/plugins/linux-pulseaudio/pulse-input.c b/plugins/linux-pulseaudio/pulse-input.c index 39cc47d4c..314691aa4 100644 --- a/plugins/linux-pulseaudio/pulse-input.c +++ b/plugins/linux-pulseaudio/pulse-input.c @@ -25,7 +25,7 @@ along with this program. If not, see . #define blog(level, msg, ...) blog(level, "pulse-input: " msg, ##__VA_ARGS__) struct pulse_data { - obs_source_t source; + obs_source_t *source; pa_stream *stream; /* user settings */ @@ -302,7 +302,7 @@ static void pulse_input_info(pa_context *c, const pa_source_info *i, int eol, if (eol != 0 || i->monitor_of_sink != PA_INVALID_INDEX) goto skip; - obs_property_list_add_string((obs_property_t) userdata, + obs_property_list_add_string((obs_property_t*) userdata, i->description, i->name); skip: @@ -319,7 +319,7 @@ static void pulse_output_info(pa_context *c, const pa_source_info *i, int eol, if (eol != 0 || i->monitor_of_sink == PA_INVALID_INDEX) goto skip; - obs_property_list_add_string((obs_property_t) userdata, + obs_property_list_add_string((obs_property_t*) userdata, i->description, i->name); skip: @@ -329,10 +329,10 @@ skip: /** * Get plugin properties */ -static obs_properties_t pulse_properties(bool input) +static obs_properties_t *pulse_properties(bool input) { - obs_properties_t props = obs_properties_create(); - obs_property_t devices = obs_properties_add_list(props, "device_id", + obs_properties_t *props = obs_properties_create(); + obs_property_t *devices = obs_properties_add_list(props, "device_id", obs_module_text("Device"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); @@ -344,12 +344,12 @@ static obs_properties_t pulse_properties(bool input) return props; } -static obs_properties_t pulse_input_properties(void) +static obs_properties_t *pulse_input_properties(void) { return pulse_properties(true); } -static obs_properties_t pulse_output_properties(void) +static obs_properties_t *pulse_output_properties(void) { return pulse_properties(false); } @@ -361,7 +361,7 @@ static void pulse_input_device(pa_context *c, const pa_server_info *i, void *userdata) { UNUSED_PARAMETER(c); - obs_data_t settings = (obs_data_t) userdata; + obs_data_t *settings = (obs_data_t*) userdata; obs_data_set_default_string(settings, "device_id", i->default_source_name); @@ -374,7 +374,7 @@ static void pulse_output_device(pa_context *c, const pa_server_info *i, void *userdata) { UNUSED_PARAMETER(c); - obs_data_t settings = (obs_data_t) userdata; + obs_data_t *settings = (obs_data_t*) userdata; char *monitor = bzalloc(strlen(i->default_sink_name) + 9); strcat(monitor, i->default_sink_name); @@ -390,7 +390,7 @@ static void pulse_output_device(pa_context *c, const pa_server_info *i, /** * Get plugin defaults */ -static void pulse_defaults(obs_data_t settings, bool input) +static void pulse_defaults(obs_data_t *settings, bool input) { pulse_init(); @@ -401,12 +401,12 @@ static void pulse_defaults(obs_data_t settings, bool input) pulse_unref(); } -static void pulse_input_defaults(obs_data_t settings) +static void pulse_input_defaults(obs_data_t *settings) { return pulse_defaults(settings, true); } -static void pulse_output_defaults(obs_data_t settings) +static void pulse_output_defaults(obs_data_t *settings) { return pulse_defaults(settings, false); } @@ -446,7 +446,7 @@ static void pulse_destroy(void *vptr) /** * Update the input settings */ -static void pulse_update(void *vptr, obs_data_t settings) +static void pulse_update(void *vptr, obs_data_t *settings) { PULSE_DATA(vptr); bool restart = false; @@ -471,7 +471,7 @@ static void pulse_update(void *vptr, obs_data_t settings) /** * Create the plugin object */ -static void *pulse_create(obs_data_t settings, obs_source_t source) +static void *pulse_create(obs_data_t *settings, obs_source_t *source) { struct pulse_data *data = bzalloc(sizeof(struct pulse_data)); diff --git a/plugins/linux-v4l2/v4l2-input.c b/plugins/linux-v4l2/v4l2-input.c index d46b62b3f..931960f8a 100644 --- a/plugins/linux-v4l2/v4l2-input.c +++ b/plugins/linux-v4l2/v4l2-input.c @@ -55,9 +55,9 @@ struct v4l2_data { int framerate; /* internal data */ - obs_source_t source; + obs_source_t *source; pthread_t thread; - os_event_t event; + os_event_t *event; int_fast32_t dev; int width; @@ -194,7 +194,7 @@ static const char* v4l2_getname(void) return obs_module_text("V4L2Input"); } -static void v4l2_defaults(obs_data_t settings) +static void v4l2_defaults(obs_data_t *settings) { obs_data_set_default_int(settings, "input", -1); obs_data_set_default_int(settings, "pixelformat", -1); @@ -205,7 +205,7 @@ static void v4l2_defaults(obs_data_t settings) /* * List available devices */ -static void v4l2_device_list(obs_property_t prop, obs_data_t settings) +static void v4l2_device_list(obs_property_t *prop, obs_data_t *settings) { UNUSED_PARAMETER(settings); @@ -270,7 +270,7 @@ static void v4l2_device_list(obs_property_t prop, obs_data_t settings) /* * List inputs for device */ -static void v4l2_input_list(int_fast32_t dev, obs_property_t prop) +static void v4l2_input_list(int_fast32_t dev, obs_property_t *prop) { struct v4l2_input in; memset(&in, 0, sizeof(in)); @@ -293,7 +293,7 @@ static void v4l2_input_list(int_fast32_t dev, obs_property_t prop) /* * List formats for device */ -static void v4l2_format_list(int dev, obs_property_t prop) +static void v4l2_format_list(int dev, obs_property_t *prop) { struct v4l2_fmtdesc fmt; fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; @@ -330,7 +330,7 @@ static void v4l2_format_list(int dev, obs_property_t prop) * List resolutions for device and format */ static void v4l2_resolution_list(int dev, uint_fast32_t pixelformat, - obs_property_t prop) + obs_property_t *prop) { struct v4l2_frmsizeenum frmsize; frmsize.pixel_format = pixelformat; @@ -376,7 +376,7 @@ static void v4l2_resolution_list(int dev, uint_fast32_t pixelformat, * List framerates for device and resolution */ static void v4l2_framerate_list(int dev, uint_fast32_t pixelformat, - uint_fast32_t width, uint_fast32_t height, obs_property_t prop) + uint_fast32_t width, uint_fast32_t height, obs_property_t *prop) { struct v4l2_frmivalenum frmival; frmival.pixel_format = pixelformat; @@ -426,8 +426,8 @@ static void v4l2_framerate_list(int dev, uint_fast32_t pixelformat, /* * Device selected callback */ -static bool device_selected(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool device_selected(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(p); int dev = v4l2_open(obs_data_get_string(settings, "device_id"), @@ -435,7 +435,7 @@ static bool device_selected(obs_properties_t props, obs_property_t p, if (dev == -1) return false; - obs_property_t prop = obs_properties_get(props, "input"); + obs_property_t *prop = obs_properties_get(props, "input"); v4l2_input_list(dev, prop); obs_property_modified(prop, settings); v4l2_close(dev); @@ -445,8 +445,8 @@ static bool device_selected(obs_properties_t props, obs_property_t p, /* * Input selected callback */ -static bool input_selected(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool input_selected(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(p); int dev = v4l2_open(obs_data_get_string(settings, "device_id"), @@ -454,7 +454,7 @@ static bool input_selected(obs_properties_t props, obs_property_t p, if (dev == -1) return false; - obs_property_t prop = obs_properties_get(props, "pixelformat"); + obs_property_t *prop = obs_properties_get(props, "pixelformat"); v4l2_format_list(dev, prop); obs_property_modified(prop, settings); v4l2_close(dev); @@ -464,8 +464,8 @@ static bool input_selected(obs_properties_t props, obs_property_t p, /* * Format selected callback */ -static bool format_selected(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool format_selected(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(p); int dev = v4l2_open(obs_data_get_string(settings, "device_id"), @@ -473,7 +473,7 @@ static bool format_selected(obs_properties_t props, obs_property_t p, if (dev == -1) return false; - obs_property_t prop = obs_properties_get(props, "resolution"); + obs_property_t *prop = obs_properties_get(props, "resolution"); v4l2_resolution_list(dev, obs_data_get_int(settings, "pixelformat"), prop); obs_property_modified(prop, settings); @@ -484,8 +484,8 @@ static bool format_selected(obs_properties_t props, obs_property_t p, /* * Resolution selected callback */ -static bool resolution_selected(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool resolution_selected(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(p); int width, height; @@ -494,7 +494,7 @@ static bool resolution_selected(obs_properties_t props, obs_property_t p, if (dev == -1) return false; - obs_property_t prop = obs_properties_get(props, "framerate"); + obs_property_t *prop = obs_properties_get(props, "framerate"); v4l2_unpack_tuple(&width, &height, obs_data_get_int(settings, "resolution")); v4l2_framerate_list(dev, obs_data_get_int(settings, "pixelformat"), @@ -504,23 +504,23 @@ static bool resolution_selected(obs_properties_t props, obs_property_t p, return true; } -static obs_properties_t v4l2_properties(void) +static obs_properties_t *v4l2_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); - obs_property_t device_list = obs_properties_add_list(props, + obs_property_t *device_list = obs_properties_add_list(props, "device_id", obs_module_text("Device"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); - obs_property_t input_list = obs_properties_add_list(props, + obs_property_t *input_list = obs_properties_add_list(props, "input", obs_module_text("Input"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); - obs_property_t format_list = obs_properties_add_list(props, + obs_property_t *format_list = obs_properties_add_list(props, "pixelformat", obs_module_text("VideoFormat"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); - obs_property_t resolution_list = obs_properties_add_list(props, + obs_property_t *resolution_list = obs_properties_add_list(props, "resolution", obs_module_text("Resolution"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); @@ -644,7 +644,7 @@ fail: * active stream (if exists) is stopped, the settings are updated and finally * the new stream is started. */ -static void v4l2_update(void *vptr, obs_data_t settings) +static void v4l2_update(void *vptr, obs_data_t *settings) { V4L2_DATA(vptr); @@ -662,7 +662,7 @@ static void v4l2_update(void *vptr, obs_data_t settings) v4l2_init(data); } -static void *v4l2_create(obs_data_t settings, obs_source_t source) +static void *v4l2_create(obs_data_t *settings, obs_source_t *source) { struct v4l2_data *data = bzalloc(sizeof(struct v4l2_data)); data->dev = -1; diff --git a/plugins/mac-avcapture/av-capture.m b/plugins/mac-avcapture/av-capture.m index 59544f74f..d434a49f0 100644 --- a/plugins/mac-avcapture/av-capture.m +++ b/plugins/mac-avcapture/av-capture.m @@ -69,7 +69,7 @@ struct av_capture { enum video_colorspace colorspace; enum video_range_type video_range; - obs_source_t source; + obs_source_t *source; struct obs_source_frame frame; }; @@ -281,7 +281,7 @@ static void av_capture_destroy(void *data) bfree(capture); } -static NSString *get_string(obs_data_t data, char const *name) +static NSString *get_string(obs_data_t *data, char const *name) { return @(obs_data_get_string(data, name)); } @@ -405,7 +405,7 @@ static NSString *select_preset(AVCaptureDevice *dev, NSString *cur_preset) } static void capture_device(struct av_capture *capture, AVCaptureDevice *dev, - obs_data_t settings) + obs_data_t *settings) { capture->device = dev; @@ -475,7 +475,7 @@ static inline void handle_disconnect(struct av_capture* capture, } static inline void handle_connect(struct av_capture *capture, - AVCaptureDevice *dev, obs_data_t settings) + AVCaptureDevice *dev, obs_data_t *settings) { if (!dev) return; @@ -495,7 +495,7 @@ static inline void handle_connect(struct av_capture *capture, capture_device(capture, [dev retain], settings); } -static void av_capture_init(struct av_capture *capture, obs_data_t settings) +static void av_capture_init(struct av_capture *capture, obs_data_t *settings) { if (!init_session(capture)) return; @@ -539,7 +539,7 @@ static void av_capture_init(struct av_capture *capture, obs_data_t settings) capture_device(capture, dev, settings); } -static void *av_capture_create(obs_data_t settings, obs_source_t source) +static void *av_capture_create(obs_data_t *settings, obs_source_t *source) { UNUSED_PARAMETER(source); @@ -594,14 +594,14 @@ static NSString *preset_names(NSString *preset) } -static void av_capture_defaults(obs_data_t settings) +static void av_capture_defaults(obs_data_t *settings) { obs_data_set_default_bool(settings, "use_preset", true); obs_data_set_default_string(settings, "preset", AVCaptureSessionPreset1280x720.UTF8String); } -static bool update_device_list(obs_property_t list, +static bool update_device_list(obs_property_t *list, NSString *uid, NSString *name, bool disconnected) { bool dev_found = false; @@ -641,7 +641,7 @@ static bool update_device_list(obs_property_t list, return true; } -static void fill_presets(AVCaptureDevice *dev, obs_property_t list, +static void fill_presets(AVCaptureDevice *dev, obs_property_t *list, NSString *current_preset) { obs_property_list_clear(list); @@ -674,7 +674,7 @@ static void fill_presets(AVCaptureDevice *dev, obs_property_t list, } static bool check_preset(AVCaptureDevice *dev, - obs_property_t list, obs_data_t settings) + obs_property_t *list, obs_data_t *settings) { NSString *current_preset = get_string(settings, "preset"); @@ -703,7 +703,7 @@ static bool check_preset(AVCaptureDevice *dev, return true; } -static bool autoselect_preset(AVCaptureDevice *dev, obs_data_t settings) +static bool autoselect_preset(AVCaptureDevice *dev, obs_data_t *settings) { NSString *preset = get_string(settings, "preset"); if (!dev || [dev supportsAVCaptureSessionPreset:preset]) { @@ -726,8 +726,8 @@ static bool autoselect_preset(AVCaptureDevice *dev, obs_data_t settings) return false; } -static bool properties_device_changed(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool properties_device_changed(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { NSString *uid = get_string(settings, "device"); AVCaptureDevice *dev = [AVCaptureDevice deviceWithUniqueID:uid]; @@ -742,8 +742,8 @@ static bool properties_device_changed(obs_properties_t props, obs_property_t p, return preset_list_changed || autoselect_changed || dev_list_updated; } -static bool properties_preset_changed(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool properties_preset_changed(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(props); @@ -756,11 +756,11 @@ static bool properties_preset_changed(obs_properties_t props, obs_property_t p, return preset_list_changed || autoselect_changed; } -static obs_properties_t av_capture_properties(void) +static obs_properties_t *av_capture_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); - obs_property_t dev_list = obs_properties_add_list(props, "device", + obs_property_t *dev_list = obs_properties_add_list(props, "device", TEXT_DEVICE, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); for (AVCaptureDevice *dev in [AVCaptureDevice @@ -773,12 +773,12 @@ static obs_properties_t av_capture_properties(void) obs_property_set_modified_callback(dev_list, properties_device_changed); - obs_property_t use_preset = obs_properties_add_bool(props, + obs_property_t *use_preset = obs_properties_add_bool(props, "use_preset", TEXT_USE_PRESET); // TODO: implement manual configuration obs_property_set_enabled(use_preset, false); - obs_property_t preset_list = obs_properties_add_list(props, "preset", + obs_property_t *preset_list = obs_properties_add_list(props, "preset", TEXT_PRESET, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); for (NSString *preset in presets()) @@ -793,7 +793,7 @@ static obs_properties_t av_capture_properties(void) } static void switch_device(struct av_capture *capture, NSString *uid, - obs_data_t settings) + obs_data_t *settings) { if (!uid) return; @@ -814,7 +814,7 @@ static void switch_device(struct av_capture *capture, NSString *uid, capture_device(capture, [dev retain], settings); } -static void av_capture_update(void *data, obs_data_t settings) +static void av_capture_update(void *data, obs_data_t *settings) { struct av_capture *capture = data; diff --git a/plugins/mac-capture/mac-audio.c b/plugins/mac-capture/mac-audio.c index 773a79429..409282333 100644 --- a/plugins/mac-capture/mac-audio.c +++ b/plugins/mac-capture/mac-audio.c @@ -48,11 +48,11 @@ struct coreaudio_data { enum speaker_layout speakers; pthread_t reconnect_thread; - os_event_t exit_event; + os_event_t *exit_event; volatile bool reconnecting; unsigned long retry_time; - obs_source_t source; + obs_source_t *source; }; static bool get_default_output_device(struct coreaudio_data *ca) @@ -665,12 +665,12 @@ static void coreaudio_destroy(void *data) } } -static void coreaudio_defaults(obs_data_t settings) +static void coreaudio_defaults(obs_data_t *settings) { obs_data_set_default_string(settings, "device_id", "default"); } -static void *coreaudio_create(obs_data_t settings, obs_source_t source, +static void *coreaudio_create(obs_data_t *settings, obs_source_t *source, bool input) { struct coreaudio_data *ca = bzalloc(sizeof(struct coreaudio_data)); @@ -693,22 +693,22 @@ static void *coreaudio_create(obs_data_t settings, obs_source_t source, return ca; } -static void *coreaudio_create_input_capture(obs_data_t settings, - obs_source_t source) +static void *coreaudio_create_input_capture(obs_data_t *settings, + obs_source_t *source) { return coreaudio_create(settings, source, true); } -static void *coreaudio_create_output_capture(obs_data_t settings, - obs_source_t source) +static void *coreaudio_create_output_capture(obs_data_t *settings, + obs_source_t *source) { return coreaudio_create(settings, source, false); } -static obs_properties_t coreaudio_properties(bool input) +static obs_properties_t *coreaudio_properties(bool input) { - obs_properties_t props = obs_properties_create(); - obs_property_t property; + obs_properties_t *props = obs_properties_create(); + obs_property_t *property; struct device_list devices; memset(&devices, 0, sizeof(struct device_list)); @@ -732,12 +732,12 @@ static obs_properties_t coreaudio_properties(bool input) return props; } -static obs_properties_t coreaudio_input_properties(void) +static obs_properties_t *coreaudio_input_properties(void) { return coreaudio_properties(true); } -static obs_properties_t coreaudio_output_properties(void) +static obs_properties_t *coreaudio_output_properties(void) { return coreaudio_properties(false); } diff --git a/plugins/mac-capture/mac-display-capture.m b/plugins/mac-capture/mac-display-capture.m index c2cd42fcb..e2523c271 100644 --- a/plugins/mac-capture/mac-display-capture.m +++ b/plugins/mac-capture/mac-display-capture.m @@ -22,12 +22,12 @@ static inline bool requires_window(enum crop_mode mode) } struct display_capture { - obs_source_t source; + obs_source_t *source; - gs_samplerstate_t sampler; - gs_effect_t draw_effect; - gs_texture_t tex; - gs_vertbuffer_t vertbuf; + gs_samplerstate_t *sampler; + gs_effect_t *draw_effect; + gs_texture_t *tex; + gs_vertbuffer_t *vertbuf; NSScreen *screen; unsigned display; @@ -42,7 +42,7 @@ struct display_capture { bool on_screen; bool hide_when_minimized; - os_event_t disp_finished; + os_event_t *disp_finished; CGDisplayStreamRef disp; IOSurfaceRef current, prev; @@ -249,10 +249,10 @@ bool init_vertbuf(struct display_capture *dc) return dc->vertbuf != NULL; } -void load_crop(struct display_capture *dc, obs_data_t settings); +void load_crop(struct display_capture *dc, obs_data_t *settings); -static void *display_capture_create(obs_data_t settings, - obs_source_t source) +static void *display_capture_create(obs_data_t *settings, + obs_source_t *source) { UNUSED_PARAMETER(source); UNUSED_PARAMETER(settings); @@ -395,7 +395,7 @@ cleanup: } } -static void display_capture_video_render(void *data, gs_effect_t effect) +static void display_capture_video_render(void *data, gs_effect_t *effect) { UNUSED_PARAMETER(effect); @@ -408,7 +408,7 @@ static void display_capture_video_render(void *data, gs_effect_t effect) gs_load_vertexbuffer(dc->vertbuf); gs_load_indexbuffer(NULL); gs_load_samplerstate(dc->sampler, 0); - gs_technique_t tech = gs_effect_get_technique(dc->draw_effect, + gs_technique_t *tech = gs_effect_get_technique(dc->draw_effect, "Default"); gs_effect_set_texture(gs_effect_get_param_by_idx(dc->draw_effect, 1), dc->tex); @@ -478,7 +478,7 @@ static uint32_t display_capture_getheight(void *data) return 0; } -static void display_capture_defaults(obs_data_t settings) +static void display_capture_defaults(obs_data_t *settings) { obs_data_set_default_int(settings, "display", 0); obs_data_set_default_bool(settings, "show_cursor", true); @@ -487,14 +487,14 @@ static void display_capture_defaults(obs_data_t settings) window_defaults(settings); } -void load_crop_mode(enum crop_mode *mode, obs_data_t settings) +void load_crop_mode(enum crop_mode *mode, obs_data_t *settings) { *mode = obs_data_get_int(settings, "crop_mode"); if (!crop_mode_valid(*mode)) *mode = CROP_NONE; } -void load_crop(struct display_capture *dc, obs_data_t settings) +void load_crop(struct display_capture *dc, obs_data_t *settings) { load_crop_mode(&dc->crop, settings); @@ -525,7 +525,7 @@ void load_crop(struct display_capture *dc, obs_data_t settings) #undef LOAD_CROP_VAR } -static void display_capture_update(void *data, obs_data_t settings) +static void display_capture_update(void *data, obs_data_t *settings) { struct display_capture *dc = data; @@ -549,8 +549,8 @@ static void display_capture_update(void *data, obs_data_t settings) obs_leave_graphics(); } -static bool switch_crop_mode(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool switch_crop_mode(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(p); @@ -590,11 +590,11 @@ static const char *crop_names[] = { #ifndef COUNTOF #define COUNTOF(x) (sizeof(x)/sizeof(x[0])) #endif -static obs_properties_t display_capture_properties(void) +static obs_properties_t *display_capture_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); - obs_property_t list = obs_properties_add_list(props, + obs_property_t *list = obs_properties_add_list(props, "display", obs_module_text("DisplayCapture.Display"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); @@ -607,7 +607,7 @@ static obs_properties_t display_capture_properties(void) obs_properties_add_bool(props, "show_cursor", obs_module_text("DisplayCapture.ShowCursor")); - obs_property_t crop = obs_properties_add_list(props, "crop_mode", + obs_property_t *crop = obs_properties_add_list(props, "crop_mode", obs_module_text("CropMode"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); obs_property_set_modified_callback(crop, switch_crop_mode); @@ -620,7 +620,7 @@ static obs_properties_t display_capture_properties(void) add_window_properties(props); show_window_properties(props, false); - obs_property_t p; + obs_property_t *p; const char *name; float min; #define LOAD_CROP_VAR(var, mode) \ diff --git a/plugins/mac-capture/mac-window-capture.m b/plugins/mac-capture/mac-window-capture.m index 27cb11154..feb61d9c3 100644 --- a/plugins/mac-capture/mac-window-capture.m +++ b/plugins/mac-capture/mac-window-capture.m @@ -9,7 +9,7 @@ #include "window-utils.h" struct window_capture { - obs_source_t source; + obs_source_t *source; struct cocoa_window window; @@ -22,8 +22,8 @@ struct window_capture { DARRAY(uint8_t) buffer; pthread_t capture_thread; - os_event_t capture_event; - os_event_t stop_event; + os_event_t *capture_event; + os_event_t *stop_event; }; static CGImageRef get_image(struct window_capture *wc) @@ -98,8 +98,8 @@ static void *capture_thread(void *data) return NULL; } -static inline void *window_capture_create_internal(obs_data_t settings, - obs_source_t source) +static inline void *window_capture_create_internal(obs_data_t *settings, + obs_source_t *source) { struct window_capture *wc = bzalloc(sizeof(struct window_capture)); @@ -122,7 +122,7 @@ static inline void *window_capture_create_internal(obs_data_t settings, return wc; } -static void *window_capture_create(obs_data_t settings, obs_source_t source) +static void *window_capture_create(obs_data_t *settings, obs_source_t *source) { @autoreleasepool { return window_capture_create_internal(settings, source); @@ -150,15 +150,15 @@ static void window_capture_destroy(void *data) bfree(cap); } -static void window_capture_defaults(obs_data_t settings) +static void window_capture_defaults(obs_data_t *settings) { obs_data_set_default_bool(settings, "show_shadow", false); window_defaults(settings); } -static obs_properties_t window_capture_properties(void) +static obs_properties_t *window_capture_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); add_window_properties(props); @@ -169,7 +169,7 @@ static obs_properties_t window_capture_properties(void) } static inline void window_capture_update_internal(struct window_capture *wc, - obs_data_t settings) + obs_data_t *settings) { wc->image_option = obs_data_get_bool(settings, "show_shadow") ? kCGWindowImageDefault : kCGWindowImageBoundsIgnoreFraming; @@ -177,7 +177,7 @@ static inline void window_capture_update_internal(struct window_capture *wc, update_window(&wc->window, settings); } -static void window_capture_update(void *data, obs_data_t settings) +static void window_capture_update(void *data, obs_data_t *settings) { @autoreleasepool { return window_capture_update_internal(data, settings); diff --git a/plugins/mac-capture/window-utils.h b/plugins/mac-capture/window-utils.h index 7ca1a2844..bdc3ed26a 100644 --- a/plugins/mac-capture/window-utils.h +++ b/plugins/mac-capture/window-utils.h @@ -17,16 +17,16 @@ typedef struct cocoa_window *cocoa_window_t; NSArray *enumerate_cocoa_windows(void); -bool find_window(cocoa_window_t cw, obs_data_t settings, bool force); +bool find_window(cocoa_window_t cw, obs_data_t *settings, bool force); -void init_window(cocoa_window_t cw, obs_data_t settings); +void init_window(cocoa_window_t cw, obs_data_t *settings); void destroy_window(cocoa_window_t cw); -void update_window(cocoa_window_t cw, obs_data_t settings); +void update_window(cocoa_window_t cw, obs_data_t *settings); -void window_defaults(obs_data_t settings); +void window_defaults(obs_data_t *settings); -void add_window_properties(obs_properties_t props); +void add_window_properties(obs_properties_t *props); -void show_window_properties(obs_properties_t props, bool show); +void show_window_properties(obs_properties_t *props, bool show); diff --git a/plugins/mac-capture/window-utils.m b/plugins/mac-capture/window-utils.m index feba6bed4..d2a19781d 100644 --- a/plugins/mac-capture/window-utils.m +++ b/plugins/mac-capture/window-utils.m @@ -39,7 +39,7 @@ NSArray *enumerate_windows(void) #define WAIT_TIME_US WAIT_TIME_MS * 1000 #define WAIT_TIME_NS WAIT_TIME_US * 1000 -bool find_window(cocoa_window_t cw, obs_data_t settings, bool force) +bool find_window(cocoa_window_t cw, obs_data_t *settings, bool force) { if (!force && cw->next_search_time > os_gettime_ns()) return false; @@ -72,7 +72,7 @@ invalid_name: return false; } -void init_window(cocoa_window_t cw, obs_data_t settings) +void init_window(cocoa_window_t cw, obs_data_t *settings) { pthread_mutex_init(&cw->name_lock, NULL); @@ -90,7 +90,7 @@ void destroy_window(cocoa_window_t cw) [cw->window_name release]; } -void update_window(cocoa_window_t cw, obs_data_t settings) +void update_window(cocoa_window_t cw, obs_data_t *settings) { pthread_mutex_lock(&cw->name_lock); [cw->owner_name release]; @@ -124,8 +124,8 @@ static inline NSDictionary *find_window_dict(NSArray *arr, int window_id) return nil; } -static inline bool window_changed_internal(obs_property_t p, - obs_data_t settings) +static inline bool window_changed_internal(obs_property_t *p, + obs_data_t *settings) { int window_id = obs_data_get_int(settings, "window"); NSString *window_owner = @(obs_data_get_string(settings, "owner_name")); @@ -187,8 +187,8 @@ static inline bool window_changed_internal(obs_property_t p, return true; } -static bool window_changed(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool window_changed(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(props); @@ -197,8 +197,8 @@ static bool window_changed(obs_properties_t props, obs_property_t p, } } -static bool toggle_empty_names(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool toggle_empty_names(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(p); @@ -206,26 +206,26 @@ static bool toggle_empty_names(obs_properties_t props, obs_property_t p, settings); } -void window_defaults(obs_data_t settings) +void window_defaults(obs_data_t *settings) { obs_data_set_default_int(settings, "window", kCGNullWindowID); obs_data_set_default_bool(settings, "show_empty_names", false); } -void add_window_properties(obs_properties_t props) +void add_window_properties(obs_properties_t *props) { - obs_property_t window_list = obs_properties_add_list(props, + obs_property_t *window_list = obs_properties_add_list(props, "window", obs_module_text("WindowUtils.Window"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); obs_property_set_modified_callback(window_list, window_changed); - obs_property_t empty = obs_properties_add_bool(props, + obs_property_t *empty = obs_properties_add_bool(props, "show_empty_names", obs_module_text("WindowUtils.ShowEmptyNames")); obs_property_set_modified_callback(empty, toggle_empty_names); } -void show_window_properties(obs_properties_t props, bool show) +void show_window_properties(obs_properties_t *props, bool show) { obs_property_set_visible(obs_properties_get(props, "window"), show); obs_property_set_visible( diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-aac.c b/plugins/obs-ffmpeg/obs-ffmpeg-aac.c index 973ae9f04..b7aa9be2d 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-aac.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-aac.c @@ -26,7 +26,7 @@ #include "obs-ffmpeg-compat.h" struct aac_encoder { - obs_encoder_t encoder; + obs_encoder_t *encoder; AVCodec *aac; AVCodecContext *context; @@ -109,7 +109,7 @@ static bool initialize_codec(struct aac_encoder *enc) return true; } -static void init_sizes(struct aac_encoder *enc, audio_t audio) +static void init_sizes(struct aac_encoder *enc, audio_t *audio) { const struct audio_output_info *aoi; enum audio_format format; @@ -121,11 +121,11 @@ static void init_sizes(struct aac_encoder *enc, audio_t audio) enc->audio_size = get_audio_size(format, aoi->speakers, 1); } -static void *aac_create(obs_data_t settings, obs_encoder_t encoder) +static void *aac_create(obs_data_t *settings, obs_encoder_t *encoder) { struct aac_encoder *enc; int bitrate = (int)obs_data_get_int(settings, "bitrate"); - audio_t audio = obs_encoder_audio(encoder); + audio_t *audio = obs_encoder_audio(encoder); if (!bitrate) { aac_warn("aac_create", "Invalid bitrate specified"); @@ -235,14 +235,14 @@ static bool aac_encode(void *data, struct encoder_frame *frame, return do_aac_encode(enc, packet, received_packet); } -static void aac_defaults(obs_data_t settings) +static void aac_defaults(obs_data_t *settings) { obs_data_set_default_int(settings, "bitrate", 128); } -static obs_properties_t aac_properties(void) +static obs_properties_t *aac_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); obs_properties_add_int(props, "bitrate", obs_module_text("Bitrate"), 32, 320, 32); diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.c b/plugins/obs-ffmpeg/obs-ffmpeg-output.c index 8fdd69afe..30402c681 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-output.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.c @@ -70,7 +70,7 @@ struct ffmpeg_data { }; struct ffmpeg_output { - obs_output_t output; + obs_output_t *output; volatile bool active; struct ffmpeg_data ff_data; @@ -80,8 +80,8 @@ struct ffmpeg_output { bool write_thread_active; pthread_mutex_t write_mutex; pthread_t write_thread; - os_sem_t write_sem; - os_event_t stop_event; + os_sem_t *write_sem; + os_event_t *stop_event; DARRAY(AVPacket) packets; }; @@ -415,7 +415,7 @@ static void ffmpeg_log_callback(void *param, int level, const char *format, UNUSED_PARAMETER(param); } -static void *ffmpeg_output_create(obs_data_t settings, obs_output_t output) +static void *ffmpeg_output_create(obs_data_t *settings, obs_output_t *output) { struct ffmpeg_output *data = bzalloc(sizeof(struct ffmpeg_output)); pthread_mutex_init_value(&data->write_mutex); @@ -714,7 +714,7 @@ static void *write_thread(void *data) static bool try_connect(struct ffmpeg_output *output) { const char *filename_test; - obs_data_t settings; + obs_data_t *settings; int audio_bitrate, video_bitrate; int width, height; int ret; diff --git a/plugins/obs-libfdk/obs-libfdk.c b/plugins/obs-libfdk/obs-libfdk.c index db8a5030e..f6c626830 100644 --- a/plugins/obs-libfdk/obs-libfdk.c +++ b/plugins/obs-libfdk/obs-libfdk.c @@ -44,7 +44,7 @@ static const char *libfdk_get_error(AACENC_ERROR err) typedef struct libfdk_encoder { - obs_encoder_t encoder; + obs_encoder_t *encoder; int channels, sample_rate; @@ -64,9 +64,9 @@ static const char *libfdk_getname(void) return obs_module_text("LibFDK"); } -static obs_properties_t libfdk_properties(void) +static obs_properties_t *libfdk_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); obs_properties_add_int(props, "bitrate", obs_module_text("Bitrate"), 32, 256, 32); @@ -76,7 +76,7 @@ static obs_properties_t libfdk_properties(void) return props; } -static void libfdk_defaults(obs_data_t settings) +static void libfdk_defaults(obs_data_t *settings) { obs_data_set_default_int(settings, "bitrate", 128); obs_data_set_default_bool(settings, "afterburner", true); @@ -88,13 +88,13 @@ static void libfdk_defaults(obs_data_t settings) goto fail; \ } -static void *libfdk_create(obs_data_t settings, obs_encoder_t encoder) +static void *libfdk_create(obs_data_t *settings, obs_encoder_t *encoder) { bool hasFdkHandle = false; libfdk_encoder_t *enc = 0; int bitrate = (int)obs_data_get_int(settings, "bitrate") * 1000; int afterburner = obs_data_get_bool(settings, "afterburner") ? 1 : 0; - audio_t audio = obs_encoder_audio(encoder); + audio_t *audio = obs_encoder_audio(encoder); int mode = 0; AACENC_ERROR err; diff --git a/plugins/obs-outputs/flv-mux.c b/plugins/obs-outputs/flv-mux.c index 2c4d386ff..984bd2fe5 100644 --- a/plugins/obs-outputs/flv-mux.c +++ b/plugins/obs-outputs/flv-mux.c @@ -31,9 +31,9 @@ #define VIDEO_HEADER_SIZE 5 -static inline double encoder_bitrate(obs_encoder_t encoder) +static inline double encoder_bitrate(obs_encoder_t *encoder) { - obs_data_t settings = obs_encoder_get_settings(encoder); + obs_data_t *settings = obs_encoder_get_settings(encoder); double bitrate = obs_data_get_double(settings, "bitrate"); obs_data_release(settings); @@ -56,13 +56,13 @@ void write_file_info(FILE *file, int64_t duration_ms, int64_t size) fwrite(buf, 1, enc - buf, file); } -static void build_flv_meta_data(obs_output_t context, +static void build_flv_meta_data(obs_output_t *context, uint8_t **output, size_t *size) { - obs_encoder_t vencoder = obs_output_get_video_encoder(context); - obs_encoder_t aencoder = obs_output_get_audio_encoder(context); - video_t video = obs_encoder_video(vencoder); - audio_t audio = obs_encoder_audio(aencoder); + obs_encoder_t *vencoder = obs_output_get_video_encoder(context); + obs_encoder_t *aencoder = obs_output_get_audio_encoder(context); + video_t *video = obs_encoder_video(vencoder); + audio_t *audio = obs_encoder_audio(aencoder); char buf[4096]; char *enc = buf; char *end = enc+sizeof(buf); @@ -121,7 +121,7 @@ static void build_flv_meta_data(obs_output_t context, *output = bmemdup(buf, *size); } -void flv_meta_data(obs_output_t context, uint8_t **output, size_t *size, +void flv_meta_data(obs_output_t *context, uint8_t **output, size_t *size, bool write_header) { struct array_output_data data; diff --git a/plugins/obs-outputs/flv-mux.h b/plugins/obs-outputs/flv-mux.h index 90ed44efd..7e0da0f37 100644 --- a/plugins/obs-outputs/flv-mux.h +++ b/plugins/obs-outputs/flv-mux.h @@ -28,7 +28,7 @@ static uint32_t get_ms_time(struct encoder_packet *packet, int64_t val) extern void write_file_info(FILE *file, int64_t duration_ms, int64_t size); -extern void flv_meta_data(obs_output_t context, uint8_t **output, size_t *size, +extern void flv_meta_data(obs_output_t *context, uint8_t **output, size_t *size, bool write_header); extern void flv_packet_mux(struct encoder_packet *packet, uint8_t **output, size_t *size, bool is_header); diff --git a/plugins/obs-outputs/flv-output.c b/plugins/obs-outputs/flv-output.c index d076b6195..f1fdaaaa9 100644 --- a/plugins/obs-outputs/flv-output.c +++ b/plugins/obs-outputs/flv-output.c @@ -32,7 +32,7 @@ #define info(format, ...) do_log(LOG_INFO, format, ##__VA_ARGS__) struct flv_output { - obs_output_t output; + obs_output_t *output; struct dstr path; FILE *file; bool active; @@ -57,7 +57,7 @@ static void flv_output_destroy(void *data) bfree(stream); } -static void *flv_output_create(obs_data_t settings, obs_output_t output) +static void *flv_output_create(obs_data_t *settings, obs_output_t *output) { struct flv_output *stream = bzalloc(sizeof(struct flv_output)); stream->output = output; @@ -112,8 +112,8 @@ static void write_meta_data(struct flv_output *stream) static void write_audio_header(struct flv_output *stream) { - obs_output_t context = stream->output; - obs_encoder_t aencoder = obs_output_get_audio_encoder(context); + obs_output_t *context = stream->output; + obs_encoder_t *aencoder = obs_output_get_audio_encoder(context); uint8_t *header; struct encoder_packet packet = { @@ -128,8 +128,8 @@ static void write_audio_header(struct flv_output *stream) static void write_video_header(struct flv_output *stream) { - obs_output_t context = stream->output; - obs_encoder_t vencoder = obs_output_get_video_encoder(context); + obs_output_t *context = stream->output; + obs_encoder_t *vencoder = obs_output_get_video_encoder(context); uint8_t *header; size_t size; @@ -154,7 +154,7 @@ static void write_headers(struct flv_output *stream) static bool flv_output_start(void *data) { struct flv_output *stream = data; - obs_data_t settings; + obs_data_t *settings; const char *path; if (!obs_output_can_begin_data_capture(stream->output, 0)) @@ -197,9 +197,9 @@ static void flv_output_data(void *data, struct encoder_packet *packet) } } -static obs_properties_t flv_output_properties(void) +static obs_properties_t *flv_output_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); obs_properties_add_text(props, "path", obs_module_text("FLVOutput.FilePath"), diff --git a/plugins/obs-outputs/rtmp-stream.c b/plugins/obs-outputs/rtmp-stream.c index 996f511ad..2a9c0b98e 100644 --- a/plugins/obs-outputs/rtmp-stream.c +++ b/plugins/obs-outputs/rtmp-stream.c @@ -39,7 +39,7 @@ //#define TEST_FRAMEDROPS struct rtmp_stream { - obs_output_t output; + obs_output_t *output; pthread_mutex_t packets_mutex; struct circlebuf packets; @@ -50,8 +50,8 @@ struct rtmp_stream { bool active; pthread_t send_thread; - os_sem_t send_sem; - os_event_t stop_event; + os_sem_t *send_sem; + os_event_t *stop_event; struct dstr path, key; struct dstr username, password; @@ -114,7 +114,7 @@ static void rtmp_stream_destroy(void *data) } } -static void *rtmp_stream_create(obs_data_t settings, obs_output_t output) +static void *rtmp_stream_create(obs_data_t *settings, obs_output_t *output) { struct rtmp_stream *stream = bzalloc(sizeof(struct rtmp_stream)); stream->output = output; @@ -267,8 +267,8 @@ static void send_meta_data(struct rtmp_stream *stream) static void send_audio_header(struct rtmp_stream *stream) { - obs_output_t context = stream->output; - obs_encoder_t aencoder = obs_output_get_audio_encoder(context); + obs_output_t *context = stream->output; + obs_encoder_t *aencoder = obs_output_get_audio_encoder(context); uint8_t *header; struct encoder_packet packet = { @@ -283,8 +283,8 @@ static void send_audio_header(struct rtmp_stream *stream) static void send_video_header(struct rtmp_stream *stream) { - obs_output_t context = stream->output; - obs_encoder_t vencoder = obs_output_get_video_encoder(context); + obs_output_t *context = stream->output; + obs_encoder_t *vencoder = obs_output_get_video_encoder(context); uint8_t *header; size_t size; @@ -417,8 +417,8 @@ static void *connect_thread(void *data) static bool rtmp_stream_start(void *data) { struct rtmp_stream *stream = data; - obs_service_t service = obs_output_get_service(stream->output); - obs_data_t settings; + obs_service_t *service = obs_output_get_service(stream->output); + obs_data_t *settings; if (!obs_output_can_begin_data_capture(stream->output, 0)) return false; @@ -560,14 +560,14 @@ static void rtmp_stream_data(void *data, struct encoder_packet *packet) obs_free_encoder_packet(&new_packet); } -static void rtmp_stream_defaults(obs_data_t defaults) +static void rtmp_stream_defaults(obs_data_t *defaults) { obs_data_set_default_int(defaults, OPT_DROP_THRESHOLD, 600); } -static obs_properties_t rtmp_stream_properties(void) +static obs_properties_t *rtmp_stream_properties(void) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); obs_properties_add_int(props, OPT_DROP_THRESHOLD, obs_module_text("RTMPStream.DropThreshold"), diff --git a/plugins/obs-x264/obs-x264.c b/plugins/obs-x264/obs-x264.c index 6c01f2748..d4e7f1b56 100644 --- a/plugins/obs-x264/obs-x264.c +++ b/plugins/obs-x264/obs-x264.c @@ -38,7 +38,7 @@ /* ------------------------------------------------------------------------- */ struct obs_x264 { - obs_encoder_t encoder; + obs_encoder_t *encoder; x264_param_t params; x264_t *context; @@ -51,7 +51,7 @@ struct obs_x264 { size_t extra_data_size; size_t sei_size; - os_performance_token_t performance_token; + os_performance_token_t *performance_token; }; /* ------------------------------------------------------------------------- */ @@ -88,7 +88,7 @@ static void obs_x264_destroy(void *data) } } -static void obs_x264_defaults(obs_data_t settings) +static void obs_x264_defaults(obs_data_t *settings) { obs_data_set_default_int (settings, "bitrate", 1000); obs_data_set_default_int (settings, "buffer_size", 1000); @@ -102,7 +102,7 @@ static void obs_x264_defaults(obs_data_t settings) obs_data_set_default_string(settings, "x264opts", ""); } -static inline void add_strings(obs_property_t list, const char *const *strings) +static inline void add_strings(obs_property_t *list, const char *const *strings) { while (*strings) { obs_property_list_add_string(list, *strings, *strings); @@ -118,10 +118,10 @@ static inline void add_strings(obs_property_t list, const char *const *strings) #define TEXT_TUNE obs_module_text("Tune") #define TEXT_X264_OPTS obs_module_text("EncoderOptions") -static obs_properties_t obs_x264_props(void) +static obs_properties_t *obs_x264_props(void) { - obs_properties_t props = obs_properties_create(); - obs_property_t list; + obs_properties_t *props = obs_properties_create(); + obs_property_t *list; obs_properties_add_int(props, "bitrate", TEXT_BITRATE, 50, 100000, 1); obs_properties_add_int(props, "buffer_size", TEXT_BUF_SIZE, 50, 100000, @@ -285,10 +285,10 @@ static void log_x264(void *param, int level, const char *format, va_list args) UNUSED_PARAMETER(level); } -static void update_params(struct obs_x264 *obsx264, obs_data_t settings, +static void update_params(struct obs_x264 *obsx264, obs_data_t *settings, char **params) { - video_t video = obs_encoder_video(obsx264->encoder); + video_t *video = obs_encoder_video(obsx264->encoder); const struct video_output_info *voi = video_output_get_info(video); int bitrate = (int)obs_data_get_int(settings, "bitrate"); @@ -358,7 +358,7 @@ static void update_params(struct obs_x264 *obsx264, obs_data_t settings, cbr ? "on" : "off"); } -static bool update_settings(struct obs_x264 *obsx264, obs_data_t settings) +static bool update_settings(struct obs_x264 *obsx264, obs_data_t *settings) { char *preset = bstrdup(obs_data_get_string(settings, "preset")); char *profile = bstrdup(obs_data_get_string(settings, "profile")); @@ -400,7 +400,7 @@ static bool update_settings(struct obs_x264 *obsx264, obs_data_t settings) return success; } -static bool obs_x264_update(void *data, obs_data_t settings) +static bool obs_x264_update(void *data, obs_data_t *settings) { struct obs_x264 *obsx264 = data; bool success = update_settings(obsx264, settings); @@ -444,7 +444,7 @@ static void load_headers(struct obs_x264 *obsx264) obsx264->sei_size = sei.num; } -static void *obs_x264_create(obs_data_t settings, obs_encoder_t encoder) +static void *obs_x264_create(obs_data_t *settings, obs_encoder_t *encoder) { struct obs_x264 *obsx264 = bzalloc(sizeof(struct obs_x264)); obsx264->encoder = encoder; @@ -567,7 +567,7 @@ static bool obs_x264_sei(void *data, uint8_t **sei, size_t *size) static bool obs_x264_video_info(void *data, struct video_scale_info *info) { struct obs_x264 *obsx264 = data; - video_t video = obs_encoder_video(obsx264->encoder); + video_t *video = obs_encoder_video(obsx264->encoder); const struct video_output_info *vid_info = video_output_get_info(video); if (vid_info->format == VIDEO_FORMAT_I420 || diff --git a/plugins/rtmp-services/rtmp-common.c b/plugins/rtmp-services/rtmp-common.c index 0e7010d7e..df8a3f922 100644 --- a/plugins/rtmp-services/rtmp-common.c +++ b/plugins/rtmp-services/rtmp-common.c @@ -13,7 +13,7 @@ static const char *rtmp_common_getname(void) return obs_module_text("StreamingServices"); } -static void rtmp_common_update(void *data, obs_data_t settings) +static void rtmp_common_update(void *data, obs_data_t *settings) { struct rtmp_common *service = data; @@ -36,7 +36,7 @@ static void rtmp_common_destroy(void *data) bfree(service); } -static void *rtmp_common_create(obs_data_t settings, obs_service_t service) +static void *rtmp_common_create(obs_data_t *settings, obs_service_t *service) { struct rtmp_common *data = bzalloc(sizeof(struct rtmp_common)); rtmp_common_update(data, settings); @@ -54,7 +54,7 @@ static inline const char *get_string_val(json_t *service, const char *key) return json_string_value(str_val); } -static void add_service(obs_property_t list, json_t *service) +static void add_service(obs_property_t *list, json_t *service) { json_t *servers; const char *name; @@ -82,7 +82,7 @@ static void add_service(obs_property_t list, json_t *service) obs_property_list_add_string(list, name, name); } -static void add_services(obs_property_t list, const char *file, json_t *root) +static void add_services(obs_property_t *list, const char *file, json_t *root) { json_t *service; size_t index; @@ -120,7 +120,7 @@ static json_t *open_json_file(const char *file) return root; } -static json_t *build_service_list(obs_property_t list, const char *file) +static json_t *build_service_list(obs_property_t *list, const char *file) { json_t *root = open_json_file(file); add_services(list, file, root); @@ -134,7 +134,7 @@ static void properties_data_destroy(void *data) json_decref(root); } -static void fill_servers(obs_property_t servers_prop, json_t *service, +static void fill_servers(obs_property_t *servers_prop, json_t *service, const char *name) { json_t *servers, *server; @@ -177,8 +177,8 @@ static inline json_t *find_service(json_t *root, const char *name) return NULL; } -static bool service_selected(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool service_selected(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { const char *name = obs_data_get_string(settings, "service"); json_t *root = obs_properties_get_param(props); @@ -197,10 +197,10 @@ static bool service_selected(obs_properties_t props, obs_property_t p, return true; } -static obs_properties_t rtmp_common_properties(void) +static obs_properties_t *rtmp_common_properties(void) { - obs_properties_t ppts = obs_properties_create(); - obs_property_t list; + obs_properties_t *ppts = obs_properties_create(); + obs_property_t *list; char *file; list = obs_properties_add_list(ppts, "service", @@ -223,10 +223,10 @@ static obs_properties_t rtmp_common_properties(void) return ppts; } -static void apply_video_encoder_settings(obs_encoder_t encoder, +static void apply_video_encoder_settings(obs_encoder_t *encoder, json_t *recommended) { - obs_data_t settings = obs_encoder_get_settings(encoder); + obs_data_t *settings = obs_encoder_get_settings(encoder); json_t *item = json_object_get(recommended, "keyint"); if (item && json_is_integer(item)) { @@ -259,10 +259,10 @@ static void apply_video_encoder_settings(obs_encoder_t encoder, obs_data_release(settings); } -static void apply_audio_encoder_settings(obs_encoder_t encoder, +static void apply_audio_encoder_settings(obs_encoder_t *encoder, json_t *recommended) { - obs_data_t settings = obs_encoder_get_settings(encoder); + obs_data_t *settings = obs_encoder_get_settings(encoder); json_t *item = json_object_get(recommended, "max audio bitrate"); if (item && json_is_integer(item)) { @@ -275,11 +275,11 @@ static void apply_audio_encoder_settings(obs_encoder_t encoder, obs_data_release(settings); } -static void initialize_output(struct rtmp_common *service, obs_output_t output, +static void initialize_output(struct rtmp_common *service, obs_output_t *output, json_t *root) { - obs_encoder_t video_encoder = obs_output_get_video_encoder(output); - obs_encoder_t audio_encoder = obs_output_get_audio_encoder(output); + obs_encoder_t *video_encoder = obs_output_get_video_encoder(output); + obs_encoder_t *audio_encoder = obs_output_get_audio_encoder(output); json_t *json_service = find_service(root, service->service); json_t *recommended; @@ -300,7 +300,7 @@ static void initialize_output(struct rtmp_common *service, obs_output_t output, apply_audio_encoder_settings(audio_encoder, recommended); } -static bool rtmp_common_initialize(void *data, obs_output_t output) +static bool rtmp_common_initialize(void *data, obs_output_t *output) { struct rtmp_common *service = data; char *file; diff --git a/plugins/rtmp-services/rtmp-custom.c b/plugins/rtmp-services/rtmp-custom.c index b8bc389a3..c9b25f287 100644 --- a/plugins/rtmp-services/rtmp-custom.c +++ b/plugins/rtmp-services/rtmp-custom.c @@ -9,7 +9,7 @@ static const char *rtmp_custom_name(void) return obs_module_text("CustomStreamingServer"); } -static void rtmp_custom_update(void *data, obs_data_t settings) +static void rtmp_custom_update(void *data, obs_data_t *settings) { struct rtmp_custom *service = data; @@ -29,7 +29,7 @@ static void rtmp_custom_destroy(void *data) bfree(service); } -static void *rtmp_custom_create(obs_data_t settings, obs_service_t service) +static void *rtmp_custom_create(obs_data_t *settings, obs_service_t *service) { struct rtmp_custom *data = bzalloc(sizeof(struct rtmp_custom)); rtmp_custom_update(data, settings); @@ -38,9 +38,9 @@ static void *rtmp_custom_create(obs_data_t settings, obs_service_t service) return data; } -static obs_properties_t rtmp_custom_properties(void) +static obs_properties_t *rtmp_custom_properties(void) { - obs_properties_t ppts = obs_properties_create(); + obs_properties_t *ppts = obs_properties_create(); obs_properties_add_text(ppts, "server", "URL", OBS_TEXT_DEFAULT); diff --git a/plugins/text-freetype2/obs-convenience.c b/plugins/text-freetype2/obs-convenience.c index 0bbd7a936..a68d7b881 100644 --- a/plugins/text-freetype2/obs-convenience.c +++ b/plugins/text-freetype2/obs-convenience.c @@ -21,10 +21,10 @@ along with this program. If not, see . #include #include "obs-convenience.h" -gs_vertbuffer_t create_uv_vbuffer(uint32_t num_verts, bool add_color) { +gs_vertbuffer_t *create_uv_vbuffer(uint32_t num_verts, bool add_color) { obs_enter_graphics(); - gs_vertbuffer_t tmp = NULL; + gs_vertbuffer_t *tmp = NULL; struct gs_vb_data *vrect = NULL; vrect = gs_vbdata_create(); @@ -55,11 +55,12 @@ gs_vertbuffer_t create_uv_vbuffer(uint32_t num_verts, bool add_color) { return tmp; } -void draw_uv_vbuffer(gs_vertbuffer_t vbuf, gs_texture_t tex, gs_effect_t effect, - uint32_t num_verts) { - gs_texture_t texture = tex; - gs_technique_t tech = gs_effect_get_technique(effect, "Draw"); - gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); +void draw_uv_vbuffer(gs_vertbuffer_t *vbuf, gs_texture_t *tex, + gs_effect_t *effect, uint32_t num_verts) +{ + gs_texture_t *texture = tex; + gs_technique_t *tech = gs_effect_get_technique(effect, "Draw"); + gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); size_t passes; if (vbuf == NULL || tex == NULL) return; diff --git a/plugins/text-freetype2/obs-convenience.h b/plugins/text-freetype2/obs-convenience.h index 0a701ad9c..7a717d783 100644 --- a/plugins/text-freetype2/obs-convenience.h +++ b/plugins/text-freetype2/obs-convenience.h @@ -17,9 +17,9 @@ along with this program. If not, see . #include -gs_vertbuffer_t create_uv_vbuffer(uint32_t num_verts, bool add_color); -void draw_uv_vbuffer(gs_vertbuffer_t vbuf, gs_texture_t tex, gs_effect_t effect, - uint32_t num_verts); +gs_vertbuffer_t *create_uv_vbuffer(uint32_t num_verts, bool add_color); +void draw_uv_vbuffer(gs_vertbuffer_t *vbuf, gs_texture_t *tex, + gs_effect_t *effect, uint32_t num_verts); #define set_v3_rect(a, x, y, w, h) \ vec3_set(a, x, y, 0.0f); \ diff --git a/plugins/text-freetype2/text-freetype2.c b/plugins/text-freetype2/text-freetype2.c index 3aef79792..8caf84c12 100644 --- a/plugins/text-freetype2/text-freetype2.c +++ b/plugins/text-freetype2/text-freetype2.c @@ -87,10 +87,10 @@ static uint32_t ft2_source_get_height(void *data) return srcdata->cy; } -static obs_properties_t ft2_source_properties(void) +static obs_properties_t *ft2_source_properties(void) { - obs_properties_t props = obs_properties_create(); - //obs_property_t prop; + obs_properties_t *props = obs_properties_create(); + //obs_property_t *prop; // TODO: // Scrolling. Can't think of a way to do it with the render @@ -184,7 +184,7 @@ static void ft2_source_destroy(void *data) bfree(srcdata); } -static void ft2_source_render(void *data, gs_effect_t effect) +static void ft2_source_render(void *data, gs_effect_t *effect) { struct ft2_source *srcdata = data; if (srcdata == NULL) return; @@ -240,10 +240,10 @@ static bool init_font(struct ft2_source *srcdata) return FT_New_Face(ft2_lib, path, index, &srcdata->font_face) == 0; } -static void ft2_source_update(void *data, obs_data_t settings) +static void ft2_source_update(void *data, obs_data_t *settings) { struct ft2_source *srcdata = data; - obs_data_t font_obj = obs_data_get_obj(settings, "font"); + obs_data_t *font_obj = obs_data_get_obj(settings, "font"); bool vbuf_needs_update = false; bool word_wrap = false; uint32_t color[2]; @@ -410,10 +410,10 @@ error: #define DEFAULT_FACE "Sans Serif" #endif -static void *ft2_source_create(obs_data_t settings, obs_source_t source) +static void *ft2_source_create(obs_data_t *settings, obs_source_t *source) { struct ft2_source *srcdata = bzalloc(sizeof(struct ft2_source)); - obs_data_t font_obj = obs_data_create(); + obs_data_t *font_obj = obs_data_create(); srcdata->src = source; srcdata->font_size = 32; diff --git a/plugins/text-freetype2/text-freetype2.h b/plugins/text-freetype2/text-freetype2.h index 3b2cf0594..2e19d4538 100644 --- a/plugins/text-freetype2/text-freetype2.h +++ b/plugins/text-freetype2/text-freetype2.h @@ -47,28 +47,28 @@ struct ft2_source { int32_t cur_scroll, scroll_speed; - gs_texture_t tex; + gs_texture_t *tex; struct glyph_info *cacheglyphs[num_cache_slots]; FT_Face font_face; uint32_t *texbuf; - gs_vertbuffer_t vbuf; + gs_vertbuffer_t *vbuf; - gs_effect_t draw_effect; + gs_effect_t *draw_effect; bool outline_text, drop_shadow; bool log_mode, word_wrap; - obs_source_t src; + obs_source_t *src; }; extern FT_Library ft2_lib; -static void *ft2_source_create(obs_data_t settings, obs_source_t source); +static void *ft2_source_create(obs_data_t *settings, obs_source_t *source); static void ft2_source_destroy(void *data); -static void ft2_source_update(void *data, obs_data_t settings); -static void ft2_source_render(void *data, gs_effect_t effect); +static void ft2_source_update(void *data, obs_data_t *settings); +static void ft2_source_render(void *data, gs_effect_t *effect); static void ft2_video_tick(void *data, float seconds); void draw_outlines(struct ft2_source *srcdata); @@ -77,7 +77,7 @@ void draw_drop_shadow(struct ft2_source *srcdata); static uint32_t ft2_source_get_width(void *data); static uint32_t ft2_source_get_height(void *data); -static obs_properties_t ft2_source_properties(void); +static obs_properties_t *ft2_source_properties(void); static const char *ft2_source_get_name(void); diff --git a/plugins/text-freetype2/text-functionality.c b/plugins/text-freetype2/text-functionality.c index 182b7a5c5..e8d80812b 100644 --- a/plugins/text-freetype2/text-functionality.c +++ b/plugins/text-freetype2/text-functionality.c @@ -94,7 +94,7 @@ void set_up_vertex_buffer(struct ft2_source *srcdata) obs_enter_graphics(); if (srcdata->vbuf != NULL) { - gs_vertbuffer_t tmpvbuf = srcdata->vbuf; + gs_vertbuffer_t *tmpvbuf = srcdata->vbuf; srcdata->vbuf = NULL; gs_vertexbuffer_destroy(tmpvbuf); } @@ -298,7 +298,7 @@ void cache_glyphs(struct ft2_source *srcdata, wchar_t *cache_glyphs) obs_enter_graphics(); if (srcdata->tex != NULL) { - gs_texture_t tmp_texture = NULL; + gs_texture_t *tmp_texture = NULL; tmp_texture = srcdata->tex; srcdata->tex = NULL; gs_texture_destroy(tmp_texture); diff --git a/plugins/win-capture/dc-capture.c b/plugins/win-capture/dc-capture.c index 134c66952..d1d3be1ae 100644 --- a/plugins/win-capture/dc-capture.c +++ b/plugins/win-capture/dc-capture.c @@ -175,11 +175,12 @@ void dc_capture_capture(struct dc_capture *capture, HWND window) capture->textures_written[capture->cur_tex] = true; } -static void draw_texture(struct dc_capture *capture, int id, gs_effect_t effect) +static void draw_texture(struct dc_capture *capture, int id, + gs_effect_t *effect) { - gs_texture_t texture = capture->textures[id]; - gs_technique_t tech = gs_effect_get_technique(effect, "Draw"); - gs_eparam_t image = gs_effect_get_param_by_name(effect, "image"); + gs_texture_t *texture = capture->textures[id]; + gs_technique_t *tech = gs_effect_get_technique(effect, "Draw"); + gs_eparam_t *image = gs_effect_get_param_by_name(effect, "image"); size_t passes; gs_effect_set_texture(image, texture); @@ -198,7 +199,7 @@ static void draw_texture(struct dc_capture *capture, int id, gs_effect_t effect) gs_technique_end(tech); } -void dc_capture_render(struct dc_capture *capture, gs_effect_t effect) +void dc_capture_render(struct dc_capture *capture, gs_effect_t *effect) { int last_tex = (capture->cur_tex > 0) ? capture->cur_tex-1 : capture->num_textures-1; @@ -210,9 +211,9 @@ void dc_capture_render(struct dc_capture *capture, gs_effect_t effect) draw_texture(capture, last_tex, effect); } -gs_effect_t create_opaque_effect(void) +gs_effect_t *create_opaque_effect(void) { - gs_effect_t opaque_effect; + gs_effect_t *opaque_effect; char *effect_file; char *error_string = NULL; diff --git a/plugins/win-capture/dc-capture.h b/plugins/win-capture/dc-capture.h index c943836ca..ff1b65c13 100644 --- a/plugins/win-capture/dc-capture.h +++ b/plugins/win-capture/dc-capture.h @@ -9,7 +9,7 @@ struct dc_capture { int cur_tex; - gs_texture_t textures[NUM_TEXTURES]; + gs_texture_t *textures[NUM_TEXTURES]; bool textures_written[NUM_TEXTURES]; int x, y; uint32_t width; @@ -34,6 +34,6 @@ extern void dc_capture_init(struct dc_capture *capture, int x, int y, extern void dc_capture_free(struct dc_capture *capture); extern void dc_capture_capture(struct dc_capture *capture, HWND window); -extern void dc_capture_render(struct dc_capture *capture, gs_effect_t effect); +extern void dc_capture_render(struct dc_capture *capture, gs_effect_t *effect); -extern gs_effect_t create_opaque_effect(void); +extern gs_effect_t *create_opaque_effect(void); diff --git a/plugins/win-capture/monitor-capture.c b/plugins/win-capture/monitor-capture.c index 6e458231b..543fb377a 100644 --- a/plugins/win-capture/monitor-capture.c +++ b/plugins/win-capture/monitor-capture.c @@ -2,7 +2,7 @@ #include "dc-capture.h" struct monitor_capture { - obs_source_t source; + obs_source_t *source; int monitor; bool capture_cursor; @@ -10,7 +10,7 @@ struct monitor_capture { struct dc_capture data; - gs_effect_t opaque_effect; + gs_effect_t *opaque_effect; }; struct monitor_info { @@ -53,7 +53,7 @@ static BOOL CALLBACK enum_monitor(HMONITOR handle, HDC hdc, LPRECT rect, } static void update_monitor(struct monitor_capture *capture, - obs_data_t settings) + obs_data_t *settings) { struct monitor_info monitor = {0}; uint32_t width, height; @@ -72,7 +72,7 @@ static void update_monitor(struct monitor_capture *capture, } static inline void update_settings(struct monitor_capture *capture, - obs_data_t settings) + obs_data_t *settings) { capture->capture_cursor = obs_data_get_bool(settings, "capture_cursor"); capture->compatibility = obs_data_get_bool(settings, "compatibility"); @@ -102,17 +102,17 @@ static void monitor_capture_destroy(void *data) bfree(capture); } -static void monitor_capture_defaults(obs_data_t settings) +static void monitor_capture_defaults(obs_data_t *settings) { obs_data_set_default_int(settings, "monitor", 0); obs_data_set_default_bool(settings, "capture_cursor", true); obs_data_set_default_bool(settings, "compatibility", false); } -static void *monitor_capture_create(obs_data_t settings, obs_source_t source) +static void *monitor_capture_create(obs_data_t *settings, obs_source_t *source) { struct monitor_capture *capture; - gs_effect_t opaque_effect = create_opaque_effect(); + gs_effect_t *opaque_effect = create_opaque_effect(); if (!opaque_effect) return NULL; @@ -137,7 +137,7 @@ static void monitor_capture_tick(void *data, float seconds) UNUSED_PARAMETER(seconds); } -static void monitor_capture_render(void *data, gs_effect_t effect) +static void monitor_capture_render(void *data, gs_effect_t *effect) { struct monitor_capture *capture = data; dc_capture_render(&capture->data, capture->opaque_effect); diff --git a/plugins/win-capture/window-capture.c b/plugins/win-capture/window-capture.c index 7ad86532d..8860cf629 100644 --- a/plugins/win-capture/window-capture.c +++ b/plugins/win-capture/window-capture.c @@ -19,7 +19,7 @@ enum window_priority { }; struct window_capture { - obs_source_t source; + obs_source_t *source; char *title; char *class; @@ -33,7 +33,7 @@ struct window_capture { float resize_timer; - gs_effect_t opaque_effect; + gs_effect_t *opaque_effect; HWND window; RECT last_rect; @@ -54,7 +54,7 @@ char *decode_str(const char *src) return str.array; } -static void update_settings(struct window_capture *wc, obs_data_t s) +static void update_settings(struct window_capture *wc, obs_data_t *s) { const char *window = obs_data_get_string(s, "window"); int priority = (int)obs_data_get_int(s, "priority"); @@ -144,7 +144,7 @@ static void get_window_class(struct dstr *class, HWND hwnd) dstr_from_wcs(class, temp); } -static void add_window(obs_property_t p, HWND hwnd, +static void add_window(obs_property_t *p, HWND hwnd, struct dstr *title, struct dstr *class, struct dstr *executable) @@ -229,7 +229,7 @@ static inline HWND first_window( return window; } -static void fill_window_list(obs_property_t p) +static void fill_window_list(obs_property_t *p) { struct dstr title = {0}; struct dstr class = {0}; @@ -308,10 +308,10 @@ static const char *wc_getname(void) return TEXT_WINDOW_CAPTURE; } -static void *wc_create(obs_data_t settings, obs_source_t source) +static void *wc_create(obs_data_t *settings, obs_source_t *source) { struct window_capture *wc; - gs_effect_t opaque_effect = create_opaque_effect(); + gs_effect_t *opaque_effect = create_opaque_effect(); if (!opaque_effect) return NULL; @@ -342,7 +342,7 @@ static void wc_destroy(void *data) } } -static void wc_update(void *data, obs_data_t settings) +static void wc_update(void *data, obs_data_t *settings) { struct window_capture *wc = data; update_settings(wc, settings); @@ -363,16 +363,16 @@ static uint32_t wc_height(void *data) return wc->capture.height; } -static void wc_defaults(obs_data_t defaults) +static void wc_defaults(obs_data_t *defaults) { obs_data_set_default_bool(defaults, "cursor", true); obs_data_set_default_bool(defaults, "compatibility", false); } -static obs_properties_t wc_properties(void) +static obs_properties_t *wc_properties(void) { - obs_properties_t ppts = obs_properties_create(); - obs_property_t p; + obs_properties_t *ppts = obs_properties_create(); + obs_property_t *p; p = obs_properties_add_list(ppts, "window", TEXT_WINDOW, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); @@ -441,7 +441,7 @@ static void wc_tick(void *data, float seconds) obs_leave_graphics(); } -static void wc_render(void *data, gs_effect_t effect) +static void wc_render(void *data, gs_effect_t *effect) { struct window_capture *wc = data; dc_capture_render(&wc->capture, wc->opaque_effect); diff --git a/plugins/win-dshow/win-dshow.cpp b/plugins/win-dshow/win-dshow.cpp index 99ff24226..31057db28 100644 --- a/plugins/win-dshow/win-dshow.cpp +++ b/plugins/win-dshow/win-dshow.cpp @@ -129,7 +129,7 @@ enum class Action { static DWORD CALLBACK DShowThread(LPVOID ptr); struct DShowInput { - obs_source_t source; + obs_source_t *source; Device device; bool deviceHasAudio; @@ -154,7 +154,7 @@ struct DShowInput { ReleaseSemaphore(semaphore, 1, nullptr); } - inline DShowInput(obs_source_t source_) + inline DShowInput(obs_source_t *source_) : source (source_), device (InitGraph::False) { @@ -201,9 +201,9 @@ struct DShowInput { unsigned char *data, size_t size, long long startTime, long long endTime); - bool UpdateVideoConfig(obs_data_t settings); - bool UpdateAudioConfig(obs_data_t settings); - void Update(obs_data_t settings); + bool UpdateVideoConfig(obs_data_t *settings); + bool UpdateAudioConfig(obs_data_t *settings); + void Update(obs_data_t *settings); void DShowLoop(); }; @@ -252,7 +252,7 @@ void DShowInput::DShowLoop() switch (action) { case Action::Update: { - obs_data_t settings; + obs_data_t *settings; settings = obs_source_get_settings(source); Update(settings); obs_data_release(settings); @@ -669,7 +669,7 @@ static bool ResolutionAvailable(const VideoDevice &dev, int cx, int cy) return CapsMatch(dev, ResolutionMatcher(cx, cy)); } -static bool DetermineResolution(int &cx, int &cy, obs_data_t settings, +static bool DetermineResolution(int &cx, int &cy, obs_data_t *settings, VideoDevice dev) { const char *res = obs_data_get_autoselect_string(settings, RESOLUTION); @@ -691,7 +691,7 @@ static bool DetermineResolution(int &cx, int &cy, obs_data_t settings, static long long GetOBSFPS(); -bool DShowInput::UpdateVideoConfig(obs_data_t settings) +bool DShowInput::UpdateVideoConfig(obs_data_t *settings) { string video_device_id = obs_data_get_string(settings, VIDEO_DEVICE_ID); @@ -771,7 +771,7 @@ bool DShowInput::UpdateVideoConfig(obs_data_t settings) return true; } -bool DShowInput::UpdateAudioConfig(obs_data_t settings) +bool DShowInput::UpdateAudioConfig(obs_data_t *settings) { string audio_device_id = obs_data_get_string(settings, AUDIO_DEVICE_ID); bool useCustomAudio = obs_data_get_bool(settings, USE_CUSTOM_AUDIO); @@ -798,7 +798,7 @@ bool DShowInput::UpdateAudioConfig(obs_data_t settings) return device.SetAudioConfig(&audioConfig); } -void DShowInput::Update(obs_data_t settings) +void DShowInput::Update(obs_data_t *settings) { if (!device.ResetGraph()) return; @@ -838,7 +838,7 @@ static const char *GetDShowInputName(void) return TEXT_INPUT_NAME; } -static void *CreateDShowInput(obs_data_t settings, obs_source_t source) +static void *CreateDShowInput(obs_data_t *settings, obs_source_t *source) { DShowInput *dshow = nullptr; @@ -858,13 +858,13 @@ static void DestroyDShowInput(void *data) delete reinterpret_cast(data); } -static void UpdateDShowInput(void *data, obs_data_t settings) +static void UpdateDShowInput(void *data, obs_data_t *settings) { UNUSED_PARAMETER(settings); reinterpret_cast(data)->QueueAction(Action::Update); } -static void GetDShowDefaults(obs_data_t settings) +static void GetDShowDefaults(obs_data_t *settings) { obs_data_set_default_int(settings, FRAME_INTERVAL, FPS_MATCHING); obs_data_set_default_int(settings, RES_TYPE, ResType_Preferred); @@ -944,8 +944,8 @@ static const FPSFormat validFPSFormats[] = { {"1", MAKE_DSHOW_FPS(1)}, }; -static bool DeviceIntervalChanged(obs_properties_t props, obs_property_t p, - obs_data_t settings); +static bool DeviceIntervalChanged(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings); static bool TryResolution(VideoDevice &dev, string res) { @@ -956,7 +956,7 @@ static bool TryResolution(VideoDevice &dev, string res) return ResolutionAvailable(dev, cx, cy); } -static bool SetResolution(obs_properties_t props, obs_data_t settings, +static bool SetResolution(obs_properties_t *props, obs_data_t *settings, string res, bool autoselect=false) { if (autoselect) @@ -973,8 +973,8 @@ static bool SetResolution(obs_properties_t props, obs_data_t settings, return true; } -static bool DeviceResolutionChanged(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool DeviceResolutionChanged(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { UNUSED_PARAMETER(p); @@ -1026,10 +1026,10 @@ static const VideoFormatName videoFormatNames[] = { {VideoFormat::H264, "H264"} }; -static bool ResTypeChanged(obs_properties_t props, obs_property_t p, - obs_data_t settings); +static bool ResTypeChanged(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings); -static size_t AddDevice(obs_property_t device_list, const string &id) +static size_t AddDevice(obs_property_t *device_list, const string &id) { DStr name, path; if (!DecodeDeviceId(name, path, id.c_str())) @@ -1038,7 +1038,7 @@ static size_t AddDevice(obs_property_t device_list, const string &id) return obs_property_list_add_string(device_list, name, id.c_str()); } -static bool UpdateDeviceList(obs_property_t list, const string &id) +static bool UpdateDeviceList(obs_property_t *list, const string &id) { size_t size = obs_property_list_item_count(list); bool found = false; @@ -1073,8 +1073,8 @@ static bool UpdateDeviceList(obs_property_t list, const string &id) return true; } -static bool DeviceSelectionChanged(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool DeviceSelectionChanged(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { PropertiesData *data = (PropertiesData*)obs_properties_get_param(props); VideoDevice device; @@ -1115,7 +1115,7 @@ static bool DeviceSelectionChanged(obs_properties_t props, obs_property_t p, return true; } -static bool VideoConfigClicked(obs_properties_t props, obs_property_t p, +static bool VideoConfigClicked(obs_properties_t *props, obs_property_t *p, void *data) { DShowInput *input = reinterpret_cast(data); @@ -1126,7 +1126,7 @@ static bool VideoConfigClicked(obs_properties_t props, obs_property_t p, return false; } -/*static bool AudioConfigClicked(obs_properties_t props, obs_property_t p, +/*static bool AudioConfigClicked(obs_properties_t *props, obs_property_t *p, void *data) { DShowInput *input = reinterpret_cast(data); @@ -1137,7 +1137,7 @@ static bool VideoConfigClicked(obs_properties_t props, obs_property_t p, return false; }*/ -static bool CrossbarConfigClicked(obs_properties_t props, obs_property_t p, +static bool CrossbarConfigClicked(obs_properties_t *props, obs_property_t *p, void *data) { DShowInput *input = reinterpret_cast(data); @@ -1148,7 +1148,7 @@ static bool CrossbarConfigClicked(obs_properties_t props, obs_property_t p, return false; } -/*static bool Crossbar2ConfigClicked(obs_properties_t props, obs_property_t p, +/*static bool Crossbar2ConfigClicked(obs_properties_t *props, obs_property_t *p, void *data) { DShowInput *input = reinterpret_cast(data); @@ -1159,7 +1159,7 @@ static bool CrossbarConfigClicked(obs_properties_t props, obs_property_t p, return false; }*/ -static bool AddDevice(obs_property_t device_list, const VideoDevice &device) +static bool AddDevice(obs_property_t *device_list, const VideoDevice &device) { DStr name, path, device_id; @@ -1178,7 +1178,7 @@ static bool AddDevice(obs_property_t device_list, const VideoDevice &device) return true; } -static bool AddAudioDevice(obs_property_t device_list, +static bool AddAudioDevice(obs_property_t *device_list, const AudioDevice &device) { DStr name, path, device_id; @@ -1203,8 +1203,8 @@ static void PropertiesDataDestroy(void *data) delete reinterpret_cast(data); } -static bool ResTypeChanged(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool ResTypeChanged(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { int val = (int)obs_data_get_int(settings, RES_TYPE); bool enabled = (val != ResType_Preferred); @@ -1255,9 +1255,9 @@ static DStr GetFPSName(long long interval) } static void UpdateFPS(VideoDevice &device, VideoFormat format, - long long interval, int cx, int cy, obs_properties_t props) + long long interval, int cx, int cy, obs_properties_t *props) { - obs_property_t list = obs_properties_get(props, FRAME_INTERVAL); + obs_property_t *list = obs_properties_get(props, FRAME_INTERVAL); obs_property_list_clear(list); @@ -1310,7 +1310,7 @@ static DStr GetVideoFormatName(VideoFormat format) } static void UpdateVideoFormats(VideoDevice &device, VideoFormat format_, - int cx, int cy, long long interval, obs_properties_t props) + int cx, int cy, long long interval, obs_properties_t *props) { set formats = { VideoFormat::Any }; auto format_gatherer = [&formats](const VideoInfo &info) mutable -> bool @@ -1324,7 +1324,7 @@ static void UpdateVideoFormats(VideoDevice &device, VideoFormat format_, FrameRateMatcher(interval), format_gatherer); - obs_property_t list = obs_properties_get(props, VIDEO_FORMAT); + obs_property_t *list = obs_properties_get(props, VIDEO_FORMAT); obs_property_list_clear(list); bool format_added = false; @@ -1351,7 +1351,7 @@ static void UpdateVideoFormats(VideoDevice &device, VideoFormat format_, obs_property_list_item_disable(list, idx, true); } -static bool UpdateFPS(long long interval, obs_property_t list) +static bool UpdateFPS(long long interval, obs_property_t *list) { size_t size = obs_property_list_item_count(list); bool fps_found = false; @@ -1381,8 +1381,8 @@ static bool UpdateFPS(long long interval, obs_property_t list) return true; } -static bool DeviceIntervalChanged(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool DeviceIntervalChanged(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { long long val = obs_data_get_int(settings, FRAME_INTERVAL); @@ -1445,7 +1445,7 @@ static bool DeviceIntervalChanged(obs_properties_t props, obs_property_t p, return true; } -static bool UpdateVideoFormats(VideoFormat format, obs_property_t list) +static bool UpdateVideoFormats(VideoFormat format, obs_property_t *list) { size_t size = obs_property_list_item_count(list); DStr name; @@ -1472,8 +1472,8 @@ static bool UpdateVideoFormats(VideoFormat format, obs_property_t list) return true; } -static bool VideoFormatChanged(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool VideoFormatChanged(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { PropertiesData *data = (PropertiesData*)obs_properties_get_param(props); const char *id = obs_data_get_string(settings, VIDEO_DEVICE_ID); @@ -1499,8 +1499,8 @@ static bool VideoFormatChanged(obs_properties_t props, obs_property_t p, return true; } -static bool CustomAudioClicked(obs_properties_t props, obs_property_t p, - obs_data_t settings) +static bool CustomAudioClicked(obs_properties_t *props, obs_property_t *p, + obs_data_t *settings) { bool useCustomAudio = obs_data_get_bool(settings, USE_CUSTOM_AUDIO); p = obs_properties_get(props, AUDIO_DEVICE_ID); @@ -1508,14 +1508,14 @@ static bool CustomAudioClicked(obs_properties_t props, obs_property_t p, return true; } -static obs_properties_t GetDShowProperties(void) +static obs_properties_t *GetDShowProperties(void) { - obs_properties_t ppts = obs_properties_create(); + obs_properties_t *ppts = obs_properties_create(); PropertiesData *data = new PropertiesData; obs_properties_set_param(ppts, data, PropertiesDataDestroy); - obs_property_t p = obs_properties_add_list(ppts, + obs_property_t *p = obs_properties_add_list(ppts, VIDEO_DEVICE_ID, TEXT_DEVICE, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); diff --git a/plugins/win-wasapi/win-wasapi.cpp b/plugins/win-wasapi/win-wasapi.cpp index eb838468c..e29e36e1f 100644 --- a/plugins/win-wasapi/win-wasapi.cpp +++ b/plugins/win-wasapi/win-wasapi.cpp @@ -12,7 +12,7 @@ using namespace std; #define OPT_DEVICE_ID "device_id" #define OPT_USE_DEVICE_TIMING "use_device_timing" -static void GetWASAPIDefaults(obs_data_t settings); +static void GetWASAPIDefaults(obs_data_t *settings); #define KSAUDIO_SPEAKER_4POINT1 (KSAUDIO_SPEAKER_QUAD|SPEAKER_LOW_FREQUENCY) #define KSAUDIO_SPEAKER_2POINT1 (KSAUDIO_SPEAKER_STEREO|SPEAKER_LOW_FREQUENCY) @@ -22,7 +22,7 @@ class WASAPISource { ComPtr client; ComPtr capture; - obs_source_t source; + obs_source_t *source; string device_id; string device_name; bool isInputDevice; @@ -60,16 +60,16 @@ class WASAPISource { bool TryInitialize(); - void UpdateSettings(obs_data_t settings); + void UpdateSettings(obs_data_t *settings); public: - WASAPISource(obs_data_t settings, obs_source_t source_, bool input); + WASAPISource(obs_data_t *settings, obs_source_t *source_, bool input); inline ~WASAPISource(); - void Update(obs_data_t settings); + void Update(obs_data_t *settings); }; -WASAPISource::WASAPISource(obs_data_t settings, obs_source_t source_, +WASAPISource::WASAPISource(obs_data_t *settings, obs_source_t *source_, bool input) : reconnecting (false), active (false), @@ -122,14 +122,14 @@ inline WASAPISource::~WASAPISource() Stop(); } -void WASAPISource::UpdateSettings(obs_data_t settings) +void WASAPISource::UpdateSettings(obs_data_t *settings) { device_id = obs_data_get_string(settings, OPT_DEVICE_ID); useDeviceTiming = obs_data_get_bool(settings, OPT_USE_DEVICE_TIMING); isDefaultDevice = _strcmpi(device_id.c_str(), "default") == 0; } -void WASAPISource::Update(obs_data_t settings) +void WASAPISource::Update(obs_data_t *settings) { string newDevice = obs_data_get_string(settings, OPT_DEVICE_ID); bool restart = newDevice.compare(device_id) != 0; @@ -429,13 +429,13 @@ static const char *GetWASAPIOutputName(void) return obs_module_text("AudioOutput"); } -static void GetWASAPIDefaults(obs_data_t settings) +static void GetWASAPIDefaults(obs_data_t *settings) { obs_data_set_default_string(settings, OPT_DEVICE_ID, "default"); obs_data_set_default_bool(settings, OPT_USE_DEVICE_TIMING, true); } -static void *CreateWASAPISource(obs_data_t settings, obs_source_t source, +static void *CreateWASAPISource(obs_data_t *settings, obs_source_t *source, bool input) { try { @@ -447,12 +447,12 @@ static void *CreateWASAPISource(obs_data_t settings, obs_source_t source, return nullptr; } -static void *CreateWASAPIInput(obs_data_t settings, obs_source_t source) +static void *CreateWASAPIInput(obs_data_t *settings, obs_source_t *source) { return CreateWASAPISource(settings, source, true); } -static void *CreateWASAPIOutput(obs_data_t settings, obs_source_t source) +static void *CreateWASAPIOutput(obs_data_t *settings, obs_source_t *source) { return CreateWASAPISource(settings, source, false); } @@ -462,18 +462,18 @@ static void DestroyWASAPISource(void *obj) delete static_cast(obj); } -static void UpdateWASAPISource(void *obj, obs_data_t settings) +static void UpdateWASAPISource(void *obj, obs_data_t *settings) { static_cast(obj)->Update(settings); } -static obs_properties_t GetWASAPIProperties(bool input) +static obs_properties_t *GetWASAPIProperties(bool input) { - obs_properties_t props = obs_properties_create(); + obs_properties_t *props = obs_properties_create(); vector devices; /* TODO: translate */ - obs_property_t device_prop = obs_properties_add_list(props, + obs_property_t *device_prop = obs_properties_add_list(props, OPT_DEVICE_ID, obs_module_text("Device"), OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING); @@ -489,19 +489,19 @@ static obs_properties_t GetWASAPIProperties(bool input) device.name.c_str(), device.id.c_str()); } - obs_property_t prop; + obs_property_t *prop; prop = obs_properties_add_bool(props, OPT_USE_DEVICE_TIMING, obs_module_text("UseDeviceTiming")); return props; } -static obs_properties_t GetWASAPIPropertiesInput(void) +static obs_properties_t *GetWASAPIPropertiesInput(void) { return GetWASAPIProperties(true); } -static obs_properties_t GetWASAPIPropertiesOutput(void) +static obs_properties_t *GetWASAPIPropertiesOutput(void) { return GetWASAPIProperties(false); } diff --git a/test/test-input/test-filter.c b/test/test-input/test-filter.c index 9d5b5ec6a..c3e6d057f 100644 --- a/test/test-input/test-filter.c +++ b/test/test-input/test-filter.c @@ -1,8 +1,8 @@ #include struct test_filter { - obs_source_t source; - gs_effect_t whatever; + obs_source_t *source; + gs_effect_t *whatever; }; static const char *filter_getname(void) @@ -24,7 +24,7 @@ static void filter_destroy(void *data) } } -static void *filter_create(obs_data_t settings, obs_source_t source) +static void *filter_create(obs_data_t *settings, obs_source_t *source) { struct test_filter *tf = bzalloc(sizeof(struct test_filter)); char *effect_file; @@ -47,7 +47,7 @@ static void *filter_create(obs_data_t settings, obs_source_t source) return tf; } -static void filter_render(void *data, gs_effect_t effect) +static void filter_render(void *data, gs_effect_t *effect) { struct test_filter *tf = data; obs_source_process_filter(tf->source, tf->whatever, 0, 0, GS_RGBA, diff --git a/test/test-input/test-random.c b/test/test-input/test-random.c index 5c95cfb60..417f1429a 100644 --- a/test/test-input/test-random.c +++ b/test/test-input/test-random.c @@ -4,8 +4,8 @@ #include struct random_tex { - obs_source_t source; - os_event_t stop_signal; + obs_source_t *source; + os_event_t *stop_signal; pthread_t thread; bool initialized; }; @@ -74,7 +74,7 @@ static void *video_thread(void *data) return NULL; } -static void *random_create(obs_data_t settings, obs_source_t source) +static void *random_create(obs_data_t *settings, obs_source_t *source) { struct random_tex *rt = bzalloc(sizeof(struct random_tex)); rt->source = source; diff --git a/test/test-input/test-sinewave.c b/test/test-input/test-sinewave.c index 662ca961b..402536d7e 100644 --- a/test/test-input/test-sinewave.c +++ b/test/test-input/test-sinewave.c @@ -7,8 +7,8 @@ struct sinewave_data { bool initialized_thread; pthread_t thread; - os_event_t event; - obs_source_t source; + os_event_t *event; + obs_source_t *source; }; /* middle C */ @@ -79,8 +79,8 @@ static void sinewave_destroy(void *data) } } -static void *sinewave_create(obs_data_t settings, - obs_source_t source) +static void *sinewave_create(obs_data_t *settings, + obs_source_t *source) { struct sinewave_data *swd = bzalloc(sizeof(struct sinewave_data)); swd->source = source; diff --git a/test/win/test.cpp b/test/win/test.cpp index ddbd5ee81..f4bc1fb70 100644 --- a/test/win/test.cpp +++ b/test/win/test.cpp @@ -15,23 +15,23 @@ static const int cy = 600; /* --------------------------------------------------- */ class SourceContext { - obs_source_t source; + obs_source_t *source; public: - inline SourceContext(obs_source_t source) : source(source) {} + inline SourceContext(obs_source_t *source) : source(source) {} inline ~SourceContext() {obs_source_release(source);} - inline operator obs_source_t() {return source;} + inline operator obs_source_t*() {return source;} }; /* --------------------------------------------------- */ class SceneContext { - obs_scene_t scene; + obs_scene_t *scene; public: - inline SceneContext(obs_scene_t scene) : scene(scene) {} + inline SceneContext(obs_scene_t *scene) : scene(scene) {} inline ~SceneContext() {obs_scene_release(scene);} - inline operator obs_scene_t() {return scene;} + inline operator obs_scene_t*() {return scene;} }; /* --------------------------------------------------- */ @@ -92,9 +92,9 @@ static void CreateOBS(HWND hwnd) throw "Couldn't initialize video"; } -static void AddTestItems(obs_scene_t scene, obs_source_t source) +static void AddTestItems(obs_scene_t *scene, obs_source_t *source) { - obs_sceneitem_t item = NULL; + obs_sceneitem_t *item = NULL; struct vec2 scale; vec2_set(&scale, 20.0f, 20.0f);