Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cbcd48cc authored by Shiv Maliyappanahalli's avatar Shiv Maliyappanahalli Committed by Steve Kondik
Browse files

libmedia: Add support for LCH tones

- Add the INCALL_MUSIC flag for tracks
  created for INCALL_MUSIC stream.
- Adding tones to the ToneGenerator that are
  to be used for Local Call Hold.

Change-Id: If4092630ec67b11fd2844d0218639a2c5ae6b687
parent 3dc6ae1f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -147,6 +147,10 @@ public:
        TONE_CDMA_ABBR_ALERT,
        TONE_CDMA_SIGNAL_OFF,
        //CDMA end
        TONE_LOCAL_CW,
        TONE_SUPERVISORY_CH,
        TONE_HOLD_RECALL,

        NUM_TONES,
        NUM_SUP_TONES = LAST_SUP_TONE-FIRST_SUP_TONE+1
    };
+25 −1
Original line number Diff line number Diff line
@@ -698,6 +698,22 @@ const ToneGenerator::ToneDescriptor ToneGenerator::sToneDescriptors[] = {
          { segments: { { duration: 0, waveFreq: { 0 }, 0, 0 }},
          repeatCnt: 0,
          repeatSegment: 0 },                            // TONE_CDMA_SIGNAL_OFF
        { segments: { { duration: 300, waveFreq: { 450, 0 }, 0, 0 },
                      { duration: 300, waveFreq: { 450, 0 }, 0, 0 },
                      { duration: 5000, waveFreq: { 0 }, 0, 0 },
                      { duration: 0 , waveFreq: { 0 }, 0, 0}},
          repeatCnt: ToneGenerator::TONEGEN_INF,
          repeatSegment: 0 },                              // TONE_LOCAL_CW
        { segments: { { duration: 3000, waveFreq: { 0 }, 0, 0 },
                      { duration: 500, waveFreq: { 450, 0 }, 0, 0 },
                      { duration: 0 , waveFreq: { 0 }, 0, 0}},
          repeatCnt: ToneGenerator::TONEGEN_INF,
          repeatSegment: 0 },                              // TONE_SUPERVISORY_CW
        { segments: { { duration: 15000, waveFreq: { 0 }, 0, 0 },
                      { duration: 500, waveFreq: { 450, 0 }, 0, 0 },
                      { duration: 0 , waveFreq: { 0 }, 0, 0}},
          repeatCnt: ToneGenerator::TONEGEN_INF,
          repeatSegment: 0 },                              // TONE_HOLD_RECALL

        { segments: { { duration: ToneGenerator::TONEGEN_INF, waveFreq: { 350, 440, 0 }, 0, 0 },
                      { duration: 0 , waveFreq: { 0 }, 0, 0}},
@@ -1042,6 +1058,14 @@ void ToneGenerator::stopTone() {
////////////////////////////////////////////////////////////////////////////////
bool ToneGenerator::initAudioTrack() {

    audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_FAST;
#ifdef QCOM_HARDWARE
    // Set AUDIO_OUTPUT_FLAG_DIRECT and AUDIO_OUTPUT_FLAG_INCALL_MUSIC for incall music delivery
    if (mStreamType == AUDIO_STREAM_INCALL_MUSIC) {
        flags = (audio_output_flags_t)(AUDIO_OUTPUT_FLAG_DIRECT | AUDIO_OUTPUT_FLAG_INCALL_MUSIC);
    }
#endif

    // Open audio track in mono, PCM 16bit, default sampling rate, default buffer size
    mpAudioTrack = new AudioTrack();
    ALOGV("Create Track: %p", mpAudioTrack.get());
@@ -1051,7 +1075,7 @@ bool ToneGenerator::initAudioTrack() {
                      AUDIO_FORMAT_PCM_16_BIT,
                      AUDIO_CHANNEL_OUT_MONO,
                      0,    // frameCount
                      AUDIO_OUTPUT_FLAG_FAST,
                      flags,
                      audioCallback,
                      this, // user
                      0,    // notificationFrames