#include <stdbool.h>
#include <Elementary.h>
#include <app_debug.h>
+#include <key_define.h>
#include "define.h"
#include "util/timeout_handler.h"
static Eina_Bool _timer_cb(void *data)
{
struct timeout_handler *handle;
+ Eina_Bool r;
if (!data)
return ECORE_CALLBACK_CANCEL;
if (!handle->enable)
return ECORE_CALLBACK_CANCEL;
- handle->timeout_cb(handle->timeout_data, 0, NULL);
+ r = handle->timeout_cb(handle->timeout_data, 0, NULL);
- return ECORE_CALLBACK_CANCEL;
+ return r;
}
void _timer_reset(struct timeout_handler *handle)
static Eina_Bool _event_occured(void *data, int type, void *event)
{
struct timeout_handler *handle;
+ Eina_Bool r;
if (!data)
return ECORE_CALLBACK_PASS_ON;
if (!handle->enable)
return ECORE_CALLBACK_PASS_ON;
- handle->event_cb(handle->event_data, type, event);
+ /* Don't handle Volume and Channel keys */
+ if (type == ECORE_EVENT_KEY_UP) {
+ Evas_Event_Key_Up *ev;
+
+ if (!event)
+ return ECORE_CALLBACK_PASS_ON;
+
+ ev = event;
+
+ if (!strcmp(ev->keyname, KEY_VOLUMEUP) ||
+ !strcmp(ev->keyname, KEY_VOLUMEUP_REMOTE) ||
+ !strcmp(ev->keyname, KEY_VOLUMEDOWN) ||
+ !strcmp(ev->keyname, KEY_VOLUMEDOWN_REMOTE) ||
+ !strcmp(ev->keyname, KEY_MUTE) ||
+ !strcmp(ev->keyname, KEY_MUTE_REMOTE) ||
+ !strcmp(ev->keyname, KEY_CHANNELUP) ||
+ !strcmp(ev->keyname, KEY_CHANNELUP_REMOTE) ||
+ !strcmp(ev->keyname, KEY_CHANNELDOWN) ||
+ !strcmp(ev->keyname, KEY_CHANNELDOWN_REMOTE)) {
+ return ECORE_CALLBACK_PASS_ON;
+ }
+ }
+
+ r = handle->event_cb(handle->event_data, type, event);
_timer_reset(handle);
- return ECORE_CALLBACK_PASS_ON;
+ return r;
}
void timeout_handler_enable(struct timeout_handler *handle, bool enable)
ui_app_exit();
}
-static void _timeout_cb(void *data, int type, void *ei)
+static Eina_Bool _timeout_cb(void *data, int type, void *ei)
{
_hide_bar(data);
+
+ return ECORE_CALLBACK_CANCEL;
}
-static void _event_cb(void *data, int type, void *ei)
+static Eina_Bool _event_cb(void *data, int type, void *ei)
{
struct _priv *priv;
if (!data)
- return;
+ return ECORE_CALLBACK_PASS_ON;
priv = data;
Evas_Event_Key_Up *ev;
if (!ei)
- return;
+ return ECORE_CALLBACK_PASS_ON;
ev = ei;
!strcmp(ev->keyname, KEY_BACK_REMOTE)) {
if (priv->bar_show) {
_pop_view(priv);
- return;
+ return ECORE_CALLBACK_DONE;
}
}
}
_show_bar(data);
+
+ return ECORE_CALLBACK_PASS_ON;
}
static int _player_get_position(void *data)