<privilege>http://tizen.org/privilege/datasharing</privilege>
<privilege>http://tizen.org/privilege/externalstroage</privilege>
<privilege>http://tizen.org/privilege/mediastorage</privilege>
+ <privilege>http://tizen.org/privilege/recorder</privilege>
</privileges>
</manifest>
Eina_Hash *_client_hash = NULL;
static Eina_Bool _init_done = false;
-unsigned long long input_event_caps[MMI_INPUT_EVENT_TYPE_VOICE_RECOGNITION+1] =
+unsigned long long input_event_caps[MMI_INPUT_EVENT_TYPE_SPEAKER_RECOGNITION+1] =
{
//MMI_INPUT_EVENT_TYPE_NONE
MODALITY_PROVIDER_CAP_NONE,
MODALITY_PROVIDER_CAP_KEY_EVENT |
MODALITY_PROVIDER_CAP_VOICE_EVENT |
MODALITY_PROVIDER_CAP_SCREEN_ANALYZER_EVENT,
- //MMI_INPUT_EVENT_TYPE_VOICE_RECOGNITION
+ //MMI_INPUT_EVENT_TYPE_SPEAKER_RECOGNITION
MODALITY_PROVIDER_CAP_KEY_EVENT |
- MODALITY_PROVIDER_CAP_VOICE_EVENT,
+ MODALITY_PROVIDER_CAP_SPEAKER_RECOGNIZE_EVENT,
};
static Eina_Bool
MMI_API int MMI_VISION_EVENT_DROP = -1;
MMI_API int MMI_VISION_EVENT_FINISH = -1;
MMI_API int MMI_EVENT_REFRESH_SCREEN_INFORM = -1;
+
+MMI_API int MMI_PROVIDER_EVENT_SPEAKER_RECOGNIZER = -1;
+MMI_API int MMI_EVENT_SPEAKER_RECOGNIZER = -1;
MMI_API extern int MMI_VISION_EVENT_FINISH;
MMI_API extern int MMI_EVENT_REFRESH_SCREEN_INFORM;
+MMI_API extern int MMI_PROVIDER_EVENT_SPEAKER_RECOGNIZER;
+MMI_API extern int MMI_EVENT_SPEAKER_RECOGNIZER;
+
//TODO. not use mmi_vision_state, use mmi_event_vision_type
typedef enum {
MMI_INPUT_EVENT_TYPE_NONE,
MMI_INPUT_EVENT_TYPE_VOICE_TOUCH,
- MMI_INPUT_EVENT_TYPE_VOICE_RECOGNITION
+ MMI_INPUT_EVENT_TYPE_SPEAKER_RECOGNITION
} mmi_input_event_type_e;
typedef enum mmi_vision_state
int operation;
} mmi_output_modality_voice_touch;
+typedef enum mmi_speaker_recognizer_operation
+{
+ MMI_SPEAKER_RECOGNIZER_RECORDING_START,
+ MMI_SPEAKER_RECOGNIZER_RECORDING_STOP,
+ MMI_SPEAKER_RECOGNIZER_ADD_USER,
+ MMI_SPEAKER_RECOGNIZER_DELETE_USER,
+ MMI_SPEAKER_RECOGNIZER_RECOGNIZE_SPEAKER,
+} mmi_speaker_recognizer_operation;
+
+typedef struct
+{
+ char *id;
+ char *name;
+ float score;
+} speaker_result;
+
+typedef struct
+{
+ int type;
+ int timestamp;
+ int duration;
+ double confidence;
+ char *speaker;
+ GList *speaker_list; // list of speaker_result
+} mmi_provider_event_speaker_recognizer;
+typedef struct
+{
+ int operation;
+ char *id;
+ char *name;
+ char *path;
+} mmi_event_speaker_recognizer;
+
typedef unsigned long long ull;
typedef enum mmi_state
MODALITY_PROVIDER_CAP_VOICE_EVENT = (1 << 4),
MODALITY_PROVIDER_CAP_VISION_EVENT = (1 << 5),
MODALITY_PROVIDER_CAP_SCREEN_ANALYZER_EVENT = (1 << 6),
+
+ MODALITY_PROVIDER_CAP_SPEAKER_RECOGNIZE_EVENT = (1 << 7),
+
MODALITY_PROVIDER_CAP_UNKNOWN = ((ull)1 << 62),
MODALITY_PROVIDER_CAP_MAX = ((ull)1 << 63)
} mmi_provider_capability;
EVENT_HANDLER_VOICE,
EVENT_HANDLER_VISION,
EVENT_HANDLER_SCREEN_ANALYZER,
+ EVENT_HANDLER_SPEAKER_RECOGNIZER,
EVENT_HANDLER_MAX
};
return ECORE_CALLBACK_PASS_ON;
}
+
+static Eina_Bool __speaker_recognizer_event_cb(void *data EINA_UNUSED, int type, void *event)
+{
+ mmi_provider_event_speaker_recognizer *ev = (mmi_provider_event_speaker_recognizer *)event;
+ _I("[Speaker recognizer] type : %d, timestamp : %d", ev->type, ev->timestamp);
+
+ mmi_iu_feed_input_modality(MMI_PROVIDER_EVENT_SPEAKER_RECOGNIZER, ev);
+
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+
static void __shutdown_event_handler()
{
_I("Shutdown event handlers");
__vision_event_cb, NULL);
_event_handlers[EVENT_HANDLER_SCREEN_ANALYZER] = ecore_event_handler_add(MMI_PROVIDER_EVENT_SCREEN_ANALYZER,
__screen_analyzer_event_cb, NULL);
+
+ _event_handlers[EVENT_HANDLER_SPEAKER_RECOGNIZER] = ecore_event_handler_add(MMI_PROVIDER_EVENT_SPEAKER_RECOGNIZER,
+ __speaker_recognizer_event_cb, NULL);
+
}
int mmi_core_init()
ecore_event_type_flush_internal(MMI_VISION_EVENT_PROPAGATE);
ecore_event_type_flush_internal(MMI_VISION_EVENT_FINISH);
ecore_event_type_flush_internal(MMI_EVENT_REFRESH_SCREEN_INFORM);
+ ecore_event_type_flush_internal(MMI_PROVIDER_EVENT_SPEAKER_RECOGNIZER);
+ ecore_event_type_flush_internal(MMI_EVENT_SPEAKER_RECOGNIZER);
}
void
#include <string.h>
Eina_List *_provider_list = NULL;
-Ecore_Event_Handler *_provider_event_handlers[5];
+Ecore_Event_Handler *_provider_event_handlers[6];
static Eina_Bool
_key_provider_event_cb(void *data EINA_UNUSED, int type, void *event)
static Eina_Bool
_screen_analyzer_provider_event_cb(void *data EINA_UNUSED, int type, void *event)
{
- // TOODO: implement
+ // TODO: implement
return ECORE_CALLBACK_PASS_ON;
}
+
+static Eina_Bool
+_speaker_recognizer_provider_event_cb(void *data EINA_UNUSED, int type, void *event)
+{
+ // TODO: implement
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+
int
mmi_provider_set_op_mode_on_caps(unsigned long long caps, mmi_provider_op_mode mode)
{
MMI_VISION_EVENT_FINISH = ecore_event_type_new();
MMI_EVENT_REFRESH_SCREEN_INFORM = ecore_event_type_new();
MMI_PROVIDER_EVENT_VOICE_TOUCH = ecore_event_type_new();
+ MMI_PROVIDER_EVENT_SPEAKER_RECOGNIZER = ecore_event_type_new();
+ MMI_EVENT_SPEAKER_RECOGNIZER = ecore_event_type_new();
LOGD("MMI_PROVIDER_EVENT_KEY=%d\n", MMI_PROVIDER_EVENT_KEY);
LOGD("MMI_PROVIDER_EVENT_GESTURE=%d\n", MMI_PROVIDER_EVENT_GESTURE);
_vision_provider_event_cb, NULL);
_provider_event_handlers[4] = ecore_event_handler_add(MMI_PROVIDER_EVENT_SCREEN_ANALYZER,
_screen_analyzer_provider_event_cb, NULL);
+ _provider_event_handlers[5] = ecore_event_handler_add(MMI_PROVIDER_EVENT_SPEAKER_RECOGNIZER,
+ _screen_analyzer_provider_event_cb, NULL);
+
}
static void
ecore_event_handler_del(_provider_event_handlers[2]);
ecore_event_handler_del(_provider_event_handlers[3]);
ecore_event_handler_del(_provider_event_handlers[4]);
+ ecore_event_handler_del(_provider_event_handlers[5]);
_provider_event_handlers[0] = NULL;
_provider_event_handlers[1] = NULL;
_provider_event_handlers[2] = NULL;
_provider_event_handlers[3] = NULL;
_provider_event_handlers[4] = NULL;
+ _provider_event_handlers[5] = NULL;
MMI_PROVIDER_EVENT_KEY = -1;
MMI_PROVIDER_EVENT_GESTURE = -1;
MMI_PROVIDER_EVENT_VOICE = -1;
MMI_PROVIDER_EVENT_VISION = -1;
MMI_PROVIDER_EVENT_SCREEN_ANALYZER = -1;
+ MMI_PROVIDER_EVENT_SPEAKER_RECOGNIZER = -1;
+ MMI_EVENT_SPEAKER_RECOGNIZER = -1;
LOGD("MMI_PROVIDER_EVENT_KEY=%d\n", MMI_PROVIDER_EVENT_KEY);
LOGD("MMI_PROVIDER_EVENT_GESTURE=%d\n", MMI_PROVIDER_EVENT_GESTURE);
mc = client_manager_add_client(app_id);
EXPECT_NE(mc, nullptr);
- res = client_manager_activate_input_event(mc, MMI_INPUT_EVENT_TYPE_VOICE_RECOGNITION);
+ res = client_manager_activate_input_event(mc, MMI_INPUT_EVENT_TYPE_SPEAKER_RECOGNITION);
EXPECT_EQ(res, MMI_ERROR_INVALID_PARAMETER);
res = client_manager_remove_client(app_id);