Skip to content

Commit ed01bb9

Browse files
PebbleAppにKeyEventProfileのonKeyChangeAPIを追加。
1 parent a910f3e commit ed01bb9

3 files changed

Lines changed: 27 additions & 3 deletions

File tree

dConnectDevicePebbleApp/src/key_event_profile.c

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,14 @@ static void in_received_put_key_event_handler(DictionaryIterator *received) {
118118
}
119119
event_flag_on_up = true;
120120
break;
121+
case KEY_EVENT_ATTRIBUTE_ON_KEY_CHANGE:
122+
entry_log2( "ON_KEY_CHANGE", "put_handler" ) ;
123+
if (window == NULL) {
124+
key_event_window_init();
125+
}
126+
event_flag_on_down = true;
127+
event_flag_on_up = true;
128+
break;
121129
default:
122130
// not support
123131
pebble_set_error_code(ERROR_NOT_SUPPORT_ATTRIBUTE);
@@ -149,6 +157,14 @@ static void in_received_delete_key_event_handler(DictionaryIterator *received) {
149157
key_event_window_uninit();
150158
}
151159
break;
160+
case KEY_EVENT_ATTRIBUTE_ON_KEY_CHANGE:
161+
entry_log2( "ON_KEY_CHANGE", "del_handler" ) ;
162+
event_flag_on_down = false;
163+
event_flag_on_up = false;
164+
if (event_flag_on_up == false && event_flag_on_down == false && window != NULL) {
165+
key_event_window_uninit();
166+
}
167+
break;
152168
default:
153169
// not support
154170
entry_log( "not support", "orientation" ) ;
@@ -379,14 +395,18 @@ static void in_key_event_handler(int action, int keyID) {
379395
// Setting parameter to message queue.
380396
mq_kv_set(KEY_ACTION, ACTION_EVENT);
381397
mq_kv_set(KEY_PROFILE, PROFILE_KEY_EVENT);
382-
mq_kv_set(KEY_PARAM_KEY_EVENT_KEY_TYPE, KeyType);
383-
mq_kv_set(KEY_PARAM_KEY_EVENT_ID, keyID);
398+
mq_kv_set(KEY_PARAM_KEY_EVENT_KEY_TYPE, KeyType);
399+
mq_kv_set(KEY_PARAM_KEY_EVENT_ID, keyID);
400+
int state = KEY_PARAM_KEY_EVENT_KEY_STATE_UP;
384401
switch (action) {
385402
case KEY_EVENT_ACTION_DOWN:
403+
state = KEY_PARAM_KEY_EVENT_KEY_STATE_DOWN;
386404
mq_kv_set(KEY_ATTRIBUTE, KEY_EVENT_ATTRIBUTE_ON_DOWN);
405+
mq_kv_set(KEY_PARAM_KEY_EVENT_KEY_STATE, state);
387406
break;
388407
case KEY_EVENT_ACTION_UP:
389408
mq_kv_set(KEY_ATTRIBUTE, KEY_EVENT_ATTRIBUTE_ON_UP);
409+
mq_kv_set(KEY_PARAM_KEY_EVENT_KEY_STATE, state);
390410
break;
391411
default:
392412
return;

dConnectDevicePebbleApp/src/menu_item.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
*/
2121

2222
#define FIRST_MENU_TITLE "start App"
23-
#define FIRST_MENU_TEXT "ver 2015/03/26 16:30"
23+
#define FIRST_MENU_TEXT "ver 2017/03/01 16:30"
2424
#define MENU_ITEM_MAX 20
2525

2626
static int16_t how_many_item = 0;

dConnectDevicePebbleApp/src/pebble_device_plugin_defines.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161

6262
#define KEY_PARAM_KEY_EVENT_ID 700
6363
#define KEY_PARAM_KEY_EVENT_KEY_TYPE 701
64+
#define KEY_PARAM_KEY_EVENT_KEY_STATE 702
6465

6566
///////////////////////////////////////////////////////////////////
6667

@@ -130,6 +131,7 @@
130131

131132
#define KEY_EVENT_ATTRIBUTE_ON_DOWN 1
132133
#define KEY_EVENT_ATTRIBUTE_ON_UP 2
134+
#define KEY_EVENT_ATTRIBUTE_ON_KEY_CHANGE 3
133135

134136
#define KEY_EVENT_ACTION_DOWN 1
135137
#define KEY_EVENT_ACTION_UP 2
@@ -144,6 +146,8 @@
144146
#define KEY_EVENT_KEY_TYPE_DPAD_BUTTON 3
145147
#define KEY_EVENT_KEY_TYPE_USER 4
146148

149+
#define KEY_PARAM_KEY_EVENT_KEY_STATE_UP 1
150+
#define KEY_PARAM_KEY_EVENT_KEY_STATE_DOWN 2
147151
///////////////////////////////////////////////////////////////////
148152

149153
#define RESULT_OK 1

0 commit comments

Comments
 (0)