diff --git a/libobs-d3d11/d3d11-indexbuffer.cpp b/libobs-d3d11/d3d11-indexbuffer.cpp index 997fc39e7613b4b3aecfbb65ab2dc194f85843fe..0c68f4aeae4fd24673619b57b6f8652e2b903b41 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 63fe26f3649b8a14d70975fed270548a18cb7743..1d391bf8360b97997015642a9db5abeb017b1979 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 af6548c6567a431d6cadf84b0b8338f0cca448ab..48d812bf44724ebfe7c8ca514970f73cd29eda49 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<uint8_t> &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<gs_vertex_shader*>(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<gs_vertex_shader*>(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 3ac9b0d1e41811c1c9596bb152c03d08f7ed85c7..884d77c536ef9accfc38788f389d18b9262ef84d 100644 --- a/libobs-d3d11/d3d11-shaderprocessor.cpp +++ b/libobs-d3d11/d3d11-shaderprocessor.cpp @@ -180,7 +180,7 @@ void ShaderProcessor::BuildParams(vector<gs_shader_param> ¶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<ShaderSampler> &samplers) { gs_sampler_info si; diff --git a/libobs-d3d11/d3d11-shaderprocessor.hpp b/libobs-d3d11/d3d11-shaderprocessor.hpp index e1252f76b061a32c81575ca52a1b423b61edba7f..c432d57c2fcd1d9ed206592e607bbe9ff50db3e8 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<D3D11_INPUT_ELEMENT_DESC> &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 6b9881b031ae225c8280c3ef3c1d4e79cf50fdd6..dfe702b3d5de9d7b7e3a291198c7543ce0b99587 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 1c5c29f3396f14acffe7013ac7a462cce368a753..58884d803190bd0d0359ce2c93a760e08da1d5d0 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<gs_texture_2d*>(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<gs_texture_2d*>(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<gs_texture_2d*>(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<gs_texture_2d*>(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 75bafddfba081dabd4829124891cbbe6c4a1968d..3c8fcb7e83c962998330fce12082a582cfa91b67 100644 --- a/libobs-d3d11/d3d11-subsystem.hpp +++ b/libobs-d3d11/d3d11-subsystem.hpp @@ -182,7 +182,7 @@ struct gs_vertex_buffer { ComPtr<ID3D11Buffer> tangentBuffer; vector<ComPtr<ID3D11Buffer>> 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<ID3D11Buffer> 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<ID3D11SamplerState> 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<gs_shader_param> params; ComPtr<ID3D11Buffer> 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<D3D11_INPUT_ELEMENT_DESC> &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 679d365621f66eee0196ed85737023709b90bbb7..757c8443d45d68e54e944d4b4e91669f795b0f65 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 1e57564a160f9afdd04e1565908604f1def08e34..3fd1265d13144d662bb00a66384202040d68e42c 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 1e3e40647cecc6ac7aafe1dd995213e3c437a6e6..5b2732d581e1eb010f0bdacffe72212a9b92303c 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 c31856b1fbcc9280d5019e8b365d4fa0940a9805..f1b4894c65183f59076d33577b97097a0ada3d2b 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 2a4e8568d997d5b7dc87c075409264af36811908..d5fdfde606277532024557460e2bfaf6961f8f9a 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 4577d6d422b89448f8929757909494adf39a1b49..b3c03e16676bbad6a990718505899c1fa6a9af76 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 c48632380b9e50d8a5037c7b1507773460979a34..a9965ae0e88c34ec62bd6a8641676d4951710df2 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 eb62f969b74c94f4d10a65d89a63319a669c1143..840eeb45c033492e3891c68aa8029c75b1d00abb 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 83746787ab65172315d6bead1d3141ccbfd7322e..02e95b77c73adc0e3079bc6be1e1cf69edd0a334 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 067888c33757f272b4bc0ee30267d5d89877d6b1..f30c1fe9733049b754ee937f0525cd2c56b03a89 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 5d55405db68297d8b5c226c6e1487d47d59baeac..aa998faaf9f2a9f30b99eaeebdf05fa0bf844e18 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 aae77abf4e979e219424afe43039cb7ed1e2a148..878a0e820935b9395090222048a60fa73f8cbfcd 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 0305455b688c7b2611da55710d33b8fc4f4e3b7a..7d8ec59d28cedb4d404d76c4414c451bfe305b7c 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 2c7671b60320bcfd112fd1d50a4bf841019e8264..69b68d58bb8a048e721c0abff9f5f6a45e2c2f2b 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 dfbefe84311ac4bdec0500d8840c2cb34c69347c..0ab933319c8c4ef04e3a3abf883c78490ecef5fe 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 5b3adde37e3ffbad695d62030f8a37c5661d22a4..78242c77848fafb99ac0dbd0679aed91700f52ce 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 f56488b83791160f50498cd2275c12816bbaf648..73fe8bd8a584991f42c9812c65fb0f7685934420 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 d50408387b4429cf946dca264f202150fe317564..9c0aca9ed65129eee8475ad4a571d8eb0958df70 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 c23ccc3c15007075472e820cecd241c9d368a725..7b66676ed8449031861e45c15f180a1299e9761a 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 8b12e2455013f6b717794912453f192420805c13..107bdf211b03778fc7556c1549c966a55987145f 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 801ba45791430a1967829d29915c5eaa37c1d4df..be9138b6ba2b3d92da9f307c12469336e946f0b4 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 48d115bf63cc61fc9259268e50a9df03576508da..0f86db40203dc86f099a90f26e9e8bc85af1277a 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, - 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, +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_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 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, +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 c9579a12a9b7fd5b0874e49b94be1865ba398a86..6b5132cc5e8b3793bef2dd5538bfebeb0ad69841 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 a3553372ccc1d705cf839e84f9407420b1367282..36b6669a26815b172be7dfe479e7dd3daa396da6 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 7670033c473277ada636c4a3f0dc368161875029..d2a8875b95b3c6e7b613aad19b1b04342bf63bbd 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 846ed7c823bd898146bc88bf0c5ee21eb6df4519..9680a51dfbdbe38952f958adee3bce8a137dbe22 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 dfef664ffae75beceb798c5810f76e97490de244..07b35229d9f0f995869da9b5c1d7debb0f2a456c 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 b74d0e27fe086cc3e3fd3c75b50d9005856d6acc..d41a5b5201cebe05458eab5ced7b83bb6bd9f16b 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 a0caf4dba95f0121b62d4d3cd3bd87dac17e3855..e958db249b86b7f749d7af74b4c33db0e670baa4 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 f32a91c1a57216f112878fda137b786e280156a1..fecc973769feeaebdb01eae1504bc316ef45e3d3 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 3020cd09984fbc791242a117a0999de021ef2597..01046e86708c9f383db947a7b6bcaadf998f5631 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); - -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); + 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_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 838df6fd89934d0300d9432b3ac208b2924d6d18..6c74ef44295d5d0a4d2211472c532f6ba1f924bf 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 25008ad77299528c9e52e0961f3df82bfae8e0df..946628c39ad09bc20d68a9b8ea3a09176767bfcb 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 5befa64d1cfe511ce7058eb6407eac81ee50c94b..806a3315609580c25d82fe5b7e78f98c5b6f6993 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 0bd0bda36da2ce266409f0908f9217caf9b9af48..8a85eff812efc7ea9792a96ad7f18c4fb2724cb5 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 8fb6306f6ea75e568d4200d81f9cc23641a5f212..a4fe92794e63a605eee15b4b789f58af12b36b8b 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 6cbce7fa4c0ca3643fac584076b84561907f3a15..be57528a6e81d24d567dab658bf4fde52ba7ecf9 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 e9ebab26e5744071317ea9beefa04f32331a4eeb..ae923ca79ecb7599188db5f229361415fc544623 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 b13d87ae748e0b13b401b5d923f8f0ec1582e0e5..41ef5384ad482b77f43cd26590ae8e4328228ef3 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 1e3d2b62d3a25461a765fecad7e567b589508022..883fab26493b7fb3a476236d1bd81942e663096a 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 6c3cca17cf15c84c6365e0e288dc8c5bef798f02..dd1630cb299b7ccb5b3443d6bb0be2a52002783a 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 7419f6cc1601ad5da78db4e4547ee93d9d3bc454..6cff446bbdd9ba4775a9a461774ba6825d08706e 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 d6d46c129fd9f85d4ebcf0c307adbc24c23e8fdc..8ba29d65d4ec3ffc9fef451f43626f7d18bbc9b8 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_default_string(obs_data_t data, +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, 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_default_string(obs_data_item_t *item, +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, 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_autoselect_string(obs_data_item_t *item, +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, 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_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_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_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 ef956bd3b11fe21c5ca4605a4775a7eadff3722e..a20b5524994fd4ce71c047abbb6172a2ede2b48c 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 e1ca6fc00dcfed4b71de7b227602f8ee57d32ef8..f78d75640f6c80c7036b1d1c724d8ac1118e9602 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 dfd63153d9af86124e7ee41040e5fc6f7d3f6d8f..fba375713deebba9cb6064505f74a51ce2137fc3 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 080afa8d32ea9f33dc1fc2f557491640efefb98a..7fcbd5e57edbc9aa23d817f29a51be33f57107bc 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 c54653ac681ae860e1ab000e4b05014211373572..0632c3255e8411daacf8011c3df451a13822b9b7 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 c6e080813ea75a9a236fe2f6795fc647bad0f8d3..99a6400538d4cad6d93f276fe9f55305b11a369e 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 c080a33e25a6adf87d3df75530e23e46f47274c2..956114e6206da58266bc72cbc479b517257b5511 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 5a632e7301937fa3c7510decaae4a0bda5b10d8c..c32fe40358d271237083854033d95c9b5e7e06ca 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 ec8c6b59da540d67072e5afc075d85a2e30b4d4b..6b7a9dba2b67d1142d043c7620800c4c608f48c0 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 1e288f874fb7c1e51f852d9f41f96b44f5171326..743483dbc62463fafd452ab747a9a0f51efc413b 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 29c2ab89751f745164773e77b78f12f8903817e8..ef7394c17ec9eee36c91e579ba510351fdf68969 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 c93aac88f1567f0c5b7e497ff3ad5545dc2e9938..e8278e720a05c641d91315d5972380be3abf892d 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 4985d2612f03a7d280ef56809a52ce56ccb654bc..34ccb421277f117234dc91d6416de855e3825b03 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 33ac093b4d235d1063300c393cab1befe707a4a9..553d5d66f2a14a81c1bdc3947f60d4e1e1507ad0 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 9bdccd37571b316c295d2387297b745d95f76351..97af9237011f5d22df84a4b67981fad3619a974e 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 e7d1ca839a728c7ecbcbaa83adbd922bcf51fa89..44af5a5d9448f83641239b7f6a70ea5149eb2d42 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 156cc44b47e8a7abfd06c8d5e8d2d4d680b0aaa1..3810d2d9e0663d5692c184ec9f98cac254a56289 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 ef940b6d6f3b6dbf371d79a3249e738013ddbdc6..e06ff457fea999bc01e4d43b2d8d7ec7dec8ee4a 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 8bbe8b2e5cb60f63c2fc40027856965e3035a7af..e57e38208b813db1450f8f973056cc5e47d1e3e4 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 7c92727310c94dd9c7305e4b3df7a0db6da1be2c..9e9fc35a5c9a2a4d50e79237c42290960d4ebb73 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<obs_source_t, obs_source_addref, obs_source_release>; -using OBSScene = OBSRef<obs_scene_t, obs_scene_addref, obs_scene_release>; -using OBSSceneItem = OBSRef<obs_sceneitem_t, obs_sceneitem_addref, +using OBSSource = OBSRef<obs_source_t*, obs_source_addref, obs_source_release>; +using OBSScene = OBSRef<obs_scene_t*, obs_scene_addref, obs_scene_release>; +using OBSSceneItem = OBSRef<obs_sceneitem_t*, obs_sceneitem_addref, obs_sceneitem_release>; -using OBSData = OBSRef<obs_data_t, obs_data_addref, obs_data_release>; -using OBSDataArray = OBSRef<obs_data_array_t, obs_data_array_addref, +using OBSData = OBSRef<obs_data_t*, obs_data_addref, obs_data_release>; +using OBSDataArray = OBSRef<obs_data_array_t*, obs_data_array_addref, obs_data_array_release>; /* 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<obs_display_t, obs_display_destroy>; -using OBSEncoder = OBSObj<obs_encoder_t, obs_encoder_destroy>; -using OBSView = OBSObj<obs_view_t, obs_view_destroy>; -using OBSOutput = OBSObj<obs_output_t, obs_output_destroy>; +using OBSDisplay = OBSObj<obs_display_t*, obs_display_destroy>; +using OBSEncoder = OBSObj<obs_encoder_t*, obs_encoder_destroy>; +using OBSView = OBSObj<obs_view_t*, obs_view_destroy>; +using OBSOutput = OBSObj<obs_output_t*, obs_output_destroy>; /* 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 8e34eaf71c98bbb897c99323b2c7269837426099..dd5bfd64f2987d9e1ae77a3da4611448bfe8193a 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 6cfd034f9fa363b17a0bd56eda216953ceccbdda..7a41d2573010fbabfe2382bb8ed20f148b78e084 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 b19d569d36f43e2f9337987bd4477b3fc4941d67..8c11d8a9b507a9a2fe646a3dd5a49e8c19f88bdf 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 6757f0cc927919ba150d8753c02a9f2753da1f0b..5dda75b47af0d77d98444b73e7c21bada1e171c6 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 c755b57e3aaab531702d9168f44fa72f02c0063c..1b4cd5a4fe34bf3d1235d5d06990a7e35eef365a 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 6c42e6c877081099806cb48477bdc31894c2fa02..a5298c5dac7522544cf6be9ff2d3e109c80ab888 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 ef8ed3dd12f1e0f6b67a88cec4b771893fe33ac6..2669890394093f403f769eb8b20b602f32c4bf12 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 f9855176f7dea2198773e5e12c13f4643748ef66..306e6010e8ca44d2ead24e9a50fd4899fb3a23a6 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 a86f1ac71037dad6e28a25c431a361a50231be8f..e97cdc9f07ca50fca53d5d62f198a95bc8b4e6a7 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 cce3b630f0a50d35d969af21cd64a44ffff5d48f..bb00960cce5eb1b4e5e957dfe5320b5d255e98e6 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 4df01dafb42d51ea26404e246aa5fb0407b2b778..27b6db104dea11bcfa83a9dba1a99026163155a5 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 2fe99b0292e5f4651269e450fa45addad45b1986..a38fd1c89273d8f8154e3642a885ff7d44cc1af5 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 d74969ad9c3110cc47fa88f1759aa4813f961b7f..fd11e776ac8c1fba667eea11f2fe4ee5c865d9a4 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<char> 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 89c8e62ac4241ffe335751c8b3fcce664112aab2..b13f8eb8e390fb3311ff7a09e4e067ef493fc7b4 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<OBSApp*>(qApp);} -inline config_t GetGlobalConfig() {return App()->GlobalConfig();} +inline config_t *GetGlobalConfig() {return App()->GlobalConfig();} std::vector<std::pair<std::string, std::string>> 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 cee1671a997345a10b81ef41474da7ec44f2f7fe..e4ecb12888e3d615fbf66d708e7f06b520f6cf06 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 <long long get_int(obs_data_t, const char*), - double get_double(obs_data_t, const char*), - const char *get_string(obs_data_t, const char*)> -static string from_obs_data(obs_data_t data, const char *name, +template <long long get_int(obs_data_t*, const char*), + double get_double(obs_data_t*, const char*), + const char *get_string(obs_data_t*, const char*)> +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<obs_data_get_int, obs_data_get_double, obs_data_get_string>(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<obs_data_get_autoselect_int, @@ -259,7 +259,7 @@ static string from_obs_data_autoselect(obs_data_t data, const char *name, obs_data_get_autoselect_string>(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 a077560c89e78d1ad669d3df76f2e97ca892b1d4..e891e5105e14d34593a995f81e823e136a47b7ad 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 cd3785eca2203c67a10baa76542fcd5713d646f6..d00aa3b31c2bfa7f68dfe4573649a0c86941aab7 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<VolControl*>(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<VolControl*>(data); float peak = calldata_float(calldata, "level"); diff --git a/obs/volume-control.hpp b/obs/volume-control.hpp index 407b44739ae4a6ff356597ae9344fe53e2cfd37e..0ded938a30e9a7711a2a6924c7bda60f87a6fa8d 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 1d79c15d506c4de83ce1163b06b6c2dde02fb935..1f5403fa3565085151f1a5f07468a924aabf1918 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<OBSBasicInteraction*>(data), "close"); diff --git a/obs/window-basic-interaction.hpp b/obs/window-basic-interaction.hpp index 4c8e3c208c45d0d57cfd7fb167421a287cc766ad..a6453f936edfd086000a0a231525460f69eea586 100644 --- a/obs/window-basic-interaction.hpp +++ b/obs/window-basic-interaction.hpp @@ -44,7 +44,7 @@ private: OBSSignal removedSignal; std::unique_ptr<OBSEventFilter> 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 ed9a81a0b7e098397ea8c979ed11809fd508b981..73d8997e745c907faefa1e6fa673fa624a09eea2 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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSBasic*>(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<OBSScene>(); 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<OBSSceneItem*>(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<OBSSceneItem>(); - 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<struct obs_data, decltype(data_deleter)>; 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<vec2*>(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<obs_bounds_type*>(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 72795183e5d49d659523472c951198b255a24d2f..79cc2594b3a09bd20625f64ed9f89bbceb818906 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<obs_source_t, int> sourceSceneRefs; + std::unordered_map<obs_source_t*, int> sourceSceneRefs; std::vector<VolControl*> volumes; @@ -65,7 +65,7 @@ private: QNetworkAccessManager networkManager; QPointer<QTimer> 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::OBSBasic> ui; diff --git a/obs/window-basic-preview.cpp b/obs/window-basic-preview.cpp index 830957baeb3d4b410a39e306144274247f2683b7..669a0c939436094328325485135afc2b37cd14b7 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<SceneFindData*>(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<SceneFindData*>(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<obs_sceneitem_t>(param); + obs_sceneitem_t *selectedItem = + reinterpret_cast<obs_sceneitem_t*>(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<SelectedItemBounds*>(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<vec2*>(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<OBSBasic*>(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 602e3c10beae66a4a61e432a2224b4e8b017bb78..aaa8bddc2d40e90de8ce0208f9838d8f6255543f 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 9defa4d172c1554a8f5ec3ab3f45ccb5f7e90240..aa535e26e84538ef10e1f28b478c50e8dbe8a6b7 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<OBSBasicProperties*>(data), "close"); diff --git a/obs/window-basic-properties.hpp b/obs/window-basic-properties.hpp index 943a813209ad5bf322d005a4bdbfe1178e971897..324b5e684e54224882511ab28e4d48e45531cc2c 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 615c773167432d93d0daa35d94498323cfae340c..aeafb39bed758cc13f9fd799f085a9bed7e3ab1f 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 80bdbe985b9b623c7fbc6ee3ac957944a2af48a5..378d765fcfca587fa22ac27035226fb16ceba49b 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 fd32a13c519ae3a312e6508978d1a49ae9ec8bec..bc67f58dc91fe301895a67fce706c11a3257b481 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<OBSBasicSourceSelect*>(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<OBSBasicSourceSelect*>(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<OBSBasicSourceSelect*>(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 dbebf0cb37f03953f5b548bd5a5df674b18d9317..49cbe4290958d3cab860272fa1e19a99c72082c8 100644 --- a/obs/window-basic-source-select.hpp +++ b/obs/window-basic-source-select.hpp @@ -31,10 +31,10 @@ private: std::unique_ptr<Ui::OBSBasicSourceSelect> 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 51f6add7abec6196fd52b8ca90dbec54247574be..b092d75f70a43371cc2879e7b6a1a553a6d65596 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<OBSBasicStatusBar*>(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<OBSBasicStatusBar*>(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 1e2d1952f6749fffb80e6940c6ae481191d418f1..2086a81f7e9d2f721aa92be229433935603a68c0 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 03c8ec9241720e5cc5746e8f67efd860fc0ae3a1..0dca0f49617108e1176f7b08d051eb2b320bf581 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<OBSSceneItem*>(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<OBSBasicTransform*>(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<OBSBasicTransform*>(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<OBSBasicTransform*>(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<OBSBasicTransform*>(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<OBSBasicTransform*>(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 6730d0fc878290fe3699ab1a73c3d8071d090c5c..c8e2e4045b6e0cf5e53571951a12f07deafbd39c 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 6721c742cefe10728fcb979a6199ca85bd855778..c98be146e7b577e65901746f5e2a5ded84e24194 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 c5b27311cbcf3a28f629995f85c0dd228605f243..1a5a2f70b7ce0888f87bd954e418c75ebe811f46 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 a6e1f9cd56f634632adbc02a52a6b07f4b593e33..3fb10891e443515c57417900ff3f2453673eb03f 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 e0f63062d1993b4fb32e77fb1935a72d88539677..a0761670041a8c3e441bd8012d7b40642e643bae 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 a901800fa88d165655dcf222a611d1feecfdd9ec..d79001599baa73c060b66745e1b10740cb056dab 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 417e8db23b6307032d1005dafcd04f44521fefd2..6f4ea5f11024f5e74da554f686245a5c0e67ffd4 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 9c923d5e5e98e2670773ce9630122ce28069d252..66315614632164a1f7d027db87800d9dd6508a54 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 81f30e464ea6b070c78d5d61d934c8bdbb2b4616..5851068278dcd39c8b3b7fa7416f591d6c17bec6 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 39cc47d4c35b045b20aeef44ba59f5c04bae6f3a..314691aa4d81f1edd855236434810a650d135b10 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 <http://www.gnu.org/licenses/>. #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 d46b62b3f2323b8e4cc9433a853fba1a8344a31f..931960f8ab7143e19ab57feaaa25ef88d38b0da6 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 59544f74f505d273febe71e2f1c71e57abc6c454..d434a49f0a256e66bec5214b53626eea21acc5b4 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 773a794298638f036c769a5535ffcbb7e9cac7e1..4092823336f180295e43d612560c4d3637390f0f 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 c2cd42fcb3790be077c91956cb64b1022f8a43ff..e2523c2710e8a8965e296db24bc5e433989dad46 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 27cb111544c5b899c65d8963e760a5e47a0b6e0e..feb61d9c38fd6a61cab624302140635a9f2a06d5 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 7ca1a2844a4e441cdd9016d1ec1ec7448e8db553..bdc3ed26a53ca47315a33c574323da2ff0a4b9c2 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 feba6bed459ba58c785e508f45ab55f70a09e28e..d2a19781d0850df35d349d4aa3ba4a2009281fd9 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 973ae9f04c5ebcbbd988c5b8ef07ca322fe636db..b7aa9be2ddc52794b57a87583e09cc186d40462c 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 8fdd69afebfed302e2f34fe692928b7b0e8b8be6..30402c6816404140f6eb9aefd0aa53eba52913f4 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 db8a5030e6576edb54d5595e65cffad9d9e95b88..f6c62683061a3f81be004983bbd795bb1f637032 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 2c4d386ff0b78bb07a6e015c8799c87c4aafd407..984bd2fe56f227ed3dcdb56c268d84783b603e66 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 90ed44efd577803cb32352feb8302c2c83a9942c..7e0da0f37d0a2ffb351e66de69f4832270aec680 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 d076b61951baab81ff41df89f089bc3df09c7b16..f1fdaaaa9883c2bb9233811eb0451ba6b0e043a2 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 996f511ad32ad0df186e28d656487876cc36a671..2a9c0b98e27ca5ddd028678cf8d1476ef0a9d2ed 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 6c01f27486879590aae99ac3d090821a910df4d4..d4e7f1b564963a97cf1c45a2994bd9cecf669d32 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 0e7010d7e0c3025fb74777660481d3755ae2044d..df8a3f922510a5a9741b0795db0c8069aebe828f 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 b8bc389a3dc5f91468e3a397016fc2227a90d53c..c9b25f287fdc425eb75e969192f0f4a63598b34c 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 0bbd7a936367dcc88318ef616fd78d94f0794921..a68d7b881f2ac2cd7d124325b3c9babaaebc0b2f 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 <http://www.gnu.org/licenses/>. #include <graphics/vec4.h> #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 0a701ad9ce5f6b03a28429ff7c57e260ed1d38e0..7a717d78325cddc173cecd432601418fd1272a01 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 <http://www.gnu.org/licenses/>. #include <obs-module.h> -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 3aef797924ef616c89d0fd7c6e6320764ae363a5..8caf84c123c228cfcf4eeb8f4be13cf03d477372 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 3b2cf0594898c1f9d157e98e7301b2f451249f09..2e19d45385f6077feb3160d22e4c2d67e218f8be 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 182b7a5c55bf2fb0dab1b9fdac9405a43ccab9ff..e8d80812b803198bce0d0e1f8f75d6bff67f670d 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 134c669520804aab876511fe05dc1f92db0a239c..d1d3be1ae9616158defb36350e970aed0a063397 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 c943836ca3252755d7fbdd5ebfee986707bbacff..ff1b65c132a27edfca9c8c535e4db245632831d4 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 6e458231b099df46881599ad2cc5ddef854c4569..543fb377ac0331a179d960ae05f45127c7cff02c 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 7ad86532d5865454cb51cf307ff0c0dde1a5e893..8860cf6299e83bd3abb45b9251de97d049f52ccc 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 99ff24226bf76505b1a7ce45a9494389ade88410..31057db2887d3dcc703ff778ca97b369c1353d70 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<DShowInput*>(data); } -static void UpdateDShowInput(void *data, obs_data_t settings) +static void UpdateDShowInput(void *data, obs_data_t *settings) { UNUSED_PARAMETER(settings); reinterpret_cast<DShowInput*>(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<DShowInput*>(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<DShowInput*>(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<DShowInput*>(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<DShowInput*>(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<PropertiesData*>(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<VideoFormat> 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 eb838468cb82b3ac84aa06bdcd526a00767185bc..e29e36e1fefcc5232cc38f42be9dd55bc7c5af73 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<IAudioClient> client; ComPtr<IAudioCaptureClient> 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<WASAPISource*>(obj); } -static void UpdateWASAPISource(void *obj, obs_data_t settings) +static void UpdateWASAPISource(void *obj, obs_data_t *settings) { static_cast<WASAPISource*>(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<AudioDeviceInfo> 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 9d5b5ec6a11f173fccc52c0f511c43ee62f87982..c3e6d057f7c44ce893645d0a3795f315ba1af284 100644 --- a/test/test-input/test-filter.c +++ b/test/test-input/test-filter.c @@ -1,8 +1,8 @@ #include <obs-module.h> 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 5c95cfb60641a49d9d2f4db7f68738d48e9dd3b3..417f1429a242647f6a1fa1ff06ab17781636d372 100644 --- a/test/test-input/test-random.c +++ b/test/test-input/test-random.c @@ -4,8 +4,8 @@ #include <obs.h> 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 662ca961bd78226bd5111cebc10971cbdf87ae50..402536d7e4e05b32fd54d4cbc85d8a14230aa389 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 ddbd5ee815f021630860b3494f434e8a44e15b61..f4bc1fb70065b473c1a4cb4bc1976b01eff76bed 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);