xref: /trunk/main/vcl/inc/os2/salsound.h (revision fc9fd3f14a55d77b35643a64034752a178b2a5b0)
1*fc9fd3f1SPedro Giffuni /*************************************************************************
2*fc9fd3f1SPedro Giffuni  *
3*fc9fd3f1SPedro Giffuni  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*fc9fd3f1SPedro Giffuni  *
5*fc9fd3f1SPedro Giffuni  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*fc9fd3f1SPedro Giffuni  *
7*fc9fd3f1SPedro Giffuni  * OpenOffice.org - a multi-platform office productivity suite
8*fc9fd3f1SPedro Giffuni  *
9*fc9fd3f1SPedro Giffuni  * This file is part of OpenOffice.org.
10*fc9fd3f1SPedro Giffuni  *
11*fc9fd3f1SPedro Giffuni  * OpenOffice.org is free software: you can redistribute it and/or modify
12*fc9fd3f1SPedro Giffuni  * it under the terms of the GNU Lesser General Public License version 3
13*fc9fd3f1SPedro Giffuni  * only, as published by the Free Software Foundation.
14*fc9fd3f1SPedro Giffuni  *
15*fc9fd3f1SPedro Giffuni  * OpenOffice.org is distributed in the hope that it will be useful,
16*fc9fd3f1SPedro Giffuni  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*fc9fd3f1SPedro Giffuni  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*fc9fd3f1SPedro Giffuni  * GNU Lesser General Public License version 3 for more details
19*fc9fd3f1SPedro Giffuni  * (a copy is included in the LICENSE file that accompanied this code).
20*fc9fd3f1SPedro Giffuni  *
21*fc9fd3f1SPedro Giffuni  * You should have received a copy of the GNU Lesser General Public License
22*fc9fd3f1SPedro Giffuni  * version 3 along with OpenOffice.org.  If not, see
23*fc9fd3f1SPedro Giffuni  * <http://www.openoffice.org/license.html>
24*fc9fd3f1SPedro Giffuni  * for a copy of the LGPLv3 License.
25*fc9fd3f1SPedro Giffuni  *
26*fc9fd3f1SPedro Giffuni  ************************************************************************/
27*fc9fd3f1SPedro Giffuni 
28*fc9fd3f1SPedro Giffuni #ifndef _SV_SALSOUND_H
29*fc9fd3f1SPedro Giffuni #define _SV_SALSOUND_H
30*fc9fd3f1SPedro Giffuni 
31*fc9fd3f1SPedro Giffuni #include <tools/gen.hxx>
32*fc9fd3f1SPedro Giffuni #include <sv.h>
33*fc9fd3f1SPedro Giffuni #include <tools/string.hxx>
34*fc9fd3f1SPedro Giffuni #include <vcl/salframe.hxx>
35*fc9fd3f1SPedro Giffuni #ifndef _SV_SALSTYPE_HXX
36*fc9fd3f1SPedro Giffuni #include <vcl/salstype.hxx>
37*fc9fd3f1SPedro Giffuni #endif
38*fc9fd3f1SPedro Giffuni #include <vcl/salsound.hxx>
39*fc9fd3f1SPedro Giffuni 
40*fc9fd3f1SPedro Giffuni // ------------
41*fc9fd3f1SPedro Giffuni // - SalSound -
42*fc9fd3f1SPedro Giffuni // ------------
43*fc9fd3f1SPedro Giffuni 
44*fc9fd3f1SPedro Giffuni //class SalSound
45*fc9fd3f1SPedro Giffuni class Os2SalSound : public SalSound
46*fc9fd3f1SPedro Giffuni {
47*fc9fd3f1SPedro Giffuni private:
48*fc9fd3f1SPedro Giffuni 
49*fc9fd3f1SPedro Giffuni     static HMODULE      mhMCILib;
50*fc9fd3f1SPedro Giffuni     static ULONG        mnSoundState;
51*fc9fd3f1SPedro Giffuni     static void*        mpMCIFnc;
52*fc9fd3f1SPedro Giffuni     SALSOUNDPROC        mpProc;
53*fc9fd3f1SPedro Giffuni     void*               mpInst;
54*fc9fd3f1SPedro Giffuni     ULONG               mnStartTime;
55*fc9fd3f1SPedro Giffuni     ULONG               mnPlayLen;
56*fc9fd3f1SPedro Giffuni     HWND                mhSoundWnd;
57*fc9fd3f1SPedro Giffuni     USHORT              mnDeviceId;
58*fc9fd3f1SPedro Giffuni     BOOL                mbLoop;
59*fc9fd3f1SPedro Giffuni     BOOL                mbPaused;
60*fc9fd3f1SPedro Giffuni 
61*fc9fd3f1SPedro Giffuni public:
62*fc9fd3f1SPedro Giffuni 
63*fc9fd3f1SPedro Giffuni     void                ImplSetError( ULONG nMciErr );
64*fc9fd3f1SPedro Giffuni     void                ImplNotify( SoundNotification eNotification, ULONG nError );
65*fc9fd3f1SPedro Giffuni 
66*fc9fd3f1SPedro Giffuni public:
67*fc9fd3f1SPedro Giffuni 
68*fc9fd3f1SPedro Giffuni     BOOL                Create();
69*fc9fd3f1SPedro Giffuni     //static BOOL           IsValid() { return( SOUND_STATE_VALID == Os2SalSound::mnSoundState ); }
70*fc9fd3f1SPedro Giffuni     //BOOL              Init( SalFrame* pFrame, const String& rSoundName, ULONG& rSoundLen );
71*fc9fd3f1SPedro Giffuni     //BOOL              Init( SalFrame* pFrame, const BYTE* pSound, ULONG nDataLen, ULONG& rSoundLen );
72*fc9fd3f1SPedro Giffuni 
73*fc9fd3f1SPedro Giffuni     void                SetNotifyProc( void* pInst, SALSOUNDPROC pProc )
74*fc9fd3f1SPedro Giffuni                             { mpInst = pInst; mpProc = pProc; }
75*fc9fd3f1SPedro Giffuni public:
76*fc9fd3f1SPedro Giffuni     Os2SalSound();
77*fc9fd3f1SPedro Giffuni     virtual ~Os2SalSound();
78*fc9fd3f1SPedro Giffuni 
79*fc9fd3f1SPedro Giffuni     virtual bool        IsValid();
80*fc9fd3f1SPedro Giffuni     virtual bool        Init( const String& rSoundName, ULONG& rSoundLen );
81*fc9fd3f1SPedro Giffuni     virtual void        Play( ULONG nStartTime, ULONG nPlayTime, bool bLoop );
82*fc9fd3f1SPedro Giffuni     virtual void        Stop();
83*fc9fd3f1SPedro Giffuni     virtual void        Pause();
84*fc9fd3f1SPedro Giffuni     virtual void        Continue();
85*fc9fd3f1SPedro Giffuni     virtual bool        IsLoopMode() const;
86*fc9fd3f1SPedro Giffuni     virtual bool        IsPlaying() const;
87*fc9fd3f1SPedro Giffuni     virtual bool        IsPaused() const;
88*fc9fd3f1SPedro Giffuni 
89*fc9fd3f1SPedro Giffuni     bool                ImplCreate();
90*fc9fd3f1SPedro Giffuni     void                ImplDestroy();
91*fc9fd3f1SPedro Giffuni     static void         Release();
92*fc9fd3f1SPedro Giffuni };
93*fc9fd3f1SPedro Giffuni 
94*fc9fd3f1SPedro Giffuni #endif // _SV_SALSOUND_H
95