Make message level available to message handler callback.

This commit is contained in:
Josh Elsasser 2006-08-20 22:45:04 +00:00
parent 0caa326038
commit 69f43ff729
2 changed files with 10 additions and 14 deletions

View File

@ -66,9 +66,9 @@ tr_handle_t * tr_init();
* Sets the function used to display libtransmission messages. This * Sets the function used to display libtransmission messages. This
* function must be reentrant, it may be called from different threads. * function must be reentrant, it may be called from different threads.
* A NULL argument means to print messages to stderr. The function's * A NULL argument means to print messages to stderr. The function's
* prototype should look like this: void myErrFunc( const char * ); * prototype should look like this: void myMsgFunc( int, const char * );
**********************************************************************/ **********************************************************************/
void tr_setMessageFunction( void (*func)( const char * ) ); void tr_setMessageFunction( void (*func)( int, const char * ) );
/*********************************************************************** /***********************************************************************
* tr_setMessageLevel * tr_setMessageLevel
@ -77,7 +77,7 @@ void tr_setMessageFunction( void (*func)( const char * ) );
**********************************************************************/ **********************************************************************/
#define TR_MSG_ERR 1 #define TR_MSG_ERR 1
#define TR_MSG_INF 2 #define TR_MSG_INF 2
#define TR_MSG_DBG 4 #define TR_MSG_DBG 3
void tr_setMessageLevel( int ); void tr_setMessageLevel( int );
int tr_getMessageLevel( void ); int tr_getMessageLevel( void );

View File

@ -24,18 +24,18 @@
#include "transmission.h" #include "transmission.h"
static void (*messageFunc)( const char * ); static void (*messageFunc)( int, const char * );
static int verboseLevel = 0; static int verboseLevel = 0;
void tr_setMessageFunction( void (*func)( const char * ) ) void tr_setMessageFunction( void (*func)( int, const char * ) )
{ {
messageFunc = func; messageFunc = func;
} }
void tr_setMessageLevel( int level ) void tr_setMessageLevel( int level )
{ {
verboseLevel = level; verboseLevel = MAX( 0, level );
} }
int tr_getMessageLevel( void ) int tr_getMessageLevel( void )
@ -52,15 +52,11 @@ void tr_msg( int level, char * msg, ... )
{ {
char * env; char * env;
env = getenv( "TR_DEBUG" ); env = getenv( "TR_DEBUG" );
verboseLevel = env ? atoi( env ) : -1; verboseLevel = ( env ? atoi( env ) : 0 ) + 1;
verboseLevel = verboseLevel ? verboseLevel : -1; verboseLevel = MAX( 1, verboseLevel );
} }
if( verboseLevel < 1 && level > TR_MSG_ERR ) if( verboseLevel < level )
{
return;
}
if( verboseLevel < 2 && level > TR_MSG_INF )
{ {
return; return;
} }
@ -75,7 +71,7 @@ void tr_msg( int level, char * msg, ... )
} }
else else
{ {
messageFunc( string ); messageFunc( level, string );
} }
} }