- switch (model_s.sensor_type) {
- case SENSOR_TYPE_ULTRASONIC:
- case SENSOR_TYPE_INFRARED_MOTION:
- case SENSOR_TYPE_TOUCH:
- _E("No function for writing");
- break;
- default:
- break;
+ Eina_List *l, *ln;
+ model_sensor_h temp = NULL;
+
+ retv_if(!info, -1);
+ retv_if(!info->id, -1);
+
+ EINA_LIST_FOREACH_SAFE(model_s.list, l, ln, temp) {
+ retv_if(!temp->id, -1);
+ if (!strcmp(temp->id, info->id)) {
+ _E("That id[%s] already exists.", info->id);
+ return -1;
+ }
+ }
+ model_s.list = eina_list_append(model_s.list, info);
+ return 0;
+}
+
+int model_list_remove_sensor(model_sensor_h info)
+{
+ retv_if(!info, -1);
+ model_s.list = eina_list_remove(model_s.list, info);
+ return 0;
+}
+
+int model_list_get_sensor(const char *id, model_sensor_h *out_info)
+{
+ Eina_List *l, *ln;
+ model_sensor_h temp = NULL;
+
+ retv_if(!id, -1);
+
+ EINA_LIST_FOREACH_SAFE(model_s.list, l, ln, temp) {
+ retv_if(!temp->id, -1);
+ if (!strcmp(temp->id, id)) {
+ _E("That id[%s] already exists.", id);
+ *out_info = temp;
+ return 0;
+ }
+ }
+
+ *out_info = NULL;
+ return -1;
+}
+
+int model_list_foreach(void (*cb)(model_sensor_h info))
+{
+ Eina_List *l, *ln;
+ model_sensor_h temp = NULL;
+
+ retv_if(!cb, -1);
+
+ EINA_LIST_FOREACH_SAFE(model_s.list, l, ln, temp) {
+ cb(temp);