123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #ifndef _IPCS_H
- #define _IPCS_H
- // same value as winamp 2.x
- #define WM_WA_IPC WM_USER
- #ifdef LINUX
- // Stolen from a webpage, I think Linux's is higher, but to be safe...
- #define IPC_MSGMAX 4056
- struct wa_msgbuf {
- long mtype;
- int paramlen;
- char param[IPC_MSGMAX - 4];
- };
- #endif
- namespace IpcsCommand {
- enum {
- #ifdef WASABI_API_MEDIACORE
- // wa2.x IPC messages
- IPC_PLAYFILE=100,
- #endif
- #ifdef WASABI_API_COMPONENT
- // wa3 IPC messages
- IPC_COMMANDLINE=1000,
- #endif
- };
- };
- class IpcsPtr {
- public:
- #ifdef WIN32
- IpcsPtr(HWND hwnd);
- #else
- IpcsPtr(int qid);
- #endif
- void sendWasabiCommand(int command, void *param=0, int paramlen=0);
- void sendWasabiCommand(int command, const char *param);
-
- void moveToForeground();
- private:
- #ifdef WIN32
- HWND hwnd;
- #else
- int qid;
- #endif
- };
- class Ipcs {
- public:
- static IpcsPtr *getOtherWasabiInstance();
- static int onIpcsMessage(int command, void *param, int paramlen);
- };
- #endif
|