400 Commits

Author SHA1 Message Date
jp9000
3aa6b50fbe libobs/util: Add function to get circlebuf data offset
Allows getting pointer to an offset at a specific index within the
circlebuf data.  Useful for iterating through circlebuf data.
2016-12-08 03:27:33 -08:00
Ryan Foster
788a1e22b7 libobs: Refactor check for Windows bitness/arch
Commit aa899c2 (PR #603) added logging for Windows bitness/arch, but it
was a bit incomplete/short-sighted.  It only added that information to
the regular logs.  This commit makes it easier to retrieve that
information for other purposes, like the crash handler.
2016-11-09 12:41:07 -08:00
jp9000
39a91d749c libobs/util: Add Get() function to CoTaskMemPtr 2016-10-23 09:20:54 -07:00
Jim
ad2550e060 Merge pull request #628 from RytoEX/master
libobs/util: Fix get_dll_ver not reporting DLL name
2016-10-09 19:46:21 -07:00
jp9000
8b877f7c36 libobs/util: Fix fread_utf8 not working with files < 3 bytes
When it was checking for the BOM at the beginning of the file, it would
just return out of the function if it didn't read at least 3 bytes.
This would particularly affect text sources.
2016-09-28 02:01:30 -07:00
Ryan Foster
87f4d586b0 libobs/util: Fix get_dll_ver not reporting DLL name
Follow-up to commit 2cf5c5f.
2016-09-24 14:14:53 -04:00
jp9000
2cf5c5f7f7 libobs/util: Fix get_dll_ver always getting kernel32 info 2016-09-19 17:52:20 -07:00
Ryan Foster
47aa56b3e9 libobs/util: Fix Windows 10 revision detection
Sometimes the revision number isn't put in to the kernel32.dll version
information.  It's best to use the registry in this case.
2016-09-19 17:52:19 -07:00
jp9000
6b2862fe1e Revert "libobs/util: Add index operator to BPtr"
This reverts commit 7224e8d36e6c635c9769af1a5f1d9f7c903ac9e0.

This change was unnecessary due to the fact that indexing is already
performed automatically via the cast operator.
2016-09-14 16:59:47 -07:00
jp9000
7224e8d36e libobs/util: Add index operator to BPtr 2016-09-06 04:43:52 -07:00
Colin Edwards
0c0f6031e2 libobs/util: Use FormatMessage on error when LoadLibrary fails
Outputting a human-readable error message on library load failure makes
it a little bit easier for plugin developers to determine why a plugin
library may have failed to load (such as missing dependency), rather
than having to look up the error code each time.

Closes jp9000/obs-studio#596
2016-08-19 17:04:44 -07:00
jp9000
a576439f22 libobs/util: Fix possible null pointer dereference
Never checks to see whether the source dstr is empty before copying, and
will crash if empty.
2016-08-08 04:56:26 -07:00
jp9000
4f4d7cde7e libobs/util: Add os_get_program_data_path* functions
Allows getting the system-local program data path.  Typically:

Windows:  C:\ProgramData
Mac:      /Library/Application Support
Linux:    /usr/local/share
2016-07-06 03:47:50 -07:00
jp9000
d5e2cdf4d3 libobs/util: Add func to go to next CF token and copy it
Adds a function to the C-family parser to go to the next token and
create a string copy of it.  Useful for when you want to get a copy of
the next token regardless of what type it is.
2016-06-28 02:46:35 -07:00
jp9000
9948eee6c2 libobs/util: Add function to get path extension 2016-06-15 16:18:56 -07:00
jp9000
695278dd42 libobs/util: Do not append .so w/ .dylibs on OSX 2016-06-06 23:46:55 -07:00
jp9000
1c37200549 libobs/util: Check for null pointer before calling dlclose
Apparently dlclose can crash if you use it with a null pointer.
2016-05-30 16:03:01 -07:00
jp9000
8b2173f591 libobs/util: Add double-quote escape value for text lookup 2016-04-10 02:11:03 -07:00
jp9000
ac23ec8359 libobs/util: Fix warning (data type size mismatch)
Fixes warning on Visual Studio 2013:
'initializing' : conversion from 'size_t' to 'int', possible loss of
data
2016-04-09 18:15:47 -07:00
jp9000
81ac57cd6c libobs/util: Add os_stat function (win32 compatibility)
Windows needs filenames to be processed as wide, while libobs operates
on UTF-8, so a windows-specific function is needed here.
2016-04-03 18:02:45 -07:00
jp9000
e9a814740b libobs/util: Fix copy sizes in dstr_insert_* functions
These functions would copy the wrong amount of data, resulting in
writing to memory that may not be allocated.
2016-03-21 21:22:26 -07:00
jp9000
ae8b4bc538 libobs/util: Make sure to set capacity in dstr_ncopy* funcs 2016-03-21 21:22:25 -07:00
jp9000
45a2fa0e1a libobs/util: Make sure includes are from current file dir
When the #include directive in in the C lexer preprocessor is
encountered, the files being included need to be relative to the
directory of the file that the include was used in.
2016-03-21 21:22:25 -07:00
jp9000
38f368aa80 libobs/util: Make all atomic funcs inline and use intrinsics
Needless function calls here for what should be intrinsic calls
2016-01-23 07:17:44 -08:00
jp9000
4543cd168d libobs/util: Add long load/store atomic funcs 2015-12-28 05:49:55 -08:00
jp9000
9f9a4bc3f3 libobs/util: Add uint128 structure/functions
Allows some limited 128bit integer math functions, primarily for the
sake of performing calculations on nanosecond-based intervals of time
2015-12-22 06:18:17 -08:00
jp9000
7a81d3d6d7 libobs/util: Add circlebuf pop_back/peek_back functions 2015-12-22 06:18:16 -08:00
jp9000
c2168cf9e8 libobs/util: Don't perform calculation until data checked 2015-12-22 06:18:15 -08:00
jp9000
c6914fda45 libobs/util: Add circlebuf_push_front function 2015-12-22 06:18:14 -08:00
jp9000
091706920f libobs/util: Use malloc/free for temp darray allocations 2015-12-15 01:11:09 -08:00
jp9000
69ab209fdd libobs/util: Use correct dereferenced size with da_swap 2015-12-15 01:11:09 -08:00
jp9000
e23a20874b libobs/util: Rename da_swap_item to da_swap
The name was inconsistent with the darray_swap function that it's a
macro for.
2015-12-15 01:11:07 -08:00
jp9000
4e55cf1125 libobs/util: Add function deprecation defines 2015-12-11 16:45:31 -08:00
Palana
1cd98ae008 libobs/util: Fix config value line break unescaping
Given a config file with some value "foo=\\n" querying the value of foo
would return {'\\', '\n', 0}, instead of {'\\', 'n', 0}
2015-11-27 15:48:30 +01:00
jp9000
d1cbb2742e libobs/util: Use SIGTRAP for os_breakpoint
SIGTRAP is the correct value to use to specify a breakpoint.
2015-11-18 18:59:54 -08:00
jp9000
9e17f41caf libobs/util: Don't perform memalign trick of pointer null 2015-11-18 18:46:21 -08:00
jp9000
52d5a9b0b4 libobs/util: Breakpoint crash on "out of memory"
This forces proper crash handling to generate a stack trace.
2015-11-18 12:42:15 -08:00
jp9000
fa5c477826 libobs/util: Add os_breakpoint function 2015-11-18 12:42:15 -08:00
jp9000
598ae383bc libobs/util: Add atomic bool load functions 2015-11-18 12:42:14 -08:00
jp9000
1e1f442a61 libobs/util: Remove unnecessary allocations (win32)
Removes unnecessary allocations for the os_event_* and os_sem_*
thread functions
2015-11-11 16:52:48 -08:00
Richard Stanway
94b5bc222b libobs: Rename create_proccess to create_process 2015-11-06 18:25:53 +01:00
Richard Stanway
3671153a4f libobs: Don't use SPI_SETSCREENSAVEACTIVE on Windows
SetThreadExecutionState with ES_DISPLAY_REQUIRED has the same effect of preventing the screensaver from activating. Using SPI_SETSCREENSAVEACTIVE leaves the screensaver disabled system-wide if OBS crashes before it can re-enable it.
2015-11-05 03:58:26 +01:00
jp9000
a914bb24fa libobs/util: Add atomic functions for bool values 2015-11-03 15:03:39 -08:00
adray
e354a433c7 libobs/util: Add function to get free space
Meant as a part of solving mantis issue 105 ("Disk space usage monitor
when recording").

From pull request: jp9000/obs-studio#374
Relevant mantis issue: https://obsproject.com/mantis/view.php?id=105
2015-10-15 01:43:23 -07:00
adray
3e6db990fc libobs/util: Add function to get file size
From pull request: jp9000/obs-studio#374
2015-10-15 01:41:37 -07:00
jp9000
d542663478 libobs/util: Add os_get_abs_path(_ptr) functions
These functions resolve the absolute path from a relative path.
2015-10-15 01:35:18 -07:00
jp9000
1bcbaf8e75 libobs: Use byte sequence for non-breaking spaces
Use explicit UTF-8 byte sequence for the "no-break space" character.

Prevents issues with certain editors, and fixes the following compiler
warning on Visual C++:

warning C4819: The file contains a character that cannot be represented
in the current code page (X). Save the file in Unicode format to prevent
data loss
2015-10-15 01:31:07 -07:00
jp9000
8a0a28bf27 libobs/util: Add get_dll_ver function (windows)
Used to get the version of a dynamic link library on windows.
2015-10-04 21:16:28 -07:00
jp9000
48550b9691 libobs/util: Add function to calculate CRC32 2015-10-04 21:16:27 -07:00
jp9000
05748195a8 libobs/util: Save filename in config_create
Fixes a bug where config_save could not save the file due to the fact
that it did not store the path of the file as it was supposed to.
2015-10-04 21:16:26 -07:00