1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
#############################################################################
## Name: XS/Sound.xsp
## Purpose: XS++ for wxSound class
## Author: Mattia Barbon
## Modified by:
## Created: 27/06/2006
## RCS-ID: $Id: Sound.xsp 2560 2009-05-17 08:33:45Z mbarbon $
## Copyright: (c) 2006, 2009 Mattia Barbon
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
#############################################################################
%module{Wx};
%typemap{wxSound*}{simple};
%{
#if WXPERL_W_VERSION_GE( 2, 5, 1 )
#include <wx/sound.h>
%}
%name{Wx::Sound} class wxSound
{
%name{newDefault} wxSound();
%name{newFile} wxSound( const wxString& fileName );
%{
static void
wxSound::CLONE()
CODE:
wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
%}
## // thread OK
~wxSound()
%code{% wxPli_thread_sv_unregister( aTHX_ "Wx::Sound", THIS, ST(0) );
delete THIS;
%};
%name{Create} bool Create( const wxString& fileName );
bool Play( unsigned flags = wxSOUND_ASYNC );
bool IsOk();
};
%{
void
new( ... )
PPCODE:
BEGIN_OVERLOAD()
MATCH_VOIDM_REDISP( newDefault )
MATCH_ANY_REDISP( newFile )
END_OVERLOAD( "Wx::Choicebook::new" )
wxSound*
wxSound::newData( data )
SV* data
CODE:
STRLEN len;
const wxByte* buffer = (wxByte*) SvPV( data, len );
RETVAL = new wxSound( len, buffer );
OUTPUT: RETVAL
#if !defined(__WXMAC__)
bool
wxSound::CreateData( data )
SV* data
CODE:
STRLEN len;
const wxByte* buffer = (wxByte*) SvPV( data, len );
RETVAL = THIS->Create( len, buffer );
OUTPUT: RETVAL
#endif
void
Stop()
CODE:
wxSound::Stop();
#if !defined( __WXMSW__ )
bool
IsPlaying()
CODE:
RETVAL = wxSound::IsPlaying();
OUTPUT: RETVAL
#endif
%}
%{
#endif
%}
|