pbap_client.c (430422d85a1b65ddb30bed5dbec67944502958db) | pbap_client.c (a154fcd6ec9a48d3ca7f5b3855281bc2cefc01e5) |
---|---|
1/* 2 * Copyright (C) 2014 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright --- 409 unchanged lines hidden (view full) --- 418 application_parameters[i++] = PBAP_APPLICATION_PARAMETER_SEARCH_PROPERTY; 419 application_parameters[i++] = 1; 420 application_parameters[i++] = 0x01; // Number 421 } 422 if (i){ 423 goep_client_header_add_application_parameters(pbap_client->goep_cid, &application_parameters[0], i); 424 } 425 } | 1/* 2 * Copyright (C) 2014 BlueKitchen GmbH 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 8 * 1. Redistributions of source code must retain the above copyright --- 409 unchanged lines hidden (view full) --- 418 application_parameters[i++] = PBAP_APPLICATION_PARAMETER_SEARCH_PROPERTY; 419 application_parameters[i++] = 1; 420 application_parameters[i++] = 0x01; // Number 421 } 422 if (i){ 423 goep_client_header_add_application_parameters(pbap_client->goep_cid, &application_parameters[0], i); 424 } 425 } |
426 |
|
426 // send packet 427 pbap_client->state = PBAP_W4_GET_CARD_LIST_COMPLETE; 428 pbap_client->request_number++; 429 goep_client_execute(pbap_client->goep_cid); 430 break; 431 case PBAP_W2_GET_CARD_ENTRY: 432 goep_client_request_create_get(pbap_client->goep_cid); 433 if (pbap_client->request_number == 0){ --- 163 unchanged lines hidden (view full) --- 597} 598 599static void pbap_client_process_vcard_listing(uint8_t *packet, uint16_t size){ 600 obex_iterator_t it; 601 for (obex_iterator_init_with_response_packet(&it, goep_client_get_request_opcode(pbap_client->goep_cid), packet, size); obex_iterator_has_more(&it) ; obex_iterator_next(&it)){ 602 uint8_t hi = obex_iterator_get_hi(&it); 603 if ((hi == OBEX_HEADER_END_OF_BODY) || 604 (hi == OBEX_HEADER_BODY)){ | 427 // send packet 428 pbap_client->state = PBAP_W4_GET_CARD_LIST_COMPLETE; 429 pbap_client->request_number++; 430 goep_client_execute(pbap_client->goep_cid); 431 break; 432 case PBAP_W2_GET_CARD_ENTRY: 433 goep_client_request_create_get(pbap_client->goep_cid); 434 if (pbap_client->request_number == 0){ --- 163 unchanged lines hidden (view full) --- 598} 599 600static void pbap_client_process_vcard_listing(uint8_t *packet, uint16_t size){ 601 obex_iterator_t it; 602 for (obex_iterator_init_with_response_packet(&it, goep_client_get_request_opcode(pbap_client->goep_cid), packet, size); obex_iterator_has_more(&it) ; obex_iterator_next(&it)){ 603 uint8_t hi = obex_iterator_get_hi(&it); 604 if ((hi == OBEX_HEADER_END_OF_BODY) || 605 (hi == OBEX_HEADER_BODY)){ |
605 pbap_client_vcard_listing_init_parser(pbap_client); | |
606 uint16_t data_len = obex_iterator_get_data_len(&it); 607 const uint8_t * data = obex_iterator_get_data(&it); 608 // now try parsing it 609 uint16_t char_len; 610 while (data_len--){ 611 yxml_ret_t r = yxml_parse(&pbap_client->xml_parser, *data++); 612 switch (r){ 613 case YXML_ELEMSTART: --- 373 unchanged lines hidden (view full) --- 987 988uint8_t pbap_pull_vcard_listing(uint16_t pbap_cid, const char * path){ 989 UNUSED(pbap_cid); 990 if (pbap_client->state != PBAP_CONNECTED) return BTSTACK_BUSY; 991 pbap_client->state = PBAP_W2_GET_CARD_LIST; 992 pbap_client->phonebook_path = path; 993 pbap_client->phone_number = NULL; 994 pbap_client->request_number = 0; | 606 uint16_t data_len = obex_iterator_get_data_len(&it); 607 const uint8_t * data = obex_iterator_get_data(&it); 608 // now try parsing it 609 uint16_t char_len; 610 while (data_len--){ 611 yxml_ret_t r = yxml_parse(&pbap_client->xml_parser, *data++); 612 switch (r){ 613 case YXML_ELEMSTART: --- 373 unchanged lines hidden (view full) --- 987 988uint8_t pbap_pull_vcard_listing(uint16_t pbap_cid, const char * path){ 989 UNUSED(pbap_cid); 990 if (pbap_client->state != PBAP_CONNECTED) return BTSTACK_BUSY; 991 pbap_client->state = PBAP_W2_GET_CARD_LIST; 992 pbap_client->phonebook_path = path; 993 pbap_client->phone_number = NULL; 994 pbap_client->request_number = 0; |
995 pbap_client_vcard_listing_init_parser(pbap_client); |
|
995 goep_client_request_can_send_now(pbap_client->goep_cid); 996 return 0; 997} 998 999uint8_t pbap_pull_vcard_entry(uint16_t pbap_cid, const char * path){ 1000 UNUSED(pbap_cid); 1001 if (pbap_client->state != PBAP_CONNECTED) return BTSTACK_BUSY; 1002 pbap_client->state = PBAP_W2_GET_CARD_ENTRY; --- 7 unchanged lines hidden (view full) --- 1010 1011uint8_t pbap_lookup_by_number(uint16_t pbap_cid, const char * phone_number){ 1012 UNUSED(pbap_cid); 1013 if (pbap_client->state != PBAP_CONNECTED) return BTSTACK_BUSY; 1014 pbap_client->state = PBAP_W2_GET_CARD_LIST; 1015 pbap_client->phonebook_path = pbap_vcard_listing_name; 1016 pbap_client->phone_number = phone_number; 1017 pbap_client->request_number = 0; | 996 goep_client_request_can_send_now(pbap_client->goep_cid); 997 return 0; 998} 999 1000uint8_t pbap_pull_vcard_entry(uint16_t pbap_cid, const char * path){ 1001 UNUSED(pbap_cid); 1002 if (pbap_client->state != PBAP_CONNECTED) return BTSTACK_BUSY; 1003 pbap_client->state = PBAP_W2_GET_CARD_ENTRY; --- 7 unchanged lines hidden (view full) --- 1011 1012uint8_t pbap_lookup_by_number(uint16_t pbap_cid, const char * phone_number){ 1013 UNUSED(pbap_cid); 1014 if (pbap_client->state != PBAP_CONNECTED) return BTSTACK_BUSY; 1015 pbap_client->state = PBAP_W2_GET_CARD_LIST; 1016 pbap_client->phonebook_path = pbap_vcard_listing_name; 1017 pbap_client->phone_number = phone_number; 1018 pbap_client->request_number = 0; |
1019 pbap_client_vcard_listing_init_parser(pbap_client); |
|
1018 goep_client_request_can_send_now(pbap_client->goep_cid); 1019 return 0; 1020} 1021 1022uint8_t pbap_abort(uint16_t pbap_cid){ 1023 UNUSED(pbap_cid); 1024 log_info("abort current operation, state 0x%02x", pbap_client->state); 1025 pbap_client->abort_operation = 1; --- 38 unchanged lines hidden --- | 1020 goep_client_request_can_send_now(pbap_client->goep_cid); 1021 return 0; 1022} 1023 1024uint8_t pbap_abort(uint16_t pbap_cid){ 1025 UNUSED(pbap_cid); 1026 log_info("abort current operation, state 0x%02x", pbap_client->state); 1027 pbap_client->abort_operation = 1; --- 38 unchanged lines hidden --- |