00001 /**************************************************************************** 00002 ** 00003 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). 00004 ** All rights reserved. 00005 ** Contact: Nokia Corporation 00006 ** 00007 ** 00008 ** $QT_BEGIN_LICENSE:BSD$ 00009 ** You may use this file under the terms of the BSD license as follows: 00010 ** 00011 ** "Redistribution and use in source and binary forms, with or without 00012 ** modification, are permitted provided that the following conditions are 00013 ** met: 00014 ** * Redistributions of source code must retain the above copyright 00015 ** notice, this list of conditions and the following disclaimer. 00016 ** * Redistributions in binary form must reproduce the above copyright 00017 ** notice, this list of conditions and the following disclaimer in 00018 ** the documentation and/or other materials provided with the 00019 ** distribution. 00020 ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor 00021 ** the names of its contributors may be used to endorse or promote 00022 ** products derived from this software without specific prior written 00023 ** permission. 00024 ** 00025 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00026 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00027 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00028 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00029 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00030 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00031 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00032 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00033 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00034 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00035 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." 00036 ** $QT_END_LICENSE$ 00037 ** 00038 ****************************************************************************/ 00039 00044 #ifndef __AUDIOENGINE_H__ 00045 #define __AUDIOENGINE_H__ 00046 00047 // INCLUDES 00048 #include <e32base.h> 00049 #include <mdaaudiosampleplayer.h> 00050 00051 // FORWARD DECLARATIONS 00052 class AudioPlayerPrivate; 00053 00061 class CAudioPlayerEngine : public CBase, MMdaAudioPlayerCallback 00062 { 00063 public: 00064 static CAudioPlayerEngine* NewL(AudioPlayerPrivate* audioPlayerPvt); 00065 static CAudioPlayerEngine* NewLC(AudioPlayerPrivate* audioPlayerPvt); 00066 void Play(); 00067 void Stop(); 00068 void Pause(); 00069 ~CAudioPlayerEngine(); 00070 00071 private : 00072 /* 00073 * Virtual functions of Audio player class. 00074 */ 00075 void MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds &/*aDuration*/); 00076 virtual void MapcPlayComplete(TInt aError); 00077 00078 00079 private: 00080 void ConstructL(); 00081 CAudioPlayerEngine(AudioPlayerPrivate* audioPlayerPvt); 00082 CMdaAudioPlayerUtility* iPlayer; // Audio player utility which will call the audio playing methods. 00083 00084 private: 00085 TBool iAudioFileOpen; // This boolean is used to know, whether an audio file is opened or not. 00086 TBool iAudioPlaying; // This boolean is used to know, whether an audio file is playing or not. 00087 AudioPlayerPrivate* iAudioPlayerPvt; // pointer handler for this class, is used to print the response on UI. 00088 00089 public: 00090 TBuf<128> iResponse; // Responses to various operations on the audio file are stored in this buffer. 00091 }; 00092 00093 #endif /* AUDIOENGINE_H_ */