From 807c615665f03294e670f64cb02174c5a28a74f9 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Wed, 18 Nov 2009 12:41:46 +0200 Subject: modified: watrack_mpd/globals.h modified: watrack_mpd/init.c modified: watrack_mpd/main.c modified: watrack_mpd/options.c modified: watrack_mpd/resource.h modified: watrack_mpd/watrack_mpd.rc --- watrack_mpd/globals.h | 2 ++ watrack_mpd/init.c | 18 +++++++++++- watrack_mpd/main.c | 2 +- watrack_mpd/options.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++ watrack_mpd/resource.h | 6 +++- watrack_mpd/watrack_mpd.rc | 6 ++++ 6 files changed, 100 insertions(+), 3 deletions(-) diff --git a/watrack_mpd/globals.h b/watrack_mpd/globals.h index a54e840..e1d54e8 100755 --- a/watrack_mpd/globals.h +++ b/watrack_mpd/globals.h @@ -5,4 +5,6 @@ HANDLE ghConnection; HANDLE ghPacketReciever; HANDLE ghRecieverThread; BOOL bWatrackService; +TCHAR *gbHost, *gbPassword; +WORD gbPort; #endif diff --git a/watrack_mpd/init.c b/watrack_mpd/init.c index d1fe8fe..bbc11eb 100755 --- a/watrack_mpd/init.c +++ b/watrack_mpd/init.c @@ -24,6 +24,7 @@ PLUGINLINK *pluginLink; BOOL bWatrackService = FALSE; static int OnModulesLoaded(WPARAM wParam,LPARAM lParam); extern char *date(); +extern int WaMpdOptInit(WPARAM wParam,LPARAM lParam); PLUGININFOEX pluginInfo={ @@ -76,15 +77,28 @@ int __declspec(dllexport) Load(PLUGINLINK *link) return 0; } +void InitVars() +{ + gbPort = DBGetContactSettingWord(NULL, szModuleName, "Port", 6600); + gbPassword = (TCHAR*)malloc(64*sizeof(TCHAR)); + gbHost = (TCHAR*)malloc(128*sizeof(TCHAR)); + gbHost = UniGetContactSettingUtf(NULL, szModuleName, "Server", _T("127.0.0.1")); + gbPassword = UniGetContactSettingUtf(NULL, szModuleName, "Password", _T("")); +} + + extern void RegisterPlayer(); static int OnModulesLoaded(WPARAM wParam,LPARAM lParam) { + HANDLE hHookOptionInit; NETLIBUSER nlu = {0}; nlu.cbSize = sizeof(nlu); - nlu.flags = NUF_OUTGOING | NUF_HTTPGATEWAY; + nlu.flags = (NUF_OUTGOING | NUF_HTTPCONNS); nlu.szDescriptiveName = "Watrack MPD connection"; nlu.szSettingsModule = PLUGIN_NAME; ghNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu); + InitVars(); + hHookOptionInit = HookEvent(ME_OPT_INITIALISE, WaMpdOptInit); if (ServiceExists("WATrack/Player")) bWatrackService = TRUE; RegisterPlayer(); @@ -96,5 +110,7 @@ int __declspec(dllexport) Unload(void) { if(ghNetlibUser && (ghNetlibUser != INVALID_HANDLE_VALUE)) CallService(MS_NETLIB_SHUTDOWN,(WPARAM)ghNetlibUser,0); + free(gbHost); + free(gbPassword); return 0; } \ No newline at end of file diff --git a/watrack_mpd/main.c b/watrack_mpd/main.c index d76afc1..aa7aeef 100755 --- a/watrack_mpd/main.c +++ b/watrack_mpd/main.c @@ -68,7 +68,7 @@ void RegisterPlayer() // player.Icon = player.Notes = _T("123"); player.URL = "http:// ?"; - CallService(MS_WAT_PLAYER, (WPARAM)0, (LPARAM)&player); + CallService(MS_WAT_PLAYER, (WPARAM)WAT_ACT_REGISTER, (LPARAM)&player); } } diff --git a/watrack_mpd/options.c b/watrack_mpd/options.c index d1cff16..83002e6 100755 --- a/watrack_mpd/options.c +++ b/watrack_mpd/options.c @@ -17,6 +17,75 @@ #include "commonheaders.h" #include +HINSTANCE hInst; + +static BOOL CALLBACK DlgProcWaMpdOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); + +int WaMpdOptInit(WPARAM wParam,LPARAM lParam) +{ + OPTIONSDIALOGPAGE odp = { 0 }; + odp.cbSize = sizeof(odp); + odp.hInstance = hInst; + odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_WA_MPD); + odp.pszTitle = szModuleName; + odp.pszGroup = Translate("Plugins"); + odp.flags=ODPF_BOLDGROUPS; + odp.pfnDlgProc = DlgProcWaMpdOpts; + CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp); + + + ZeroMemory(&odp,sizeof(odp)); + return 0; +} + + +static BOOL CALLBACK DlgProcWaMpdOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) + { + case WM_INITDIALOG: + { + TranslateDialogDefault(hwndDlg); + SetDlgItemInt(hwndDlg, IDC_PORT, DBGetContactSettingWord(NULL, szModuleName, "Port", 6600), FALSE); + SetDlgItemText(hwndDlg, IDC_SERVER, UniGetContactSettingUtf(NULL, szModuleName, "Server", _T("127.0.0.1"))); + SetDlgItemText(hwndDlg, IDC_PASSWORD, UniGetContactSettingUtf(NULL, szModuleName, "Password", _T(""))); + return TRUE; + } + + + case WM_COMMAND: + { + switch (LOWORD(wParam)) + { + + } + + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + break; + } + + case WM_NOTIFY: + { + switch (((LPNMHDR)lParam)->code) + { + + case PSN_APPLY: + { + TCHAR szText[128]; + DBWriteContactSettingWord(NULL, szModuleName, "Port", (DWORD)GetDlgItemInt(hwndDlg, IDC_PORT, NULL, FALSE)); + GetDlgItemText(hwndDlg, IDC_SERVER, szText, sizeof(szText)); + DBWriteContactSettingTString(NULL, szModuleName, "Server", szText); + GetDlgItemText(hwndDlg, IDC_PASSWORD, szText, sizeof(szText)); + DBWriteContactSettingTString(NULL, szModuleName, "Password", szText); + return TRUE; + } + } + } + break; + } + + return FALSE; +} diff --git a/watrack_mpd/resource.h b/watrack_mpd/resource.h index 5f6d247..e46d88b 100755 --- a/watrack_mpd/resource.h +++ b/watrack_mpd/resource.h @@ -15,6 +15,10 @@ #define IDC_MSG_SIZE 1009 #define IDC_MSG_SIZE2 1010 #define IDC_CHAR_COUNT 1010 +#define IDC_SERVER 1011 +#define IDC_PORT 1012 +#define IDC_EDIT3 1013 +#define IDC_PASSWORD 1013 // Next default values for new objects // @@ -22,7 +26,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1011 +#define _APS_NEXT_CONTROL_VALUE 1016 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/watrack_mpd/watrack_mpd.rc b/watrack_mpd/watrack_mpd.rc index 8180929..984794b 100755 --- a/watrack_mpd/watrack_mpd.rc +++ b/watrack_mpd/watrack_mpd.rc @@ -68,6 +68,12 @@ IDD_OPT_WA_MPD DIALOGEX 0, 0, 268, 214 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD FONT 8, "MS Shell Dlg", 400, 0, 0x0 BEGIN + EDITTEXT IDC_SERVER,71,18,72,14,ES_AUTOHSCROLL + EDITTEXT IDC_PORT,72,38,72,14,ES_AUTOHSCROLL + EDITTEXT IDC_PASSWORD,71,58,73,14,ES_AUTOHSCROLL + LTEXT "MPD Host",IDC_STATIC,7,20,32,8 + LTEXT "Port",IDC_STATIC,7,42,14,8 + LTEXT "Password",IDC_STATIC,7,63,32,8 END -- cgit v1.2.3