diff options
| author | 2008-09-18 14:11:40 +0000 | |
|---|---|---|
| committer | 2008-09-18 14:11:40 +0000 | |
| commit | ac2059e9677af0b978816d2e9d543398a27f3915 (patch) | |
| tree | dd2e6ffd4e16b6aee757d8275738b9dd441df2e1 /src/modules/mediaplayer/mp_amipinterface.cpp | |
| parent | fixed license template for modules from a to f (diff) | |
| download | KVIrc-ac2059e9677af0b978816d2e9d543398a27f3915.tar.gz KVIrc-ac2059e9677af0b978816d2e9d543398a27f3915.tar.bz2 KVIrc-ac2059e9677af0b978816d2e9d543398a27f3915.zip | |
fixed license template for modules from h to m
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2483 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/mediaplayer/mp_amipinterface.cpp')
| -rw-r--r-- | src/modules/mediaplayer/mp_amipinterface.cpp | 393 |
1 files changed, 204 insertions, 189 deletions
diff --git a/src/modules/mediaplayer/mp_amipinterface.cpp b/src/modules/mediaplayer/mp_amipinterface.cpp index f21f76369..616e6c7b9 100644 --- a/src/modules/mediaplayer/mp_amipinterface.cpp +++ b/src/modules/mediaplayer/mp_amipinterface.cpp @@ -1,3 +1,27 @@ +//============================================================================= +// +// File : mp_amipinterface.cpp +// Creation date : Sun 27 Mar 2005 16:55:09 by Szymon Stefanek +// +// This file is part of the KVIrc IRC client distribution +// Copyright (C) 2005-2008 Szymon Stefanek <pragma at kvirc dot net> +// +// This program is FREE software. You can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your opinion) any later version. +// +// This program is distributed in the HOPE that it will be USEFUL, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. +// +// 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. +// +//============================================================================= + #include "mp_amipinterface.h" #include "kvi_options.h" @@ -32,15 +56,15 @@ enum ac_ErrorCode static HINSTANCE amip_dll = NULL; #define MP_AC_DYNPTR(__rettype,__func,__args) \ - typedef __rettype (CALLBACK* lp_##__func)(__args); \ - lp_##__func __func + typedef __rettype (CALLBACK* lp_##__func)(__args); \ + lp_##__func __func #define MP_AC_FUNC(__func) \ - __func = (lp_##__func)GetProcAddress(amip_dll,#__func); \ - if(!__func) { \ - FreeLibrary(amip_dll); \ - return false; \ - } + __func = (lp_##__func)GetProcAddress(amip_dll,#__func); \ + if(!__func) { \ + FreeLibrary(amip_dll); \ + return false; \ + } #define COMMA() , @@ -55,38 +79,39 @@ MP_AC_DYNPTR(int, ac_eval, const char *cmd COMMA() char *result); static bool loadAmipDll() { - amip_dll = LoadLibrary("ac.dll"); - if (!amip_dll) return false; - - MP_AC_FUNC(ac_init); - MP_AC_FUNC(ac_uninit); - MP_AC_FUNC(ac_getDestHost); - MP_AC_FUNC(ac_getDestPort); - MP_AC_FUNC(ac_pingServer); - MP_AC_FUNC(ac_eval); - MP_AC_FUNC(ac_exec); - - return true; + amip_dll = LoadLibrary("ac.dll"); + if (!amip_dll) return false; + + MP_AC_FUNC(ac_init); + MP_AC_FUNC(ac_uninit); + MP_AC_FUNC(ac_getDestHost); + MP_AC_FUNC(ac_getDestPort); + MP_AC_FUNC(ac_pingServer); + MP_AC_FUNC(ac_eval); + MP_AC_FUNC(ac_exec); + + return true; }; static QTextCodec * mediaplayer_get_codec() { -QTextCodec * c= QTextCodec::codecForName(KVI_OPTION_STRING(KviOption_stringWinampTextEncoding).toAscii()); - if(!c)c = QTextCodec::codecForLocale(); - return c; + QTextCodec * c= QTextCodec::codecForName(KVI_OPTION_STRING(KviOption_stringWinampTextEncoding).toAscii()); + if(!c) + c = QTextCodec::codecForLocale(); + return c; } MP_IMPLEMENT_DESCRIPTOR( - KviAmipInterface, - "amip", - __tr2qs_ctx( - "An interface to the AMIP plug-in.\n" \ - "You can download it from http://amip.tools-for.net.\n" \ - "To use this interface you must " \ - "install AMIP plug-in for your player." - , - "mediaplayer" - ) + KviAmipInterface, + "amip", + __tr2qs_ctx( + "An interface to the AMIP plug-in.\n" \ + "You can download it from http://amip.tools-for.net.\n" \ + "To use this interface you must " \ + "install AMIP plug-in for your player." + , + "mediaplayer" + ) ) @@ -94,39 +119,39 @@ MP_IMPLEMENT_DESCRIPTOR( KviAmipInterface::KviAmipInterface() : KviMediaPlayerInterface() { - if(!amip_dll) { - bool res = loadAmipDll(); - if(!res) { - amip_dll = NULL; - return; - } - ac_init(AC_START_CLIENT); - } + if(!amip_dll) { + bool res = loadAmipDll(); + if(!res) { + amip_dll = NULL; + return; + } + ac_init(AC_START_CLIENT); + } } KviAmipInterface::~KviAmipInterface() { - if(!amip_dll) return; - ac_uninit(); - FreeLibrary(amip_dll); - amip_dll = NULL; + if(!amip_dll) return; + ac_uninit(); + FreeLibrary(amip_dll); + amip_dll = NULL; } int KviAmipInterface::detect(bool bStart) { - if(!amip_dll) return 0; - char host[AC_BUFFER_SIZE]; - ac_getDestHost(host); - if(ac_pingServer(host, ac_getDestPort(), 5000)) return 99; - return 1; + if(!amip_dll) return 0; + char host[AC_BUFFER_SIZE]; + ac_getDestHost(host); + if(ac_pingServer(host, ac_getDestPort(), 5000)) return 99; + return 1; } #define MP_AMIP_COMMAND(__cmdname,__acmd) \ - bool KviAmipInterface::__cmdname() \ - { \ - return (ac_exec(__acmd) == AC_ERR_NOERROR); \ - } + bool KviAmipInterface::__cmdname() \ + { \ + return (ac_exec(__acmd) == AC_ERR_NOERROR); \ + } MP_AMIP_COMMAND(play,"control play") MP_AMIP_COMMAND(stop,"control stop") @@ -138,263 +163,253 @@ MP_AMIP_COMMAND(quit,"control exit") // helper function for evaluating variables returning integers int eval_int(const char *var) { - if(!amip_dll) return -1; - char buff[AC_BUFFER_SIZE]; - int res = -1; - if (AC_ERR_NOERROR == ac_eval(var, buff)) { - res = atoi(buff); - } - return res; + if(!amip_dll) return -1; + char buff[AC_BUFFER_SIZE]; + int res = -1; + if (AC_ERR_NOERROR == ac_eval(var, buff)) + res = atoi(buff); + return res; } QString eval_str(const char *var) { - QString res; - if(!amip_dll) return res; - char buff[AC_BUFFER_SIZE]; - if (AC_ERR_NOERROR == ac_eval(var, buff)) { - res.append(buff); - } - return res; + QString res; + if(!amip_dll) return res; + char buff[AC_BUFFER_SIZE]; + if (AC_ERR_NOERROR == ac_eval(var, buff)) + res.append(buff); + return res; } int KviAmipInterface::length() { - return eval_int("var_sl") * 1000; + return eval_int("var_sl") * 1000; } int KviAmipInterface::position() { - return eval_int("var_psec") * 1000; + return eval_int("var_psec") * 1000; } int KviAmipInterface::bitRate() { - return eval_int("var_br"); + return eval_int("var_br"); } int KviAmipInterface::sampleRate() { - return eval_int("var_sr"); + return eval_int("var_sr"); } int KviAmipInterface::channels() { - int ret = -1; - if(eval_str("var_typ").startsWith("Stereo")) { - ret = 2; - } else if(eval_str("var_typ").startsWith("Mono")) { - ret = 1; - } - return ret; + int ret = -1; + if(eval_str("var_typ").startsWith("Stereo")) + ret = 2; + else if(eval_str("var_typ").startsWith("Mono")) + ret = 1; + return ret; } KviMediaPlayerInterface::PlayerStatus KviAmipInterface::status() { - int ret = eval_int("var_stat"); - switch(ret) - { - case 0: - return KviMediaPlayerInterface::Stopped; - break; - case 3: - return KviMediaPlayerInterface::Paused; - break; - case 1: - return KviMediaPlayerInterface::Playing; - break; - default: - return KviMediaPlayerInterface::Unknown; - break; - } - return KviMediaPlayerInterface::Unknown; + int ret = eval_int("var_stat"); + switch(ret) + { + case 0: + return KviMediaPlayerInterface::Stopped; + break; + case 3: + return KviMediaPlayerInterface::Paused; + break; + case 1: + return KviMediaPlayerInterface::Playing; + break; + default: + return KviMediaPlayerInterface::Unknown; + break; + } + return KviMediaPlayerInterface::Unknown; } QString KviAmipInterface::mrl() { - QString ret; - QString fn = eval_str("var_fn"); - QTextCodec *c=mediaplayer_get_codec(); - if (c) ret = c->toUnicode(fn.toAscii()); - else ret=fn; - if(!ret.startsWith("http://",Qt::CaseInsensitive)) - ret.prepend("file://"); - - return ret; + QString ret; + QString fn = eval_str("var_fn"); + QTextCodec *c=mediaplayer_get_codec(); + if (c) ret = c->toUnicode(fn.toAscii()); + else ret=fn; + if(!ret.startsWith("http://",Qt::CaseInsensitive)) + ret.prepend("file://"); + + return ret; } -QString getAmipString(const char * var) { - QString ret; - QString s = eval_str(var); - QTextCodec *c=mediaplayer_get_codec(); - if (c) ret = c->toUnicode(s.toAscii()); - else ret=s; - return ret; +QString getAmipString(const char * var) +{ + QString ret; + QString s = eval_str(var); + QTextCodec *c=mediaplayer_get_codec(); + if (c) ret = c->toUnicode(s.toAscii()); + else ret=s; + return ret; } QString KviAmipInterface::nowPlaying() { - return getAmipString("var_s"); + return getAmipString("var_s"); } QString KviAmipInterface::artist() { - return getAmipString("var_1"); + return getAmipString("var_1"); } QString KviAmipInterface::title() { - return getAmipString("var_2"); + return getAmipString("var_2"); } QString KviAmipInterface::album() { - return getAmipString("var_4"); + return getAmipString("var_4"); } QString KviAmipInterface::year() { - return getAmipString("var_5"); + return getAmipString("var_5"); } QString KviAmipInterface::comment() { - return getAmipString("var_6"); + return getAmipString("var_6"); } QString KviAmipInterface::genre() { - return getAmipString("var_7"); + return getAmipString("var_7"); } bool KviAmipInterface::setVol(kvs_int_t &iVol) { - if(!amip_dll) return false; - char volcmd[AC_BUFFER_SIZE]; - sprintf(volcmd, "control vol %d", iVol); - return (ac_exec(volcmd) == AC_ERR_NOERROR); + if(!amip_dll) return false; + char volcmd[AC_BUFFER_SIZE]; + sprintf(volcmd, "control vol %d", iVol); + return (ac_exec(volcmd) == AC_ERR_NOERROR); } int KviAmipInterface::getVol() { - return eval_int("var_vol"); + return eval_int("var_vol"); } bool KviAmipInterface::jumpTo(kvs_int_t &iPos) { - if(!amip_dll) return false; - char jmpcmd[AC_BUFFER_SIZE]; - sprintf(jmpcmd, "jumptotime %d", iPos/1000); - return (ac_exec(jmpcmd) == AC_ERR_NOERROR); + if(!amip_dll) return false; + char jmpcmd[AC_BUFFER_SIZE]; + sprintf(jmpcmd, "jumptotime %d", iPos/1000); + return (ac_exec(jmpcmd) == AC_ERR_NOERROR); } bool KviAmipInterface::hide() { - HWND hWinamp = (HWND)eval_int("var_phwnd"); - if(hWinamp && hWinamp != (HWND)-1) - { - ShowWindow(hWinamp, SW_HIDE); - return true; - } - return false; + HWND hWinamp = (HWND)eval_int("var_phwnd"); + if(hWinamp && hWinamp != (HWND)-1) + { + ShowWindow(hWinamp, SW_HIDE); + return true; + } + return false; } bool KviAmipInterface::show() { - HWND hWinamp = (HWND)eval_int("var_phwnd"); - if(hWinamp && hWinamp != (HWND)-1) - { - ShowWindow(hWinamp, SW_SHOW); - return true; - } - return false; + HWND hWinamp = (HWND)eval_int("var_phwnd"); + if(hWinamp && hWinamp != (HWND)-1) + { + ShowWindow(hWinamp, SW_SHOW); + return true; + } + return false; } bool KviAmipInterface::minimize() { - if(!amip_dll) return false; - return (ac_exec("control mimimize") == AC_ERR_NOERROR); + if(!amip_dll) return false; + return (ac_exec("control mimimize") == AC_ERR_NOERROR); } bool KviAmipInterface::setPlayListPos(kvs_int_t &iPos) { - if(!amip_dll) return false; - char jmpcmd[AC_BUFFER_SIZE]; - sprintf(jmpcmd, "setplpos %d", iPos + 1); - return (ac_exec(jmpcmd) == AC_ERR_NOERROR); + if(!amip_dll) return false; + char jmpcmd[AC_BUFFER_SIZE]; + sprintf(jmpcmd, "setplpos %d", iPos + 1); + return (ac_exec(jmpcmd) == AC_ERR_NOERROR); } int KviAmipInterface::getPlayListPos() { - return eval_int("var_pos"); + return eval_int("var_pos"); } int KviAmipInterface::getListLength() { - return eval_int("var_ll"); + return eval_int("var_ll"); } bool KviAmipInterface::getRepeat() { - return eval_str("var_repeat").startsWith("on"); + return eval_str("var_repeat").startsWith("on"); } bool KviAmipInterface::getShuffle() { - return eval_str("var_shuffle").startsWith("on"); + return eval_str("var_shuffle").startsWith("on"); } bool KviAmipInterface::setShuffle(bool &bVal) { - if(!amip_dll) return false; - bool res; - if (bVal) - { - res = (ac_exec("setshuffle on") == AC_ERR_NOERROR); - } - else - { - res = (ac_exec("setshuffle off") == AC_ERR_NOERROR); - } - return res; + if(!amip_dll) return false; + bool res; + if (bVal) + res = (ac_exec("setshuffle on") == AC_ERR_NOERROR); + else + res = (ac_exec("setshuffle off") == AC_ERR_NOERROR); + return res; } bool KviAmipInterface::setRepeat(bool &bVal) { - if(!amip_dll) return false; - bool res; - if (bVal) - { - res = (ac_exec("setrepeat on") == AC_ERR_NOERROR); - } - else - { - res = (ac_exec("setrepeat off") == AC_ERR_NOERROR); - } - return res; + if(!amip_dll) return false; + bool res; + if (bVal) + res = (ac_exec("setrepeat on") == AC_ERR_NOERROR); + else + res = (ac_exec("setrepeat off") == AC_ERR_NOERROR); + return res; } bool KviAmipInterface::amipExec(const QString &cmd) { - if(!amip_dll) return false; - QTextCodec *c=mediaplayer_get_codec(); - KviStr szCmd = c ? c->fromUnicode(cmd) : cmd.toUtf8(); - return (ac_exec(szCmd) == AC_ERR_NOERROR); + if(!amip_dll) return false; + QTextCodec *c=mediaplayer_get_codec(); + KviStr szCmd = c ? c->fromUnicode(cmd) : cmd.toUtf8(); + return (ac_exec(szCmd) == AC_ERR_NOERROR); } QString KviAmipInterface::amipEval(const QString &cmd) { - QString ret; - if(!amip_dll) return ret; - QTextCodec *c=mediaplayer_get_codec(); - KviStr szCmd = c ? c->fromUnicode(cmd) : cmd.toUtf8(); - char buff[AC_BUFFER_SIZE]; - if((ac_eval(szCmd, buff) == AC_ERR_NOERROR)) { - QString s = buff; - QTextCodec *c=mediaplayer_get_codec(); - if (c) ret = c->toUnicode(s.toAscii()); - else ret=s; - } - return ret; + QString ret; + if(!amip_dll) return ret; + QTextCodec *c=mediaplayer_get_codec(); + KviStr szCmd = c ? c->fromUnicode(cmd) : cmd.toUtf8(); + char buff[AC_BUFFER_SIZE]; + if((ac_eval(szCmd, buff) == AC_ERR_NOERROR)) { + QString s = buff; + QTextCodec *c=mediaplayer_get_codec(); + if (c) ret = c->toUnicode(s.toAscii()); + else ret=s; + } + return ret; } #endif //COMPILE_ON_WINDOWS |
