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; }
int KviWinampInterface::getPlayListPos() { int ret = -1; HWND hWinamp = find_winamp(this); if(hWinamp) ret = SendMessage(hWinamp, WM_USER, 2, IPC_GETLISTPOS); return ret; }
int KviWinampInterface::getListLength() { int ret = -1; HWND hWinamp = find_winamp(this); if(hWinamp) ret = SendMessage(hWinamp, WM_USER, 2, IPC_GETLISTLENGTH); return ret; }
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; }
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; }
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; }
bool KviWinampInterface::getShuffle() { HWND hWinamp = find_winamp(this); if(hWinamp) { bool bShuffle = SendMessage(hWinamp, WM_USER, 0, IPC_GET_SHUFFLE); return bShuffle; } return false; }
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; }
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; }
bool KviWinampInterface::getRepeat() { HWND hWinamp = find_winamp(this); if(hWinamp) { bool bRepeat = SendMessage(hWinamp, WM_USER, 0, IPC_GET_REPEAT); return bRepeat; } return false; }
bool KviWinampInterface::minimize() { HWND hWinamp = find_winamp(this); if(hWinamp) { ShowWindow(hWinamp, SW_SHOWMINIMIZED); return true; } return false; }
bool KviWinampInterface::show() { HWND hWinamp = find_winamp(this); if(hWinamp) { ShowWindow(hWinamp, SW_SHOW); return true; } return false; }
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; }
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; }
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; }