From 90aaa62df5a5fb5f49b12f481c7337fe1a14ea65 Mon Sep 17 00:00:00 2001 From: Noldor Date: Sun, 20 May 2007 15:30:50 +0000 Subject: fixed crash in mp3scan and used kvs_int_t instead of int type git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@573 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/mediaplayer/libkvimediaplayer.cpp | 2 +- .../mediaplayer/mediaplayer_QT4_vc05.vcproj | 10 ++++++++- src/modules/mediaplayer/mp_amarokinterface.cpp | 2 +- src/modules/mediaplayer/mp_amarokinterface.h | 5 +++-- src/modules/mediaplayer/mp_amipinterface.cpp | 6 +++--- src/modules/mediaplayer/mp_amipinterface.h | 6 +++--- src/modules/mediaplayer/mp_interface.cpp | 2 +- src/modules/mediaplayer/mp_interface.h | 3 ++- src/modules/mediaplayer/mp_jukinterface.cpp | 2 +- src/modules/mediaplayer/mp_jukinterface.h | 4 ++-- src/modules/mediaplayer/mp_mp3.cpp | 24 ++++++++++++++++++---- src/modules/mediaplayer/mp_mp3.h | 1 + src/modules/mediaplayer/mp_winampinterface.cpp | 2 +- src/modules/mediaplayer/mp_winampinterface.h | 2 +- src/modules/mediaplayer/mp_xmmsinterface.cpp | 2 +- src/modules/mediaplayer/mp_xmmsinterface.h | 4 ++-- 16 files changed, 52 insertions(+), 25 deletions(-) (limited to 'src/modules') diff --git a/src/modules/mediaplayer/libkvimediaplayer.cpp b/src/modules/mediaplayer/libkvimediaplayer.cpp index e181233b9..493bbeb2c 100644 --- a/src/modules/mediaplayer/libkvimediaplayer.cpp +++ b/src/modules/mediaplayer/libkvimediaplayer.cpp @@ -625,7 +625,7 @@ MP_KVS_COMMAND(jumpTo) MP_KVS_COMMAND(setVol) { - int iVol; + kvs_int_t iVol; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("volume",KVS_PT_INT,0,iVol) diff --git a/src/modules/mediaplayer/mediaplayer_QT4_vc05.vcproj b/src/modules/mediaplayer/mediaplayer_QT4_vc05.vcproj index 282ae0b6f..007372deb 100644 --- a/src/modules/mediaplayer/mediaplayer_QT4_vc05.vcproj +++ b/src/modules/mediaplayer/mediaplayer_QT4_vc05.vcproj @@ -62,7 +62,7 @@ /> + + @@ -251,6 +255,10 @@ RelativePath=".\mp_amarokinterface.h" > + + diff --git a/src/modules/mediaplayer/mp_amarokinterface.cpp b/src/modules/mediaplayer/mp_amarokinterface.cpp index a307ba7ad..1f737f71f 100644 --- a/src/modules/mediaplayer/mp_amarokinterface.cpp +++ b/src/modules/mediaplayer/mp_amarokinterface.cpp @@ -70,7 +70,7 @@ bool KviAmarokInterface::jumpTo(int &iPos) { return voidRetIntDCOPCall("player","seek(int)",iPos/1000); } -bool KviAmarokInterface::setVol(int &iVol) +bool KviAmarokInterface::setVol(kvs_int_t &iVol) { return voidRetIntDCOPCall("player","setVolume(int)",100*iVol/255); } diff --git a/src/modules/mediaplayer/mp_amarokinterface.h b/src/modules/mediaplayer/mp_amarokinterface.h index 81463a382..6b2148e82 100644 --- a/src/modules/mediaplayer/mp_amarokinterface.h +++ b/src/modules/mediaplayer/mp_amarokinterface.h @@ -26,6 +26,7 @@ #include "kvi_settings.h" + #ifdef COMPILE_KDE_SUPPORT #include "kvi_dcophelper.h" @@ -43,8 +44,8 @@ virtual bool play(); virtual bool stop(); virtual bool pause(); - virtual bool jumpTo(int &iPos); - virtual bool setVol(int &iVol); + virtual bool jumpTo(kvs_int_t &iPos); + virtual bool setVol(kvs_int_t &iVol); virtual bool mute(); virtual int getVol(); virtual bool quit(); diff --git a/src/modules/mediaplayer/mp_amipinterface.cpp b/src/modules/mediaplayer/mp_amipinterface.cpp index e00edf731..7f9d6364f 100644 --- a/src/modules/mediaplayer/mp_amipinterface.cpp +++ b/src/modules/mediaplayer/mp_amipinterface.cpp @@ -267,7 +267,7 @@ QString KviAmipInterface::genre() return getAmipString("var_7"); } -bool KviAmipInterface::setVol(int &iVol) +bool KviAmipInterface::setVol(kvs_int_t &iVol) { if(!amip_dll) return false; char volcmd[AC_BUFFER_SIZE]; @@ -280,7 +280,7 @@ int KviAmipInterface::getVol() return eval_int("var_vol"); } -bool KviAmipInterface::jumpTo(int &iPos) +bool KviAmipInterface::jumpTo(kvs_int_t &iPos) { if(!amip_dll) return false; char jmpcmd[AC_BUFFER_SIZE]; @@ -315,7 +315,7 @@ bool KviAmipInterface::minimize() return (ac_exec("control mimimize") == AC_ERR_NOERROR); } -bool KviAmipInterface::setPlayListPos(int &iPos) +bool KviAmipInterface::setPlayListPos(kvs_int_t &iPos) { if(!amip_dll) return false; char jmpcmd[AC_BUFFER_SIZE]; diff --git a/src/modules/mediaplayer/mp_amipinterface.h b/src/modules/mediaplayer/mp_amipinterface.h index 34f7afc80..22bbf9d54 100644 --- a/src/modules/mediaplayer/mp_amipinterface.h +++ b/src/modules/mediaplayer/mp_amipinterface.h @@ -30,9 +30,9 @@ virtual QString mrl(); virtual int position(); virtual int length(); - virtual bool setVol(int &iVol); + virtual bool setVol(kvs_int_t &iVol); virtual int getVol(); - virtual bool jumpTo(int &iPos); + virtual bool jumpTo(kvs_int_t &iPos); virtual int sampleRate(); virtual int bitRate(); virtual int channels(); @@ -40,7 +40,7 @@ virtual bool show(); virtual bool minimize(); virtual int getPlayListPos(); - virtual bool setPlayListPos(int &iPos); + virtual bool setPlayListPos(kvs_int_t &iPos); virtual int getListLength(); virtual bool getRepeat(); virtual bool getShuffle(); diff --git a/src/modules/mediaplayer/mp_interface.cpp b/src/modules/mediaplayer/mp_interface.cpp index ff3d6a406..d468dae4a 100644 --- a/src/modules/mediaplayer/mp_interface.cpp +++ b/src/modules/mediaplayer/mp_interface.cpp @@ -143,7 +143,7 @@ bool KviMediaPlayerInterface::amipExec(const QString &cmd) return false; } -bool KviMediaPlayerInterface::setVol(int &iVol) +bool KviMediaPlayerInterface::setVol(kvs_int_t &iVol) { return false; } diff --git a/src/modules/mediaplayer/mp_interface.h b/src/modules/mediaplayer/mp_interface.h index 128db216a..12abdc872 100644 --- a/src/modules/mediaplayer/mp_interface.h +++ b/src/modules/mediaplayer/mp_interface.h @@ -26,6 +26,7 @@ #include "kvi_settings.h" #include "kvi_qstring.h" +#include "kvi_kvs_types.h" class KviMediaPlayerInterface { @@ -97,7 +98,7 @@ public: virtual bool show(); virtual bool minimize(); // set the volume of mediaplayer (0-255) - virtual bool setVol(int &iVol); + virtual bool setVol(kvs_int_t &iVol); // get the pvolume value(0-255) virtual int getVol(); //mute the volume diff --git a/src/modules/mediaplayer/mp_jukinterface.cpp b/src/modules/mediaplayer/mp_jukinterface.cpp index 727c18e60..a8584413f 100644 --- a/src/modules/mediaplayer/mp_jukinterface.cpp +++ b/src/modules/mediaplayer/mp_jukinterface.cpp @@ -67,7 +67,7 @@ bool KviJukInterface::stop(){ return voidRetVoidDCOPCall("Player","stop()"); } bool KviJukInterface::pause(){ return voidRetVoidDCOPCall("Player","pause()"); } bool KviJukInterface::quit(){ return voidRetVoidDCOPCall("MainApplication-Interface","quit()"); } -bool KviJukInterface::setVol(int &iVol) +bool KviJukInterface::setVol(kvs_int_t &iVol) { return voidRetFloatDCOPCall("player","setVolume(float)",(float)(iVol)/255.); } diff --git a/src/modules/mediaplayer/mp_jukinterface.h b/src/modules/mediaplayer/mp_jukinterface.h index 80b55dfdd..9b1400a56 100644 --- a/src/modules/mediaplayer/mp_jukinterface.h +++ b/src/modules/mediaplayer/mp_jukinterface.h @@ -45,8 +45,8 @@ virtual bool stop(); virtual bool pause(); virtual bool quit(); - virtual bool jumpTo(int &iPos); - virtual bool setVol(int &iVol); + virtual bool jumpTo(kvs_int_t &iPos); + virtual bool setVol(kvs_int_t &iVol); virtual QString nowPlaying(); virtual QString mrl(); /* diff --git a/src/modules/mediaplayer/mp_mp3.cpp b/src/modules/mediaplayer/mp_mp3.cpp index b1e0f795a..6e27fa5f5 100644 --- a/src/modules/mediaplayer/mp_mp3.cpp +++ b/src/modules/mediaplayer/mp_mp3.cpp @@ -180,7 +180,20 @@ const char *emphasis_text[] = { "None", "50/15 Microseconds", "Reserved", "CCITT J 17" }; - +void resetmp3infoStruct(mp3info *i) +{ + i->file=0; + i->datasize=0; + i->header_isvalid=0; + memset(&i->header,0,sizeof(i->header)); + i->id3_isvalid=0; + memset(&i->id3,0,sizeof(i->id3)); + i->vbr=0; + i->vbr_average=0; + i->seconds=0; + i->frames=0; + i->badframes=0; +} int get_mp3_info(mp3info *mp3) { @@ -190,7 +203,7 @@ int get_mp3_info(mp3info *mp3) int l,vbr_median=-1; int bitrate,lastrate; int counter=0; - mp3header header; +// mp3header header; int sample_pos,data_start=0; @@ -438,8 +451,11 @@ char *unpad(char *string) bool scan_mp3_file(QString& szFileName,mp3info * i) { - memset(i,0,sizeof(mp3info)); - i->filename = szFileName; + //memset(i,0,sizeof(mp3info)); + resetmp3infoStruct(i); + + + i->filename = "text"; i->file = fopen(QTextCodec::codecForLocale()->fromUnicode(i->filename).data(),"rb"); if(!i->file)return false; diff --git a/src/modules/mediaplayer/mp_mp3.h b/src/modules/mediaplayer/mp_mp3.h index 8d5af6242..d42c5ef79 100644 --- a/src/modules/mediaplayer/mp_mp3.h +++ b/src/modules/mediaplayer/mp_mp3.h @@ -114,6 +114,7 @@ typedef struct { bool scan_mp3_file(QString& szFileName,mp3info * i); +void resetmp3infoStruct(mp3info *i); int header_channels(mp3header *h); int header_frequency(mp3header *h); diff --git a/src/modules/mediaplayer/mp_winampinterface.cpp b/src/modules/mediaplayer/mp_winampinterface.cpp index 363fdddf1..76f0ad8e1 100644 --- a/src/modules/mediaplayer/mp_winampinterface.cpp +++ b/src/modules/mediaplayer/mp_winampinterface.cpp @@ -388,7 +388,7 @@ bool KviWinampInterface::playMrl(const QString &mrl) return false; } -bool KviWinampInterface::setVol(int &iVol) +bool KviWinampInterface::setVol(kvs_int_t &iVol) { HWND hWinamp = find_winamp(this); if(hWinamp) diff --git a/src/modules/mediaplayer/mp_winampinterface.h b/src/modules/mediaplayer/mp_winampinterface.h index 8ebb85cbf..54f9c7908 100644 --- a/src/modules/mediaplayer/mp_winampinterface.h +++ b/src/modules/mediaplayer/mp_winampinterface.h @@ -48,7 +48,7 @@ virtual int position(); virtual int length(); virtual bool playMrl(const QString &mrl); - virtual bool setVol(int &iVol); + virtual bool setVol(kvs_int_t &iVol); virtual int getVol(); virtual bool jumpTo(int &iPos); virtual int sampleRate(); diff --git a/src/modules/mediaplayer/mp_xmmsinterface.cpp b/src/modules/mediaplayer/mp_xmmsinterface.cpp index 4abafec13..a81bc84e9 100644 --- a/src/modules/mediaplayer/mp_xmmsinterface.cpp +++ b/src/modules/mediaplayer/mp_xmmsinterface.cpp @@ -196,7 +196,7 @@ bool KviXmmsInterface::jumpTo(int &iPos) return true; } -bool KviXmmsInterface::setVol(int &iVol) +bool KviXmmsInterface::setVol(kvs_int_t &iVol) { void (*sym)(int,int) = (void (*)(int,int))lookupSymbol("xmms_remote_set_main_volume"); if(!sym)return false; diff --git a/src/modules/mediaplayer/mp_xmmsinterface.h b/src/modules/mediaplayer/mp_xmmsinterface.h index d90c96d34..153af1f89 100644 --- a/src/modules/mediaplayer/mp_xmmsinterface.h +++ b/src/modules/mediaplayer/mp_xmmsinterface.h @@ -49,8 +49,8 @@ virtual bool stop(); virtual bool pause(); virtual bool quit(); - virtual bool jumpTo(int &iPos); - virtual bool setVol(int &iVol); + virtual bool jumpTo(kvs_int_t &iPos); + virtual bool setVol(kvs_int_t &iVol); virtual int getVol(); virtual KviMediaPlayerInterface::PlayerStatus status(); virtual QString nowPlaying(); -- cgit v1.3.1-10-gc9f91