The problem is the "Ptr*" argument: BeginFullScreen returns an opaque pointer (Ptr) through a reference parameter, and the automatic interface code generator doesn't know how to treat this.

It thinks it knows how to treat the companion "Ptr" argument to EndFullScreen (representing it as a string on the Python side and passing the address to EndFullScreen) but it actually gets it wildly wrong.

As the pointer is opaque we could represent it as a cobject on the Python side.

I can do the magic incantations to have bgen generate a new Qt interface module, but I'd need your help to test it. Ideal would be if you're building Python from svn source (then I'll just send you a replacement _Qtmodule.c, and if it works I'll check it in to the repository) otherwise we'd have to work out some other way, contact me by private email.

On  11-Jun-2007, at 13:31 , Edward Hartley wrote:

Hi
I've been examining the functions exposed in the PythonMac Qt and
QuickTime libraries
and it seems that whilst the EndFullScreen call and the appropriate
flags are exposed
as can be seen from this snip from ipython help(Qt)

 EndFullScreen(...)
        (Ptr fullState, long flags) -> None

however the corresponding BeginFullScreen is not available.
My question is what is needed to make BeginFullScreen available to the
MacPython API.
I am willing to commit time to doing the development and have
comnsiderable experience of using SWIG under Linux. I am not familiar
with the build mechanism for MacPython but I am willing to learn.

I had initially thought that this might depend on having QuickTime Pro
but further investigation
shows that BeginFullScreen is an integral part of the framework and
available in from
Movies.h which I'm assuming is the basis for the MacPython Quicktime wrapper The declaration is in /System/Frameworks/QuickTime.framework/ Headers as follows:

/*
 *  BeginFullScreen()
 *
 *  Availability:
* Mac OS X: in version 10.0 and later in QuickTime.framework
 *    CarbonLib:        in CarbonLib 1.0 and later
 *    Non-Carbon CFM:   in QuickTimeLib 2.5 and later
 *    Windows:          in qtmlClient.lib 3.0 and later
 */
extern OSErr
BeginFullScreen(
  Ptr *        restoreState,
  GDHandle     whichGD,
  short *      desiredWidth,
  short *      desiredHeight,
  WindowRef *  newWindow,
  RGBColor *   eraseColor,
  long         flags)
AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER;


Interestingly the Java Quicktime quicktime bridge has  BeginFullScreen
available.
http://developer.apple.com/documentation/Java/Reference/1.4.1/ Java141API_QTJ/quicktime/std/movies/FullScreen.html

Also there is an example of the use of the C API available in the
developer documentation:
http://developer.apple.com/samplecode/qtfullscreen/listing1.html

So I'm assuming that any restrictions on exposing BeginFullScreen that
may have applied in the past are no longer in force.
TIA
Ed Hartley
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

--
Jack Jansen, <[EMAIL PROTECTED]>, http://www.cwi.nl/~jack
If I can't dance I don't want to be part of your revolution -- Emma Goldman


Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to