13 * |
13 * |
14 * Description: |
14 * Description: |
15 * This file provides the implementation for creating and deleting a |
15 * This file provides the implementation for creating and deleting a |
16 * an MMF based player for playing and stopping a tone playback. |
16 * an MMF based player for playing and stopping a tone playback. |
17 */ |
17 */ |
|
18 |
|
19 // Include Files |
18 #include "stsplayer.h" |
20 #include "stsplayer.h" |
19 #include <AudioPreference.h> |
21 #include <AudioPreference.h> |
20 #include <systemtoneservice.h> |
22 #include <systemtoneservice.h> |
|
23 #include "stsplayersettings.h" |
|
24 #include "stssettingsmanager.h" |
21 |
25 |
22 |
26 /*static*/CStsPlayer* CStsPlayer::Create(MStsPlayerObserver& aObserver, |
23 |
27 CStsSettingsManager& aSettingsManager, unsigned int aContext, |
24 /*static*/CStsPlayer* CStsPlayer::CreateTonePlayer( |
28 CSystemToneService::TAlarmType aAlarm) |
25 MStsPlayerObserver& aObserver,CSystemToneService::TToneType aTone, |
|
26 unsigned int aContext, const TDesC& aFileName, TInt aVolume, |
|
27 TUint aAudioPreference, TUint aAudioPriority) |
|
28 { |
29 { |
29 CStsPlayer* self = 0; |
30 CStsPlayer* self = 0; |
30 |
31 CStsSettingsManager::MPlayerSettings& playerSettings = |
31 self = new CStsPlayer(aObserver, aFileName, 0, aContext, aVolume, aAudioPreference, aAudioPriority); |
32 aSettingsManager.GetPlayerSettings(aAlarm); |
32 |
33 TUint audioPreference; |
33 |
34 TUint audioPriority; |
34 if (self != 0) |
35 aSettingsManager.GetAudioPriorityPref(aAlarm, audioPriority, |
35 { |
36 audioPreference); |
36 bool successful = self->Init(); |
37 self = new CStsPlayer(aObserver, playerSettings, aContext, |
37 if (!successful) |
38 audioPreference, audioPriority); |
|
39 if (self != 0) |
|
40 { |
|
41 bool successful = self->Init(); |
|
42 if (!successful) |
38 { |
43 { |
39 delete self; |
44 delete self; |
40 self = 0; |
45 self = 0; |
41 } |
46 } |
42 } |
47 } |
43 |
|
44 return self; |
48 return self; |
45 } |
49 } |
46 |
50 |
47 /*static*/CStsPlayer* CStsPlayer::CreateAlarmPlayer( |
51 /*static*/CStsPlayer* CStsPlayer::Create(MStsPlayerObserver& aObserver, |
48 MStsPlayerObserver& aObserver, CSystemToneService::TAlarmType aAlarm, |
52 CStsSettingsManager& aSettingsManager, unsigned int aContext, |
49 unsigned int aContext, const TDesC& aFileName, TInt aVolume, |
53 CSystemToneService::TToneType aTone) |
50 TUint aAudioPreference, TUint aAudioPriority) |
|
51 { |
54 { |
52 CStsPlayer* self = 0; |
55 CStsPlayer* self = 0; |
53 |
56 CStsSettingsManager::MPlayerSettings& playerSettings = |
54 |
57 aSettingsManager.GetPlayerSettings(aTone); |
55 self = new CStsPlayer(aObserver, aFileName, 10, aContext, aVolume, aAudioPreference, aAudioPriority); |
58 TUint audioPreference; |
56 |
59 TUint audioPriority; |
57 |
60 aSettingsManager.GetAudioPriorityPref(aTone, audioPriority, |
58 if (self != 0) |
61 audioPreference); |
59 { |
62 self = new CStsPlayer(aObserver, playerSettings, aContext, |
60 bool successful = self->Init(); |
63 audioPreference, audioPriority); |
61 if (!successful) |
64 if (self != 0) |
|
65 { |
|
66 bool successful = self->Init(); |
|
67 if (!successful) |
62 { |
68 { |
63 delete self; |
69 delete self; |
64 self = 0; |
70 self = 0; |
65 } |
71 } |
66 } |
72 } |
67 |
|
68 return self; |
73 return self; |
69 } |
74 } |
70 |
75 |
71 |
76 CStsPlayer::CStsPlayer(MStsPlayerObserver& aObserver, |
72 |
77 CStsSettingsManager::MPlayerSettings& aPlayerSettings, |
73 |
78 unsigned int aContext, TUint aAudioPreference, TUint aAudioPriority) : |
74 |
79 iObserver(aObserver), iPlayerSettings(aPlayerSettings), |
75 CStsPlayer::CStsPlayer(MStsPlayerObserver& aObserver, const TDesC& aFileName, |
80 iContext(aContext), iAudioPreference(aAudioPreference), |
76 int aRepeatNumberOfTimes, unsigned int aContext, TInt aVolume, TUint aAudioPreference, TUint aAudioPriority ) : |
81 iAudioPriority(aAudioPriority), iPlayer(0) |
77 iObserver(aObserver), iPlayer(0), iFileName(aFileName), |
|
78 iRepeatNumberOfTimes(aRepeatNumberOfTimes), iContext(aContext), iVolume(aVolume), |
|
79 iAudioPreference(aAudioPreference), iAudioPriority(aAudioPriority) |
|
80 { |
82 { |
81 |
|
82 } |
83 } |
83 |
84 |
84 bool CStsPlayer::Init() |
85 bool CStsPlayer::Init() |
85 { |
86 { |
86 |
87 TRAPD(result, iPlayer = CMdaAudioPlayerUtility::NewL(*this)); |
87 |
88 return result == KErrNone; |
88 TRAPD(result, iPlayer = CMdaAudioPlayerUtility::NewL(*this)); |
|
89 return result == KErrNone; |
|
90 |
|
91 } |
89 } |
92 |
|
93 |
90 |
94 CStsPlayer::~CStsPlayer() |
91 CStsPlayer::~CStsPlayer() |
95 { |
92 { |
96 |
93 delete iPlayer; |
97 delete iPlayer; |
|
98 |
|
99 } |
94 } |
100 |
95 |
101 void CStsPlayer::Play() |
96 void CStsPlayer::Play() |
102 { |
97 { |
103 // Play the tone |
98 // Play the tone |
104 TRAPD(err, iPlayer->OpenFileL(iFileName)); |
99 TRAPD( err, iPlayer->OpenFileL(iPlayerSettings.GetFileName()) ); |
105 |
|
106 // If there is an error, indicate that the playback is complete. |
100 // If there is an error, indicate that the playback is complete. |
107 if (err) |
101 if (err) |
108 { |
102 { |
109 //TODO: Add trace here |
103 //TODO: Add trace here |
110 iObserver.PlayComplete(iContext); |
104 iObserver.PlayComplete(iContext); |