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
272 lines
7.7 KiB
OpenEdge ABL
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 %{
|
|
%}
|
|
|
|
//---------------------------------------------------------------------------
|
|
|