Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[mce] Use array based datapipe binding. JB#22475
Most modules already use array based datapipe binding.

Make all modules use only array based binding.

Signed-off-by: Simo Piiroinen <simo.piiroinen@jollamobile.com>
  • Loading branch information
spiiroin committed Sep 19, 2018
1 parent 16742f5 commit 9154f14
Show file tree
Hide file tree
Showing 8 changed files with 358 additions and 100 deletions.
72 changes: 52 additions & 20 deletions event-input.c
Expand Up @@ -3897,6 +3897,56 @@ static void evin_dbus_quit(void)
* MODULE_INIT
* ========================================================================= */

/** Array of datapipe handlers */
static datapipe_handler_t mce_input_datapipe_handlers[] =
{
// output triggers
{
.datapipe = &submode_pipe,
.output_cb = evin_gpio_submode_trigger,
},
{
.datapipe = &display_state_curr_pipe,
.output_cb = evin_ts_grab_display_state_curr_cb,
},
{
.datapipe = &touch_detected_pipe,
.output_cb = evin_ts_grab_touch_detected_cb,
},
{
.datapipe = &touch_grab_wanted_pipe,
.output_cb = evin_ts_grab_wanted_cb,
},
{
.datapipe = &keypad_grab_wanted_pipe,
.output_cb = evin_kp_grab_wanted_cb,
},
// sentinel
{
.datapipe = 0,
}
};

static datapipe_bindings_t mce_input_datapipe_bindings =
{
.module = "mce_input",
.handlers = mce_input_datapipe_handlers,
};

/** Append triggers/filters to datapipes
*/
static void mce_input_datapipe_init(void)
{
mce_datapipe_init_bindings(&mce_input_datapipe_bindings);
}

/** Remove triggers/filters from datapipes
*/
static void mce_input_datapipe_quit(void)
{
mce_datapipe_quit_bindings(&mce_input_datapipe_bindings);
}

/** Init function for the /dev/input event component
*
* @return TRUE on success, FALSE on failure
Expand Down Expand Up @@ -3928,16 +3978,7 @@ mce_input_init(void)
#endif

/* Append triggers/filters to datapipes */
datapipe_add_output_trigger(&submode_pipe,
evin_gpio_submode_trigger);
datapipe_add_output_trigger(&display_state_curr_pipe,
evin_ts_grab_display_state_curr_cb);
datapipe_add_output_trigger(&touch_detected_pipe,
evin_ts_grab_touch_detected_cb);
datapipe_add_output_trigger(&touch_grab_wanted_pipe,
evin_ts_grab_wanted_cb);
datapipe_add_output_trigger(&keypad_grab_wanted_pipe,
evin_kp_grab_wanted_cb);
mce_input_datapipe_init();

/* Register input device directory monitor */
if( !evin_devdir_monitor_init() )
Expand Down Expand Up @@ -3967,16 +4008,7 @@ mce_input_exit(void)
#endif

/* Remove triggers/filters from datapipes */
datapipe_remove_output_trigger(&submode_pipe,
evin_gpio_submode_trigger);
datapipe_remove_output_trigger(&display_state_curr_pipe,
evin_ts_grab_display_state_curr_cb);
datapipe_remove_output_trigger(&touch_detected_pipe,
evin_ts_grab_touch_detected_cb);
datapipe_remove_output_trigger(&touch_grab_wanted_pipe,
evin_ts_grab_wanted_cb);
datapipe_remove_output_trigger(&keypad_grab_wanted_pipe,
evin_kp_grab_wanted_cb);
mce_input_datapipe_quit();

/* Remove input device directory monitor */
evin_devdir_monitor_quit();
Expand Down
57 changes: 45 additions & 12 deletions event-switches.c
Expand Up @@ -463,6 +463,49 @@ static void mce_switches_rem_iomon_all(void)
mce_io_mon_unregister_list(switch_iomon_list);
}

/** Array of datapipe handlers */
static datapipe_handler_t mce_switches_datapipe_handlers[] =
{
// input triggers
{
.datapipe = &call_state_pipe,
.input_cb = call_state_trigger,
},
{
.datapipe = &alarm_ui_state_pipe,
.input_cb = alarm_ui_state_trigger,
},
// output triggers
{
.datapipe = &submode_pipe,
.output_cb = submode_trigger,
},
// sentinel
{
.datapipe = 0,
}
};

static datapipe_bindings_t mce_switches_datapipe_bindings =
{
.module = "mce_switches",
.handlers = mce_switches_datapipe_handlers,
};

/** Append triggers/filters to datapipes
*/
static void mce_switches_datapipe_init(void)
{
mce_datapipe_init_bindings(&mce_switches_datapipe_bindings);
}

/** Remove triggers/filters from datapipes
*/
static void mce_switches_datapipe_quit(void)
{
mce_datapipe_quit_bindings(&mce_switches_datapipe_bindings);
}

/**
* Init function for the switches component
*
Expand All @@ -473,12 +516,7 @@ gboolean mce_switches_init(void)
gboolean status = FALSE;

/* Append triggers/filters to datapipes */
datapipe_add_input_trigger(&call_state_pipe,
call_state_trigger);
datapipe_add_input_trigger(&alarm_ui_state_pipe,
alarm_ui_state_trigger);
datapipe_add_output_trigger(&submode_pipe,
submode_trigger);
mce_switches_datapipe_init();

/* Register I/O monitors */
lockkey_iomon_id =
Expand Down Expand Up @@ -549,12 +587,7 @@ gboolean mce_switches_init(void)
void mce_switches_exit(void)
{
/* Remove triggers/filters from datapipes */
datapipe_remove_output_trigger(&submode_pipe,
submode_trigger);
datapipe_remove_input_trigger(&alarm_ui_state_pipe,
alarm_ui_state_trigger);
datapipe_remove_input_trigger(&call_state_pipe,
call_state_trigger);
mce_switches_datapipe_quit();

/* Unregister I/O monitors */
mce_switches_rem_iomon_all();
Expand Down
40 changes: 36 additions & 4 deletions modetransition.c
Expand Up @@ -157,6 +157,40 @@ static void system_state_trigger(gconstpointer data)
return;
}

/** Array of datapipe handlers */
static datapipe_handler_t mce_mode_datapipe_handlers[] =
{
// output triggers
{
.datapipe = &system_state_pipe,
.output_cb = system_state_trigger,
},
// sentinel
{
.datapipe = 0,
}
};

static datapipe_bindings_t mce_mode_datapipe_bindings =
{
.module = "mce_mode",
.handlers = mce_mode_datapipe_handlers,
};

/** Append triggers/filters to datapipes
*/
static void mce_mode_datapipe_init(void)
{
mce_datapipe_init_bindings(&mce_mode_datapipe_bindings);
}

/** Remove triggers/filters from datapipes
*/
static void mce_mode_datapipe_quit(void)
{
mce_datapipe_quit_bindings(&mce_mode_datapipe_bindings);
}

/**
* Init function for the modetransition component
*
Expand All @@ -167,8 +201,7 @@ gboolean mce_mode_init(void)
gboolean status = FALSE;

/* Append triggers/filters to datapipes */
datapipe_add_output_trigger(&system_state_pipe,
system_state_trigger);
mce_mode_datapipe_init();

/* If the bootup file exists, mce has crashed / restarted;
* since it exists in /var/run it will be removed when we reboot.
Expand Down Expand Up @@ -232,8 +265,7 @@ gboolean mce_mode_init(void)
void mce_mode_exit(void)
{
/* Remove triggers/filters from datapipes */
datapipe_remove_output_trigger(&system_state_pipe,
system_state_trigger);
mce_mode_datapipe_quit();

return;
}
56 changes: 44 additions & 12 deletions modules/doubletap.c
Expand Up @@ -307,6 +307,48 @@ static void dbltap_probe_sleep_mode_controls(void)
return;
}

/** Array of datapipe handlers */
static datapipe_handler_t dbltap_datapipe_handlers[] =
{
// output triggers
{
.datapipe = &proximity_sensor_actual_pipe,
.output_cb = dbltap_proximity_sensor_actual_trigger,
},
{
.datapipe = &proximity_blanked_pipe,
.output_cb = dbltap_proximity_blanked_trigger,
},
{
.datapipe = &lid_sensor_filtered_pipe,
.output_cb = dbltap_lid_sensor_filtered_trigger,
},
// sentinel
{
.datapipe = 0,
}
};

static datapipe_bindings_t dbltap_datapipe_bindings =
{
.module = "dbltap",
.handlers = dbltap_datapipe_handlers,
};

/** Append triggers/filters to datapipes
*/
static void dbltap_datapipe_init(void)
{
mce_datapipe_init_bindings(&dbltap_datapipe_bindings);
}

/** Remove triggers/filters from datapipes
*/
static void dbltap_datapipe_quit(void)
{
mce_datapipe_quit_bindings(&dbltap_datapipe_bindings);
}

/** Init function for the doubletap module
*
* @param module (not used)
Expand Down Expand Up @@ -349,12 +391,7 @@ const gchar *g_module_check_init(GModule *module)
dbltap_mode = mode;

/* Append triggers/filters to datapipes */
datapipe_add_output_trigger(&proximity_sensor_actual_pipe,
dbltap_proximity_sensor_actual_trigger);
datapipe_add_output_trigger(&proximity_blanked_pipe,
dbltap_proximity_blanked_trigger);
datapipe_add_output_trigger(&lid_sensor_filtered_pipe,
dbltap_lid_sensor_filtered_trigger);
dbltap_datapipe_init();

/* Get initial state of datapipes */
dbltap_ps_state = datapipe_get_gint(proximity_sensor_actual_pipe);
Expand All @@ -381,12 +418,7 @@ void g_module_unload(GModule *module)
dbltap_mode_setting_id = 0;

/* Remove triggers/filters from datapipes */
datapipe_remove_output_trigger(&proximity_sensor_actual_pipe,
dbltap_proximity_sensor_actual_trigger);
datapipe_remove_output_trigger(&proximity_blanked_pipe,
dbltap_proximity_blanked_trigger);
datapipe_remove_output_trigger(&lid_sensor_filtered_pipe,
dbltap_lid_sensor_filtered_trigger);
dbltap_datapipe_quit();

/* Free config strings */
g_free(dbltap_ctrl_path);
Expand Down

0 comments on commit 9154f14

Please sign in to comment.