1
0
Fork 0
mirror of https://gitlab.gnome.org/GNOME/calls.git synced 2024-06-30 15:49:31 +00:00

call: Get rid of tone_stop

It wasn't used by any plugin backend and helps getting rid of a lot of code.
This commit is contained in:
Evangelos Ribeiro Tzaras 2021-11-16 13:59:06 +01:00
parent 748f9c937c
commit a353a03d01
5 changed files with 19 additions and 89 deletions

View file

@ -275,7 +275,7 @@ DEFINE_OPERATION(start, calls_mm_call_start_call, "starting outgoing call");
static void
calls_mm_call_tone_start (CallsCall *call, gchar key)
calls_mm_call_send_dtmf_tone (CallsCall *call, gchar key)
{
CallsMMCall *self = CALLS_MM_CALL (call);
struct CallsMMOperationData *data;
@ -386,7 +386,7 @@ calls_mm_call_class_init (CallsMMCallClass *klass)
call_class->get_protocol = calls_mm_call_get_protocol;
call_class->answer = calls_mm_call_answer;
call_class->hang_up = calls_mm_call_hang_up;
call_class->tone_start = calls_mm_call_tone_start;
call_class->send_dtmf_tone = calls_mm_call_send_dtmf_tone;
props[PROP_MM_CALL] = g_param_spec_object ("mm-call",
"MM call",

View file

@ -188,7 +188,7 @@ calls_ofono_call_hang_up (CallsCall *call)
static void
calls_ofono_call_tone_start (CallsCall *call, gchar key)
calls_ofono_call_send_dtmf_tone (CallsCall *call, gchar key)
{
CallsOfonoCall *self = CALLS_OFONO_CALL (call);
if (self->state != CALLS_CALL_STATE_ACTIVE)
@ -362,7 +362,7 @@ calls_ofono_call_class_init (CallsOfonoCallClass *klass)
call_class->get_protocol = calls_ofono_call_get_protocol;
call_class->answer = calls_ofono_call_answer;
call_class->hang_up = calls_ofono_call_hang_up;
call_class->tone_start = calls_ofono_call_tone_start;
call_class->send_dtmf_tone = calls_ofono_call_send_dtmf_tone;
props[PROP_VOICE_CALL] =
g_param_spec_object ("voice-call",

View file

@ -41,8 +41,8 @@
* #CALL_CALL_STATE_INCOMING, the call can be answered with #answer.
* The call can also be hung up at any time with #hang_up.
*
* DTMF tones can be played the call using #tone_start and
* #tone_stop. Valid characters for the key are 0-9, '*', '#', 'A',
* DTMF tones can be played the call using #send_dtmf
* Valid characters for the key are 0-9, '*', '#', 'A',
* 'B', 'C' and 'D'.
*/
@ -108,19 +108,12 @@ calls_call_real_hang_up (CallsCall *self)
}
static void
calls_call_real_tone_start (CallsCall *self,
char key)
calls_call_real_send_dtmf_tone (CallsCall *self,
char key)
{
g_info ("Beep! (%c)", (int)key);
}
static void
calls_call_real_tone_stop (CallsCall *self,
char key)
{
g_info ("Beep end (%c)", (int)key);
}
static void
calls_call_get_property (GObject *object,
guint prop_id,
@ -170,8 +163,7 @@ calls_call_class_init (CallsCallClass *klass)
klass->get_protocol = calls_call_real_get_protocol;
klass->answer = calls_call_real_answer;
klass->hang_up = calls_call_real_hang_up;
klass->tone_start = calls_call_real_tone_start;
klass->tone_stop = calls_call_real_tone_stop;
klass->send_dtmf_tone = calls_call_real_send_dtmf_tone;
properties[PROP_INBOUND] =
g_param_spec_boolean ("inbound",
@ -369,67 +361,27 @@ calls_call_can_dtmf (CallsCall *self)
{
g_return_val_if_fail (CALLS_IS_CALL (self), FALSE);
return CALLS_CALL_GET_CLASS (self)->tone_start != calls_call_real_tone_start;
return CALLS_CALL_GET_CLASS (self)->send_dtmf_tone != calls_call_real_send_dtmf_tone;
}
/**
* calls_call_tone_start:
* calls_call_send_dtmf_tone:
* @self: a #CallsCall
* @key: which tone to start
*
* Start playing a DTMF tone for the specified key. Implementations
* Start playing a DTMF tone for the specified key. Implementations
* will stop playing the tone either after an implementation-specific
* timeout, or after #calls_call_tone_stop is called with the same
* value for @key.
* timeout.
*
*/
void
calls_call_tone_start (CallsCall *self,
gchar key)
calls_call_send_dtmf_tone (CallsCall *self,
gchar key)
{
g_return_if_fail (CALLS_IS_CALL (self));
g_return_if_fail (tone_key_is_valid (key));
CALLS_CALL_GET_CLASS (self)->tone_start (self, key);
}
/**
* calls_call_tone_stoppable:
* @self: a #CallsCall
*
* Determine whether tones for this call can be stopped by calling
* #calls_call_tone_stop. Some implementations will only allow
* fixed-length tones to be played. In that case, this function
* should return FALSE.
*
* Returns: whether calls to #calls_call_tone_stop will do anything
*
*/
gboolean
calls_call_tone_stoppable (CallsCall *self)
{
g_return_val_if_fail (CALLS_IS_CALL (self), FALSE);
return CALLS_CALL_GET_CLASS (self)->tone_stop != calls_call_real_tone_stop;
}
/**
* calls_call_tone_stop:
* @self: a #CallsCall
* @key: which tone to stop
*
* Stop playing a DTMF tone previously started with
* #calls_call_tone_start.
*
*/
void
calls_call_tone_stop (CallsCall *self,
gchar key)
{
g_return_if_fail (CALLS_IS_CALL (self));
g_return_if_fail (tone_key_is_valid (key));
CALLS_CALL_GET_CLASS (self)->tone_stop (self, key);
CALLS_CALL_GET_CLASS (self)->send_dtmf_tone (self, key);
}
/**

View file

@ -57,9 +57,7 @@ struct _CallsCallClass
const char *(*get_protocol) (CallsCall *self);
void (*answer) (CallsCall *self);
void (*hang_up) (CallsCall *self);
void (*tone_start) (CallsCall *self,
char key);
void (*tone_stop) (CallsCall *self,
void (*send_dtmf_tone) (CallsCall *self,
char key);
};
@ -71,10 +69,7 @@ const char *calls_call_get_protocol (CallsCall *self);
void calls_call_answer (CallsCall *self);
void calls_call_hang_up (CallsCall *self);
gboolean calls_call_can_dtmf (CallsCall *self);
void calls_call_tone_start (CallsCall *self,
gchar key);
gboolean calls_call_tone_stoppable (CallsCall *self);
void calls_call_tone_stop (CallsCall *self,
void calls_call_send_dtmf_tone (CallsCall *self,
gchar key);
CallsBestMatch * calls_call_get_contact (CallsCall *self);

View file

@ -39,16 +39,6 @@ struct DtmfData
char dtmf;
};
static gboolean
on_stop_dtmf (struct DtmfData *dtmf_data)
{
calls_call_tone_stop (dtmf_data->call, dtmf_data->dtmf);
g_free (dtmf_data);
return G_SOURCE_REMOVE;
}
static const char *
calls_ui_call_data_get_display_name (CuiCall *call_data)
{
@ -173,14 +163,7 @@ calls_ui_call_data_send_dtmf (CuiCall *call_data,
g_return_if_fail (CALLS_IS_UI_CALL_DATA (self));
g_return_if_fail (!!self->call);
calls_call_tone_start (self->call, *dtmf);
if (calls_call_tone_stoppable (self->call)) {
struct DtmfData *dtmf_data = g_new0 (struct DtmfData, 1);
dtmf_data->call = self->call;
dtmf_data->dtmf = *dtmf;
g_timeout_add (250, G_SOURCE_FUNC (on_stop_dtmf), dtmf_data);
}
calls_call_send_dtmf_tone (self->call, *dtmf);
}
static void