mmserv/tms/tmscallserver/src/tmsdtmftoneplayer.cpp
changeset 22 128eb6a32b84
parent 14 80975da52420
equal deleted inserted replaced
16:43d09473c595 22:128eb6a32b84
    14  * Description: Telephony Multimedia Service
    14  * Description: Telephony Multimedia Service
    15  *
    15  *
    16  */
    16  */
    17 
    17 
    18 // INCLUDE FILES
    18 // INCLUDE FILES
    19 #include <mdaaudiotoneplayer.h>
       
    20 #include <AudioPreference.h>
       
    21 #include "tmsutility.h"
    19 #include "tmsutility.h"
    22 #include "tmsdtmftoneplayer.h"
    20 #include "tmsdtmftoneplayer.h"
    23 
    21 
    24 // CONSTANTS
    22 // CONSTANTS
    25 const gint KBufSize = 10;
    23 const gint KBufSize = 10;
    38 // TMSAudioDtmfTonePlayer::NewL
    36 // TMSAudioDtmfTonePlayer::NewL
    39 // Two-phased constructor.
    37 // Two-phased constructor.
    40 // -----------------------------------------------------------------------------
    38 // -----------------------------------------------------------------------------
    41 //
    39 //
    42 TMSAudioDtmfTonePlayer* TMSAudioDtmfTonePlayer::NewL(
    40 TMSAudioDtmfTonePlayer* TMSAudioDtmfTonePlayer::NewL(
    43         TMSDTMFTonePlayerObserver& obsrvr, guint aAudioPreference,
    41         TMSDTMFTonePlayerObserver& obsrvr, guint audioPreference,
    44         guint aAudioPriority)
    42         guint audioPriority)
    45     {
    43     {
    46     //iObserver = obsrvr;
    44     TMSAudioDtmfTonePlayer* self = new (ELeave) TMSAudioDtmfTonePlayer(obsrvr,
    47     TMSAudioDtmfTonePlayer* self = new (ELeave) TMSAudioDtmfTonePlayer(
    45             audioPreference, audioPriority);
    48             obsrvr, aAudioPreference, aAudioPriority);
       
    49 
    46 
    50     CleanupStack::PushL(self);
    47     CleanupStack::PushL(self);
    51     self->ConstructL();
    48     self->ConstructL();
    52     CleanupStack::Pop(self);
    49     CleanupStack::Pop(self);
    53     return self;
    50     return self;
    67 // C++ default constructor can NOT contain any code, that
    64 // C++ default constructor can NOT contain any code, that
    68 // might leave.
    65 // might leave.
    69 // -----------------------------------------------------------------------------
    66 // -----------------------------------------------------------------------------
    70 //
    67 //
    71 TMSAudioDtmfTonePlayer::TMSAudioDtmfTonePlayer(
    68 TMSAudioDtmfTonePlayer::TMSAudioDtmfTonePlayer(
    72         TMSDTMFTonePlayerObserver& obsrvr, guint aAudioPreference,
    69         TMSDTMFTonePlayerObserver& obsrvr, guint audioPreference,
    73         guint aAudioPriority) :
    70         guint audioPriority) :
    74     iObserver(obsrvr),
    71     iObserver(obsrvr),
    75     iPref(aAudioPreference),
    72     iPref(audioPreference),
    76     iPrior(aAudioPriority)
    73     iPrior(audioPriority)
    77     {
    74     {
    78     TRACE_PRN_FN_ENT;
    75     TRACE_PRN_FN_ENT;
    79     TRACE_PRN_FN_EXT;
    76     TRACE_PRN_FN_EXT;
    80     }
    77     }
    81 
    78 
    98 // -----------------------------------------------------------------------------
    95 // -----------------------------------------------------------------------------
    99 // TMSAudioDtmfTonePlayer::SetVolume
    96 // TMSAudioDtmfTonePlayer::SetVolume
   100 // Sets the volume level that is used when the dtmf tone is played.
    97 // Sets the volume level that is used when the dtmf tone is played.
   101 // -----------------------------------------------------------------------------
    98 // -----------------------------------------------------------------------------
   102 //
    99 //
   103 void TMSAudioDtmfTonePlayer::SetVolume(gint aVolume)
   100 void TMSAudioDtmfTonePlayer::SetVolume(gint volume)
   104     {
   101     {
   105     TRACE_PRN_FN_ENT;
   102     TRACE_PRN_FN_ENT;
   106     gint vol = ConvertVolume(aVolume);
   103     gint vol = ConvertVolumeLevel(volume);
   107 
   104 
   108     if (vol != iVolume)
   105     if (vol != iVolume)
   109         {
   106         {
   110         iVolume = vol;
   107         iVolume = vol;
   111         iDTMFPlayer->SetVolume(iVolume);
   108         iDTMFPlayer->SetVolume(iVolume);
   117 // TMSAudioDtmfTonePlayer::PlayDtmfTone
   114 // TMSAudioDtmfTonePlayer::PlayDtmfTone
   118 // Searches the given DTMF tone from iToneArray and calls PlayCurrentTone
   115 // Searches the given DTMF tone from iToneArray and calls PlayCurrentTone
   119 // member function.
   116 // member function.
   120 // -----------------------------------------------------------------------------
   117 // -----------------------------------------------------------------------------
   121 //
   118 //
   122 void TMSAudioDtmfTonePlayer::PlayDtmfTone(TDes& aTone)
   119 void TMSAudioDtmfTonePlayer::PlayDtmfTone(TDes& tone)
   123     {
   120     {
   124     TRACE_PRN_FN_ENT;
   121     TRACE_PRN_FN_ENT;
   125     Cancel();
   122     Cancel();
   126 
   123 
   127     // DTMF signalling.
   124     // DTMF signaling.
   128     if (iDTMFPlayer)
   125     if (iDTMFPlayer)
   129         {
   126         {
   130         TBuf<KBufSize> key;
   127         TBuf<KBufSize> key;
   131         key.Append(aTone);
   128         key.Append(tone);
   132         TRAP_IGNORE(iDTMFPlayer->PlayDTMFStringL(aTone));
   129         TRAP_IGNORE(iDTMFPlayer->PlayDTMFStringL(tone));
   133         }
   130         }
   134     TRACE_PRN_FN_EXT;
   131     TRACE_PRN_FN_EXT;
   135     }
   132     }
   136 
   133 
   137 // -----------------------------------------------------------------------------
   134 // -----------------------------------------------------------------------------
   150 // TMSAudioDtmfTonePlayer::Normalize
   147 // TMSAudioDtmfTonePlayer::Normalize
   151 // Lowers case for chars and if its '*','+', or 'w' sets it to asterisk
   148 // Lowers case for chars and if its '*','+', or 'w' sets it to asterisk
   152 // char ('*').
   149 // char ('*').
   153 // -----------------------------------------------------------------------------
   150 // -----------------------------------------------------------------------------
   154 //
   151 //
   155 void TMSAudioDtmfTonePlayer::Normalize(TChar& aTone)
   152 void TMSAudioDtmfTonePlayer::Normalize(TChar& tone)
   156     {
   153     {
   157     TRACE_PRN_FN_ENT;
   154     TRACE_PRN_FN_ENT;
   158     aTone.LowerCase();
   155     tone.LowerCase();
   159 
       
   160     TPtrC ast(KPhoneTone_Asterisk);
   156     TPtrC ast(KPhoneTone_Asterisk);
   161 
   157 
   162     if (ast.Locate(aTone) != KErrNotFound)
   158     if (ast.Locate(tone) != KErrNotFound)
   163         {
   159         {
   164         aTone = ast[0];
   160         tone = ast[0];
   165         }
   161         }
   166     TRACE_PRN_FN_EXT;
   162     TRACE_PRN_FN_EXT;
   167     }
   163     }
   168 
   164 
   169 // -----------------------------------------------------------------------------
   165 // -----------------------------------------------------------------------------
   175     TRACE_PRN_FN_ENT;
   171     TRACE_PRN_FN_ENT;
   176 
   172 
   177     if (aError == KErrNone)
   173     if (aError == KErrNone)
   178         {
   174         {
   179         TMMFPrioritySettings dtmfPlayerSettings;
   175         TMMFPrioritySettings dtmfPlayerSettings;
   180         dtmfPlayerSettings.iPref = (TMdaPriorityPreference) iPref;
   176         dtmfPlayerSettings.iPref = iPref;
   181         dtmfPlayerSettings.iPriority = iPrior;
   177         dtmfPlayerSettings.iPriority = iPrior;
   182         dtmfPlayerSettings.iState = EMMFStateTonePlaying;
   178         dtmfPlayerSettings.iState = EMMFStateTonePlaying;
   183         iDTMFPlayer->SetPrioritySettings(dtmfPlayerSettings);
   179         iDTMFPlayer->SetPrioritySettings(dtmfPlayerSettings);
   184 
   180 
   185         TTimeIntervalMicroSeconds32 length(KDTMFToneLengthOn);
   181         TTimeIntervalMicroSeconds32 length(KDTMFToneLengthOn);
   204     iObserver.DTMFToneFinished(aError);
   200     iObserver.DTMFToneFinished(aError);
   205     TRACE_PRN_FN_EXT;
   201     TRACE_PRN_FN_EXT;
   206     }
   202     }
   207 
   203 
   208 // -----------------------------------------------------------------------------
   204 // -----------------------------------------------------------------------------
   209 // TMSAudioDtmfTonePlayer::BufferToBeFilled
   205 // TMSAudioDtmfTonePlayer::ConvertVolumeLevel
   210 // -----------------------------------------------------------------------------
   206 // -----------------------------------------------------------------------------
   211 //
   207 //
   212 void TMSAudioDtmfTonePlayer::BufferToBeFilled(CMMFBuffer* /*aBuffer*/)
   208 gint TMSAudioDtmfTonePlayer::ConvertVolumeLevel(gint volume)
   213     {
   209     {
   214     TRACE_PRN_FN_ENT;
   210     TRACE_PRN_FN_ENT;
   215     TRACE_PRN_FN_EXT;
   211     gint result = iDTMFPlayer->MaxVolume() * volume / KMaxVolumeLevel;
   216     }
       
   217 
       
   218 // -----------------------------------------------------------------------------
       
   219 // TMSAudioDtmfTonePlayer::PlayError
       
   220 // -----------------------------------------------------------------------------
       
   221 //
       
   222 void TMSAudioDtmfTonePlayer::PlayError(TInt /*aError*/)
       
   223     {
       
   224     TRACE_PRN_FN_ENT;
       
   225     TRACE_PRN_FN_EXT;
       
   226     }
       
   227 
       
   228 // -----------------------------------------------------------------------------
       
   229 // TMSAudioDtmfTonePlayer::BufferToBeEmptied
       
   230 // -----------------------------------------------------------------------------
       
   231 //
       
   232 void TMSAudioDtmfTonePlayer::BufferToBeEmptied(CMMFBuffer* /*aBuffer*/)
       
   233     {
       
   234     TRACE_PRN_FN_ENT;
       
   235     TRACE_PRN_FN_EXT;
       
   236     }
       
   237 
       
   238 // -----------------------------------------------------------------------------
       
   239 // TMSAudioDtmfTonePlayer::RecordError
       
   240 // -----------------------------------------------------------------------------
       
   241 //
       
   242 void TMSAudioDtmfTonePlayer::RecordError(TInt /*aError*/)
       
   243     {
       
   244     TRACE_PRN_FN_ENT;
       
   245     TRACE_PRN_FN_EXT;
       
   246     }
       
   247 
       
   248 // -----------------------------------------------------------------------------
       
   249 // TMSAudioDtmfTonePlayer::ConvertError
       
   250 // -----------------------------------------------------------------------------
       
   251 //
       
   252 void TMSAudioDtmfTonePlayer::ConvertError(TInt /*aError*/)
       
   253     {
       
   254     TRACE_PRN_FN_ENT;
       
   255     TRACE_PRN_FN_EXT;
       
   256     }
       
   257 
       
   258 // -----------------------------------------------------------------------------
       
   259 // TMSAudioDtmfTonePlayer::DeviceMessage
       
   260 // -----------------------------------------------------------------------------
       
   261 //
       
   262 void TMSAudioDtmfTonePlayer::DeviceMessage(TUid /*aMessageType*/,
       
   263         const TDesC8& /*aMsg*/)
       
   264     {
       
   265     TRACE_PRN_FN_ENT;
       
   266     TRACE_PRN_FN_EXT;
       
   267     }
       
   268 
       
   269 // -----------------------------------------------------------------------------
       
   270 // TMSAudioDtmfTonePlayer::ConvertVolume
       
   271 // -----------------------------------------------------------------------------
       
   272 //
       
   273 gint TMSAudioDtmfTonePlayer::ConvertVolume(gint aVolume)
       
   274     {
       
   275     TRACE_PRN_FN_ENT;
       
   276     gint result = iDTMFPlayer->MaxVolume() * aVolume / KMaxVolumeLevel;
       
   277     TRACE_PRN_FN_EXT;
   212     TRACE_PRN_FN_EXT;
   278     return result;
   213     return result;
   279     }
   214     }
   280 
   215 
   281 //  End of File
   216 //  End of File