[Pythonmac-SIG] QuickTime: BeginFullScreen

Jack Jansen Jack.Jansen at cwi.nl
Tue Jun 12 23:28:23 CEST 2007


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 at python.org
> http://mail.python.org/mailman/listinfo/pythonmac-sig

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


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/pythonmac-sig/attachments/20070612/95f07d98/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2255 bytes
Desc: not available
Url : http://mail.python.org/pipermail/pythonmac-sig/attachments/20070612/95f07d98/attachment-0001.bin 


More information about the Pythonmac-SIG mailing list