summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2017-09-12 12:14:57 +0300
committerGeorge Hazan <ghazan@miranda.im>2017-09-12 12:14:57 +0300
commit69409021aced78b31da0c9f2def7332a4c4b973e (patch)
tree3d9a6607f042acb8d44ece5f3fb08a4125a94e45 /include
parente09448dd03e3647717166e92ee818e395041993a (diff)
Revert "Merge branch 'master' of https://github.com/miranda-ng/miranda-ng"
This reverts commit e09448dd03e3647717166e92ee818e395041993a, reversing changes made to b0f44b16bd1138de85a5d17bb42151742f9c8298.
Diffstat (limited to 'include')
-rw-r--r--include/delphi/m_helpers.inc21
-rw-r--r--include/delphi/m_skin.inc57
-rw-r--r--include/m_skin.h80
3 files changed, 146 insertions, 12 deletions
diff --git a/include/delphi/m_helpers.inc b/include/delphi/m_helpers.inc
index f155f94866..d5160da04c 100644
--- a/include/delphi/m_helpers.inc
+++ b/include/delphi/m_helpers.inc
@@ -33,6 +33,9 @@ function Langpack_Register:int_ptr;
function CreateProtoServiceFunction(const szModule, szService: PAnsiChar; serviceProc: TMIRANDASERVICE): int_ptr;
+function SkinAddNewSound(const name, description, defaultFile: PAnsiChar): int_ptr;
+function SkinPlaySound (const name: PAnsiChar): int_ptr;
+
function Menu_AddContextFrameMenuItem(mi:PMO_MenuItem):HGENMENU;
function Menu_AddMainMenuItem (mi:PMO_MenuItem):HGENMENU;
function Menu_AddContactMenuItem (mi:PMO_MenuItem):HGENMENU;
@@ -273,6 +276,24 @@ begin
Result := CreateServiceFunction(szStr, @serviceProc);
end;
+function SkinAddNewSound(const name, description, defaultFile: PAnsiChar): int_ptr;
+var
+ ssd: TSKINSOUNDDESCEX;
+begin
+ FillChar(ssd,SizeOf(ssd),0);
+ ssd.cbSize := sizeof(ssd);
+ ssd.pszName := name;
+ ssd.pszDescription.a := description;
+ ssd.pszDefaultFile.a := defaultFile;
+ Result := CallService(MS_SKIN_ADDNEWSOUND, hLangpack, lParam(@ssd));
+end;
+
+function SkinPlaySound (const name: PAnsiChar): int_ptr;
+ {$IFDEF AllowInline}inline;{$ENDIF}
+begin
+ Result := CallService(MS_SKIN_PLAYSOUND, 0, lParam(name));
+end;
+
function Menu_AddContextFrameMenuItem(mi:PMO_MenuItem):HGENMENU;
begin
diff --git a/include/delphi/m_skin.inc b/include/delphi/m_skin.inc
index 0aa6d537e9..5c07d87008 100644
--- a/include/delphi/m_skin.inc
+++ b/include/delphi/m_skin.inc
@@ -115,6 +115,19 @@ function Skin_LoadProtoIcon(protoName:PAnsiChar; iconId:int; big:byte) : HICON;
external AppDLL name 'Skin_LoadProtoIcon';
const
+ SSDF_UNICODE = $0001;
+type
+ PSKINSOUNDDESCEX = ^TSKINSOUNDDESCEX;
+ TSKINSOUNDDESCEX = record
+ cbSize : int;
+ pszName : PAnsiChar; // name to refer to sound when playing and in DB
+ pszDescription: TChar; // [TRANSLATED-BY-CORE] description to use for it in options dialog
+ pszDefaultFile: TChar; // the default sound file to use, WITHOUT path
+ pszSection : TChar; // [TRANSLATED-BY-CORE] section name used to group sounds (NULL is acceptable)
+ dwFlags : dword; // if Miranda ver >=9.0
+ end;
+
+const
{
Affect : Load an icon from the user's custom skin lib, or from the exe
if there isn't one loaded, see notes
@@ -124,6 +137,40 @@ const
MS_SKIN_LOADICON:PAnsiChar = 'Skin/Icons/Load';
{
+ Affect : Load an icon representing the status_wanted for a particular protocol, see notes
+ Returns: an HICON for the new icon, do NOT DestroyIcon() the return value
+ returns NULL(0) on failure.
+ Notes : If wParam is NULL(0) the service will load the user's selected
+ 'all protocols' status icon
+ }
+
+ {
+ wParam : hLangpack
+ lParam : Pointer to a initialised SKINSOUNDDESC
+ Affect : Add a new sound so it has a default and can be changed in the
+ options dialog
+ Returns: 0 on success, [non zero] on failure
+ }
+ MS_SKIN_ADDNEWSOUND:PAnsiChar = 'Skin/Sounds/AddNew';
+
+ {
+ wParam : 0
+ lParam : Pointer to a null terminated string containing the name of the
+ sound to play
+ Affect : plays a named sound event, play name should of been added
+ with MS_SKIN_ADDNEWSOUND, see notes
+ Notes : function will not fail, it will play the Windows
+ }
+ MS_SKIN_PLAYSOUND:PAnsiChar = 'Skin/Sounds/Play';
+
+ {
+ wParam = 0
+ lParam = (WideChar *) ptszFileName
+ Affect: plays any sound file
+ }
+ MS_SKIN_PLAYSOUNDFILE:PAnsiChar = 'Skin/Sounds/PlayFile';
+
+ {
wParam : 0
lParam : 0
Affect : Sent when the icons DLL has been changed in the options dialog
@@ -131,4 +178,14 @@ const
}
ME_SKIN_ICONSCHANGED:PAnsiChar = 'Skin/IconsChanged';
+ {
+ wParam: 0 when playing sound (1 when sound is being previewed)
+ lParam: (AnsiChar*) pszSoundFile
+ Affect: This hook is fired when the sound module needs to play a sound
+ Note : This event has default processing, if no one HookEvent()'s this
+ event then it will use the default hook code, which uses PlaySound()
+ Version: 0.3.4a (2004/09/15)
+ }
+ ME_SKIN_PLAYINGSOUND:PAnsiChar = 'Skin/Sounds/Playing';
+
{$ENDIF}
diff --git a/include/m_skin.h b/include/m_skin.h
index 155b887ed6..1d9f4d23a0 100644
--- a/include/m_skin.h
+++ b/include/m_skin.h
@@ -117,26 +117,84 @@ EXTERN_C MIR_APP_DLL(char*) Skin_GetIconName(int idx);
// returns NULL on failure
// if szProto is NULL the function will load the user's selected 'all protocols'
// status icon.
-
EXTERN_C MIR_APP_DLL(HICON) Skin_LoadProtoIcon(const char *szProto, int status, bool big = false);
/////////////////////////////////////////////////////////////////////////////////////////
-// adds a new sound so it has a default and can be changed in the options dialog
+// add a new sound so it has a default and can be changed in the options dialog
+// wParam = hLangpack
+// lParam = (LPARAM)(SKINSOUNDDESC*)ssd;
// returns 0 on success, nonzero otherwise
-EXTERN_C MIR_APP_DLL(int) Skin_AddSound(const char *name, const wchar_t *section, const wchar_t *description, const wchar_t *defaultFile = nullptr, int = hLangpack);
+#define SSDF_UNICODE 0x0001
+
+typedef struct {
+ int cbSize;
+ const char *pszName; // name to refer to sound when playing and in db
+ union {
+ const char *pszDescription; // [TRANSLATED-BY-CORE] description for options dialog
+ const wchar_t *pwszDescription;
+ };
+ union {
+ const char *pszDefaultFile; // default sound file to use
+ const wchar_t *pwszDefaultFile;
+ };
+ union {
+ const char *pszSection; // [TRANSLATED-BY-CORE] section name used to group sounds (NULL is acceptable)
+ const wchar_t *pwszSection;
+ };
+ DWORD dwFlags;
+}
+ SKINSOUNDDESCEX;
+
+__forceinline INT_PTR SkinAddNewSoundEx(const char *name, const char *section, const char *description, const char *defaultFile = NULL)
+{
+ SKINSOUNDDESCEX ssd = { 0 };
+ ssd.cbSize = sizeof(ssd);
+ ssd.pszName = name;
+ ssd.pszSection = section;
+ ssd.pszDescription = description;
+ ssd.pszDefaultFile = defaultFile;
+ return CallService("Skin/Sounds/AddNew", hLangpack, (LPARAM)&ssd);
+}
+
+__forceinline INT_PTR SkinAddNewSoundExW(const char *name, const wchar_t *section, const wchar_t *description, const wchar_t *defaultFile = NULL)
+{
+ SKINSOUNDDESCEX ssd = { 0 };
+ ssd.cbSize = sizeof(ssd);
+ ssd.dwFlags = SSDF_UNICODE;
+ ssd.pszName = name;
+ ssd.pwszSection = section;
+ ssd.pwszDescription = description;
+ ssd.pwszDefaultFile = defaultFile;
+ return CallService("Skin/Sounds/AddNew", hLangpack, (LPARAM)&ssd);
+}
+
+__forceinline INT_PTR Skin_AddSound(SKINSOUNDDESCEX *ssd)
+{
+ return CallService("Skin/Sounds/AddNew", hLangpack, (LPARAM)ssd);
+}
+
+#define MS_SKIN_PLAYSOUND "Skin/Sounds/Play"
/////////////////////////////////////////////////////////////////////////////////////////
-// plays a registered sound
-// returns 0 on success, nonzero otherwise
+// plays a named sound event
+// wParam = 0
+// lParam = (LPARAM)(const char*)pszName
+// pszName should have been added with Skin/Sounds/AddNew, but if not the
+// function will not fail, it will play the Windows default sound instead.
+__forceinline INT_PTR SkinPlaySound(const char *name) {
+ return CallService(MS_SKIN_PLAYSOUND, 0, (LPARAM)name);
+}
-EXTERN_C MIR_APP_DLL(int) Skin_PlaySound(const char *name);
+#define MS_SKIN_PLAYSOUNDFILE "Skin/Sounds/PlayFile"
/////////////////////////////////////////////////////////////////////////////////////////
-// plays the sound file (non-registered)
-// returns 0 on success, nonzero otherwise
-
-EXTERN_C MIR_APP_DLL(int) Skin_PlaySoundFile(const wchar_t *pwszFileName);
+// plays any sound file
+// wParam = 0
+// lParam = (LPARAM)(const wchar_t*)ptszFileName
+__forceinline INT_PTR SkinPlaySoundFile(const wchar_t *ptszFileName) {
+ return CallService(MS_SKIN_PLAYSOUNDFILE, 0, (LPARAM)ptszFileName);
+}
/////////////////////////////////////////////////////////////////////////////////////////
@@ -146,7 +204,6 @@ EXTERN_C MIR_APP_DLL(void) KillModuleSounds(int hLangpack);
// sent when the icons DLL has been changed in the options dialog, and everyone
// should re-make their image lists
// wParam = lParam = 0
-
#define ME_SKIN_ICONSCHANGED "Skin/IconsChanged"
/////////////////////////////////////////////////////////////////////////////////////////
@@ -155,7 +212,6 @@ EXTERN_C MIR_APP_DLL(void) KillModuleSounds(int hLangpack);
// Affect: This hook is fired when the sound module needs to play a sound
// Note : This event has default processing, if no one HookEvent()'s this event then it will
// use the default hook code, which uses PlaySound()
-
#define ME_SKIN_PLAYINGSOUND "Skin/Sounds/Playing"
#endif //M_SKIN_H__