summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>1999-08-04 12:07:09 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>1999-08-04 12:07:09 (GMT)
commit493aa4809b787bf6677b241a2e8e2c023b6a0710 (patch)
treeb0b5cca06c9c0ce2ecb264094512447c139d404d
parent068bdb181defc31b3b4c57966f48c4c11330b681 (diff)
downloadcpython-493aa4809b787bf6677b241a2e8e2c023b6a0710.zip
cpython-493aa4809b787bf6677b241a2e8e2c023b6a0710.tar.gz
cpython-493aa4809b787bf6677b241a2e8e2c023b6a0710.tar.bz2
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).
-rw-r--r--Mac/Modules/qt/Qtmodule.c89
-rw-r--r--Mac/Modules/qt/qtsupport.py15
2 files changed, 104 insertions, 0 deletions
diff --git a/Mac/Modules/qt/Qtmodule.c b/Mac/Modules/qt/Qtmodule.c
index 540915e..628a72c 100644
--- a/Mac/Modules/qt/Qtmodule.c
+++ b/Mac/Modules/qt/Qtmodule.c
@@ -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}
};
diff --git a/Mac/Modules/qt/qtsupport.py b/Mac/Modules/qt/qtsupport.py
index 2e26888..063a79a 100644
--- a/Mac/Modules/qt/qtsupport.py
+++ b/Mac/Modules/qt/qtsupport.py
@@ -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)