Archived:Enabling and disabling defined key sound using CAknKeySoundSystem
| Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
__NOEDITSECTION__ | __NOEDITSECTION__ | ||
| − | + | {{KBCS}} | |
{|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0" | {|style="background:#eceff2" width="660px" border="1" cellpadding="5" cellspacing="0" | ||
|- | |- | ||
| − | |'''ID''' || | + | |'''ID''' || CS000951 |
| − | |'''Creation date''' || May | + | |'''Creation date''' || May 14, 2008 |
|- | |- | ||
|'''Platform''' || S60 3rd Edition, FP1 | |'''Platform''' || S60 3rd Edition, FP1 | ||
| Line 21: | Line 21: | ||
==Overview== | ==Overview== | ||
| − | This code snippet shows how CAknKeySoundSystem is used to enable/disable defined key sound. EStdKeyDevice3 (the selection key) is used as an example. | + | This code snippet shows how CAknKeySoundSystem is used to enable/disable a defined key sound. EStdKeyDevice3 (the selection key) is used as an example. |
This snippet can be self-signed. | This snippet can be self-signed. | ||
| Line 171: | Line 171: | ||
==See also== | ==See also== | ||
| − | [[ | + | [[CS000952 - Enabling and disabling all key sounds using CAknKeySoundSystem]] |
| − | [[ | + | [[CS000953 - Using customized key sounds with CAknKeySoundSystem]] |
| − | [[Category:Symbian C++]][[Category:Code Examples]][[Category:Multimedia]][[Category:Audio]] | + | [[Category:Symbian C++]][[Category:Code Examples]][[Category:Multimedia]][[Category:Audio]][[Category:S60 3rd Edition]] |
Revision as of 14:52, 14 May 2008
| ID | CS000951 | Creation date | May 14, 2008 |
| Platform | S60 3rd Edition, FP1 | Tested on devices | Nokia N93 |
| Category | Symbian C++ | Subcategory | Multimedia, Audio |
| Keywords (APIs, classes, methods, functions): CAknKeySoundSystem, CAknAppUi, AVKON_SKEY_LIST, AVKON_SKEY_INFO, CAknAppUi::KeySounds(), CAknKeySoundSystem::PushContextL(), CAknKeySoundSystem::BringToForeground(), CAknKeySoundSystem::LockContext(),CAknKeySoundSystem::PopContext(), CAknKeySoundSystem::ReleaseContext() |
Overview
This code snippet shows how CAknKeySoundSystem is used to enable/disable a defined key sound. EStdKeyDevice3 (the selection key) is used as an example.
This snippet can be self-signed.
MMP file
The following libraries are required:
LIBRARY avkon.lib
LIBRARY eikcore.lib
LIBRARY eiksrv.lib
Resource file
#include <eikon.rh>
#include <avkon.rsg>
#include <avkon.rh>
#include <e32keys.h> //EStdKeyDevice3
//----------------------------------------------------
// key sound map to disable selection key sound
//----------------------------------------------------
//
RESOURCE AVKON_SKEY_LIST r_silent_select_key_list
{
list=
{
AVKON_SKEY_INFO
{
key = EStdKeyDevice3;
sid = EAvkonSIDNoSound;
},
AVKON_SKEY_INFO
{
key = EStdKeyDevice3;
sid = EAvkonSIDNoSound;
type = ESKeyTypeLong;
},
AVKON_SKEY_INFO
{
key = EStdKeyDevice3;
sid = EAvkonSIDNoSound;
type = ESKeyTypeRepeat;
}
};
}
Header file
#ifndef __TESTERAPPVIEW_H__
#define __TESTERAPPVIEW_H__
// INCLUDES
#include <coecntrl.h>
class CAknKeySoundSystem;
class CTesterAppView : public CCoeControl
{
//...
private:
CAknKeySoundSystem* iSoundSystem;
TBool iSilentSelection;
};
#endif // __TESTERAPPVIEW_H__
Source file
#include <Tester_0xE0060BB5.RSG> //r_silent_select_key_list
#include <aknsoundsystem.h> // CAknKeySoundSystem
#include <aknappui.h>
void CTesterAppView::ConstructL(const TRect& aRect)
{
//...
iSilentSelection = EFalse;
iSoundSystem = static_cast<CAknAppUi*>(
CEikonEnv::Static()->AppUi() )->KeySounds();
if (!iSoundSystem)
{
//pointer to KeySound API object is null
User::Leave(KErrGeneral);
}
}
CTesterAppView::~CTesterAppView()
{
iSoundSystem = NULL;
}
// ---------------------------------------------------------------------------
// Disable selection key sound
// ---------------------------------------------------------------------------
//
void CTesterAppView::DisableSelectionKeySoundL()
{
if ( iSoundSystem && !iSilentSelection )
{
//load key sound map from resources and push it to the context stack
iSoundSystem->PushContextL( R_SILENT_SELECT_KEY_LIST );
//tell server to use this context stack for processing sounds
iSoundSystem->BringToForeground();
//lock this context to the foreground, other BringToForeground() calls
//will be ignored until ReleaseContext() is called
iSoundSystem->LockContext();
iSilentSelection = ETrue;
}
}
// ---------------------------------------------------------------------------
// Enable selection key sound
// ---------------------------------------------------------------------------
//
void CTesterAppView::EnableSelectionKeySound()
{
if ( iSoundSystem && iSilentSelection )
{
//release the locked context
iSoundSystem->ReleaseContext();
//pop the pushed context from the context stack
iSoundSystem->PopContext();
iSilentSelection = EFalse;
}
}
Postconditions
The selection key sound is enabled/disabled by calling methods DisableSelectionKeySoundL() and EnableSelectionKeySound().
See also
CS000952 - Enabling and disabling all key sounds using CAknKeySoundSystem CS000953 - Using customized key sounds with CAknKeySoundSystem

