Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Создание Click Plug-in DLL

From Wiki
Jump to: navigation, search
Article Metadata

Пример кода
Исходный файл: Media:ClickerSoundPlugIn3rd.zip

Статья
Автор: truf (15 Mar 2008)
Последнее редактирование: hamishwillee (10 Nov 2011)
ID   Creation date March 15, 2008
Platform S60 3rd Edition Tested on devices Nokia 3250
Category Symbian C++ Subcategory Base/System
Keywords: RSoundPlugIn, CClickMaker, KEYCLICKPLUGIN

Введение

Click Plug-in DLL - это системные библиотеки Symbian, позволяющие обрабатывать нажатия клавиш и стилуса. Основным назначением является воспроизведение короткого звукового сигнала, соответствующего нажатой клавише.

Click Plug-in DLL загружаются системным процессом EwSrv.exe, и поэтому должны иметь следующую модель возможностей: PowerMgmt, ProtServ, ReadDeviceData, WriteDeviceData. Click Plug-in DLL являются полиморфными библиотеками, содержащими класс, реализующий интерфейс CClickMaker, и должны находится в директории "\sys\bin\".

При включении устройства, Symbian загружает Click Plug-in DLL указанную после ключевого слова KEYCLICKPLUGIN в файле wsini.ini. В этом же файле использование Click Plug-in может быть запрещено ключевым словом KEYCLICKPLUGINFIXED, поэтому данный пример работает не на всех устройствах.

Для того, чтобы программно загрузить, изменить или выгрузить Click Plug-in DLL, приложение должно создать экземпляр клиента системного процесса RSoundPlugIn. Использование RSoundPlugIn::Load() и RSoundPlugIn::Unload() требует объявления WriteDeviceData в возможностях приложения-клиента.

RSoundPlugIn и CClickMaker объявлены в W32STD.H.

MMP файл Plug-in'а (часть)

TARGET		  MyClickerPlugin.dll
TARGETTYPE DLL
UID 0x10004F63 0xE057FBBA
 
LIBRARY euser.lib ws32.lib
 
CAPABILITY PowerMgmt ProtServ ReadDeviceData WriteDeviceData

Заголовочный файл Plug-in'а

#include <e32base.h>     // CBase
#include <e32std.h> // TBuf
#include <W32CLICK.H> // CClickMaker
 
class CMyClickerPlugin : public CClickMaker
{
public:
CMyClickerPlugin();
IMPORT_C void KeyEvent(TEventCode aType, const TKeyEvent &aEvent);
IMPORT_C void PointerEvent(const TPointerEvent &aEvent);
IMPORT_C void OtherEvent(TInt aType, TAny *aParam=NULL);
IMPORT_C TInt CommandReplyL(TInt aOpcode, TAny *aArgs);
};

Первая функция полиморфной dll Plug-in'а

EXPORT_C CClickMaker* CreateClickMakerL()
{
return new (ELeave) CMyClickerPlugin;
}

MMP файл клиента (часть)

LIBRARY		 ws32.lib 
 
CAPABILITY WriteDeviceData

Получение информации о поддержке Click Sound Plug-in

RWsSession session;
User::LeaveIfError(session.Connect());
SoundPlugIn = new RSoundPlugIn(session);
TBool Is_Changeble;
TBool Is_Loaded = SoundPlugIn->IsLoaded(Is_Changeble);
if (Is_Loaded) { .. } else { .. }
if (Is_Changeble) { .. } else { .. }
SoundPlugIn.Close();
session.Close();

Загрузка Click Sound Plug-in

_LIT(KPluginDll,"MyClickerPlugin.dll");
SoundPlugIn->Load(KPluginDll());

Выгрузка Click Sound Plug-in

TInt err = SoundPlugIn->Unload();

Демонстрационный проект

Здесь вы можете скачать демонстрационный проект, создающий Click Sound Plug-in для воспроизведения сигнала частотой 1000 Герц и длительностью 0,25 секунды с помощью CMdaAudioToneUtility при нажатии любой клавиши. Для загрузки и выгрузки библиотеки, в проекте содержится GUI приложение-клиент. File:ClickerSoundPlugIn3rd.zip

This page was last modified on 10 November 2011, at 03:15.
35 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×