mirror of
https://github.com/python/cpython.git
synced 2024-11-27 03:45:08 +08:00
Added available() method, which checks whether quicktime is installed at all (by
testing whether EnterMovies points to an actual routine or is a null pointer).
This commit is contained in:
parent
068bdb181d
commit
493aa4809b
@ -1021,6 +1021,12 @@ static PyObject *MovieCtlObj_getattr(self, name)
|
||||
|
||||
#define MovieCtlObj_setattr NULL
|
||||
|
||||
#define MovieCtlObj_compare NULL
|
||||
|
||||
#define MovieCtlObj_repr NULL
|
||||
|
||||
#define MovieCtlObj_hash NULL
|
||||
|
||||
PyTypeObject MovieController_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0, /*ob_size*/
|
||||
@ -1032,6 +1038,12 @@ PyTypeObject MovieController_Type = {
|
||||
0, /*tp_print*/
|
||||
(getattrfunc) MovieCtlObj_getattr, /*tp_getattr*/
|
||||
(setattrfunc) MovieCtlObj_setattr, /*tp_setattr*/
|
||||
(cmpfunc) MovieCtlObj_compare, /*tp_compare*/
|
||||
(reprfunc) MovieCtlObj_repr, /*tp_repr*/
|
||||
(PyNumberMethods *)0, /* tp_as_number */
|
||||
(PySequenceMethods *)0, /* tp_as_sequence */
|
||||
(PyMappingMethods *)0, /* tp_as_mapping */
|
||||
(hashfunc) MovieCtlObj_hash, /*tp_hash*/
|
||||
};
|
||||
|
||||
/* ---------------- End object type MovieController ----------------- */
|
||||
@ -1446,6 +1458,12 @@ static PyObject *TimeBaseObj_getattr(self, name)
|
||||
|
||||
#define TimeBaseObj_setattr NULL
|
||||
|
||||
#define TimeBaseObj_compare NULL
|
||||
|
||||
#define TimeBaseObj_repr NULL
|
||||
|
||||
#define TimeBaseObj_hash NULL
|
||||
|
||||
PyTypeObject TimeBase_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0, /*ob_size*/
|
||||
@ -1457,6 +1475,12 @@ PyTypeObject TimeBase_Type = {
|
||||
0, /*tp_print*/
|
||||
(getattrfunc) TimeBaseObj_getattr, /*tp_getattr*/
|
||||
(setattrfunc) TimeBaseObj_setattr, /*tp_setattr*/
|
||||
(cmpfunc) TimeBaseObj_compare, /*tp_compare*/
|
||||
(reprfunc) TimeBaseObj_repr, /*tp_repr*/
|
||||
(PyNumberMethods *)0, /* tp_as_number */
|
||||
(PySequenceMethods *)0, /* tp_as_sequence */
|
||||
(PyMappingMethods *)0, /* tp_as_mapping */
|
||||
(hashfunc) TimeBaseObj_hash, /*tp_hash*/
|
||||
};
|
||||
|
||||
/* -------------------- End object type TimeBase -------------------- */
|
||||
@ -1735,6 +1759,12 @@ static PyObject *UserDataObj_getattr(self, name)
|
||||
|
||||
#define UserDataObj_setattr NULL
|
||||
|
||||
#define UserDataObj_compare NULL
|
||||
|
||||
#define UserDataObj_repr NULL
|
||||
|
||||
#define UserDataObj_hash NULL
|
||||
|
||||
PyTypeObject UserData_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0, /*ob_size*/
|
||||
@ -1746,6 +1776,12 @@ PyTypeObject UserData_Type = {
|
||||
0, /*tp_print*/
|
||||
(getattrfunc) UserDataObj_getattr, /*tp_getattr*/
|
||||
(setattrfunc) UserDataObj_setattr, /*tp_setattr*/
|
||||
(cmpfunc) UserDataObj_compare, /*tp_compare*/
|
||||
(reprfunc) UserDataObj_repr, /*tp_repr*/
|
||||
(PyNumberMethods *)0, /* tp_as_number */
|
||||
(PySequenceMethods *)0, /* tp_as_sequence */
|
||||
(PyMappingMethods *)0, /* tp_as_mapping */
|
||||
(hashfunc) UserDataObj_hash, /*tp_hash*/
|
||||
};
|
||||
|
||||
/* -------------------- End object type UserData -------------------- */
|
||||
@ -2806,6 +2842,12 @@ static PyObject *MediaObj_getattr(self, name)
|
||||
|
||||
#define MediaObj_setattr NULL
|
||||
|
||||
#define MediaObj_compare NULL
|
||||
|
||||
#define MediaObj_repr NULL
|
||||
|
||||
#define MediaObj_hash NULL
|
||||
|
||||
PyTypeObject Media_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0, /*ob_size*/
|
||||
@ -2817,6 +2859,12 @@ PyTypeObject Media_Type = {
|
||||
0, /*tp_print*/
|
||||
(getattrfunc) MediaObj_getattr, /*tp_getattr*/
|
||||
(setattrfunc) MediaObj_setattr, /*tp_setattr*/
|
||||
(cmpfunc) MediaObj_compare, /*tp_compare*/
|
||||
(reprfunc) MediaObj_repr, /*tp_repr*/
|
||||
(PyNumberMethods *)0, /* tp_as_number */
|
||||
(PySequenceMethods *)0, /* tp_as_sequence */
|
||||
(PyMappingMethods *)0, /* tp_as_mapping */
|
||||
(hashfunc) MediaObj_hash, /*tp_hash*/
|
||||
};
|
||||
|
||||
/* --------------------- End object type Media ---------------------- */
|
||||
@ -3974,6 +4022,12 @@ static PyObject *TrackObj_getattr(self, name)
|
||||
|
||||
#define TrackObj_setattr NULL
|
||||
|
||||
#define TrackObj_compare NULL
|
||||
|
||||
#define TrackObj_repr NULL
|
||||
|
||||
#define TrackObj_hash NULL
|
||||
|
||||
PyTypeObject Track_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0, /*ob_size*/
|
||||
@ -3985,6 +4039,12 @@ PyTypeObject Track_Type = {
|
||||
0, /*tp_print*/
|
||||
(getattrfunc) TrackObj_getattr, /*tp_getattr*/
|
||||
(setattrfunc) TrackObj_setattr, /*tp_setattr*/
|
||||
(cmpfunc) TrackObj_compare, /*tp_compare*/
|
||||
(reprfunc) TrackObj_repr, /*tp_repr*/
|
||||
(PyNumberMethods *)0, /* tp_as_number */
|
||||
(PySequenceMethods *)0, /* tp_as_sequence */
|
||||
(PyMappingMethods *)0, /* tp_as_mapping */
|
||||
(hashfunc) TrackObj_hash, /*tp_hash*/
|
||||
};
|
||||
|
||||
/* --------------------- End object type Track ---------------------- */
|
||||
@ -6109,6 +6169,12 @@ static PyObject *MovieObj_getattr(self, name)
|
||||
|
||||
#define MovieObj_setattr NULL
|
||||
|
||||
#define MovieObj_compare NULL
|
||||
|
||||
#define MovieObj_repr NULL
|
||||
|
||||
#define MovieObj_hash NULL
|
||||
|
||||
PyTypeObject Movie_Type = {
|
||||
PyObject_HEAD_INIT(&PyType_Type)
|
||||
0, /*ob_size*/
|
||||
@ -6120,6 +6186,12 @@ PyTypeObject Movie_Type = {
|
||||
0, /*tp_print*/
|
||||
(getattrfunc) MovieObj_getattr, /*tp_getattr*/
|
||||
(setattrfunc) MovieObj_setattr, /*tp_setattr*/
|
||||
(cmpfunc) MovieObj_compare, /*tp_compare*/
|
||||
(reprfunc) MovieObj_repr, /*tp_repr*/
|
||||
(PyNumberMethods *)0, /* tp_as_number */
|
||||
(PySequenceMethods *)0, /* tp_as_sequence */
|
||||
(PyMappingMethods *)0, /* tp_as_mapping */
|
||||
(hashfunc) MovieObj_hash, /*tp_hash*/
|
||||
};
|
||||
|
||||
/* --------------------- End object type Movie ---------------------- */
|
||||
@ -7666,6 +7738,21 @@ static PyObject *Qt_MoviesTask(_self, _args)
|
||||
return _res;
|
||||
}
|
||||
|
||||
static PyObject *Qt_available(_self, _args)
|
||||
PyObject *_self;
|
||||
PyObject *_args;
|
||||
{
|
||||
PyObject *_res = NULL;
|
||||
|
||||
void *ptr;
|
||||
|
||||
if ( !PyArg_ParseTuple(_args, "") )
|
||||
return NULL;
|
||||
ptr = (void *)&EnterMovies;
|
||||
return Py_BuildValue("i", ((long)ptr != 0));
|
||||
|
||||
}
|
||||
|
||||
static PyMethodDef Qt_methods[] = {
|
||||
{"EnterMovies", (PyCFunction)Qt_EnterMovies, 1,
|
||||
"() -> None"},
|
||||
@ -7805,6 +7892,8 @@ static PyMethodDef Qt_methods[] = {
|
||||
"(WindowPtr wp, Point startPt, Rect boundsRect) -> None"},
|
||||
{"MoviesTask", (PyCFunction)Qt_MoviesTask, 1,
|
||||
"(long maxMilliSecToUse) -> None"},
|
||||
{"available", (PyCFunction)Qt_available, 1,
|
||||
"Return true if Quicktime is available"},
|
||||
{NULL, NULL, 0}
|
||||
};
|
||||
|
||||
|
@ -253,6 +253,21 @@ f = Function(void, 'MoviesTask',
|
||||
)
|
||||
functions.append(f)
|
||||
|
||||
# Add manual routines for testing quicktime availability
|
||||
available_body = """
|
||||
void *ptr;
|
||||
|
||||
if ( !PyArg_ParseTuple(_args, "") )
|
||||
return NULL;
|
||||
ptr = (void *)&EnterMovies;
|
||||
return Py_BuildValue("i", ((long)ptr != 0));
|
||||
"""
|
||||
|
||||
f = ManualGenerator("available", available_body)
|
||||
f.docstring = lambda : "Return true if Quicktime is available"
|
||||
|
||||
functions.append(f)
|
||||
|
||||
|
||||
# add the populated lists to the generator groups
|
||||
# (in a different wordl the scan program would generate this)
|
||||
|
Loading…
Reference in New Issue
Block a user