61 lines
959 B
C++
61 lines
959 B
C++
#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
|