[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