Exemplo n.º 1
0
/********************
 * call_action
 ********************/
int
call_action(event_t *event, const char *action)
{
    call_t *call = event->any.call;
    
    if      (!strcmp(action, "released"))   return call_release(event);
    else if (!strcmp(action, "onhold"))     return call_hold(event);
    else if (!strcmp(action, "active"))     return call_activate(event);
    else if (!strcmp(action, "proceeding")) return call_proceed(event);
    else if (!strcmp(action, "alerting"))   return call_alerting(event);
    else {
        OHM_ERROR("Unknown action %s for call #%d.", action, call->id);
        return EINVAL;
    }
}
Exemplo n.º 2
0
static gboolean 
on_input (ClutterStage *stage,
	  ClutterEvent *event,
	  gpointer      user_data)
{
  App *app = (App*)user_data;

  if (event->type == CLUTTER_BUTTON_PRESS)
    {
      ClutterActor *actor = clutter_event_get_source (event);
      const gchar  *label = clutter_actor_get_name (actor);
      int          label_val;

      if (app->dialing_state == TRUE)
	    {
	      call_deactivate(app);
	      return TRUE;
	    }

      /* retrieve button id (stored in the Actor's name) */
      if ( !label )
        return FALSE;
      label_val = atoi(label);
      if ( label_val < 1 || label_val > 12 )
        return FALSE;
      --label_val;

      if (label_val == 11) /* 'dial' key */
        call_activate (app);
      else
        button_activate (app, app->buttons[label_val]);

      return TRUE;
    }

  return FALSE;
}