diff options
author | George Hazan <george.hazan@gmail.com> | 2013-04-04 18:25:38 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2013-04-04 18:25:38 +0000 |
commit | 8b4ca50acec418a7b16241b022f4e4b98ee971d3 (patch) | |
tree | 9174b2df2f11f3623650a2fb61f63ad587cc8d8a /src/modules | |
parent | 55f03731ed14f94bfcda60ef0266eaab228e4ce3 (diff) |
MS_SKIN_PLAYSOUNDFILE: extension of MS_SKIN_PLAYSOUND that plays almost any file
git-svn-id: http://svn.miranda-ng.org/main/trunk@4304 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/skin/sounds.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/modules/skin/sounds.cpp b/src/modules/skin/sounds.cpp index 8133a7e5ef..80a7e5ff1c 100644 --- a/src/modules/skin/sounds.cpp +++ b/src/modules/skin/sounds.cpp @@ -112,6 +112,18 @@ static int SkinPlaySoundDefault(WPARAM wParam, LPARAM lParam) return 0;
}
+static INT_PTR ServiceSkinPlaySoundFile(WPARAM, LPARAM lParam)
+{
+ TCHAR *ptszFileName = (TCHAR*)lParam;
+ if (ptszFileName == NULL)
+ return 1;
+
+ TCHAR tszFull[MAX_PATH];
+ PathToAbsoluteT(ptszFileName, tszFull);
+ NotifyEventHooks(hPlayEvent, 0, (LPARAM)tszFull);
+ return 0;
+}
+
static INT_PTR ServiceSkinPlaySound(WPARAM, LPARAM lParam)
{
char* pszSoundName = (char*)lParam;
@@ -123,14 +135,14 @@ static INT_PTR ServiceSkinPlaySound(WPARAM, LPARAM lParam) if (idx == -1)
return 1;
- if ( db_get_b(NULL, "SkinSoundsOff", pszSoundName, 0) == 0) {
- DBVARIANT dbv;
- if ( DBGetContactSettingTString(NULL, "SkinSounds", pszSoundName, &dbv) == 0) {
- TCHAR szFull[MAX_PATH];
- PathToAbsoluteT(dbv.ptszVal, szFull);
- NotifyEventHooks(hPlayEvent, 0, (LPARAM)szFull);
- db_free(&dbv);
- }
+ if ( db_get_b(NULL, "SkinSoundsOff", pszSoundName, 0))
+ return 1;
+
+ DBVARIANT dbv;
+ if ( DBGetContactSettingTString(NULL, "SkinSounds", pszSoundName, &dbv) == 0) {
+ ServiceSkinPlaySoundFile(0, (LPARAM)dbv.ptszVal);
+ db_free(&dbv);
+ return 0;
}
return 1;
}
@@ -446,6 +458,7 @@ int LoadSkinSounds(void) CreateServiceFunction("Skin/Sounds/AddNew", ServiceSkinAddNewSound);
CreateServiceFunction(MS_SKIN_PLAYSOUND, ServiceSkinPlaySound);
+ CreateServiceFunction(MS_SKIN_PLAYSOUNDFILE, ServiceSkinPlaySoundFile);
HookEvent(ME_SYSTEM_MODULESLOADED, SkinSystemModulesLoaded);
hPlayEvent = CreateHookableEvent(ME_SKIN_PLAYINGSOUND);
SetHookDefaultForHookableEvent(hPlayEvent, SkinPlaySoundDefault);
|