diff --git a/src/gadget_bridge_parser/gadget_bridge.c b/src/gadget_bridge_parser/gadget_bridge.c index 86233a3..9d0539a 100644 --- a/src/gadget_bridge_parser/gadget_bridge.c +++ b/src/gadget_bridge_parser/gadget_bridge.c @@ -1107,11 +1107,15 @@ gadget_bridge_parser_code_e gadget_bridge_parser_run(void) else to_return = GADGET_BRIDGE_PARSER_CODE_OK; break; case GADGET_BRIDGE_PARSER_FSM_FOUND_MUSICINFO: - if((start = strstr(_gadget_bridge_internals.buffer, "artist:")) - && (end = strstr(_gadget_bridge_internals.buffer, ",track"))) + if((start = strstr(_gadget_bridge_internals.buffer, "artist:")) && + (end = strstr(_gadget_bridge_internals.buffer, ",track"))) { + end2 = strstr(_gadget_bridge_internals.buffer, ",album"); printf("###Found TRACK\n"); - _parser_extract_char_str(start + 8, end - 1, &_gadget_bridge_internals.event_data.music_info.artist); + if(end2 != NULL && end2 < end) + _parser_extract_char_str(start + 8, end2 - 1, &_gadget_bridge_internals.event_data.music_info.artist); + else + _parser_extract_char_str(start + 8, end - 1, &_gadget_bridge_internals.event_data.music_info.artist); // We remove the parsed part from the buffer end += 1; @@ -1235,6 +1239,7 @@ const char *gadget_bridge_notification_type_2_str(gadget_bridge_notification_typ { CASE_RETURN_STR(GADGET_BRIDGE_NOTIFICATION_TYPE_SMS) CASE_RETURN_STR(GADGET_BRIDGE_NOTIFICATION_TYPE_EMAIL) + CASE_RETURN_STR(GADGET_BRIDGE_NOTIFICATION_TYPE_WHATSAPP) CASE_RETURN_STR(GADGET_BRIDGE_NOTIFICATION_TYPE_GADGET_BRIDGE) CASE_RETURN_STR(GADGET_BRIDGE_NOTIFICATION_TYPE_UNKNOWN) default: @@ -1248,6 +1253,7 @@ const char *gadget_bridge_music_state_2_str(gadget_bridge_music_state_e music_st { CASE_RETURN_STR(GADGET_BRIDGE_MUSIC_STATE_PAUSE) CASE_RETURN_STR(GADGET_BRIDGE_MUSIC_STATE_PLAY) + CASE_RETURN_STR(GADGET_BRIDGE_MUSIC_STATE_STOP) CASE_RETURN_STR(GADGET_BRIDGE_MUSIC_STATE_UNKNOWN) default: return "Unknown music state"; @@ -1407,11 +1413,13 @@ static void _parser_extract_tel(char *start, char *end) static void _parser_extract_src(char *start, char *end) { *end = '\0'; - if(strcmp(start, "Messages") == 0) + if(strcasecmp(start, "Messages") == 0) _gadget_bridge_internals.event_data.notification.notification_type = GADGET_BRIDGE_NOTIFICATION_TYPE_SMS; - else if(strcmp(start, "E-mail") == 0) + else if(strcasecmp(start, "E-mail") == 0) _gadget_bridge_internals.event_data.notification.notification_type = GADGET_BRIDGE_NOTIFICATION_TYPE_EMAIL; - else if(strcmp(start, "Gadgetbridge") == 0) + else if(strcasecmp(start, "WhatsApp") == 0) + _gadget_bridge_internals.event_data.notification.notification_type = GADGET_BRIDGE_NOTIFICATION_TYPE_WHATSAPP; + else if(strcasecmp(start, "Gadgetbridge") == 0) _gadget_bridge_internals.event_data.notification.notification_type = GADGET_BRIDGE_NOTIFICATION_TYPE_GADGET_BRIDGE; else _gadget_bridge_internals.event_data.notification.notification_type = GADGET_BRIDGE_NOTIFICATION_TYPE_UNKNOWN; @@ -1449,6 +1457,8 @@ static void _parser_extract_state(char *start, char *end) _gadget_bridge_internals.event_data.music_state.music_state = GADGET_BRIDGE_MUSIC_STATE_PLAY; else if(strcmp(start, "pause") == 0) _gadget_bridge_internals.event_data.music_state.music_state = GADGET_BRIDGE_MUSIC_STATE_PAUSE; + else if(strcmp(start, "stop") == 0) + _gadget_bridge_internals.event_data.music_state.music_state = GADGET_BRIDGE_MUSIC_STATE_STOP; else _gadget_bridge_internals.event_data.music_state.music_state = GADGET_BRIDGE_MUSIC_STATE_UNKNOWN; diff --git a/src/gadget_bridge_parser/gadget_bridge.h b/src/gadget_bridge_parser/gadget_bridge.h index 3ab615f..18258fe 100644 --- a/src/gadget_bridge_parser/gadget_bridge.h +++ b/src/gadget_bridge_parser/gadget_bridge.h @@ -130,6 +130,7 @@ typedef enum gadget_bridge_notification_type { GADGET_BRIDGE_NOTIFICATION_TYPE_SMS = 0, GADGET_BRIDGE_NOTIFICATION_TYPE_EMAIL, + GADGET_BRIDGE_NOTIFICATION_TYPE_WHATSAPP, GADGET_BRIDGE_NOTIFICATION_TYPE_GADGET_BRIDGE, GADGET_BRIDGE_NOTIFICATION_TYPE_UNKNOWN, } gadget_bridge_notification_type_e; @@ -138,6 +139,7 @@ typedef enum { GADGET_BRIDGE_MUSIC_STATE_PAUSE = 0, GADGET_BRIDGE_MUSIC_STATE_PLAY, + GADGET_BRIDGE_MUSIC_STATE_STOP, GADGET_BRIDGE_MUSIC_STATE_UNKNOWN, } gadget_bridge_music_state_e; diff --git a/src/gadget_bridge_parser/gadget_bridge_parser.depend b/src/gadget_bridge_parser/gadget_bridge_parser.depend index ce4a82c..0177a93 100644 --- a/src/gadget_bridge_parser/gadget_bridge_parser.depend +++ b/src/gadget_bridge_parser/gadget_bridge_parser.depend @@ -16,18 +16,18 @@ -1681114227 source:d:\users\think\programmation\arduino\git_projects\w800_smart_watch\src\gadget_bridge_parser\gadget_bridge.c +1684074204 source:d:\users\think\programmation\arduino\git_projects\w800_smart_watch\src\gadget_bridge_parser\gadget_bridge.c "gadget_bridge.h" -1681150637 d:\users\think\programmation\arduino\git_projects\w800_smart_watch\src\gadget_bridge_parser\gadget_bridge.h +1684074112 d:\users\think\programmation\arduino\git_projects\w800_smart_watch\src\gadget_bridge_parser\gadget_bridge.h -1681114227 source:d:\users\think\programmation\arduino\git_projects\w800_smart_watch\src\gadget_bridge_parser\main.c +1684074076 source:d:\users\think\programmation\arduino\git_projects\w800_smart_watch\src\gadget_bridge_parser\main.c diff --git a/src/gadget_bridge_parser/gadget_bridge_parser.layout b/src/gadget_bridge_parser/gadget_bridge_parser.layout index 2ba452f..d65b91f 100644 --- a/src/gadget_bridge_parser/gadget_bridge_parser.layout +++ b/src/gadget_bridge_parser/gadget_bridge_parser.layout @@ -2,19 +2,19 @@ - + - + - + - + - + - + diff --git a/src/gadget_bridge_parser/main.c b/src/gadget_bridge_parser/main.c index 189d0da..30874e2 100644 --- a/src/gadget_bridge_parser/main.c +++ b/src/gadget_bridge_parser/main.c @@ -278,6 +278,20 @@ const char *sample[] = "deo with subtitles)\"", ",dur:219,c:-1,n:-1})", +"[16]GB({t:\"musicinfo\",a", +"rtist:\"Inna\",album:\"", +",track:\"Sun Is Up\",", +"dur:185,c:-1,n:0})", + +"[16]GB({t:\"musicinfo\",a", +"rtist:\"The Fat ", +"Rat\",track:\"The cal", +"ling by laur", +"a brem) [Gabry Ponte Ice P", +"op Mix] (Original Vi", +"deo with subtitles)\"", +",dur:219,c:-1,n:-1})", + "[16]GB({t:\"notify\",i", "d:1680859061,body:\"tes", "t hehe test\",sender:\"", @@ -316,6 +330,23 @@ const char *sample[] = "sender :\"This is a test", "payload \",tel:\"This is", " a test payload \"})[10]", + +"[16]GB({t:\"notify\",id:1", +"684049367,src:\"Whats", +"App\",title:\"Backyard", +" ⸮: ~?PIERRE EMMANUE", +"L DUCHET\",body:\"F⸮li", +"citations ⸮ Adrien q", +"ui vient de finir no", +"n pas son Ultra comm", +"e annonc⸮ (annul⸮) m", +"ais un 92 km 2000d+ ", +"en terminant premier", +" ex aequo en 7h59!!\\", +"nUn concurrent s⸮rie", +"ux pour la backyard ", +"!\nEncore bravo :cla", +"p::+1:\"})[10]", }; int main()