examples/QtQuick/audioplayer/audioengine.cpp

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 #include "audioplayer_p.h"
00045 #include "audioengine.h"
00046 
00047 _LIT(KAudioFileWMA, "c:\\Sounds\\newstories.wma");
00048 
00052 CAudioPlayerEngine* CAudioPlayerEngine::NewL(AudioPlayerPrivate* audioPlayerPvt)
00053     {
00054     CAudioPlayerEngine* self = CAudioPlayerEngine::NewLC(audioPlayerPvt);
00055     CleanupStack::Pop(self);
00056     return self;
00057     }
00058 
00062 CAudioPlayerEngine* CAudioPlayerEngine::NewLC(AudioPlayerPrivate* audioPlayerPvt)
00063     {
00064     CAudioPlayerEngine* self = new (ELeave) CAudioPlayerEngine(audioPlayerPvt);
00065     CleanupStack::PushL(self);
00066     self->ConstructL();
00067     return self;
00068     }
00069 
00073 CAudioPlayerEngine::CAudioPlayerEngine(AudioPlayerPrivate* audioPlayerPvt):iAudioFileOpen(EFalse), iAudioPlaying(EFalse),
00074                                                                            iAudioPlayerPvt(audioPlayerPvt)
00075   {
00076   }
00077 
00081 CAudioPlayerEngine::~CAudioPlayerEngine()
00082   {    
00083     if(iAudioFileOpen)
00084         {
00085         iPlayer->Close();
00086         }
00087     delete iPlayer;
00088   }
00089 
00094 void CAudioPlayerEngine::ConstructL()
00095     {
00096     iPlayer = CMdaAudioPlayerUtility::NewL(*this);   
00097     iPlayer = CMdaAudioPlayerUtility::NewFilePlayerL( KAudioFileWMA, *this );
00098     }
00099 
00100 
00106 void CAudioPlayerEngine::MapcInitComplete(TInt aError, 
00107                                const TTimeIntervalMicroSeconds &/*aDuration*/)
00108    {
00109     if(aError == KErrNone)
00110         {        
00111         iAudioFileOpen = ETrue;        
00112         }
00113     else
00114         {        
00115         iAudioFileOpen = EFalse;        
00116         }
00117    }
00118 
00119 
00123 void CAudioPlayerEngine::MapcPlayComplete(TInt aError)
00124   {  
00125   }
00126 
00127 
00132 void CAudioPlayerEngine::Play()
00133     {
00134     // play the audio file, if the file is opened successfully.
00135     if(iAudioFileOpen)
00136         {
00137         iPlayer->Play();
00138         _LIT(KSuccess,"Playing New Stories");
00139         iResponse = KSuccess;
00140         iAudioPlaying = ETrue;
00141         iAudioPlayerPvt->printResponse();
00142         }
00143     else
00144         {
00145         _LIT(KFailure,"Playing song failed");
00146         iResponse = KFailure;
00147         iAudioPlayerPvt->printResponse();
00148         }
00149     }
00150 
00151 
00155 void CAudioPlayerEngine::Stop()
00156     {
00157     // We can stop the audio file, only when it is playing.
00158     if(iAudioPlaying)
00159         {
00160         iPlayer->Stop();
00161         _LIT(KSuccess,"New Stories Stopped");
00162         iResponse = KSuccess;
00163         iAudioPlaying = EFalse;
00164         iAudioPlayerPvt->printResponse();
00165         }
00166     else
00167         {
00168         _LIT(KFailure,"Unable to stop");
00169         iResponse = KFailure;
00170         iAudioPlayerPvt->printResponse();
00171         }    
00172     }
00173 
00174 
00178 void CAudioPlayerEngine::Pause()
00179     {
00180     // We can pause the audio file, only when it is playing.
00181     if(iAudioPlaying)
00182         {
00183         iPlayer->Pause();
00184         _LIT(KSuccess,"Pausing New Stories");
00185         iResponse = KSuccess;
00186         iAudioPlaying = EFalse;
00187         iAudioPlayerPvt->printResponse();
00188         }
00189     else
00190         {
00191         _LIT(KFailure,"Unable to pause the song");
00192         iResponse = KFailure;
00193         iAudioPlayerPvt->printResponse();
00194         }
00195     }
00196 
00197 // END OF FILE
00198 

Generated by  doxygen 1.6.2