bool KviWinampInterface::hide()
{
	HWND hWinamp = find_winamp(this);
	HWND hWinampPE = FindWindow("Winamp PE",NULL); /*Playlist*/
	HWND hWinampEQ = FindWindow("Winamp EQ",NULL); /*Equalizer*/
	HWND hWinampMB = FindWindow("Winamp MB",NULL); /*MiniBrowser*/
	HWND hWinampGen = FindWindow("Winamp Gen",NULL); /*Library*/
	HWND hWinampVideo = FindWindow("Winamp Video",NULL); /*Video*/
	if(hWinamp)
	{
		ShowWindow(hWinamp, SW_HIDE);
		if(hWinampPE || hWinampEQ || hWinampMB || hWinampGen || hWinampVideo )
		{
			if(hWinampPE)
				ShowWindow(hWinampPE, SW_HIDE);
			if(hWinampEQ)
				ShowWindow(hWinampEQ, SW_HIDE);
			if(hWinampMB)
				ShowWindow(hWinampMB, SW_HIDE);
			if(hWinampGen)
				ShowWindow(hWinampGen, SW_HIDE);
			if(hWinampVideo)
				ShowWindow(hWinampVideo, SW_HIDE);
			return true;
		}
	return true;
	}
	return false;
}
int KviWinampInterface::length()
{
	int leninsecs = -1;
	HWND hWinamp = find_winamp(this);
	if(hWinamp)leninsecs = SendMessage(hWinamp,WM_USER,1,IPC_GETOUTPUTTIME);
	return leninsecs * 1000;
}
QString KviWinampInterface::nowPlaying()
{
	QString ret;
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		int retpippo = SendMessage(hWinamp,WM_USER,KVIRC_WM_USER,KVIRC_WM_USER_CHECK);
		if(retpippo != KVIRC_WM_USER_CHECK_REPLY)
		{
			setLastError(__tr2qs_ctx("The winamp plugin has not been installed properly. Check /help mediaplayer.nowplaying","mediaplayer") );
			return ret;
		}

		int len = SendMessage(hWinamp,WM_USER,KVIRC_WM_USER,KVIRC_WM_USER_GETTITLE);

		if(len < 4096)
		{
			char szBuffer[4096];

			for(int i = 0;i < len;i++)
			{
				szBuffer[i] = SendMessage(hWinamp,WM_USER,KVIRC_WM_USER,KVIRC_WM_USER_TRANSFER + i);
			}
			szBuffer[ len ] = '\0';

			QTextCodec *c=mediaplayer_get_codec();
			if (c) ret = c->toUnicode(szBuffer);
			else ret=szBuffer;
		}
	}
	return ret;
}
int KviWinampInterface::channels()
{
	int ret = -1;
	HWND hWinamp = find_winamp(this);
	if(hWinamp)ret = SendMessage(hWinamp,WM_USER,2,IPC_GETINFO);
	return ret;
}
QString KviWinampInterface::mrl()
{
	QString ret;
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		 int ret2 = SendMessage(hWinamp,WM_USER,KVIRC_WM_USER,KVIRC_WM_USER_CHECK);

		if(ret2 != KVIRC_WM_USER_CHECK_REPLY)
		{
			setLastError(__tr2qs_ctx("The winamp plugin has not been installed properly. Check /help mediaplayer.nowplaying","mediaplayer"));
			return ret;
		}

		int len = SendMessage(hWinamp,WM_USER,KVIRC_WM_USER,KVIRC_WM_USER_GETFILE);

		if(len < 4096)
		{
			char szBuffer[4096];

			for(int i = 0;i < len;i++)
			{
				szBuffer[i] = SendMessage(hWinamp,WM_USER,KVIRC_WM_USER,KVIRC_WM_USER_TRANSFER + i);
			}
			szBuffer[len] = '\0';
			QTextCodec *c=mediaplayer_get_codec();
			if (c) ret = c->toUnicode(szBuffer);
			else ret=szBuffer;
			if(!ret.startsWith("http://",Qt::CaseInsensitive))
				ret.prepend("file://");
		}
	}
	return ret;
}
int KviWinampInterface::sampleRate()
{
	int ret = -1;
	HWND hWinamp = find_winamp(this);
	if(hWinamp)ret = SendMessage(hWinamp,WM_USER,0,IPC_GETINFO);
	return ret;
}
int KviWinampInterface::position()
{
	int leninmsecs = -1;
	HWND hWinamp = find_winamp(this);
	if(hWinamp)leninmsecs = SendMessage(hWinamp,WM_USER,0,IPC_GETOUTPUTTIME);
	return leninmsecs;
}
int KviWinampInterface::detect(bool bStart)
{
	if(find_winamp(this))return 80;
	// FIXME : check for Programs Folder\Winamp\Winamp.exe ?
	// FIXME : if bStart try to start winamp.exe ?
	return 50;
}
Esempio n. 9
0
int KviWinampInterface::getPlayListPos()
{
	int ret = -1;
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
		ret = SendMessage(hWinamp, WM_USER, 2, IPC_GETLISTPOS);
	return ret;
}
Esempio n. 10
0
int KviWinampInterface::getListLength()
{
	int ret = -1;
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
		ret = SendMessage(hWinamp, WM_USER, 2, IPC_GETLISTLENGTH);
	return ret;
}
Esempio n. 11
0
bool KviWinampInterface::setVol(kvs_int_t & iVol)
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		SendMessage(hWinamp, WM_USER, iVol, IPC_SETVOLUME);
		return true;
	}
	return false;
}
Esempio n. 12
0
bool KviWinampInterface::setRepeat(bool & bVal)
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		bool bShuffle = SendMessage(hWinamp, WM_USER, bVal, IPC_SET_REPEAT);
		return bShuffle;
	}
	return false;
}
Esempio n. 13
0
bool KviWinampInterface::jumpTo(kvs_int_t & iPos)
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		SendMessage(hWinamp, WM_USER, iPos, IPC_JUMPTOTIME);
		return true;
	}
	return false;
}
Esempio n. 14
0
bool KviWinampInterface::getShuffle()
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		bool bShuffle = SendMessage(hWinamp, WM_USER, 0, IPC_GET_SHUFFLE);
		return bShuffle;
	}
	return false;
}
Esempio n. 15
0
bool KviWinampInterface::setShuffle(bool & bVal)
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		bool bRepeat = SendMessage(hWinamp, WM_USER, bVal, IPC_SET_SHUFFLE);
		return bRepeat;
	}
	return false;
}
Esempio n. 16
0
bool KviWinampInterface::setPlayListPos(kvs_int_t & iPos)
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		SendMessage(hWinamp, WM_USER, iPos, IPC_SETPLAYLISTPOS);
		return true;
	}
	return false;
}
Esempio n. 17
0
bool KviWinampInterface::getRepeat()
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		bool bRepeat = SendMessage(hWinamp, WM_USER, 0, IPC_GET_REPEAT);
		return bRepeat;
	}
	return false;
}
Esempio n. 18
0
bool KviWinampInterface::minimize()
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		ShowWindow(hWinamp, SW_SHOWMINIMIZED);
		return true;
	}
	return false;
}
Esempio n. 19
0
bool KviWinampInterface::show()
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		ShowWindow(hWinamp, SW_SHOW);
		return true;
	}
	return false;
}
Esempio n. 20
0
int KviWinampInterface::getEqData(kvs_int_t & ival)
{
	HWND hWinamp = find_winamp(this);
	int ret = -1;
	if(hWinamp)
	{
		ret = SendMessage(hWinamp, WM_USER, ival, IPC_GETEQDATA);
		return ret;
	}
	return ret;
}
Esempio n. 21
0
bool KviWinampInterface::setEqData(kvs_int_t & iPos, kvs_int_t & iVal)
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		SendMessage(hWinamp, WM_USER, iPos, IPC_GETEQDATA);
		SendMessage(hWinamp, WM_USER, iVal, IPC_SETEQDATA);
		return true;
	}
	return false;
}
int KviWinampInterface::getVol()
{
	int ret = -1;
	HWND hWinamp = find_winamp(this);
#if defined(COMPILE_ON_MINGW)
	if(hWinamp)ret = SendMessage(hWinamp,WM_USER,666,IPC_SETVOLUME);
#else
        if(hWinamp)ret = SendMessage(hWinamp,WM_USER,-666,IPC_SETVOLUME);
#endif
	return ret;
}
Esempio n. 23
0
bool KviWinampInterface::playMrl(const QString & mrl)
{
	HWND hWinamp = find_winamp(this);
	if(hWinamp)
	{
		QTextCodec * c = mediaplayer_get_codec();
		KviCString szMrl = c ? c->fromUnicode(mrl) : mrl.toUtf8();
		COPYDATASTRUCT cds;
		cds.dwData = IPC_PLAYFILE;
		cds.lpData = (void *)szMrl.ptr();
		cds.cbData = szMrl.len() + 1; // include space for null char
		SendMessage(hWinamp, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cds);
		return true;
	}
	return false;
}
MpInterface::PlayerStatus KviWinampInterface::status()
{
	HWND hWinamp = find_winamp(this);
	int ret = 1000;
	if(hWinamp)ret = SendMessage(hWinamp,WM_USER,0,IPC_ISPLAYING);
	switch(ret)
	{
		case 0:
			return MpInterface::Stopped;
		break;
		case 3:
			return MpInterface::Paused;
		break;
		case 1:
			return MpInterface::Playing;
		break;
		default:
			return MpInterface::Unknown;
		break;
	}
	return MpInterface::Unknown;
}