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
* function must be reentrant, it may be called from different threads.
* 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
@ -77,7 +77,7 @@ void tr_setMessageFunction( void (*func)( const char * ) );
**********************************************************************/
#define TR_MSG_ERR 1
#define TR_MSG_INF 2
#define TR_MSG_DBG 4
#define TR_MSG_DBG 3
void tr_setMessageLevel( int );
int tr_getMessageLevel( void );

View File

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