diff options
author | rcombs <rcombs@rcombs.me> | 2021-05-26 17:47:30 -0500 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2023-06-25 11:01:58 +0200 |
commit | 0463096b3c5a717a7c181801c8df797b046989fc (patch) | |
tree | a603525be0e4241c2ae1fd4065b3ed8deb7ed5ad | |
parent | 8c8d97c26c8b6bef9b8d763db2091e186205ab98 (diff) | |
download | mpv-0463096b3c5a717a7c181801c8df797b046989fc.tar.bz2 mpv-0463096b3c5a717a7c181801c8df797b046989fc.tar.xz |
osdep: move cfstr<->cstr conversions to a new apple_utils.c file
-rw-r--r-- | audio/out/ao_coreaudio_utils.c | 15 | ||||
-rw-r--r-- | audio/out/ao_coreaudio_utils.h | 6 | ||||
-rw-r--r-- | meson.build | 3 | ||||
-rw-r--r-- | osdep/apple_utils.c | 39 | ||||
-rw-r--r-- | osdep/apple_utils.h | 28 | ||||
-rw-r--r-- | wscript_build.py | 1 |
6 files changed, 71 insertions, 21 deletions
diff --git a/audio/out/ao_coreaudio_utils.c b/audio/out/ao_coreaudio_utils.c index f7869c2453..45c5eff9db 100644 --- a/audio/out/ao_coreaudio_utils.c +++ b/audio/out/ao_coreaudio_utils.c @@ -35,21 +35,6 @@ #include <mach/mach_time.h> #endif -CFStringRef cfstr_from_cstr(char *str) -{ - return CFStringCreateWithCString(NULL, str, CA_CFSTR_ENCODING); -} - -char *cfstr_get_cstr(CFStringRef cfstr) -{ - CFIndex size = - CFStringGetMaximumSizeForEncoding( - CFStringGetLength(cfstr), CA_CFSTR_ENCODING) + 1; - char *buffer = talloc_zero_size(NULL, size); - CFStringGetCString(cfstr, buffer, size, CA_CFSTR_ENCODING); - return buffer; -} - #if HAVE_COREAUDIO static bool ca_is_output_device(struct ao *ao, AudioDeviceID dev) { diff --git a/audio/out/ao_coreaudio_utils.h b/audio/out/ao_coreaudio_utils.h index e52c82d365..b5492924b6 100644 --- a/audio/out/ao_coreaudio_utils.h +++ b/audio/out/ao_coreaudio_utils.h @@ -25,11 +25,7 @@ #include "common/msg.h" #include "audio/out/ao.h" #include "internal.h" - -#define CA_CFSTR_ENCODING kCFStringEncodingUTF8 - -CFStringRef cfstr_from_cstr(char *str); -char *cfstr_get_cstr(CFStringRef cfstr); +#include "osdep/apple_utils.h" bool check_ca_st(struct ao *ao, int level, OSStatus code, const char *message); diff --git a/meson.build b/meson.build index dd621129d2..2d42843d71 100644 --- a/meson.build +++ b/meson.build @@ -384,7 +384,8 @@ cocoa = dependency('appleframeworks', modules: ['Cocoa', 'IOKit', 'QuartzCore'], features += {'cocoa': cocoa.found()} if features['cocoa'] dependencies += cocoa - sources += files('osdep/macosx_application.m', + sources += files('osdep/apple_utils.c', + 'osdep/macosx_application.m', 'osdep/macosx_events.m', 'osdep/macosx_menubar.m', 'osdep/main-fn-cocoa.c', diff --git a/osdep/apple_utils.c b/osdep/apple_utils.c new file mode 100644 index 0000000000..02cdfaa95a --- /dev/null +++ b/osdep/apple_utils.c @@ -0,0 +1,39 @@ +/* + * Apple-specific utility functions + * + * This file is part of mpv. + * + * mpv is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * mpv is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with mpv. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "apple_utils.h" + +#include "mpv_talloc.h" + +CFStringRef cfstr_from_cstr(const char *str) +{ + return CFStringCreateWithCString(NULL, str, kCFStringEncodingUTF8); +} + +char *cfstr_get_cstr(const CFStringRef cfstr) +{ + if (!cfstr) + return NULL; + CFIndex size = + CFStringGetMaximumSizeForEncoding( + CFStringGetLength(cfstr), kCFStringEncodingUTF8) + 1; + char *buffer = talloc_zero_size(NULL, size); + CFStringGetCString(cfstr, buffer, size, kCFStringEncodingUTF8); + return buffer; +} diff --git a/osdep/apple_utils.h b/osdep/apple_utils.h new file mode 100644 index 0000000000..166937e1ea --- /dev/null +++ b/osdep/apple_utils.h @@ -0,0 +1,28 @@ +/* + * Apple-specific utility functions + * + * This file is part of mpv. + * + * mpv is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * mpv is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with mpv. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef MPV_APPLE_UTILS +#define MPV_APPLE_UTILS + +#include <CoreFoundation/CoreFoundation.h> + +CFStringRef cfstr_from_cstr(const char *str); +char *cfstr_get_cstr(const CFStringRef cfstr); + +#endif /* MPV_APPLE_UTILS */ diff --git a/wscript_build.py b/wscript_build.py index ead775df09..bcf6f84791 100644 --- a/wscript_build.py +++ b/wscript_build.py @@ -582,6 +582,7 @@ def build(ctx): ( "osdep/polldev.c", "posix" ), ( "osdep/android/strnlen.c", "android"), + ( "osdep/apple_utils.c", "cocoa" ), ( "osdep/glob-win.c", "glob-win32" ), ( "osdep/macosx_application.m", "cocoa" ), ( "osdep/macosx_events.m", "cocoa" ), |