diff options
| author | Miklos Vajna <vmiklos@frugalware.org> | 2008-02-29 02:40:12 +0100 | 
|---|---|---|
| committer | Miklos Vajna <vmiklos@frugalware.org> | 2008-02-29 02:40:12 +0100 | 
| commit | d87daf3e4e73dfbfbb1d669cb990a6325c2fa9d8 (patch) | |
| tree | 6949e1ae6cb0a4d1f94a6d3666f7812e2a423358 | |
| parent | a92fb0722c70432fe3176f398556df64cdae98ca (diff) | |
replace the fake SKYPE_CALL_RINGING_OUT with a proper call_out variable
| -rw-r--r-- | skype/skype.c | 41 | 
1 files changed, 20 insertions, 21 deletions
diff --git a/skype/skype.c b/skype/skype.c index abb92efc..4a808fc1 100644 --- a/skype/skype.c +++ b/skype/skype.c @@ -41,12 +41,9 @@ typedef enum  {  	SKYPE_CALL_RINGING = 1,  	SKYPE_CALL_MISSED, -	SKYPE_CALL_UNPLACED,  	SKYPE_CALL_CANCELLED,  	SKYPE_CALL_FINISHED, -	SKYPE_CALL_REFUSED, -	/* This means we are ringing somebody, not somebody rings us. */ -	SKYPE_CALL_RINGING_OUT +	SKYPE_CALL_REFUSED  } skype_call_status;  typedef enum @@ -84,6 +81,8 @@ struct skype_data  	skype_call_status call_status;  	char *call_id;  	char *call_duration; +	/* If the call is outgoing or not */ +	int call_out;  	/* Same for file transfers. */  	skype_filetransfer_status filetransfer_status;  	/* Using /j #nick we want to have a groupchat with two people. Usually @@ -569,10 +568,7 @@ static gboolean skype_read_callback( gpointer data, gint fd, b_input_condition c  					{  						g_snprintf(buf, 1024, "GET CALL %s PARTNER_HANDLE\n", id);  						skype_write( ic, buf, strlen( buf ) ); -						if(sd->call_status != SKYPE_CALL_UNPLACED) -							sd->call_status = SKYPE_CALL_RINGING; -						else -							sd->call_status = SKYPE_CALL_RINGING_OUT; +						sd->call_status = SKYPE_CALL_RINGING;  					}  					else if(!strcmp(info, "STATUS MISSED"))  					{ @@ -582,9 +578,9 @@ static gboolean skype_read_callback( gpointer data, gint fd, b_input_condition c  					}  					else if(!strcmp(info, "STATUS CANCELLED"))  					{ -						g_snprintf(buf, 1024, "GET CALL %s PARTNER_HANDLE\n", id); -						skype_write( ic, buf, strlen( buf ) ); -						sd->call_status = SKYPE_CALL_CANCELLED; +							g_snprintf(buf, 1024, "GET CALL %s PARTNER_HANDLE\n", id); +							skype_write( ic, buf, strlen( buf ) ); +							sd->call_status = SKYPE_CALL_CANCELLED;  					}  					else if(!strcmp(info, "STATUS FINISHED"))  					{ @@ -604,7 +600,7 @@ static gboolean skype_read_callback( gpointer data, gint fd, b_input_condition c  							g_free(sd->call_id);  						/* Save the ID for later usage (Cancel/Finish). */  						sd->call_id = g_strdup(id); -						sd->call_status = SKYPE_CALL_UNPLACED; +						sd->call_out = TRUE;  					}  					else if(!strncmp(info, "DURATION ", 9))  					{ @@ -619,29 +615,32 @@ static gboolean skype_read_callback( gpointer data, gint fd, b_input_condition c  							switch(sd->call_status)  							{  								case SKYPE_CALL_RINGING: -									imcb_log(ic, "The user %s is currently ringing you.", info); +									if(sd->call_out) +										imcb_log(ic, "You are currently ringing the user %s.", info); +									else +										imcb_log(ic, "The user %s is currently ringing you.", info);  									break;  								case SKYPE_CALL_MISSED:  									imcb_log(ic, "You have missed a call from user %s.", info);  									break; -								case SKYPE_CALL_RINGING_OUT: -									imcb_log(ic, "You are currently ringing the user %s.", info); -									break;  								case SKYPE_CALL_CANCELLED:  									imcb_log(ic, "You cancelled the call to the user %s.", info); +									sd->call_status = 0; +									sd->call_out = FALSE;  									break;  								case SKYPE_CALL_REFUSED: -									imcb_log(ic, "The user %s refused the call.", info); +									if(sd->call_out) +										imcb_log(ic, "The user %s refused the call.", info); +									else +										imcb_log(ic, "You refused the call from user %s.", info); +									sd->call_out = FALSE;  									break;  								case SKYPE_CALL_FINISHED:  									if(sd->call_duration) -									{  										imcb_log(ic, "You finished the call to the user %s (duration: %s seconds).", info, sd->call_duration); -									}  									else -									{  										imcb_log(ic, "You finished the call to the user %s.", info); -									} +									sd->call_out = FALSE;  									break;  								default:  									/* Don't be noisy, ignore other statuses for now. */  | 
