pyobjc-framework-CoreAudio 12.2.1__tar.gz → 12.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/pyobjc_framework_CoreAudio.egg-info/PKG-INFO +3 -3
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/pyobjc_framework_CoreAudio.egg-info/SOURCES.txt +1 -1
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/pyobjc_framework_CoreAudio.egg-info/pyobjc-build-info.txt +1 -1
- pyobjc_framework_coreaudio-12.2.2/Lib/pyobjc_framework_CoreAudio.egg-info/requires.txt +2 -0
- pyobjc_framework_coreaudio-12.2.2/Modules/_CoreAudio_inlines.m +159 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PKG-INFO +3 -3
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/setup.py +2 -9
- pyobjc_framework_coreaudio-12.2.1/Lib/pyobjc_framework_CoreAudio.egg-info/requires.txt +0 -2
- pyobjc_framework_coreaudio-12.2.1/Modules/_CoreAudio_inlines.mm +0 -83
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/CoreAudio/__init__.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/CoreAudio/_metadata.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/pyobjc_framework_CoreAudio.egg-info/dependency_links.txt +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/pyobjc_framework_CoreAudio.egg-info/not-zip-safe +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/pyobjc_framework_CoreAudio.egg-info/top_level.txt +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/License.txt +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/MANIFEST.in +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/_CoreAudio.m +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/_CoreAudio_AudioBuffer.m +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/_CoreAudio_AudioBufferList.m +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/_CoreAudio_AudioChannelDescription.m +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/_CoreAudio_AudioChannelLayout.m +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/_CoreAudio_AudioValueTranslation.m +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/pyobjc-api.h +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/pyobjc-compat.h +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/__init__.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_audiodriverplugin.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_audiohardware.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_audiohardwarebase.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_audiohardwaredeprecated.py +0 -0
- /pyobjc_framework_coreaudio-12.2.1/PyObjCTest/test_audiohardwareplugin.py → /pyobjc_framework_coreaudio-12.2.2/PyObjCTest/test_audiohardwareplugIn.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_audiohardwaretapping.py +0 -0
- /pyobjc_framework_coreaudio-12.2.1/PyObjCTest/test_audioserverplugin.py → /pyobjc_framework_coreaudio-12.2.2/PyObjCTest/test_audioserverplugIn.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_catapdescription.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_coreaudio.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_coreaudiotypes.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_coreaudiotypes_audiosessiontypes.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_coreaudiotypes_coreaudiobasetypes.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_hosttime.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/metadata/CoreAudio.fwinfo +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/metadata/metadata.ini +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/metadata/raw/arm64-26.5.fwinfo +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/metadata/raw/x86_64-26.5.fwinfo +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/pyobjc_setup.py +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/pyproject.toml +0 -0
- {pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-CoreAudio
|
|
3
|
-
Version: 12.2.
|
|
3
|
+
Version: 12.2.2
|
|
4
4
|
Summary: Wrappers for the framework CoreAudio on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -30,8 +30,8 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
30
30
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
31
31
|
Requires-Python: >=3.10
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=12.2.
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=12.2.
|
|
33
|
+
Requires-Dist: pyobjc-core>=12.2.2
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=12.2.2
|
|
35
35
|
Dynamic: author
|
|
36
36
|
Dynamic: author-email
|
|
37
37
|
Dynamic: classifier
|
|
@@ -18,7 +18,7 @@ Modules/_CoreAudio_AudioBufferList.m
|
|
|
18
18
|
Modules/_CoreAudio_AudioChannelDescription.m
|
|
19
19
|
Modules/_CoreAudio_AudioChannelLayout.m
|
|
20
20
|
Modules/_CoreAudio_AudioValueTranslation.m
|
|
21
|
-
Modules/_CoreAudio_inlines.
|
|
21
|
+
Modules/_CoreAudio_inlines.m
|
|
22
22
|
Modules/pyobjc-api.h
|
|
23
23
|
Modules/pyobjc-compat.h
|
|
24
24
|
PyObjCTest/__init__.py
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
#define PY_SSIZE_T_CLEAN
|
|
2
|
+
#include "Python.h"
|
|
3
|
+
#include "pyobjc-api.h"
|
|
4
|
+
|
|
5
|
+
#import <CoreAudio/CoreAudio.h>
|
|
6
|
+
|
|
7
|
+
/* This functions are copies of the definition in the CoreAudio headers,
|
|
8
|
+
* with minor tweaks to make them valid C instead of C++.
|
|
9
|
+
*
|
|
10
|
+
* Copy was introduced to be able to build wheels targeting older macOS
|
|
11
|
+
* versions using Xcode 27.
|
|
12
|
+
*/
|
|
13
|
+
static bool
|
|
14
|
+
IsAudioFormatNativeEndian(const AudioStreamBasicDescription* f)
|
|
15
|
+
{
|
|
16
|
+
return (f->mFormatID == kAudioFormatLinearPCM)
|
|
17
|
+
&& ((f->mFormatFlags & kAudioFormatFlagIsBigEndian)
|
|
18
|
+
== kAudioFormatFlagsNativeEndian);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static AudioFormatFlags
|
|
22
|
+
CalculateLPCMFlags(UInt32 inValidBitsPerChannel, UInt32 inTotalBitsPerChannel,
|
|
23
|
+
bool inIsFloat, bool inIsBigEndian, bool inIsNonInterleaved)
|
|
24
|
+
{
|
|
25
|
+
return (inIsFloat ? kAudioFormatFlagIsFloat : kAudioFormatFlagIsSignedInteger)
|
|
26
|
+
| (inIsBigEndian ? ((UInt32)kAudioFormatFlagIsBigEndian) : 0)
|
|
27
|
+
| ((inValidBitsPerChannel == inTotalBitsPerChannel)
|
|
28
|
+
? kAudioFormatFlagIsPacked
|
|
29
|
+
: kAudioFormatFlagIsAlignedHigh)
|
|
30
|
+
| (inIsNonInterleaved ? ((UInt32)kAudioFormatFlagIsNonInterleaved) : 0);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static void
|
|
34
|
+
FillOutASBDForLPCM(AudioStreamBasicDescription* outASBD, Float64 inSampleRate,
|
|
35
|
+
UInt32 inChannelsPerFrame, UInt32 inValidBitsPerChannel,
|
|
36
|
+
UInt32 inTotalBitsPerChannel, bool inIsFloat, bool inIsBigEndian,
|
|
37
|
+
bool inIsNonInterleaved)
|
|
38
|
+
{
|
|
39
|
+
outASBD->mSampleRate = inSampleRate;
|
|
40
|
+
outASBD->mFormatID = kAudioFormatLinearPCM;
|
|
41
|
+
outASBD->mFormatFlags =
|
|
42
|
+
CalculateLPCMFlags(inValidBitsPerChannel, inTotalBitsPerChannel, inIsFloat,
|
|
43
|
+
inIsBigEndian, inIsNonInterleaved);
|
|
44
|
+
outASBD->mBytesPerPacket =
|
|
45
|
+
(inIsNonInterleaved ? 1 : inChannelsPerFrame) * (inTotalBitsPerChannel / 8);
|
|
46
|
+
outASBD->mFramesPerPacket = 1;
|
|
47
|
+
outASBD->mBytesPerFrame =
|
|
48
|
+
(inIsNonInterleaved ? 1 : inChannelsPerFrame) * (inTotalBitsPerChannel / 8);
|
|
49
|
+
outASBD->mChannelsPerFrame = inChannelsPerFrame;
|
|
50
|
+
outASBD->mBitsPerChannel = inValidBitsPerChannel;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static void
|
|
54
|
+
FillOutAudioTimeStampWithSampleTime(AudioTimeStamp* outATS, Float64 inSampleTime)
|
|
55
|
+
{
|
|
56
|
+
outATS->mSampleTime = inSampleTime;
|
|
57
|
+
outATS->mHostTime = 0;
|
|
58
|
+
outATS->mRateScalar = 0;
|
|
59
|
+
outATS->mWordClockTime = 0;
|
|
60
|
+
memset(&(outATS->mSMPTETime), 0, sizeof(SMPTETime));
|
|
61
|
+
outATS->mFlags = kAudioTimeStampSampleTimeValid;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static void
|
|
65
|
+
FillOutAudioTimeStampWithHostTime(AudioTimeStamp* outATS, UInt64 inHostTime)
|
|
66
|
+
{
|
|
67
|
+
outATS->mSampleTime = 0;
|
|
68
|
+
outATS->mHostTime = inHostTime;
|
|
69
|
+
outATS->mRateScalar = 0;
|
|
70
|
+
outATS->mWordClockTime = 0;
|
|
71
|
+
memset(&(outATS->mSMPTETime), 0, sizeof(SMPTETime));
|
|
72
|
+
outATS->mFlags = kAudioTimeStampHostTimeValid;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static void
|
|
76
|
+
FillOutAudioTimeStampWithSampleAndHostTime(AudioTimeStamp* outATS, Float64 inSampleTime,
|
|
77
|
+
UInt64 inHostTime)
|
|
78
|
+
{
|
|
79
|
+
outATS->mSampleTime = inSampleTime;
|
|
80
|
+
outATS->mHostTime = inHostTime;
|
|
81
|
+
outATS->mRateScalar = 0;
|
|
82
|
+
outATS->mWordClockTime = 0;
|
|
83
|
+
memset(&(outATS->mSMPTETime), 0, sizeof(SMPTETime));
|
|
84
|
+
outATS->mFlags = kAudioTimeStampSampleTimeValid | kAudioTimeStampHostTimeValid;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
static PyObjC_function_map function_map[] = {
|
|
88
|
+
{"IsAudioFormatNativeEndian", (PyObjC_Function_Pointer)&IsAudioFormatNativeEndian},
|
|
89
|
+
{"CalculateLPCMFlags", (PyObjC_Function_Pointer)&CalculateLPCMFlags},
|
|
90
|
+
{"FillOutASBDForLPCM", (PyObjC_Function_Pointer)&FillOutASBDForLPCM},
|
|
91
|
+
{"FillOutAudioTimeStampWithSampleTime",
|
|
92
|
+
(PyObjC_Function_Pointer)&FillOutAudioTimeStampWithSampleTime},
|
|
93
|
+
{"FillOutAudioTimeStampWithHostTime",
|
|
94
|
+
(PyObjC_Function_Pointer)&FillOutAudioTimeStampWithHostTime},
|
|
95
|
+
{"FillOutAudioTimeStampWithSampleAndHostTime",
|
|
96
|
+
(PyObjC_Function_Pointer)&FillOutAudioTimeStampWithSampleAndHostTime},
|
|
97
|
+
#if PyObjC_BUILD_RELEASE >= 1011
|
|
98
|
+
{"AudioChannelLayoutTag_GetNumberOfChannels",
|
|
99
|
+
(PyObjC_Function_Pointer)&AudioChannelLayoutTag_GetNumberOfChannels},
|
|
100
|
+
#endif
|
|
101
|
+
{0, 0}};
|
|
102
|
+
|
|
103
|
+
static PyMethodDef mod_methods[] = {
|
|
104
|
+
{0, 0, 0, 0} /* sentinel */
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
static int
|
|
108
|
+
mod_exec_module(PyObject* m)
|
|
109
|
+
{
|
|
110
|
+
if (PyModule_AddObject(m, "_inline_list_", PyObjC_CreateInlineTab(function_map))
|
|
111
|
+
< 0) { // LCOV_BR_EXCL_LINE
|
|
112
|
+
return -1; // LCOV_EXCL_LINE
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
static struct PyModuleDef_Slot mod_slots[] = {
|
|
119
|
+
{.slot = Py_mod_exec, .value = (void*)mod_exec_module},
|
|
120
|
+
#if PY_VERSION_HEX >= 0x030c0000
|
|
121
|
+
{
|
|
122
|
+
/* This extension does not use the CPython API other than initializing
|
|
123
|
+
* the module, hence is safe with subinterpreters and per-interpreter
|
|
124
|
+
* GILs
|
|
125
|
+
*/
|
|
126
|
+
.slot = Py_mod_multiple_interpreters,
|
|
127
|
+
.value = Py_MOD_PER_INTERPRETER_GIL_SUPPORTED,
|
|
128
|
+
},
|
|
129
|
+
#endif
|
|
130
|
+
#if PY_VERSION_HEX >= 0x030d0000
|
|
131
|
+
{
|
|
132
|
+
/* The code in this extension should be safe to use without the GIL */
|
|
133
|
+
.slot = Py_mod_gil,
|
|
134
|
+
.value = Py_MOD_GIL_NOT_USED,
|
|
135
|
+
},
|
|
136
|
+
#endif
|
|
137
|
+
{/* Sentinel */
|
|
138
|
+
.slot = 0,
|
|
139
|
+
.value = 0}};
|
|
140
|
+
|
|
141
|
+
static struct PyModuleDef mod_module = {
|
|
142
|
+
.m_base = PyModuleDef_HEAD_INIT,
|
|
143
|
+
.m_name = "_inlines",
|
|
144
|
+
.m_doc = NULL,
|
|
145
|
+
.m_size = 0,
|
|
146
|
+
.m_methods = mod_methods,
|
|
147
|
+
.m_slots = mod_slots,
|
|
148
|
+
.m_traverse = NULL,
|
|
149
|
+
.m_clear = NULL,
|
|
150
|
+
.m_free = NULL,
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
PyObject* PyInit__inlines(void);
|
|
154
|
+
|
|
155
|
+
PyObject* __attribute__((__visibility__("default")))
|
|
156
|
+
PyInit__inlines(void)
|
|
157
|
+
{
|
|
158
|
+
return PyModuleDef_Init(&mod_module);
|
|
159
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-CoreAudio
|
|
3
|
-
Version: 12.2.
|
|
3
|
+
Version: 12.2.2
|
|
4
4
|
Summary: Wrappers for the framework CoreAudio on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -30,8 +30,8 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
|
30
30
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
31
31
|
Requires-Python: >=3.10
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=12.2.
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=12.2.
|
|
33
|
+
Requires-Dist: pyobjc-core>=12.2.2
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=12.2.2
|
|
35
35
|
Dynamic: author
|
|
36
36
|
Dynamic: author-email
|
|
37
37
|
Dynamic: classifier
|
|
@@ -7,10 +7,6 @@ for general tips and tricks regarding the translation between Python
|
|
|
7
7
|
and (Objective-)C frameworks
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
#
|
|
11
|
-
# Distutils doesn't understand '.mm' as an extension
|
|
12
|
-
#
|
|
13
|
-
import distutils.unixccompiler
|
|
14
10
|
import os
|
|
15
11
|
import sys
|
|
16
12
|
|
|
@@ -19,10 +15,7 @@ sys.path.insert(0, os.path.dirname(__file__))
|
|
|
19
15
|
|
|
20
16
|
from pyobjc_setup import Extension, setup # noqa: E402
|
|
21
17
|
|
|
22
|
-
VERSION = "12.2.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
distutils.unixccompiler.UnixCCompiler.src_extensions.append(".mm")
|
|
18
|
+
VERSION = "12.2.2"
|
|
26
19
|
|
|
27
20
|
setup(
|
|
28
21
|
name="pyobjc-framework-CoreAudio",
|
|
@@ -31,7 +24,7 @@ setup(
|
|
|
31
24
|
ext_modules=[
|
|
32
25
|
Extension(
|
|
33
26
|
"CoreAudio._inlines",
|
|
34
|
-
["Modules/_CoreAudio_inlines.
|
|
27
|
+
["Modules/_CoreAudio_inlines.m"],
|
|
35
28
|
extra_link_args=["-framework", "CoreAudio"],
|
|
36
29
|
),
|
|
37
30
|
Extension(
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
#define PY_SSIZE_T_CLEAN
|
|
2
|
-
#include "Python.h"
|
|
3
|
-
#include "pyobjc-api.h"
|
|
4
|
-
|
|
5
|
-
#import <CoreAudio/CoreAudio.h>
|
|
6
|
-
|
|
7
|
-
extern "C" {
|
|
8
|
-
|
|
9
|
-
static PyObjC_function_map function_map[] = {
|
|
10
|
-
{"IsAudioFormatNativeEndian", (PyObjC_Function_Pointer)&IsAudioFormatNativeEndian},
|
|
11
|
-
{"CalculateLPCMFlags", (PyObjC_Function_Pointer)&CalculateLPCMFlags},
|
|
12
|
-
{"FillOutASBDForLPCM", (PyObjC_Function_Pointer)&FillOutASBDForLPCM},
|
|
13
|
-
{"FillOutAudioTimeStampWithSampleTime",
|
|
14
|
-
(PyObjC_Function_Pointer)&FillOutAudioTimeStampWithSampleTime},
|
|
15
|
-
{"FillOutAudioTimeStampWithHostTime",
|
|
16
|
-
(PyObjC_Function_Pointer)&FillOutAudioTimeStampWithHostTime},
|
|
17
|
-
{"FillOutAudioTimeStampWithSampleAndHostTime",
|
|
18
|
-
(PyObjC_Function_Pointer)&FillOutAudioTimeStampWithSampleAndHostTime},
|
|
19
|
-
#if PyObjC_BUILD_RELEASE >= 1011
|
|
20
|
-
{"AudioChannelLayoutTag_GetNumberOfChannels",
|
|
21
|
-
(PyObjC_Function_Pointer)&AudioChannelLayoutTag_GetNumberOfChannels},
|
|
22
|
-
#endif
|
|
23
|
-
{0, 0}};
|
|
24
|
-
|
|
25
|
-
static PyMethodDef mod_methods[] = {
|
|
26
|
-
{0, 0, 0, 0} /* sentinel */
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
static int
|
|
30
|
-
mod_exec_module(PyObject* m)
|
|
31
|
-
{
|
|
32
|
-
if (PyModule_AddObject(m, "_inline_list_", PyObjC_CreateInlineTab(function_map))
|
|
33
|
-
< 0) {
|
|
34
|
-
return -1;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return 0;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
static struct PyModuleDef_Slot mod_slots[] = {
|
|
41
|
-
{.slot = Py_mod_exec, .value = (void*)mod_exec_module},
|
|
42
|
-
#if PY_VERSION_HEX >= 0x030c0000
|
|
43
|
-
{
|
|
44
|
-
/* This extension does not use the CPython API other than initializing
|
|
45
|
-
* the module, hence is safe with subinterpreters and per-interpreter
|
|
46
|
-
* GILs
|
|
47
|
-
*/
|
|
48
|
-
.slot = Py_mod_multiple_interpreters,
|
|
49
|
-
.value = Py_MOD_PER_INTERPRETER_GIL_SUPPORTED,
|
|
50
|
-
},
|
|
51
|
-
#endif
|
|
52
|
-
#if PY_VERSION_HEX >= 0x030d0000
|
|
53
|
-
{
|
|
54
|
-
/* The code in this extension should be safe to use without the GIL */
|
|
55
|
-
.slot = Py_mod_gil,
|
|
56
|
-
.value = Py_MOD_GIL_NOT_USED,
|
|
57
|
-
},
|
|
58
|
-
#endif
|
|
59
|
-
{/* Sentinel */
|
|
60
|
-
.slot = 0,
|
|
61
|
-
.value = 0}};
|
|
62
|
-
|
|
63
|
-
static struct PyModuleDef mod_module = {
|
|
64
|
-
.m_base = PyModuleDef_HEAD_INIT,
|
|
65
|
-
.m_name = "_inlines",
|
|
66
|
-
.m_doc = NULL,
|
|
67
|
-
.m_size = 0,
|
|
68
|
-
.m_methods = mod_methods,
|
|
69
|
-
.m_slots = mod_slots,
|
|
70
|
-
.m_traverse = NULL,
|
|
71
|
-
.m_clear = NULL,
|
|
72
|
-
.m_free = NULL,
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
PyObject* PyInit__inlines(void);
|
|
76
|
-
|
|
77
|
-
PyObject* __attribute__((__visibility__("default")))
|
|
78
|
-
PyInit__inlines(void)
|
|
79
|
-
{
|
|
80
|
-
return PyModuleDef_Init(&mod_module);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
} /* extern C */
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/CoreAudio/__init__.py
RENAMED
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Lib/CoreAudio/_metadata.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/_CoreAudio.m
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/pyobjc-api.h
RENAMED
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/Modules/pyobjc-compat.h
RENAMED
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_coreaudio.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/PyObjCTest/test_hosttime.py
RENAMED
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/metadata/CoreAudio.fwinfo
RENAMED
|
File without changes
|
{pyobjc_framework_coreaudio-12.2.1 → pyobjc_framework_coreaudio-12.2.2}/metadata/metadata.ini
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|