Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / XS / Sound.xsp
diff --git a/deb-src/libwx-perl/libwx-perl-0.96/XS/Sound.xsp b/deb-src/libwx-perl/libwx-perl-0.96/XS/Sound.xsp
new file mode 100644 (file)
index 0000000..7f0a4a0
--- /dev/null
@@ -0,0 +1,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
+%}
\ No newline at end of file