diff options
| author | 2008-03-24 03:14:30 +0000 | |
|---|---|---|
| committer | 2008-03-24 03:14:30 +0000 | |
| commit | 79025d0f297bcddd002bd6ec83421798d351ec01 (patch) | |
| tree | 46e57c728cf431a646cd176b2391d24a23be244b /3.4.0/src/modules/mediaplayer/mp_xmmsinterface.cpp | |
| parent | Tagged release 3.4.0 (diff) | |
| download | KVIrc-79025d0f297bcddd002bd6ec83421798d351ec01.tar.gz KVIrc-79025d0f297bcddd002bd6ec83421798d351ec01.tar.bz2 KVIrc-79025d0f297bcddd002bd6ec83421798d351ec01.zip | |
Will double check the commands before typing. Will double check the commands before typing. Will double check the commands before typing. Will double check...
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1263 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to '3.4.0/src/modules/mediaplayer/mp_xmmsinterface.cpp')
| -rw-r--r-- | 3.4.0/src/modules/mediaplayer/mp_xmmsinterface.cpp | 355 |
1 files changed, 0 insertions, 355 deletions
diff --git a/3.4.0/src/modules/mediaplayer/mp_xmmsinterface.cpp b/3.4.0/src/modules/mediaplayer/mp_xmmsinterface.cpp deleted file mode 100644 index 4528c77b2..000000000 --- a/3.4.0/src/modules/mediaplayer/mp_xmmsinterface.cpp +++ /dev/null @@ -1,355 +0,0 @@ -//============================================================================= -// -// File : mp_xmmsinterface.cpp -// Created on Fri 25 Mar 2005 20:04:54 by Szymon Stefanek -// -// This file is part of the KVIrc IRC client distribution -// Copyright (C) 2005-2007 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. -// -// Thnx to Alexander Stillich <torque at pltn dot org> for Audacious -// media player interface hints :) -// -//============================================================================= - -#include "mp_xmmsinterface.h" - -#ifndef COMPILE_ON_WINDOWS - -#include "kvi_locale.h" - -MP_IMPLEMENT_DESCRIPTOR( - KviXmmsInterface, - "xmms", - __tr2qs_ctx( - "An interface to the popular UNIX xmms media player.\n" \ - "Download it from http://www.xmms.org\n" - , - "mediaplayer" - ) -) - -MP_IMPLEMENT_DESCRIPTOR( - KviAudaciousInterface, - "audacious", - __tr2qs_ctx( - "An interface to the popular UNIX audacious media player.\n" \ - "Download it from http://audacious-media-player.org\n" - , - "mediaplayer" - ) -) - -static const char *xmms_lib_names[] = -{ - "libxmms.so", - "libxmms.so.1", - "/usr/lib/libxmms.so", - "/usr/lib/libxmms.so.1", - "/usr/local/lib/libxmms.so", - "/usr/local/lib/libxmms.so.1", - 0 -}; - -static const char *audacious_lib_names[] = -{ - "libaudacious.so", - "libaudacious.so.4", - "/usr/lib/libaudacious.so", - "/usr/lib/libaudacious.so.4", - "/usr/local/lib/libaudacious.so", - "/usr/local/lib/libaudacious.so.4", - 0 -}; - - - -KviXmmsInterface::KviXmmsInterface() -: KviMediaPlayerInterface() -{ - m_hPlayerLibrary = 0; - m_szPlayerLibraryName = "libxmms.so"; - m_pLibraryPaths = xmms_lib_names; -} - -KviXmmsInterface::~KviXmmsInterface() -{ - if(m_hPlayerLibrary) - { - kvi_library_close(m_hPlayerLibrary); - m_hPlayerLibrary = 0; - } -} - -KviAudaciousInterface::KviAudaciousInterface() -: KviXmmsInterface() -{ - m_szPlayerLibraryName = "libaudacious.so"; - m_pLibraryPaths = audacious_lib_names; -} - -KviAudaciousInterface::~KviAudaciousInterface() -{ -} - -bool KviXmmsInterface::loadPlayerLibrary() -{ - if(m_hPlayerLibrary)return true; - - const char **lib_name = m_pLibraryPaths; - while(*lib_name) - { - m_hPlayerLibrary = kvi_library_load(*lib_name); - if(m_hPlayerLibrary) - { - m_szPlayerLibraryName = *lib_name; - break; - } - lib_name++; - } - return true; -} - -void * KviXmmsInterface::lookupSymbol(const char * szSymbolName) -{ - if(!m_hPlayerLibrary) - { - if(!loadPlayerLibrary()) - { - QString tmp; - KviQString::sprintf(tmp,__tr2qs_ctx("Can't load the player library (%Q)","mediaplayer"),&m_szPlayerLibraryName); - setLastError(tmp); - return 0; - } - } - void * symptr = kvi_library_symbol(m_hPlayerLibrary,szSymbolName); - if(!symptr) - { - QString tmp; - KviQString::sprintf(tmp,__tr2qs_ctx("Can't find symbol %s in %Q","mediaplayer"),szSymbolName,&m_szPlayerLibraryName); - setLastError(tmp); - } - return symptr; -} - - -int KviXmmsInterface::detect(bool bStart) -{ - void * sym = lookupSymbol("xmms_remote_play"); - return sym ? 80 : 0; -} - -#define XMMS_SIMPLE_CALL(__symname) \ - void (*sym)(int) = (void (*)(int))lookupSymbol(__symname); \ - if(!sym)return false; \ - sym(0); \ - return true; - -bool KviXmmsInterface::prev() -{ - XMMS_SIMPLE_CALL("xmms_remote_playlist_prev") -} - -bool KviXmmsInterface::next() -{ - XMMS_SIMPLE_CALL("xmms_remote_playlist_next") -} - -bool KviXmmsInterface::play() -{ - XMMS_SIMPLE_CALL("xmms_remote_play") -} - -bool KviXmmsInterface::stop() -{ - XMMS_SIMPLE_CALL("xmms_remote_stop") -} - -bool KviXmmsInterface::pause() -{ - XMMS_SIMPLE_CALL("xmms_remote_pause") -} - -bool KviXmmsInterface::quit() -{ - XMMS_SIMPLE_CALL("xmms_remote_quit") -} - -bool KviXmmsInterface::jumpTo(kvs_int_t &iPos) -{ - void (*sym)(int,int) = (void (*)(int,int))lookupSymbol("xmms_remote_jump_to_time"); - if(!sym)return false; - sym(0,iPos); - return true; -} - -bool KviXmmsInterface::setVol(kvs_int_t &iVol) -{ - void (*sym)(int,int) = (void (*)(int,int))lookupSymbol("xmms_remote_set_main_volume"); - if(!sym)return false; - sym(0,100*iVol/255); - return true; -} - -int KviXmmsInterface::getVol() -{ - int (*sym)(int) = (int (*)(int))lookupSymbol("xmms_remote_get_main_volume"); - if(!sym)return -1; - int iVol = sym(0); - return iVol * 255 /100; -} - -bool KviXmmsInterface::getRepeat() -{ - bool (*sym)(int) = (bool (*)(int))lookupSymbol("xmms_remote_is_repeat"); - if(!sym)return false; - bool ret = sym(0); - return ret; -} - -bool KviXmmsInterface::setRepeat(bool &bVal) -{ - bool (*sym1)(int) = (bool (*)(int))lookupSymbol("xmms_remote_is_repeat"); - if(!sym1)return false; - bool bNow = sym1(0); - if(bNow != bVal) - { - void (*sym2)(int) = (void (*)(int))lookupSymbol("xmms_remote_toggle_repeat"); - if(!sym2)return false; - sym2(0); - } - return true; -} - -bool KviXmmsInterface::getShuffle() -{ - bool (*sym)(int) = (bool (*)(int))lookupSymbol("xmms_remote_is_shuffle"); - if(!sym)return false; - bool ret = sym(0); - return ret; -} - -bool KviXmmsInterface::setShuffle(bool &bVal) -{ - bool (*sym1)(int) = (bool (*)(int))lookupSymbol("xmms_remote_is_shuffle"); - if(!sym1)return false; - bool bNow = sym1(0); - if(bNow != bVal) - { - void (*sym2)(int) = (void (*)(int))lookupSymbol("xmms_remote_toggle_shuffle"); - if(!sym2)return false; - sym2(0); - } - return true; -} - -KviMediaPlayerInterface::PlayerStatus KviXmmsInterface::status() -{ - bool (*sym1)(int) = (bool (*)(int))lookupSymbol("xmms_remote_is_paused"); - if(sym1) - { - if(sym1(0))return KviMediaPlayerInterface::Paused; - bool (*sym2)(int) = (bool (*)(int))lookupSymbol("xmms_remote_is_playing"); - if(sym2) - { - if(sym2(0))return KviMediaPlayerInterface::Playing; - else return KviMediaPlayerInterface::Stopped; - } - } - - return KviMediaPlayerInterface::Unknown; -} - -bool KviXmmsInterface::playMrl(const QString &mrl) -{ - void (*sym)(int,char *) = (void (*)(int,char *))lookupSymbol("xmms_remote_playlist_add_url_string"); - KviQCString tmp = mrl.local8Bit(); - if(!tmp.isEmpty()) - { - if(sym) - { - sym(0,tmp.data()); - int (*sym1)(int) = (int (*)(int))lookupSymbol("xmms_remote_get_playlist_length"); - if(sym1) - { - int len = sym1(0); - if(len > 0) - { - void (*sym2)(int,int) = (void (*)(int,int))lookupSymbol("xmms_remote_set_playlist_pos"); - if(sym2) - { - sym2(0,len - 1); - } else return false; - } else return false; - } else return false; - } else return false; - } - return true; -} - -QString KviXmmsInterface::nowPlaying() -{ - int (*sym)(int) = (int (*)(int))lookupSymbol("xmms_remote_get_playlist_pos"); - if(!sym)return QString::null; - int pos = sym(0); - char * (*sym2)(int,int) = (char * (*)(int,int))lookupSymbol("xmms_remote_get_playlist_title"); - if(!sym2)return QString::null; - return QString::fromLocal8Bit(sym2(0,pos)); -} - -QString KviXmmsInterface::mrl() -{ - int (*sym)(int) = (int (*)(int))lookupSymbol("xmms_remote_get_playlist_pos"); - if(!sym)return QString::null; - int pos = sym(0); - char * (*sym2)(int,int) = (char * (*)(int,int))lookupSymbol("xmms_remote_get_playlist_file"); - if(!sym2)return QString::null; - QString ret = QString::fromLocal8Bit(sym2(0,pos)); - if(ret.length() > 1) - if(ret[0] == '/')ret.prepend("file://"); - return ret; -} - -int KviXmmsInterface::position() -{ - int (*sym)(int) = (int (*)(int))lookupSymbol("xmms_remote_get_playlist_pos"); - if(!sym)return -1; - int pos = sym(0); - int (*sym2)(int,int) = (int (*)(int,int))lookupSymbol("xmms_remote_get_output_time"); - if(!sym2)return -1; - return sym2(0,pos); -} - -int KviXmmsInterface::length() -{ - int (*sym)(int) = (int (*)(int))lookupSymbol("xmms_remote_get_playlist_pos"); - if(!sym)return -1; - int pos = sym(0); - int (*sym2)(int,int) = (int (*)(int,int))lookupSymbol("xmms_remote_get_playlist_time"); - if(!sym2)return -1; - return sym2(0,pos); -} - -int KviXmmsInterface::getPlayListPos() -{ - int (*sym)(int) = (int (*)(int))lookupSymbol("xmms_remote_get_playlist_pos"); - if(!sym)return -1; - return sym(0); -} - - - -#endif //!COMPILE_ON_WINDOWS |
