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 ---