Files
wxWidgets/wxPython/src/media.i
Robin Dunn 1b8c7ba607 Updated to SWIG 1.3.24 (plus a patch that corrects a bug and adds back
some things that were changed/removed from my patch I submitted to
them.)

Since it is now possible easily and simply share the SWIG type tables
across modules I reverted to always using the stock SWIG runtime
instead of my slightly hacked up version of it exported via the
wxPython C API.

The %name directive is now deprecated so replaced most uses of it with
a custom %Rename macro that uses %rename internally.  These will
evetually need to be replaced with a DocDecl macro when docstrings are
added.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31128 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-12-23 20:44:09 +00:00

272 lines
7.7 KiB
OpenEdge ABL

/////////////////////////////////////////////////////////////////////////////
// Name: media.i
// Purpose: SWIG definitions for the wxMediaCtrl
//
// Author: Robin Dunn
//
// Created: 23-Nov-2004
// RCS-ID: $Id$
// Copyright: (c) 2004 by Total Control Software
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
%define DOCSTRING
"Classes for a media player control"
%enddef
%module(package="wx", docstring=DOCSTRING) media
%{
#include "wx/wxPython/wxPython.h"
#include "wx/wxPython/pyclasses.h"
#include <wx/mediactrl.h>
#include <wx/uri.h>
%}
//----------------------------------------------------------------------
%import core.i
%pythoncode { wx = _core }
%pythoncode { __docfilter__ = wx.__DocFilter(globals()) }
%include _media_rename.i
//---------------------------------------------------------------------------
%typemap(in) wxLongLong {
$1 = PyLong_AsLongLong($input);
}
%typemap(out) wxLongLong {
$result = PyLong_FromLongLong($1.GetValue());
}
//---------------------------------------------------------------------------
// Make a stubbed out class for platforms that don't have wxMediaCtrl
%{
#if !wxUSE_MEDIACTRL
enum wxMediaState
{
wxMEDIASTATE_STOPPED=0,
wxMEDIASTATE_PAUSED=0,
wxMEDIASTATE_PLAYING=0
};
class wxMediaEvent : public wxNotifyEvent
{
public:
wxMediaEvent(wxEventType, int ) { wxPyRaiseNotImplemented(); }
};
class wxMediaCtrl : public wxControl
{
public:
wxMediaCtrl() { wxPyRaiseNotImplemented(); }
wxMediaCtrl(wxWindow* , wxWindowID ,
const wxString& ,
const wxPoint& ,
const wxSize& ,
long style ,
const wxString& ,
const wxValidator& ,
const wxString& ) { wxPyRaiseNotImplemented(); }
// wxMediaCtrl(wxWindow* ,
// wxWindowID ,
// const wxURI& ,
// const wxPoint&,
// const wxSize& ,
// long style,
// const wxString& ,
// const wxValidator& ,
// const wxString& ) { wxPyRaiseNotImplemented(); }
bool Create(wxWindow* , wxWindowID ,
const wxString& ,
const wxPoint& ,
const wxSize& ,
long style ,
const wxString& ,
const wxValidator& ,
const wxString& ) { return false; }
// bool Create(wxWindow* ,
// wxWindowID ,
// const wxURI& ,
// const wxPoint&,
// const wxSize& ,
// long style,
// const wxString& ,
// const wxValidator& ,
// const wxString& ) { return false; }
bool Play() { return false; }
bool Pause() { return false; }
bool Stop() { return false; }
bool Load(const wxString& fileName) { return false; }
bool Load(const wxURI& location) { return false; }
void Loop(bool bLoop = true) {}
bool IsLooped() { return false; }
wxMediaState GetState() { return wxMEDIASTATE_STOPPED; }
double GetPlaybackRate() { return 0.0; }
bool SetPlaybackRate(double dRate) { return false; }
wxFileOffset Seek(wxFileOffset where, wxSeekMode mode = wxFromStart)
{ return 0; }
wxFileOffset Tell() { return 0; }
wxFileOffset Length() { return 0; }
};
const wxEventType wxEVT_MEDIA_FINISHED = 0;
const wxEventType wxEVT_MEDIA_STOP = 0;
#endif
%}
//---------------------------------------------------------------------------
enum wxMediaState
{
wxMEDIASTATE_STOPPED,
wxMEDIASTATE_PAUSED,
wxMEDIASTATE_PLAYING
};
// MAKE_CONST_WXSTRING(MEDIABACKEND_DIRECTSHOW);
// MAKE_CONST_WXSTRING(MEDIABACKEND_MCI );
// MAKE_CONST_WXSTRING(MEDIABACKEND_QUICKTIME );
//---------------------------------------------------------------------------
class wxMediaEvent : public wxNotifyEvent
{
public:
wxMediaEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
};
//---------------------------------------------------------------------------
MAKE_CONST_WXSTRING_NOSWIG(EmptyString);
MAKE_CONST_WXSTRING2(MediaCtrlNameStr, wxT("mediaCtrl"));
MustHaveApp(wxMediaCtrl);
class wxMediaCtrl : public wxControl
{
public:
%pythonAppend wxMediaCtrl "self._setOORInfo(self)"
%pythonAppend wxMediaCtrl() ""
wxMediaCtrl(wxWindow* parent,
wxWindowID id=-1,
const wxString& fileName = wxPyEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& szBackend = wxPyEmptyString,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyMediaCtrlNameStr);
%RenameCtor(PreMediaCtrl, wxMediaCtrl());
// %extend {
// %RenameCtor(MediaCtrlFromURI,
// wxMediaCtrl(wxWindow* parent,
// wxWindowID id=-1,
// const wxString& location=wxPyEmptyString,
// const wxPoint& pos = wxDefaultPosition,
// const wxSize& size = wxDefaultSize,
// long style = 0,
// const wxString& szBackend = wxPyEmptyString,
// const wxValidator& validator = wxDefaultValidator,
// const wxString& name = wxPyMediaCtrlNameStr))
// {
// return new wxMediaCtrl(parent, id, wxURI(location),
// pos, size, style, szBackend, validator, name);
// }
// bool CreateFromURI(wxWindow* parent,
// wxWindowID id=-1,
// const wxString& location=wxPyEmptyString,
// const wxPoint& pos = wxDefaultPosition,
// const wxSize& size = wxDefaultSize,
// long style = 0,
// const wxString& szBackend = wxPyEmptyString,
// const wxValidator& validator = wxDefaultValidator,
// const wxString& name = wxPyMediaCtrlNameStr)
// {
// return self->Create(parent, id, wxURI(location),
// pos, size, style, szBackend, validator, name);
// }
// }
bool Create(wxWindow* parent,
wxWindowID id=-1,
const wxString& fileName = wxPyEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& szBackend = wxPyEmptyString,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyMediaCtrlNameStr);
bool Play();
bool Pause();
bool Stop();
bool Load(const wxString& fileName);
%extend {
bool LoadFromURI(const wxString& location) {
return self->Load(wxURI(location));
}
}
void Loop(bool bLoop = true);
bool IsLooped();
wxMediaState GetState();
double GetPlaybackRate();
bool SetPlaybackRate(double dRate);
wxFileOffset Seek(wxFileOffset where, wxSeekMode mode = wxFromStart);
wxFileOffset Tell();
wxFileOffset Length();
};
%constant wxEventType wxEVT_MEDIA_FINISHED;
%constant wxEventType wxEVT_MEDIA_STOP;
%pythoncode {
EVT_MEDIA_FINISHED = wx.PyEventBinder( wxEVT_MEDIA_FINISHED, 1)
EVT_MEDIA_STOP = wx.PyEventBinder( wxEVT_MEDIA_STOP, 1)
}
//---------------------------------------------------------------------------
%init %{
%}
//---------------------------------------------------------------------------