phoneapp/phoneringingtoneplayer/tsrc/t_phoneringingtoneplayer/t_phoneringingtoneplayer.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 20:26:16 +0300
changeset 64 6aaf0276100e
parent 21 92ab7f8d0eab
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
* 
* Description:
*
*/

#include <QtGui/QApplication.h>
#include <QGraphicsLinearLayout>
#include <hbaction.h>
#include <hbmenu.h>
#include <hbpushbutton.h>
#include <hbslider.h>
#include <profile.hrh>
#include "t_phoneringingtoneplayer.h"
#include "cphoneringingtonecontroller.h"
#include "TPhoneCmdParamRingTone.h"


_LIT(KNokiatune, "Z:\\Data\\Sounds\\Digital\\Nokia tune.aac");
_LIT(KSamplemp3, "c:\\Data\\Sounds\\Digital\\sample.mp3");

t_phoneringingtoneplayer::t_phoneringingtoneplayer(QGraphicsItem *parent)
    : HbView(parent), m_volume(10)
{
    setTitle(tr("t_ringingtoneplayer"));
    createMenu();
    createContent();

    m_ringingtone.Format(KNokiatune);
    m_ringingtoneplayer = CPhoneRingingToneController::NewL();
}

t_phoneringingtoneplayer::~t_phoneringingtoneplayer()
{
    delete m_ringingtoneplayer;
}
void t_phoneringingtoneplayer::createMenu()
{
    HbMenu *optionsMenu = menu();
    /*connect(optionsMenu->addAction(tr("EProfileRingingTypeRinging"))->action(), SIGNAL(triggered()), this, SLOT(PlayRingingtoneRingning()));
    connect(optionsMenu->addAction(tr("EProfileRingingTypeBeepOnce"))->action(), SIGNAL(triggered()), this, SLOT(PlayRingingtoneBeepOnce()));
    connect(optionsMenu->addAction(tr("EProfileRingingTypeSilent"))->action(), SIGNAL(triggered()), this, SLOT(PlayRingingtoneSilence()));
    connect(optionsMenu->addAction(tr("EProfileRingingTypeRinging+tts"))->action(), SIGNAL(triggered()), this, SLOT(PlayRingingtoneTTS()));  
    connect(optionsMenu->addAction(tr("EProfileRingingTypeAscending"))->action(), SIGNAL(triggered()), this, SLOT(PlayRingingtoneAscending()));  
    connect(optionsMenu->addAction(tr("EProfileRingingTypeRingingOnce"))->action(), SIGNAL(triggered()), this, SLOT(PlayRingingtoneOnce()));  
    connect(optionsMenu->addAction(tr("Stop ringingtone"))->action(), SIGNAL(triggered()), this, SLOT(StopRingingtone())); */
    connect(optionsMenu->addAction(tr("sample.mp3")), SIGNAL(triggered()), this, SLOT(SampleMP3()));
    connect(optionsMenu->addAction(tr("nokiatune.aac")), SIGNAL(triggered()), this, SLOT(Nokiatuneaac()));
    //connect(optionsMenu->addAction(tr("Quit"))->action(), SIGNAL(triggered()), qApp, SLOT(quit()));
}

void t_phoneringingtoneplayer::createContent()
{
    QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Vertical);
    
    HbPushButton *ringingButton = new HbPushButton(tr("EProfileRingingTypeRinging"), this); 
    connect(ringingButton, SIGNAL(clicked()), this, SLOT(PlayRingingtoneRingning()));
    
    HbPushButton *beeponceButton = new HbPushButton(tr("EProfileRingingTypeBeepOnce"), this); 
    connect(beeponceButton, SIGNAL(clicked()), this, SLOT(PlayRingingtoneBeepOnce()));
    
    HbPushButton *silenceButton = new HbPushButton(tr("EProfileRingingTypeSilent"), this); 
    connect(silenceButton, SIGNAL(clicked()), this, SLOT(PlayRingingtoneSilence()));
    
    HbPushButton *ttsButton = new HbPushButton(tr("EProfileRingingTypeRinging+tts"), this); 
    connect(ttsButton, SIGNAL(clicked()), this, SLOT(PlayRingingtoneTTS()));
    
    HbPushButton *ascendingButton = new HbPushButton(tr("EProfileRingingTypeAscending"), this); 
    connect(ascendingButton, SIGNAL(clicked()), this, SLOT(PlayRingingtoneAscending()));

    HbPushButton *ringingonceButton = new HbPushButton(tr("EProfileRingingTypeRingingOnce"), this); 
    connect(ringingonceButton, SIGNAL(clicked()), this, SLOT(PlayRingingtoneOnce()));

    HbPushButton *stopButton = new HbPushButton(tr("Stop ringingtone"), this); 
    connect(stopButton, SIGNAL(clicked()), this, SLOT(StopRingingtone()));
    
    HbPushButton *quitButton = new HbPushButton(tr("Quit"), this); 
    connect(quitButton, SIGNAL(clicked()), qApp, SLOT(quit()));
    
    HbSlider *volumeslider = new HbSlider(this);
    //volumeslider->setSliderType(HbSlider::VolumeSlider);
    volumeslider->setOrientation( Qt::Horizontal);
    volumeslider->setMinimum(EProfileRingingVolumeLevel1);
    volumeslider->setMaximum(EProfileRingingVolumeLevel10);
    volumeslider->setSingleStep(1);
    volumeslider->setValue(m_volume);
    connect(volumeslider, SIGNAL(valueChanged(int)), this, SLOT(volumeSliderChanged(int)));
    
    mainLayout->addItem(volumeslider);
    mainLayout->addItem(ringingButton);
    mainLayout->addItem(beeponceButton);
    mainLayout->addItem(silenceButton);
    mainLayout->addItem(ttsButton);
    mainLayout->addItem(ascendingButton);
    mainLayout->addItem(ringingonceButton);
    mainLayout->addItem(stopButton);
    mainLayout->addItem(quitButton);
    //mainLayout->addStretch();

    setLayout(mainLayout);
}

void t_phoneringingtoneplayer::PlayRingingtoneRingning()
{
    m_ringingtoneplayer->StopPlaying();
    TPhoneCmdParamRingTone ringToneParam;
    ringToneParam.SetVolume(m_volume);
    ringToneParam.SetRingingType(EProfileRingingTypeRinging);
    // Set the profile ring tone
    ringToneParam.SetRingTone( m_ringingtone);
    ringToneParam.SetType( EPhoneRingToneProfile );

    m_ringingtoneplayer->PlayRingToneL( &ringToneParam );
}

void t_phoneringingtoneplayer::PlayRingingtoneBeepOnce()
{
    m_ringingtoneplayer->StopPlaying();
    TPhoneCmdParamRingTone ringToneParam;
    ringToneParam.SetVolume(m_volume);
    ringToneParam.SetRingingType(EProfileRingingTypeBeepOnce);
    // Set the profile ring tone
    ringToneParam.SetRingTone( m_ringingtone);
    ringToneParam.SetType( EPhoneRingToneProfile );

    m_ringingtoneplayer->PlayRingToneL( &ringToneParam );
}


void t_phoneringingtoneplayer::PlayRingingtoneSilence()
{
    m_ringingtoneplayer->StopPlaying();
    TPhoneCmdParamRingTone ringToneParam;
    ringToneParam.SetVolume(m_volume);
    ringToneParam.SetRingingType(EProfileRingingTypeSilent);
    // Set the profile ring tone
    ringToneParam.SetRingTone( m_ringingtone);
    ringToneParam.SetType( EPhoneRingToneProfile );

    m_ringingtoneplayer->PlayRingToneL( &ringToneParam );
}

void t_phoneringingtoneplayer::PlayRingingtoneTTS()
{
    m_ringingtoneplayer->StopPlaying();
    _LIT(KTextToSay, "Mr. Brownstone");
    TBuf<30> texttosay (KTextToSay);
    TPhoneCmdParamRingTone ringToneParam;
    ringToneParam.SetVolume(m_volume);
    ringToneParam.SetRingingType(EProfileRingingTypeRinging);
    ringToneParam.SetTextToSay(texttosay);
    // Set the profile ring tone
    ringToneParam.SetRingTone( m_ringingtone);
    ringToneParam.SetType( EPhoneRingToneProfile );

    m_ringingtoneplayer->PlayRingToneL( &ringToneParam );
}

void t_phoneringingtoneplayer::PlayRingingtoneAscending()
{
    m_ringingtoneplayer->StopPlaying();
    TPhoneCmdParamRingTone ringToneParam;
    ringToneParam.SetVolume(m_volume);
    ringToneParam.SetRingingType(EProfileRingingTypeAscending);
    // Set the profile ring tone
    ringToneParam.SetRingTone( m_ringingtone);
    ringToneParam.SetType( EPhoneRingToneProfile );

    m_ringingtoneplayer->PlayRingToneL( &ringToneParam );
}

void t_phoneringingtoneplayer::PlayRingingtoneOnce()
{
    m_ringingtoneplayer->StopPlaying();

    TPhoneCmdParamRingTone ringToneParam;
    ringToneParam.SetVolume(m_volume);
    ringToneParam.SetRingingType(EProfileRingingTypeRingingOnce);
    // Set the profile ring tone
    ringToneParam.SetRingTone(m_ringingtone);
    ringToneParam.SetType( EPhoneRingToneProfile );

    m_ringingtoneplayer->PlayRingToneL( &ringToneParam );
}


void t_phoneringingtoneplayer::StopRingingtone()
{
    m_ringingtoneplayer->StopPlaying();
}

void t_phoneringingtoneplayer::SampleMP3()
{
   m_ringingtone.Format(KSamplemp3);
}
void t_phoneringingtoneplayer::Nokiatuneaac()
{
    m_ringingtone.Format(KNokiatune); 
}
void t_phoneringingtoneplayer::volumeSliderChanged(int value)
    {
    m_volume = value;
    }