pyobjc-framework-AudioVideoBridging 12.2.1__tar.gz → 13.0__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_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Lib/AudioVideoBridging/_metadata.py +5 -2
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Lib/pyobjc_framework_AudioVideoBridging.egg-info/PKG-INFO +5 -5
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Lib/pyobjc_framework_AudioVideoBridging.egg-info/SOURCES.txt +2 -2
- pyobjc_framework_audiovideobridging-13.0/Lib/pyobjc_framework_AudioVideoBridging.egg-info/pyobjc-build-info.txt +3 -0
- pyobjc_framework_audiovideobridging-13.0/Lib/pyobjc_framework_AudioVideoBridging.egg-info/requires.txt +2 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Modules/_AudioVideoBridging.m +10 -2
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Modules/_AudioVideoBridging_protocols.m +6 -6
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Modules/pyobjc-api.h +18 -4
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Modules/pyobjc-compat.h +0 -18
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PKG-INFO +5 -5
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avb17221acmpinterface.py +3 -7
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avb17221aecpinterface.py +11 -12
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avb17221entity.py +2 -3
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avb17221entitydiscovery.py +2 -3
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avb17221entitydiscoverydelegate.py +3 -5
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avbconstants.py +15 -16
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/metadata/AudioVideoBridging.fwinfo +1 -57
- pyobjc_framework_audiovideobridging-12.2.1/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_audiovideobridging-13.0/metadata/raw/arm64-27.fwinfo +2 -3
- pyobjc_framework_audiovideobridging-12.2.1/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_audiovideobridging-13.0/metadata/raw/x86_64-27.fwinfo +2 -3
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/pyobjc_setup.py +7 -7
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/setup.py +1 -1
- pyobjc_framework_audiovideobridging-12.2.1/Lib/pyobjc_framework_AudioVideoBridging.egg-info/pyobjc-build-info.txt +0 -3
- pyobjc_framework_audiovideobridging-12.2.1/Lib/pyobjc_framework_AudioVideoBridging.egg-info/requires.txt +0 -2
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Lib/AudioVideoBridging/__init__.py +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Lib/pyobjc_framework_AudioVideoBridging.egg-info/dependency_links.txt +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Lib/pyobjc_framework_AudioVideoBridging.egg-info/not-zip-safe +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/Lib/pyobjc_framework_AudioVideoBridging.egg-info/top_level.txt +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/License.txt +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/MANIFEST.in +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/__init__.py +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_audiovideobridging.py +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avbcentralmanager.py +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avbinterface.py +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avbipaddress.py +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PyObjCTest/test_avbmacaddress.py +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/metadata/metadata.ini +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/pyproject.toml +0 -0
- {pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/setup.cfg +0 -0
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# This file is generated by objective.metadata
|
|
2
2
|
#
|
|
3
|
-
# Last update: Sun May 24 11:42:30 2026
|
|
4
|
-
#
|
|
5
3
|
# flake8: noqa
|
|
6
4
|
|
|
7
5
|
import objc, sys
|
|
@@ -321,5 +319,10 @@ expressions = {
|
|
|
321
319
|
"kAVB17221EntityPropertyChangedShouldntChangeMask": "(AVB17221EntityPropertyChangedEntityID | AVB17221EntityPropertyChangedVendorID | AVB17221EntityPropertyChangedModelID | AVB17221EntityPropertyChangedTalkerStreamSources | AVB17221EntityPropertyChangedTalkerCapabilities | AVB17221EntityPropertyChangedListenerStreamSinks | AVB17221EntityPropertyChangedListenerCapabilities | AVB17221EntityPropertyChangedControllerCapabilities | AVB17221EntityPropertyChangedMACAddress | AVB17221EntityPropertyChangedAssociationID | AVB17221EntityPropertyChangedEntityType | AVB17221EntityPropertyChangedIdentifyControlIndex | AVB17221EntityPropertyChangedInterfaceIndex)",
|
|
322
320
|
"kAVB17221EntityPropertyChangedCanChangeMask": "(AVB17221EntityPropertyChangedTimeToLive | AVB17221EntityPropertyChangedAvailableIndex | AVB17221EntityPropertyChangedGPTPGrandmasterID | AVB17221EntityPropertyChangedGPTPDomainNumber | AVB17221EntityPropertyChangedEntityCapabilities )",
|
|
323
321
|
}
|
|
322
|
+
formal_protocols = {
|
|
323
|
+
"AVB17221ACMPClient": "AVB17221ACMPClient",
|
|
324
|
+
"AVB17221AECPClient": "AVB17221AECPClient",
|
|
325
|
+
"AVB17221EntityDiscoveryDelegate": "AVB17221EntityDiscoveryDelegate",
|
|
326
|
+
}
|
|
324
327
|
|
|
325
328
|
# END OF FILE
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-AudioVideoBridging
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0
|
|
4
4
|
Summary: Wrappers for the framework AudioVideoBridging on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,21 +17,21 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
17
17
|
Classifier: Programming Language :: Python
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
19
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.14
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.15
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.16
|
|
26
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
27
27
|
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
28
28
|
Classifier: Programming Language :: Objective C
|
|
29
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
30
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
31
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
33
|
+
Requires-Dist: pyobjc-core>=13.0
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=13.0
|
|
35
35
|
Dynamic: author
|
|
36
36
|
Dynamic: author-email
|
|
37
37
|
Dynamic: classifier
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
#include "Python.h"
|
|
3
3
|
#include "pyobjc-api.h"
|
|
4
4
|
|
|
5
|
+
#ifdef USE_STATIC_ANALYZER
|
|
6
|
+
#include "../../pyobjc-core/Modules/objc/python-api-used.h"
|
|
7
|
+
#endif
|
|
8
|
+
|
|
5
9
|
#import <AudioVideoBridging/AudioVideoBridging.h>
|
|
6
10
|
#import <Foundation/Foundation.h>
|
|
7
11
|
|
|
@@ -10,6 +14,8 @@
|
|
|
10
14
|
*/
|
|
11
15
|
#include "_AudioVideoBridging_protocols.m"
|
|
12
16
|
|
|
17
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
18
|
+
|
|
13
19
|
static PyMethodDef mod_methods[] = {
|
|
14
20
|
{0, 0, 0, 0} /* sentinel */
|
|
15
21
|
};
|
|
@@ -55,10 +61,12 @@ static struct PyModuleDef mod_module = {
|
|
|
55
61
|
.m_free = NULL,
|
|
56
62
|
};
|
|
57
63
|
|
|
58
|
-
PyObject* PyInit__AudioVideoBridging(void);
|
|
64
|
+
PyObject* _Nullable PyInit__AudioVideoBridging(void);
|
|
59
65
|
|
|
60
|
-
PyObject* __attribute__((__visibility__("default")))
|
|
66
|
+
PyObject* _Nullable __attribute__((__visibility__("default")))
|
|
61
67
|
PyInit__AudioVideoBridging(void)
|
|
62
68
|
{
|
|
63
69
|
return PyModuleDef_Init(&mod_module);
|
|
64
70
|
}
|
|
71
|
+
|
|
72
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*/
|
|
6
|
-
|
|
1
|
+
// LCOV_EXCL_START
|
|
2
|
+
// This function is only present to ensure protocols are
|
|
3
|
+
// available at runtime.
|
|
4
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
7
5
|
static void __attribute__((__used__))
|
|
8
6
|
use_protocols(void)
|
|
9
7
|
{
|
|
@@ -13,3 +11,5 @@ use_protocols(void)
|
|
|
13
11
|
p = PyObjC_IdToPython(@protocol(AVB17221EntityDiscoveryDelegate));
|
|
14
12
|
Py_XDECREF(p);
|
|
15
13
|
}
|
|
14
|
+
NS_ASSUME_NONNULL_END
|
|
15
|
+
// LCOV_EXCL_STOP
|
|
@@ -60,6 +60,11 @@ typedef int(RegisterMethodMappingFunctionType)(
|
|
|
60
60
|
PyObject* _Nonnull const* _Nonnull, size_t),
|
|
61
61
|
IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
|
|
62
62
|
|
|
63
|
+
#ifndef PyObjC_FUNCTION_CALL_H
|
|
64
|
+
typedef PyObject* _Nullable (*PyObjC_FunctionCallFunc)(
|
|
65
|
+
PyObject* meth, PyObject* _Nonnull const* _Nonnull args, size_t nargs);
|
|
66
|
+
#endif
|
|
67
|
+
|
|
63
68
|
struct pyobjc_api {
|
|
64
69
|
int api_version; /* API version */
|
|
65
70
|
size_t struct_len; /* Length of this struct */
|
|
@@ -117,6 +122,9 @@ struct pyobjc_api {
|
|
|
117
122
|
|
|
118
123
|
PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
|
|
119
124
|
const char*);
|
|
125
|
+
int (*_Nonnull register_functioncaller)(void*, PyObjC_FunctionCallFunc);
|
|
126
|
+
PyObject* _Nullable (*_Nonnull create_registered_struct)(
|
|
127
|
+
const char*, Py_ssize_t, const char* _Nonnull* _Nullable, Py_ssize_t*);
|
|
120
128
|
};
|
|
121
129
|
|
|
122
130
|
#ifndef PYOBJC_BUILD
|
|
@@ -159,6 +167,8 @@ static struct pyobjc_api* PyObjC_API;
|
|
|
159
167
|
#define PyObjC_CheckArgCount (PyObjC_API->checkargcount)
|
|
160
168
|
#define PyObjC_CheckNoKwnames (PyObjC_API->checknokwnames)
|
|
161
169
|
#define PyObjCCreateOpaquePointerType (PyObjC_API->createopaquepointertype)
|
|
170
|
+
#define PyObjCRegister_FunctionCaller (PyObjC_API->register_functioncaller)
|
|
171
|
+
#define PyObjC_CreateRegisteredStruct (PyObjC_API->create_registered_struct)
|
|
162
172
|
|
|
163
173
|
typedef void (*PyObjC_Function_Pointer)(void);
|
|
164
174
|
typedef struct PyObjC_function_map {
|
|
@@ -178,21 +188,25 @@ static inline int
|
|
|
178
188
|
PyObjC_ImportAPI(PyObject* calling_module)
|
|
179
189
|
{
|
|
180
190
|
PyObjC_API = (struct pyobjc_api*)PyCapsule_Import("objc." PYOBJC_API_NAME, 0);
|
|
181
|
-
if (PyObjC_API == NULL) {
|
|
182
|
-
return -1;
|
|
191
|
+
if (PyObjC_API == NULL) { // LCOV_BR_EXCL_LINE
|
|
192
|
+
return -1; // LCOV_EXCL_LINE
|
|
183
193
|
}
|
|
184
|
-
if (PyObjC_API->api_version != PYOBJC_API_VERSION) {
|
|
194
|
+
if (PyObjC_API->api_version != PYOBJC_API_VERSION) { // LCOV_BR_EXCL_LINE
|
|
195
|
+
// LCOV_EXCL_START
|
|
185
196
|
PyErr_Format(PyExc_RuntimeError,
|
|
186
197
|
"Wrong version of PyObjC C API (got %d, expected %d)",
|
|
187
198
|
(int)PyObjC_API->api_version, (int)PYOBJC_API_VERSION);
|
|
188
199
|
return -1;
|
|
200
|
+
// LCOV_EXCL_STOP
|
|
189
201
|
}
|
|
190
202
|
|
|
191
|
-
if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) {
|
|
203
|
+
if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) { // LCOV_EXCL_LINE
|
|
204
|
+
// LCOV_EXCL_START
|
|
192
205
|
PyErr_Format(PyExc_RuntimeError,
|
|
193
206
|
"Wrong struct-size of PyObjC C API (got %d, expected %d)",
|
|
194
207
|
(int)PyObjC_API->struct_len, (int)sizeof(struct pyobjc_api));
|
|
195
208
|
return -1;
|
|
209
|
+
// LCOV_EXCL_STOP
|
|
196
210
|
}
|
|
197
211
|
|
|
198
212
|
/* Current pyobjc implementation doesn't allow deregistering
|
|
@@ -167,24 +167,6 @@ _PyObjCTuple_GetItem(PyObject* tuple, Py_ssize_t idx)
|
|
|
167
167
|
PyGILState_Release(_GILState); \
|
|
168
168
|
} while (0)
|
|
169
169
|
|
|
170
|
-
#if PY_VERSION_HEX < 0x030a0000
|
|
171
|
-
|
|
172
|
-
static inline PyObject*
|
|
173
|
-
Py_NewRef(PyObject* o)
|
|
174
|
-
{
|
|
175
|
-
Py_INCREF(o);
|
|
176
|
-
return o;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
static inline PyObject*
|
|
180
|
-
Py_XNewRef(PyObject* o)
|
|
181
|
-
{
|
|
182
|
-
Py_XINCREF(o);
|
|
183
|
-
return o;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
#endif /* PY_VERSION_HEX < 0x030a0000 */
|
|
187
|
-
|
|
188
170
|
#if PY_VERSION_HEX < 0x030d0000
|
|
189
171
|
#define Py_BEGIN_CRITICAL_SECTION(value) \
|
|
190
172
|
{ \
|
{pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-AudioVideoBridging
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0
|
|
4
4
|
Summary: Wrappers for the framework AudioVideoBridging on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,21 +17,21 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
17
17
|
Classifier: Programming Language :: Python
|
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
19
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.12
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.13
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.14
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.15
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.16
|
|
26
26
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
27
27
|
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
28
28
|
Classifier: Programming Language :: Objective C
|
|
29
29
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
30
30
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
31
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
33
|
+
Requires-Dist: pyobjc-core>=13.0
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=13.0
|
|
35
35
|
Dynamic: author
|
|
36
36
|
Dynamic: author-email
|
|
37
37
|
Dynamic: classifier
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
import AudioVideoBridging
|
|
3
3
|
|
|
4
4
|
AVB17221ACMPInterfaceCompletion = b"v@@"
|
|
@@ -14,9 +14,9 @@ class TestAVB17221ACMPInterfaceHelper(AudioVideoBridging.NSObject):
|
|
|
14
14
|
|
|
15
15
|
class TestAVB17221ACMPInterface(TestCase):
|
|
16
16
|
def test_protocols(self):
|
|
17
|
-
self.assertProtocolExists("AVB17221ACMPClient")
|
|
17
|
+
self.assertProtocolExists("AVB17221ACMPClient", AudioVideoBridging)
|
|
18
18
|
|
|
19
|
-
def
|
|
19
|
+
def test_protocol_methods(self):
|
|
20
20
|
self.assertResultIsBOOL(
|
|
21
21
|
TestAVB17221ACMPInterfaceHelper.ACMPDidReceiveCommand_onInterface_
|
|
22
22
|
)
|
|
@@ -24,8 +24,6 @@ class TestAVB17221ACMPInterface(TestCase):
|
|
|
24
24
|
TestAVB17221ACMPInterfaceHelper.ACMPDidReceiveResponse_onInterface_
|
|
25
25
|
)
|
|
26
26
|
|
|
27
|
-
@min_os_level("10.8")
|
|
28
|
-
def test_methods10_8(self):
|
|
29
27
|
self.assertResultIsBOOL(
|
|
30
28
|
AudioVideoBridging.AVB17221ACMPInterface.sendACMPResponseMessage_error_
|
|
31
29
|
)
|
|
@@ -42,8 +40,6 @@ class TestAVB17221ACMPInterface(TestCase):
|
|
|
42
40
|
AVB17221ACMPInterfaceCompletion,
|
|
43
41
|
)
|
|
44
42
|
|
|
45
|
-
@min_os_level("10.9")
|
|
46
|
-
def test_methods10_9(self):
|
|
47
43
|
self.assertResultIsBOOL(
|
|
48
44
|
AudioVideoBridging.AVB17221ACMPInterface.setHandler_forEntityID_
|
|
49
45
|
)
|
|
@@ -13,19 +13,7 @@ class TestAVB17221AECPInterfaceHelper(AudioVideoBridging.NSObject):
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class TestAVB17221AECPInterface(TestCase):
|
|
16
|
-
def test_protocols(self):
|
|
17
|
-
self.assertProtocolExists("AVB17221AECPClient")
|
|
18
|
-
|
|
19
16
|
def test_methods(self):
|
|
20
|
-
self.assertResultIsBOOL(
|
|
21
|
-
TestAVB17221AECPInterfaceHelper.AECPDidReceiveCommand_onInterface_
|
|
22
|
-
)
|
|
23
|
-
self.assertResultIsBOOL(
|
|
24
|
-
TestAVB17221AECPInterfaceHelper.AECPDidReceiveResponse_onInterface_
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
@min_os_level("10.8")
|
|
28
|
-
def test_methods10_8(self):
|
|
29
17
|
self.assertResultIsBOOL(
|
|
30
18
|
AudioVideoBridging.AVB17221AECPInterface.sendCommand_toMACAddress_completionHandler_
|
|
31
19
|
)
|
|
@@ -64,3 +52,14 @@ class TestAVB17221AECPInterface(TestCase):
|
|
|
64
52
|
3,
|
|
65
53
|
AVB17221AECPInterfaceCompletion,
|
|
66
54
|
)
|
|
55
|
+
|
|
56
|
+
def test_protocols(self):
|
|
57
|
+
self.assertProtocolExists("AVB17221AECPClient", AudioVideoBridging)
|
|
58
|
+
|
|
59
|
+
def test_protocol_methods(self):
|
|
60
|
+
self.assertResultIsBOOL(
|
|
61
|
+
TestAVB17221AECPInterfaceHelper.AECPDidReceiveCommand_onInterface_
|
|
62
|
+
)
|
|
63
|
+
self.assertResultIsBOOL(
|
|
64
|
+
TestAVB17221AECPInterfaceHelper.AECPDidReceiveResponse_onInterface_
|
|
65
|
+
)
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
import AudioVideoBridging
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TestAVB17221Entity(TestCase):
|
|
6
|
-
|
|
7
|
-
def test_methods10_8(self):
|
|
6
|
+
def test_methods(self):
|
|
8
7
|
self.assertResultIsBOOL(AudioVideoBridging.AVB17221Entity.isLocalEntity)
|
|
9
8
|
self.assertArgIsBOOL(AudioVideoBridging.AVB17221Entity.setLocalEntity_, 0)
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
from PyObjCTools.TestSupport import TestCase
|
|
1
|
+
from PyObjCTools.TestSupport import TestCase
|
|
2
2
|
import AudioVideoBridging
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TestAVB17221EntityDiscovery(TestCase):
|
|
6
|
-
|
|
7
|
-
def test_methods10_8(self):
|
|
6
|
+
def test_methods(self):
|
|
8
7
|
self.assertResultIsBOOL(
|
|
9
8
|
AudioVideoBridging.AVB17221EntityDiscovery.discoverEntities
|
|
10
9
|
)
|
|
@@ -12,10 +12,8 @@ class TestAVB17221EntityDiscoveryDelegateHelper(AudioVideoBridging.NSObject):
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class TestAVB17221EntityDiscoveryDelegate(TestCase):
|
|
15
|
-
def
|
|
15
|
+
def test_enums(self):
|
|
16
16
|
self.assertIsEnumType(AudioVideoBridging.AVB17221EntityPropertyChanged)
|
|
17
|
-
|
|
18
|
-
def test_constants(self):
|
|
19
17
|
self.assertEqual(
|
|
20
18
|
AudioVideoBridging.AVB17221EntityPropertyChangedTimeToLive, 0x00000001
|
|
21
19
|
)
|
|
@@ -116,9 +114,9 @@ class TestAVB17221EntityDiscoveryDelegate(TestCase):
|
|
|
116
114
|
)
|
|
117
115
|
|
|
118
116
|
def test_protocols(self):
|
|
119
|
-
self.assertProtocolExists("AVB17221EntityDiscoveryDelegate")
|
|
117
|
+
self.assertProtocolExists("AVB17221EntityDiscoveryDelegate", AudioVideoBridging)
|
|
120
118
|
|
|
121
|
-
def
|
|
119
|
+
def test_protocol_methods(self):
|
|
122
120
|
self.assertArgHasType(
|
|
123
121
|
TestAVB17221EntityDiscoveryDelegateHelper.didUpdateRemoteEntity_changedProperties_on17221EntityDiscovery_,
|
|
124
122
|
1,
|
|
@@ -3,23 +3,8 @@ import AudioVideoBridging
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TestAVBConstants(TestCase):
|
|
6
|
-
def
|
|
7
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221ACMPFlags)
|
|
8
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221ACMPMessageType)
|
|
9
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221ACMPStatusCode)
|
|
10
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221ADPControllerCapabilities)
|
|
6
|
+
def test_enums(self):
|
|
11
7
|
self.assertIsEnumType(AudioVideoBridging.AVB17221ADPEntityCapabilities)
|
|
12
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221ADPListenerCapabilities)
|
|
13
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221ADPTalkerCapabilities)
|
|
14
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221AECPAddressAccessTLVMode)
|
|
15
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221AECPMessageType)
|
|
16
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221AECPStatusCode)
|
|
17
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221AEMCommandType)
|
|
18
|
-
self.assertIsEnumType(AudioVideoBridging.AVB17221ACMPIPFlag)
|
|
19
|
-
|
|
20
|
-
def test_constants(self):
|
|
21
|
-
self.assertIsInstance(AudioVideoBridging.AVBErrorDomain, str)
|
|
22
|
-
|
|
23
8
|
self.assertEqual(
|
|
24
9
|
AudioVideoBridging.AVB17221ADPEntityCapabilitiesDFUMode, 0x00000001
|
|
25
10
|
)
|
|
@@ -119,6 +104,7 @@ class TestAVBConstants(TestCase):
|
|
|
119
104
|
0x01000000,
|
|
120
105
|
)
|
|
121
106
|
|
|
107
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221ADPTalkerCapabilities)
|
|
122
108
|
self.assertEqual(
|
|
123
109
|
AudioVideoBridging.AVB17221ADPTalkerCapabilitiesImplemented, 0x0001
|
|
124
110
|
)
|
|
@@ -144,6 +130,7 @@ class TestAVBConstants(TestCase):
|
|
|
144
130
|
AudioVideoBridging.AVB17221ADPTalkerCapabilitiesHasVideoSource, 0x8000
|
|
145
131
|
)
|
|
146
132
|
|
|
133
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221ADPListenerCapabilities)
|
|
147
134
|
self.assertEqual(
|
|
148
135
|
AudioVideoBridging.AVB17221ADPListenerCapabilitiesImplemented, 0x0001
|
|
149
136
|
)
|
|
@@ -169,6 +156,7 @@ class TestAVBConstants(TestCase):
|
|
|
169
156
|
AudioVideoBridging.AVB17221ADPListenerCapabilitiesHasVideoSink, 0x8000
|
|
170
157
|
)
|
|
171
158
|
|
|
159
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221ADPControllerCapabilities)
|
|
172
160
|
self.assertEqual(
|
|
173
161
|
AudioVideoBridging.AVB17221ADPControllerCapabilitiesImplemented, 0x00000001
|
|
174
162
|
)
|
|
@@ -177,6 +165,7 @@ class TestAVBConstants(TestCase):
|
|
|
177
165
|
0x00000002,
|
|
178
166
|
)
|
|
179
167
|
|
|
168
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221AECPMessageType)
|
|
180
169
|
self.assertEqual(AudioVideoBridging.AVB17221AECPMessageTypeAEMCommand, 0x0)
|
|
181
170
|
self.assertEqual(AudioVideoBridging.AVB17221AECPMessageTypeAEMResponse, 0x1)
|
|
182
171
|
self.assertEqual(
|
|
@@ -198,6 +187,7 @@ class TestAVBConstants(TestCase):
|
|
|
198
187
|
AudioVideoBridging.AVB17221AECPMessageTypeVendorUniqueResponse, 0x7
|
|
199
188
|
)
|
|
200
189
|
|
|
190
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221AECPStatusCode)
|
|
201
191
|
self.assertEqual(AudioVideoBridging.AVB17221AECPStatusSuccess, 0x00)
|
|
202
192
|
self.assertEqual(AudioVideoBridging.AVB17221AECPStatusNotImplemented, 0x01)
|
|
203
193
|
self.assertEqual(AudioVideoBridging.AVB17221AECPStatusNoSuchDescriptor, 0x02)
|
|
@@ -233,6 +223,7 @@ class TestAVBConstants(TestCase):
|
|
|
233
223
|
)
|
|
234
224
|
self.assertEqual(AudioVideoBridging.AVB17221AECPStatusAVCFailure, 0x02)
|
|
235
225
|
|
|
226
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221ACMPMessageType)
|
|
236
227
|
self.assertEqual(
|
|
237
228
|
AudioVideoBridging.AVB17221ACMPMessageTypeConnectTXCommand, 0x0
|
|
238
229
|
)
|
|
@@ -276,6 +267,7 @@ class TestAVBConstants(TestCase):
|
|
|
276
267
|
AudioVideoBridging.AVB17221ACMPMessageTypeGetTXConnectionResponse, 0xD
|
|
277
268
|
)
|
|
278
269
|
|
|
270
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221ACMPStatusCode)
|
|
279
271
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPStatusSuccess, 0x00)
|
|
280
272
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPStatusListenerUnknownID, 0x01)
|
|
281
273
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPStatusTalkerUnknownID, 0x02)
|
|
@@ -306,6 +298,7 @@ class TestAVBConstants(TestCase):
|
|
|
306
298
|
)
|
|
307
299
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPStatusNotSupported, 0x1F)
|
|
308
300
|
|
|
301
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221ACMPFlags)
|
|
309
302
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPFlagsNone, 0x0000)
|
|
310
303
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPFlagsClassB, 0x0001)
|
|
311
304
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPFlagsFastConnect, 0x0002)
|
|
@@ -325,6 +318,7 @@ class TestAVBConstants(TestCase):
|
|
|
325
318
|
)
|
|
326
319
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPFlagsStreamingUsingUDP, 0x0200)
|
|
327
320
|
|
|
321
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221AEMCommandType)
|
|
328
322
|
self.assertEqual(AudioVideoBridging.AVB17221AEMCommandTypeAcquireEntity, 0x0000)
|
|
329
323
|
self.assertEqual(AudioVideoBridging.AVB17221AEMCommandTypeLockEntity, 0x0001)
|
|
330
324
|
self.assertEqual(
|
|
@@ -639,10 +633,15 @@ class TestAVBConstants(TestCase):
|
|
|
639
633
|
AudioVideoBridging.AVB17221AEMCommandTypeAuthenticationAddKeyNonce, 0x0068
|
|
640
634
|
)
|
|
641
635
|
|
|
636
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221AECPAddressAccessTLVMode)
|
|
642
637
|
self.assertEqual(AudioVideoBridging.AVB17221AECPAddressAccessTLVModeRead, 0x00)
|
|
643
638
|
self.assertEqual(AudioVideoBridging.AVB17221AECPAddressAccessTLVModeWrite, 0x01)
|
|
644
639
|
self.assertEqual(
|
|
645
640
|
AudioVideoBridging.AVB17221AECPAddressAccessTLVModeExecute, 0x02
|
|
646
641
|
)
|
|
647
642
|
|
|
643
|
+
self.assertIsEnumType(AudioVideoBridging.AVB17221ACMPIPFlag)
|
|
648
644
|
self.assertEqual(AudioVideoBridging.AVB17221ACMPIPFlagNone, 0x0000)
|
|
645
|
+
|
|
646
|
+
def test_constants(self):
|
|
647
|
+
self.assertIsInstance(AudioVideoBridging.AVBErrorDomain, str)
|
|
@@ -38,59 +38,6 @@
|
|
|
38
38
|
},
|
|
39
39
|
"class_method": false,
|
|
40
40
|
"selector": "initWithIPv6Address:"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"args": {
|
|
44
|
-
"1": {
|
|
45
|
-
"type_modifier": "o"
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
"class_method": false,
|
|
49
|
-
"selector": "sendACMPResponseMessage:error:"
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
"AVB17221AECPInterface": {
|
|
54
|
-
"methods": [
|
|
55
|
-
{
|
|
56
|
-
"args": {
|
|
57
|
-
"2": {
|
|
58
|
-
"type_modifier": "o"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
|
-
"class_method": false,
|
|
62
|
-
"selector": "sendResponse:toMACAddress:error:"
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
"AVB17221EntityDiscovery": {
|
|
67
|
-
"methods": [
|
|
68
|
-
{
|
|
69
|
-
"args": {
|
|
70
|
-
"1": {
|
|
71
|
-
"type_modifier": "o"
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"class_method": false,
|
|
75
|
-
"selector": "addLocalEntity:error:"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"args": {
|
|
79
|
-
"1": {
|
|
80
|
-
"type_modifier": "o"
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
"class_method": false,
|
|
84
|
-
"selector": "removeLocalEntity:error:"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"args": {
|
|
88
|
-
"2": {
|
|
89
|
-
"type_modifier": "o"
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"class_method": false,
|
|
93
|
-
"selector": "changeEntityWithEntityID:toNewGPTPGrandmasterID:error:"
|
|
94
41
|
}
|
|
95
42
|
]
|
|
96
43
|
},
|
|
@@ -119,9 +66,6 @@
|
|
|
119
66
|
}
|
|
120
67
|
]
|
|
121
68
|
}
|
|
122
|
-
}
|
|
123
|
-
"formal_protocols": {},
|
|
124
|
-
"functions": {},
|
|
125
|
-
"informal_protocols": {}
|
|
69
|
+
}
|
|
126
70
|
}
|
|
127
71
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// GENERATED FILE DO NOT EDIT
|
|
2
2
|
//
|
|
3
3
|
// This file was generated by objective.metadata
|
|
4
|
-
// Last update: Sun May 24 11:42:29 2026
|
|
5
4
|
{
|
|
6
5
|
"arch": "arm64",
|
|
7
6
|
"definitions": {
|
|
@@ -5601,6 +5600,6 @@
|
|
|
5601
5600
|
"AVBInterface.h",
|
|
5602
5601
|
"AVBMACAddress.h"
|
|
5603
5602
|
],
|
|
5604
|
-
"release": "
|
|
5605
|
-
"sdk": "
|
|
5603
|
+
"release": "macOS 27.2",
|
|
5604
|
+
"sdk": "Xcode 27.2 (27B5038i)/MacOSX27.sdk"
|
|
5606
5605
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// GENERATED FILE DO NOT EDIT
|
|
2
2
|
//
|
|
3
3
|
// This file was generated by objective.metadata
|
|
4
|
-
// Last update: Sun May 24 11:42:27 2026
|
|
5
4
|
{
|
|
6
5
|
"arch": "x86_64",
|
|
7
6
|
"definitions": {
|
|
@@ -5601,6 +5600,6 @@
|
|
|
5601
5600
|
"AVBInterface.h",
|
|
5602
5601
|
"AVBMACAddress.h"
|
|
5603
5602
|
],
|
|
5604
|
-
"release": "
|
|
5605
|
-
"sdk": "
|
|
5603
|
+
"release": "macOS 27.2",
|
|
5604
|
+
"sdk": "Xcode 27.2 (27B5038i)/MacOSX27.sdk"
|
|
5606
5605
|
}
|
|
@@ -110,13 +110,11 @@ class oc_egg_info(egg_info.egg_info):
|
|
|
110
110
|
else:
|
|
111
111
|
sdk_version = os.path.basename(sdk_root)
|
|
112
112
|
|
|
113
|
-
build_info = textwrap.dedent(
|
|
114
|
-
f"""\
|
|
113
|
+
build_info = textwrap.dedent(f"""\
|
|
115
114
|
macOS {macos_version} ({macos_build})
|
|
116
115
|
{clang_version}
|
|
117
116
|
SDK: {sdk_version}
|
|
118
|
-
"""
|
|
119
|
-
)
|
|
117
|
+
""")
|
|
120
118
|
|
|
121
119
|
self.write_file(
|
|
122
120
|
"pyobjc-build-info.txt",
|
|
@@ -204,7 +202,7 @@ class oc_test(Command):
|
|
|
204
202
|
"errors": len(result.errors),
|
|
205
203
|
"xfails": len(getattr(result, "expectedFailures", [])),
|
|
206
204
|
"xpass": len(getattr(result, "unexpectedSuccesses", [])),
|
|
207
|
-
"skip
|
|
205
|
+
"skip": len(getattr(result, "skipped", [])),
|
|
208
206
|
"testSeconds": (time_after - time_before),
|
|
209
207
|
}
|
|
210
208
|
print(f"SUMMARY: {summary}")
|
|
@@ -228,12 +226,12 @@ Operating System :: MacOS :: MacOS X
|
|
|
228
226
|
Programming Language :: Python
|
|
229
227
|
Programming Language :: Python :: 3
|
|
230
228
|
Programming Language :: Python :: 3 :: Only
|
|
231
|
-
Programming Language :: Python :: 3.10
|
|
232
229
|
Programming Language :: Python :: 3.11
|
|
233
230
|
Programming Language :: Python :: 3.12
|
|
234
231
|
Programming Language :: Python :: 3.13
|
|
235
232
|
Programming Language :: Python :: 3.14
|
|
236
233
|
Programming Language :: Python :: 3.15
|
|
234
|
+
Programming Language :: Python :: 3.16
|
|
237
235
|
Programming Language :: Python :: Implementation :: CPython
|
|
238
236
|
Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
239
237
|
Programming Language :: Objective C
|
|
@@ -499,6 +497,8 @@ def Extension(*args, **kwds):
|
|
|
499
497
|
"-DPyObjC_BUILD_RELEASE=%02d%02d"
|
|
500
498
|
% (tuple(map(int, version.split(".")[:2])))
|
|
501
499
|
)
|
|
500
|
+
ldflags.append("-isysroot")
|
|
501
|
+
ldflags.append(data)
|
|
502
502
|
else:
|
|
503
503
|
cflags.append(
|
|
504
504
|
"-DPyObjC_BUILD_RELEASE=%02d%02d"
|
|
@@ -677,7 +677,7 @@ def setup(
|
|
|
677
677
|
zip_safe=False,
|
|
678
678
|
license="MIT",
|
|
679
679
|
classifiers=CLASSIFIERS,
|
|
680
|
-
python_requires=">=3.
|
|
680
|
+
python_requires=">=3.11",
|
|
681
681
|
keywords=["PyObjC"] + [p for p in k["packages"] if p not in ("PyObjCTools",)],
|
|
682
682
|
options=options,
|
|
683
683
|
**k,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/License.txt
RENAMED
|
File without changes
|
{pyobjc_framework_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/MANIFEST.in
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_audiovideobridging-12.2.1 → pyobjc_framework_audiovideobridging-13.0}/setup.cfg
RENAMED
|
File without changes
|