/******************** * 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; } }
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; }