summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2021-05-26 17:47:30 -0500
committersfan5 <sfan5@live.de>2023-06-25 11:01:58 +0200
commit0463096b3c5a717a7c181801c8df797b046989fc (patch)
treea603525be0e4241c2ae1fd4065b3ed8deb7ed5ad
parent8c8d97c26c8b6bef9b8d763db2091e186205ab98 (diff)
downloadmpv-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.c15
-rw-r--r--audio/out/ao_coreaudio_utils.h6
-rw-r--r--meson.build3
-rw-r--r--osdep/apple_utils.c39
-rw-r--r--osdep/apple_utils.h28
-rw-r--r--wscript_build.py1
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" ),