diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2009-11-18 03:09:47 +0200 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2009-11-18 03:09:47 +0200 |
commit | 95f46008d2884934fb3186291fceb34f11bf5f0e (patch) | |
tree | d7d19a95500f96fdc890e55d540990bd2b4c307e | |
parent | 647648108393008bfa96987d44628b99c602abf0 (diff) |
modified: commonheaders.h
modified: constants.h
new file: globals.h
modified: init.c
modified: main.c
modified: main.h
modified: utilities.c
new file: utilities.h
modified: watrack_mpd.vcproj
-rwxr-xr-x | watrack_mpd/commonheaders.h | 8 | ||||
-rwxr-xr-x | watrack_mpd/constants.h | 3 | ||||
-rwxr-xr-x | watrack_mpd/globals.h | 6 | ||||
-rwxr-xr-x | watrack_mpd/init.c | 14 | ||||
-rwxr-xr-x | watrack_mpd/main.c | 22 | ||||
-rwxr-xr-x | watrack_mpd/main.h | 10 | ||||
-rwxr-xr-x | watrack_mpd/utilities.c | 57 | ||||
-rwxr-xr-x | watrack_mpd/utilities.h | 10 | ||||
-rwxr-xr-x | watrack_mpd/watrack_mpd.vcproj | 8 |
9 files changed, 127 insertions, 11 deletions
diff --git a/watrack_mpd/commonheaders.h b/watrack_mpd/commonheaders.h index 81ccc20..e2e578c 100755 --- a/watrack_mpd/commonheaders.h +++ b/watrack_mpd/commonheaders.h @@ -13,7 +13,8 @@ // You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
+#ifndef COMMONHEADERS_H
+#define COMMONHEADERS_H
#include <windows.h>
#include <tchar.h>
#include <malloc.h>
@@ -25,7 +26,7 @@ #include <m_netlib.h>
//#include <m_clist.h>
//#include <m_skin.h>
-//#include <m_database.h>
+#include <m_database.h>
//#include <m_protosvc.h>
//#include <m_protocols.h>
#include <m_system.h>
@@ -34,6 +35,9 @@ #include "resource.h"
+#include "globals.h"
#include "main.h"
#include "constants.h"
#include "m_music.h"
+#include "utilities.h"
+#endif
diff --git a/watrack_mpd/constants.h b/watrack_mpd/constants.h index e46841b..dfa9a3c 100755 --- a/watrack_mpd/constants.h +++ b/watrack_mpd/constants.h @@ -1 +1,4 @@ +#ifndef CONSTANTS_H
+#define CONSTANTS_H
#define szModuleName "Watrack_MPD"
+#endif
diff --git a/watrack_mpd/globals.h b/watrack_mpd/globals.h new file mode 100755 index 0000000..4744088 --- /dev/null +++ b/watrack_mpd/globals.h @@ -0,0 +1,6 @@ +#ifndef GLOBALS_H
+#define GLOBALS_H
+HANDLE ghNetlibUser;
+HANDLE ghPacketReciever;
+HANDLE ghRecieverThread;
+#endif
diff --git a/watrack_mpd/init.c b/watrack_mpd/init.c index f244efd..d61c5bd 100755 --- a/watrack_mpd/init.c +++ b/watrack_mpd/init.c @@ -71,14 +71,22 @@ int __declspec(dllexport) Load(PLUGINLINK *link) {
pluginLink=link;
HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded);
-// mir_getMMI(&mmi);
-// mir_getUTFI(&utfi);
+ mir_getMMI(&mmi);
+ mir_getUTFI(&utfi);
return 0;
}
static int OnModulesLoaded(WPARAM wParam,LPARAM lParam)
{
+ NETLIBUSER nlu = {0};
+ nlu.cbSize = sizeof(nlu);
+ nlu.flags = NUF_OUTGOING | NUF_HTTPGATEWAY;
+ nlu.szDescriptiveName = "Watrack MPD connection";
+ nlu.szSettingsModule = PLUGIN_NAME;
+ ghNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nlu);
+
+
if (ServiceExists("WATrack/Player"))
bWatrackService = TRUE;
return 0;
@@ -87,5 +95,7 @@ static int OnModulesLoaded(WPARAM wParam,LPARAM lParam) int __declspec(dllexport) Unload(void)
{
+ if(ghNetlibUser && (ghNetlibUser != INVALID_HANDLE_VALUE))
+ CallService(MS_NETLIB_SHUTDOWN,(WPARAM)ghNetlibUser,0);
return 0;
}
\ No newline at end of file diff --git a/watrack_mpd/main.c b/watrack_mpd/main.c index 2040ca3..108db8b 100755 --- a/watrack_mpd/main.c +++ b/watrack_mpd/main.c @@ -41,6 +41,7 @@ LPCOMMANDPROC SendCommand(HWND wnd, int command, int value) {
}
+
void RegisterPlayer()
{
struct tPlayerCell player;
@@ -58,3 +59,24 @@ void RegisterPlayer() player.URL = "http:// ?";
CallService(MS_WAT_PLAYER, (WPARAM)0, (LPARAM)&player);
}
+
+DWORD __stdcall Reciever(LPVOID lp)
+{
+ NETLIBOPENCONNECTION nloc;
+ nloc.cbSize = sizeof(NETLIBOPENCONNECTION);
+ nloc.flags = 0;
+ nloc.szHost = (char*)mir_u2a(UniGetContactSettingUtf(NULL, szModuleName, "Host", _T("127.0.0.1")));
+ nloc.wPort = DBGetContactSettingWord(NULL, szModuleName, "Port", 6600);
+ NetLib_CreateConnection(ghNetlibUser, &nloc);
+ ghPacketReciever = CreatePacketReciever();
+
+ return 0;
+}
+int Start(WPARAM wParam,LPARAM lParam)
+{
+ DWORD pid;
+ ghRecieverThread = CreateThreadEx((pThreadFuncEx)Reciever, (HANDLE)wParam, &pid);
+}
+int Stop(WPARAM wParam,LPARAM lParam)
+{
+}
diff --git a/watrack_mpd/main.h b/watrack_mpd/main.h index 00fe5e9..25fc0fd 100755 --- a/watrack_mpd/main.h +++ b/watrack_mpd/main.h @@ -13,10 +13,14 @@ // You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
+#ifndef MAIN_H
+#define MAIN_H
//TCHAR* __stdcall UniGetContactSettingUtf(HANDLE hContact, const char *szModule,const char* szSetting, TCHAR* szDef);
-//struct MM_INTERFACE mmi;
-//struct UTF8_INTERFACE utfi;
+struct MM_INTERFACE mmi;
+struct UTF8_INTERFACE utfi;
//const TCHAR *stristr( const TCHAR *str, const TCHAR *substr);
+#endif
+
+
diff --git a/watrack_mpd/utilities.c b/watrack_mpd/utilities.c index 0d5327a..a01450c 100755 --- a/watrack_mpd/utilities.c +++ b/watrack_mpd/utilities.c @@ -17,7 +17,7 @@ #include "commonheaders.h"
-/*HANDLE CreateThreadEx(pThreadFuncEx AFunc, void* arg, DWORD* pThreadID)
+HANDLE CreateThreadEx(pThreadFuncEx AFunc, void* arg, DWORD* pThreadID)
{
FORK_THREADEX_PARAMS params;
DWORD dwThreadId;
@@ -32,9 +32,9 @@ *pThreadID = dwThreadId;
return hThread;
-}*/
+}
-/*TCHAR* __stdcall UniGetContactSettingUtf(HANDLE hContact, const char *szModule,const char* szSetting, TCHAR* szDef)
+TCHAR* __stdcall UniGetContactSettingUtf(HANDLE hContact, const char *szModule,const char* szSetting, TCHAR* szDef)
{
DBVARIANT dbv = {DBVT_DELETED};
TCHAR* szRes;
@@ -44,7 +44,7 @@ szRes = _tcsdup(dbv.ptszVal);
DBFreeVariant(&dbv);
return szRes;
-}*/
+}
// case-insensitive _tcsstr
/*#define NEWTSTR_ALLOCA(A) (A==NULL)?NULL:_tcscpy((TCHAR*)alloca(sizeof(TCHAR)*(_tcslen(A)+1)),A)
@@ -107,3 +107,52 @@ char *date() d[9]=tmp[5];
return d;
}
+
+int Send(char* data)
+{
+ NETLIBBUFFER nlb;
+ nlb.buf = data;
+ nlb.flags = MSG_DUMPASTEXT;
+ nlb.len = strlen(data)+1;
+ return CallService(MS_NETLIB_SEND,(WPARAM)ghNetlibUser,(LPARAM)&nlb);
+}
+
+int Recv(char *buf)
+{
+ NETLIBBUFFER nlb;
+ nlb.buf = buf;
+ nlb.flags = MSG_DUMPASTEXT;
+ nlb.len = strlen(buf)+1;
+ return CallService(MS_NETLIB_RECV,(WPARAM)ghNetlibUser,(LPARAM)&nlb);
+}
+HANDLE CreatePacketReciever()
+{
+ return (HANDLE)CallService(MS_NETLIB_RECV,(WPARAM)ghNetlibUser,(LPARAM)4096);
+}
+
+NETLIBPACKETRECVER *RecivePackets(int bytesUsed)
+{
+ static NETLIBPACKETRECVER nlpr;
+ nlpr.bytesUsed = bytesUsed;
+ nlpr.dwTimeout = INFINITE;
+ nlpr.cbSize = sizeof(NETLIBPACKETRECVER);
+ CallService(MS_NETLIB_RECV,(WPARAM)ghPacketReciever,(LPARAM)&nlpr);
+ return &nlpr;
+}
+HANDLE NetLib_CreateConnection(HANDLE hUser, NETLIBOPENCONNECTION* nloc) //from icq )
+{
+ HANDLE hConnection;
+
+ nloc->cbSize = sizeof(NETLIBOPENCONNECTION);
+ nloc->flags |= NLOCF_V2;
+
+ hConnection = (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)hUser, (LPARAM)nloc);
+ if (!hConnection && (GetLastError() == 87))
+ { // this ensures, an old Miranda will be able to connect also
+ nloc->cbSize = NETLIBOPENCONNECTION_V1_SIZE;
+ hConnection = (HANDLE)CallService(MS_NETLIB_OPENCONNECTION, (WPARAM)hUser, (LPARAM)nloc);
+ }
+ return hConnection;
+}
+
+
diff --git a/watrack_mpd/utilities.h b/watrack_mpd/utilities.h new file mode 100755 index 0000000..1da86c0 --- /dev/null +++ b/watrack_mpd/utilities.h @@ -0,0 +1,10 @@ +#ifndef UTILITIES_H
+#define UTILITIES_H
+int Send(char* data);
+int Recv(char *buf);
+HANDLE CreatePacketReciever();
+NETLIBPACKETRECVER *RecivePackets(int bytesUsed);
+HANDLE NetLib_CreateConnection(HANDLE hUser, NETLIBOPENCONNECTION* nloc);
+HANDLE CreateThreadEx(pThreadFuncEx AFunc, void* arg, DWORD* pThreadID);
+TCHAR* __stdcall UniGetContactSettingUtf(HANDLE hContact, const char *szModule,const char* szSetting, TCHAR* szDef);
+#endif
diff --git a/watrack_mpd/watrack_mpd.vcproj b/watrack_mpd/watrack_mpd.vcproj index 3972c1c..18e726e 100755 --- a/watrack_mpd/watrack_mpd.vcproj +++ b/watrack_mpd/watrack_mpd.vcproj @@ -637,6 +637,10 @@ >
</File>
<File
+ RelativePath=".\globals.h"
+ >
+ </File>
+ <File
RelativePath=".\m_music.h"
>
</File>
@@ -648,6 +652,10 @@ RelativePath=".\resource.h"
>
</File>
+ <File
+ RelativePath=".\utilities.h"
+ >
+ </File>
</Filter>
<Filter
Name="Resource Files"
|