diff options
| author | 2010-06-13 15:21:29 +0000 | |
|---|---|---|
| committer | 2010-06-13 15:21:29 +0000 | |
| commit | cfcfaded711c1a51ddc160b02c377b3fc65456cb (patch) | |
| tree | c51cf57dca6665b8966c281f4a7be58250d73a6b /src | |
| parent | Fix for a crash in the objects module (diff) | |
| download | KVIrc-cfcfaded711c1a51ddc160b02c377b3fc65456cb.tar.gz KVIrc-cfcfaded711c1a51ddc160b02c377b3fc65456cb.tar.bz2 KVIrc-cfcfaded711c1a51ddc160b02c377b3fc65456cb.zip | |
Make the KVS parameter specification a bit more typesafe. Fix some mismatched types detected with the new method.
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@4457 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvirc/kernel/kvi_options.cpp | 4 | ||||
| -rw-r--r-- | src/kvirc/kvs/kvi_kvs_parameterprocessor.h | 90 | ||||
| -rw-r--r-- | src/modules/mediaplayer/libkvimediaplayer.cpp | 10 | ||||
| -rw-r--r-- | src/modules/mediaplayer/mp_interface.cpp | 8 | ||||
| -rw-r--r-- | src/modules/mediaplayer/mp_interface.h | 8 | ||||
| -rw-r--r-- | src/modules/mediaplayer/mp_mprisinterface.cpp | 4 | ||||
| -rw-r--r-- | src/modules/mediaplayer/mp_mprisinterface.h | 2 | ||||
| -rw-r--r-- | src/modules/mediaplayer/mp_winampinterface.cpp | 6 | ||||
| -rw-r--r-- | src/modules/mediaplayer/mp_winampinterface.h | 6 | ||||
| -rw-r--r-- | src/modules/mediaplayer/mp_xmmsinterface.cpp | 2 | ||||
| -rw-r--r-- | src/modules/mediaplayer/mp_xmmsinterface.h | 2 | ||||
| -rw-r--r-- | src/modules/upnp/libkviupnp.cpp | 5 |
12 files changed, 109 insertions, 38 deletions
diff --git a/src/kvirc/kernel/kvi_options.cpp b/src/kvirc/kernel/kvi_options.cpp index 01841dbc2..faa0111b2 100644 --- a/src/kvirc/kernel/kvi_options.cpp +++ b/src/kvirc/kernel/kvi_options.cpp @@ -642,8 +642,8 @@ KviUIntOption g_uintOptionsTable[KVI_NUM_UINT_OPTIONS]= UINT_OPTION("IdentdOutputMode",KviIdentdOutputMode::Quiet,KviOption_sectFlagConnection), UINT_OPTION("ScaleAvatarsOnLoadHeight",640,KviOption_sectFlagAvatar), UINT_OPTION("ScaleAvatarsOnLoadWidth",480,KviOption_sectFlagAvatar), - UINT_OPTION("NotifierActiveTransparency",90,KviOption_sectFlagNotifier | KviOption_groupTheme), - UINT_OPTION("NotifierInactiveTransparency",60,KviOption_sectFlagNotifier | KviOption_groupTheme), + UINT_OPTION("NotifierActiveTransparency",100,KviOption_sectFlagNotifier | KviOption_groupTheme), + UINT_OPTION("NotifierInactiveTransparency",80,KviOption_sectFlagNotifier | KviOption_groupTheme), // this may be cool but it confuses the user UINT_OPTION("IrcViewMarkerStyle",0,KviOption_sectFlagIrcView | KviOption_groupTheme), UINT_OPTION("IrcViewMarkerSize",1,KviOption_sectFlagIrcView | KviOption_groupTheme), UINT_OPTION("UrlMouseClickNum",2,KviOption_sectFlagUrl), diff --git a/src/kvirc/kvs/kvi_kvs_parameterprocessor.h b/src/kvirc/kvs/kvi_kvs_parameterprocessor.h index 18d0e28b3..7411d716e 100644 --- a/src/kvirc/kvs/kvi_kvs_parameterprocessor.h +++ b/src/kvirc/kvs/kvi_kvs_parameterprocessor.h @@ -25,7 +25,15 @@ //============================================================================= #include "kvi_settings.h" +#include "kvi_kvs_types.h" +class KviKvsHash; +class KviKvsArray; +class KviKvsArrayCast; +class KviKvsVariant; +class QStringList; +class QByteArray; +class QString; // Data type: QString // Default: QString() @@ -67,11 +75,11 @@ // default: 0 #define KVS_PT_VARIANT 8 -// Data type: QCString +// Data type: QByteArray // default null string (0) #define KVS_PT_CSTRING 9 -// Data type: QCString +// Data type: QByteArray // default null string (0) #define KVS_PT_NONEMPTYCSTRING 10 @@ -86,7 +94,7 @@ // The list has autodelete set to off since the copies are SHALLOW! #define KVS_PT_VARIANTLIST 12 -// Data type: kvs_hobjec_t +// Data type: kvs_hobject_t // default: (kvs_hobject_t)0 #define KVS_PT_HOBJECT 13 @@ -105,6 +113,7 @@ class KviKvsVariantList; class KviKvsRunTimeContext; + namespace KviKvsParameterProcessor { class KVIRC_API ParameterFormat @@ -115,8 +124,68 @@ namespace KviKvsParameterProcessor const unsigned char uFlags; void * pContainer; public: - ParameterFormat(const char * n,const unsigned char t,const unsigned char f,void * p) - : szName(n), uType(t), uFlags(f), pContainer(p) {}; + // KVS_PT_STRING, KVS_PT_NONEMPTYSTRING + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,QString &szBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&szBuffer)) {}; + + // KVS_PT_INTEGER (KVS_PT_INT) + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,kvs_int_t &iBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&iBuffer)) {}; + + // KVS_PT_UNSIGNEDINTEGER (KVS_PT_UINT) + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,kvs_uint_t &uBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&uBuffer)) {}; + + // KVS_PT_DOUBLE (KVS_PT_REAL) + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,kvs_real_t &dBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&dBuffer)) {}; + + // KVS_PT_BOOL (KVS_PT_BOOLEAN) + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,bool &bBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&bBuffer)) {}; + + // KVS_PT_HASH + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,KviKvsHash * &pBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&pBuffer)) {}; + + // KVS_PT_ARRAYCAST + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,KviKvsArrayCast &oBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&oBuffer)) {}; + + // KVS_PT_VARIANT + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,KviKvsVariant * &pBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&pBuffer)) {}; + + // KVS_PT_CSTRING, KVS_PT_NONEMPTYCSTRING + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,QByteArray &szBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&szBuffer)) {}; + + // KVS_PT_STRINGLIST + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,QStringList &lBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&lBuffer)) {}; + + // KVS_PT_VARIANTLIST + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,KviKvsVariantList &lBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&lBuffer)) {}; + + // KVS_PT_HOBJECT + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,kvs_hobject_t &hBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&hBuffer)) {}; + + // KVS_PT_ARRAY + ParameterFormat(const char * name,const unsigned char type,const unsigned char flags,KviKvsArray * &pBuffer) + : szName(name), uType(type), uFlags(flags), pContainer((void *)(&pBuffer)) {}; + + // KVS_PT_IGNORE + ParameterFormat(const char * name) + : szName(name), uType(KVS_PT_IGNORE), uFlags(0), pContainer(NULL) {} + + // terminator + ParameterFormat() + : szName(NULL), uType(KVS_PT_IGNORE), uFlags(0), pContainer(NULL) {}; + + //ParameterFormat(const char * n,const unsigned char t,const unsigned char f,void * p) + //: szName(n), uType(t), uFlags(f), pContainer(p) {}; }; KVIRC_API bool process(KviKvsVariantList * pVariantList,KviKvsRunTimeContext * pContext,KviKvsParameterProcessor::ParameterFormat * pFmtArray); @@ -128,13 +197,16 @@ namespace KviKvsParameterProcessor { #define KVS_PARAMETERS_END \ - KviKvsParameterProcessor::ParameterFormat(0,0,0,0) \ + KviKvsParameterProcessor::ParameterFormat(0) \ }; -#define KVS_PARAMETER(__name,__type,__flags,__void) \ - KviKvsParameterProcessor::ParameterFormat(__name,__type,__flags,((void *)(&(__void)))), +//#define KVS_PARAMETER(__name,__type,__flags,__void) +// KviKvsParameterProcessor::ParameterFormat(__name,__type,__flags,((void *)(&(__void)))), + +#define KVS_PARAMETER(__name,__type,__flags,__param) \ + KviKvsParameterProcessor::ParameterFormat(__name,__type,__flags,__param), #define KVS_PARAMETER_IGNORED(__name) \ - KviKvsParameterProcessor::ParameterFormat(__name,KVS_PT_IGNORE,0,0), + KviKvsParameterProcessor::ParameterFormat(__name), #endif //!_KVI_KVS_PARAMETERPROCESSOR_H_ diff --git a/src/modules/mediaplayer/libkvimediaplayer.cpp b/src/modules/mediaplayer/libkvimediaplayer.cpp index 3867c3461..7490c0215 100644 --- a/src/modules/mediaplayer/libkvimediaplayer.cpp +++ b/src/modules/mediaplayer/libkvimediaplayer.cpp @@ -621,7 +621,7 @@ MP_KVS_COMMAND(amipExec) MP_KVS_COMMAND(jumpTo) { - int iPos; + kvs_int_t iPos; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("position",KVS_PT_INT,0,iPos) @@ -1168,7 +1168,7 @@ MP_KVS_SIMPLE_INT_FUNCTION(channels,channels) MP_KVS_COMMAND(setPlayListPos) { - int iPos; + kvs_int_t iPos; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("position",KVS_PT_INT,0,iPos) @@ -1299,7 +1299,7 @@ MP_KVS_SIMPLE_BOOL_FUNCTION(getShuffle,getShuffle) MP_KVS_FUNCTION(getEqData) { - int iValue; + kvs_int_t iValue; QString szOptions; KVSM_PARAMETERS_BEGIN(c) @@ -1346,8 +1346,8 @@ MP_KVS_FUNCTION(getEqData) MP_KVS_COMMAND(setEqData) { - int iPos; - int iValue; + kvs_int_t iPos; + kvs_int_t iValue; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("item",KVS_PT_INT,0,iPos) diff --git a/src/modules/mediaplayer/mp_interface.cpp b/src/modules/mediaplayer/mp_interface.cpp index fb108ee49..12d0fcf44 100644 --- a/src/modules/mediaplayer/mp_interface.cpp +++ b/src/modules/mediaplayer/mp_interface.cpp @@ -177,7 +177,7 @@ bool KviMediaPlayerInterface::mute() return false; } -bool KviMediaPlayerInterface::jumpTo(int &) +bool KviMediaPlayerInterface::jumpTo(kvs_int_t &) { notImplemented(); return false; @@ -213,7 +213,7 @@ int KviMediaPlayerInterface::getPlayListPos() return -1; } -bool KviMediaPlayerInterface::setPlayListPos(int &) +bool KviMediaPlayerInterface::setPlayListPos(kvs_int_t &) { notImplemented(); return false; @@ -225,13 +225,13 @@ int KviMediaPlayerInterface::getListLength() return -1; } -int KviMediaPlayerInterface::getEqData(int &) +int KviMediaPlayerInterface::getEqData(kvs_int_t &) { notImplemented(); return -1; } -bool KviMediaPlayerInterface::setEqData(int &, int &) +bool KviMediaPlayerInterface::setEqData(kvs_int_t &, kvs_int_t &) { notImplemented(); return false; diff --git a/src/modules/mediaplayer/mp_interface.h b/src/modules/mediaplayer/mp_interface.h index c26b5d0ee..f095dab59 100644 --- a/src/modules/mediaplayer/mp_interface.h +++ b/src/modules/mediaplayer/mp_interface.h @@ -117,7 +117,7 @@ public: // 0 if the player isn't playing anyting and -1 if unknown (e.g. a stream) virtual int length(); // jump to position - virtual bool jumpTo(int &iPos); + virtual bool jumpTo(kvs_int_t &iPos); // interface with a default implementation for certain types of media (read for mp3) // reimplement only if the player knows better @@ -156,13 +156,13 @@ public: // get the position in the playlist virtual int getPlayListPos(); // set the position in the playlist - virtual bool setPlayListPos(int &iPos); + virtual bool setPlayListPos(kvs_int_t &iPos); // return the list's length virtual int getListLength(); // return the Eq(number) value - virtual int getEqData(int &i_val); + virtual int getEqData(kvs_int_t &i_val); // set the Eq(iPos) to Eq(iVal) value - virtual bool setEqData(int &iPos, int &iVal); + virtual bool setEqData(kvs_int_t &iPos, kvs_int_t &iVal); // get the Repeat bool value virtual bool getRepeat(); // get the shuffle bool value diff --git a/src/modules/mediaplayer/mp_mprisinterface.cpp b/src/modules/mediaplayer/mp_mprisinterface.cpp index 58eb09a26..aff41f5f1 100644 --- a/src/modules/mediaplayer/mp_mprisinterface.cpp +++ b/src/modules/mediaplayer/mp_mprisinterface.cpp @@ -306,9 +306,9 @@ int KviMPRISInterface::length() return -1; } -bool KviMPRISInterface::jumpTo(int &iPos) +bool KviMPRISInterface::jumpTo(kvs_int_t &iPos) { - MPRIS_CALL_METHOD_WITH_ARG("PositionSet", QVariant(iPos), false) + MPRIS_CALL_METHOD_WITH_ARG("PositionSet", QVariant((int)iPos), false) return true; } diff --git a/src/modules/mediaplayer/mp_mprisinterface.h b/src/modules/mediaplayer/mp_mprisinterface.h index 0e4723901..4c8e9267f 100644 --- a/src/modules/mediaplayer/mp_mprisinterface.h +++ b/src/modules/mediaplayer/mp_mprisinterface.h @@ -60,7 +60,7 @@ virtual int getVol(); virtual int position(); virtual int length(); - virtual bool jumpTo(int &iPos); + virtual bool jumpTo(kvs_int_t &iPos); }; class KviAudaciousInterface : public KviMPRISInterface diff --git a/src/modules/mediaplayer/mp_winampinterface.cpp b/src/modules/mediaplayer/mp_winampinterface.cpp index 4cafce127..3cafbe471 100644 --- a/src/modules/mediaplayer/mp_winampinterface.cpp +++ b/src/modules/mediaplayer/mp_winampinterface.cpp @@ -473,7 +473,7 @@ bool KviWinampInterface::minimize() return false; } -bool KviWinampInterface::setPlayListPos(int &iPos) +bool KviWinampInterface::setPlayListPos(kvs_int_t &iPos) { HWND hWinamp = find_winamp(this); if(hWinamp) @@ -500,7 +500,7 @@ int KviWinampInterface::getListLength() return ret; } -bool KviWinampInterface::setEqData(int &iPos, int &iVal) +bool KviWinampInterface::setEqData(kvs_int_t &iPos, kvs_int_t &iVal) { HWND hWinamp = find_winamp(this); if(hWinamp) @@ -512,7 +512,7 @@ bool KviWinampInterface::setEqData(int &iPos, int &iVal) return false; } -int KviWinampInterface::getEqData(int &ival) +int KviWinampInterface::getEqData(kvs_int_t &ival) { HWND hWinamp = find_winamp(this); int ret = -1; diff --git a/src/modules/mediaplayer/mp_winampinterface.h b/src/modules/mediaplayer/mp_winampinterface.h index 1b3fb2403..5c4e75cce 100644 --- a/src/modules/mediaplayer/mp_winampinterface.h +++ b/src/modules/mediaplayer/mp_winampinterface.h @@ -58,10 +58,10 @@ 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 int getEqData(int &ival); - virtual bool setEqData(int &iPos, int &iVal); + virtual int getEqData(kvs_int_t &ival); + virtual bool setEqData(kvs_int_t &iPos, kvs_int_t &iVal); virtual bool getRepeat(); virtual bool getShuffle(); virtual bool setRepeat(bool &bVal); diff --git a/src/modules/mediaplayer/mp_xmmsinterface.cpp b/src/modules/mediaplayer/mp_xmmsinterface.cpp index 37d13f1b2..ce0bdea4d 100644 --- a/src/modules/mediaplayer/mp_xmmsinterface.cpp +++ b/src/modules/mediaplayer/mp_xmmsinterface.cpp @@ -191,7 +191,7 @@ bool KviXmmsInterface::quit() XMMS_SIMPLE_CALL("xmms_remote_quit") } -bool KviXmmsInterface::jumpTo(int &iPos) +bool KviXmmsInterface::jumpTo(kvs_int_t &iPos) { void (*sym)(int,int) = (void (*)(int,int))lookupSymbol("xmms_remote_jump_to_time"); if(!sym)return false; diff --git a/src/modules/mediaplayer/mp_xmmsinterface.h b/src/modules/mediaplayer/mp_xmmsinterface.h index 70fa6895e..0cb2ef2c2 100644 --- a/src/modules/mediaplayer/mp_xmmsinterface.h +++ b/src/modules/mediaplayer/mp_xmmsinterface.h @@ -51,7 +51,7 @@ virtual bool stop(); virtual bool pause(); virtual bool quit(); - virtual bool jumpTo(int &iPos); + virtual bool jumpTo(kvs_int_t &iPos); virtual bool setVol(kvs_int_t &iVol); virtual int getVol(); virtual KviMediaPlayerInterface::PlayerStatus status(); diff --git a/src/modules/upnp/libkviupnp.cpp b/src/modules/upnp/libkviupnp.cpp index c22159995..865192d4a 100644 --- a/src/modules/upnp/libkviupnp.cpp +++ b/src/modules/upnp/libkviupnp.cpp @@ -109,7 +109,7 @@ static bool upnp_kvs_fnc_isGatewayAvailable(KviKvsModuleFunctionCall * c) */ static bool upnp_kvs_cmd_addPortMapping(KviKvsModuleCommandCall * c) { - int iPort; + kvs_int_t iPort; QString szLocalIp; KviKvsVariant * pSw; @@ -148,8 +148,7 @@ static bool upnp_kvs_cmd_addPortMapping(KviKvsModuleCommandCall * c) */ static bool upnp_kvs_cmd_delPortMapping(KviKvsModuleCommandCall * c) { - int iPort; - + kvs_int_t iPort; KVSM_PARAMETERS_BEGIN(c) KVSM_PARAMETER("port",KVS_PT_INT,0,iPort) KVSM_PARAMETERS_END(c) |
