File: Sound.xsp

package info (click to toggle)
libwx-perl 0.9702-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 3,240 kB
  • ctags: 1,812
  • sloc: cpp: 8,988; perl: 6,366; makefile: 38; ansic: 1
file content (95 lines) | stat: -rw-r--r-- 1,939 bytes parent folder | download | duplicates (7)
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
%}