Commit Graph

158 Commits (9b238ef71ea71ab077a5ac3af97c078a0fa06885)

Author SHA1 Message Date
jp9000 001bfb4a6d libobs: Use nullptr instead of NULL 2015-03-21 16:34:46 -07:00
jp9000 644ac130f8 libobs: Only allow ComQIPtr on windows
ComPtr can be used for things like the DeckLink API, but ComQIPtr has
windows-specific compiler features, so can't be used outside of windows.
2015-03-21 16:34:46 -07:00
jp9000 a05ed355f5 libobs: Fix 64bit -> 32bit conversion warnings 2015-02-10 19:31:25 -08:00
jp9000 e26dec916e libobs: Use windows wide <-> UTF8 conversion
If on windows, use the windows UTF conversion functions due to the fact
that the existing utf code is meant for 32bit wide characters, while the
windows conversion functions will properly handle 16bit wide characters.
2015-02-09 03:49:16 -08:00
jp9000 0c30dca526 libobs: Update to latest version of ComPtr.hpp 2015-02-09 03:49:15 -08:00
jp9000 5dfecab15c Fix windows printf format warnings (from mingw) 2015-02-09 03:49:14 -08:00
jp9000 0c1d121ff2 Remove various unused variables
Unused variables detected by mingw
2015-02-09 03:49:13 -08:00
martell a83e74dc1c Disable SEH for mingw-w64
The SEH implementation is not quite working properly in mingw-w64, so
disable it for the time being.
2015-02-09 03:47:27 -08:00
martell 23d39ea5a8 libobs: threading-windows mingw-w64 support
Enable support for mingw-w64 in threading-windows.c
2015-02-09 03:41:44 -08:00
martell 079d15d518 libobs: mingw-w64 threading-posix
Enable support for mingw-w64 in threading-posix.c
2015-02-09 03:41:43 -08:00
jp9000 82320a9ca7 (API Change) Make os_get_config_path safer to use
Changed:
  char *os_get_config_path(const char *name);

To:
  int os_get_config_path(char *dst, size_t size, const char *name);

Also added:
  char *os_get_config_path_ptr(const char *name);

I don't like this function returning an allocation by default.
Similarly to what was done with the wide character conversion functions,
this function now operates on an array argument, and if you really want
to just get a pointer for convenience, you use the *_ptr version of the
function that clearly indicates that it's returning an allocation.
2015-01-15 23:44:38 -08:00
jp9000 144fb925ff libobs: Add ability to set thread names 2015-01-03 02:37:20 -08:00
jp9000 a87fe6d783 libobs: Add wstrstri function
Performs a case-insensitive search for a wide-character string within
another wide-character string.
2015-01-03 02:37:16 -08:00
jp9000 9a91bbc16c libobs: Make astrstri a bit more C-compliant
I actually kind of hate how strstr returns a non-const even though it
takes a const parameter, but I can understand why they made it that way.
They really should have split it in to two functions though, one const
and one non-const or something.  But alas, ultimately for a C programmer
who knows what they're doing it isn't a huge deal.
2015-01-03 02:37:16 -08:00
jp9000 225f597379 libobs: Add process piping functions
This adds functions for piping a command line program's stdin or stdout.
Note however that this is unidirectional only.

This will be especially useful later on when implementing MP4 output,
because MP4 output has to be piped to prevent unexpected program
termination from corrupting the file.
2014-11-27 00:07:48 -08:00
jp9000 5888085a8e Allow hex numbers to be used in config data
This allows the 0x* format of hexadecimal integers to be used as config
integers.
2014-11-17 06:47:48 -08:00
jp9000 397dda78f8 Add config_open_string function
This allows opening ini config data from a string.  Before, it was only
possible to load config from a file.
2014-11-17 06:47:48 -08:00
jp9000 661d53067a util: Fix bug with darray_erase_range
Did not multiply the element size for the memory move operation.
2014-10-22 20:32:50 -07:00
Palana 2edac33c58 libobs/util: Write 0 character when converting empty strings
Fixes log_windows_version logging garbage for build when running with
debug heap enabled (assuming osvi.szCSDVersion is an empty string)
2014-10-04 21:48:08 +02:00
jp9000 41fad2d1a4 (API Change) Use const params where applicable
This Fixes a minor flaw with the API where data had to always be mutable
to be usable by the API.

Functions that do not modify the fundamental underlying data of a
structure should be marked as constant, both for safety and to signify
that the parameter is input only and will not be modified by the
function using it.
2014-09-26 17:23:07 -07:00
jp9000 c9df41c1e2 (API Change) Remove pointers from all typedefs
Typedef pointers are unsafe.  If you do:
typedef struct bla *bla_t;
then you cannot use it as a constant, such as: const bla_t, because
that constant will be to the pointer itself rather than to the
underlying data.  I admit this was a fundamental mistake that must
be corrected.

All typedefs that were pointer types will now have their pointers
removed from the type itself, and the pointers will be used when they
are actually used as variables/parameters/returns instead.

This does not break ABI though, which is pretty nice.
2014-09-25 21:48:11 -07:00
jp9000 1abcdd7f50 WinHandle: Do not close handle on operator &
This is not a com pointer; it should not release/close the handle when
an & operator is used, it should only return the handle value.  Clearing
is only used on assignment.
2014-09-12 20:36:32 -07:00
jp9000 45eae599ce Add -> operator to CoTaskMemPtr
This adds the ability to get members via the -> operator.
2014-09-01 13:00:22 -07:00
Palana 571dd0f166 Add platform functions to request high performance modes
Specifically, this disables App Nap and related features
on OSX 10.9+
2014-08-24 20:32:44 +02:00
jp9000 9d300685ca (API Change) Unsquish libobs/util
Changed:                      To:
-----------------------------------------------------------
dstr_isempty                  dstr_is_empty
cf_lexer_gettokens            cf_lexer_get_tokens
cf_preprocessor_gettokens     cf_preprocessor_get_tokens
2014-08-09 11:57:37 -07:00
jp9000 2f21e2a450 Remove duplicate 'strref_isempty' 2014-08-08 10:50:37 -07:00
jp9000 c5c8cba74d Fix incompatible pointer type warning
Well, needless to say I'm very happy this didn't end up exploding.  I'm
surprised GCC and clang let this through.
2014-07-27 14:33:37 -07:00
jp9000 e796aba928 Set proper output length for string conversions 2014-07-27 13:26:51 -07:00
jp9000 99d8bdcee7 Add 'glob' functions for file searching 2014-07-27 13:26:51 -07:00
BtbN cac6ad1822 Move config values from the commandline to obsconfig.h 2014-07-26 14:07:14 +02:00
jp9000 57dcf49757 Fix NULL pointer dereference with text lookups 2014-07-24 00:27:15 -07:00
jp9000 6d89dde0da Fix dstr_end bug (it's len - 1)
Somewhat of an embarassing fix.  Using 'len' will just return the null
terminator.
2014-07-23 20:16:37 -07:00
jp9000 dc42ac0012 Add dstr_end function to get the last character 2014-07-23 17:53:27 -07:00
jp9000 70559b98a0 Fix bug where bmem.h wasn't always included 2014-07-13 11:34:56 -07:00
Palana 850d92bac0 libobs: Add config_has_(user|default)_value functions
Similar to obs_data_has_(user_value|default|autoselect), these allow
library users to distinguish between user config values and default
values
2014-07-13 19:10:38 +02:00
jp9000 322f148c9c Remove duplicate include 2014-07-13 02:59:14 -07:00
jp9000 0c135d9804 Remove duplicate function declaration 2014-07-13 01:21:20 -07:00
jp9000 52c0d223fd Change dstr_init_strref to dstr_init_copy_strref 2014-07-13 01:20:53 -07:00
jp9000 f675c8029f Fix 'unused parameter' warnings on windows 2014-07-12 11:59:07 -07:00
jp9000 ad6b70e938 Add null pointer checks to platform functions
It's a sad day when I realize that I did not add any null pointer
checking to any of the functions in this file.  Discovered it while
checking all the different languages, happened when there was a missing
locale file for a certain module that hadn't had the language uploaded
yet.
2014-07-12 04:48:16 -07:00
jp9000 41f1ad32f2 Remove unused function 2014-07-05 16:16:32 -07:00
jp9000 0781d86a2b Implement CPU usage monitoring functions 2014-07-04 23:03:26 -07:00
Palana 603c87cd8f Fix b(w)strdup_n returning NULL for empty strings 2014-06-25 23:18:18 +02:00
Palana 070f6cb6a6 Add DStr move assignment operator 2014-06-25 17:00:02 +02:00
Palana 5afedb1092 Fix DStr move constructor
Previously dstr_move would try to free the uninitialized value in
DStr::str::array
2014-06-25 17:00:01 +02:00
Palana 56b3685940 Add include for ptrdiff_t 2014-06-17 17:02:28 +02:00
jp9000 44066f8e61 Fix null pointer dereference in text lookup
Fix potential null pointer dereference for when splitting a node.
2014-06-14 23:47:22 -07:00
jp9000 924709735e libobs/util: Add DStr RAII helper class
..Could also add some super nifty stuff later on too.  However, I think
using std::string whenever possible is probably for the best.
2014-05-30 02:46:08 -07:00
jp9000 dfdba6636b libobs/util: Fix string conversion functions
There was a fundamental flaw with the string type conversion functions
where the sizes were not being properly accounted for.  They were using
the 'len' value as a value for the output rather than only for the
input, which was bad because the output could have more or less
characters than the input.
2014-05-30 02:42:03 -07:00
jp9000 e18795a164 libobs/util/dstr.c: Add missing dstr_from_wcs 2014-05-30 02:40:23 -07:00