############################################################################# ## 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 %} %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 %}