Change obex_test so that only the compiled-in parts are visible. Prepare the bluetooth part for addition of L2CAP usage. --- apps/obex_test/obex_test.c | 247 ++++++++++++++++++++++++-------------------- 1 files changed, 136 insertions(+), 111 deletions(-)
diff --git a/apps/obex_test/obex_test.c b/apps/obex_test/obex_test.c index 350d808..7527a51 100644 --- a/apps/obex_test/obex_test.c +++ b/apps/obex_test/obex_test.c @@ -27,6 +27,11 @@ #include "../lib/bluez_compat.h" #ifdef _WIN32 bdaddr_t bluez_compat_bdaddr_any = { BTH_ADDR_NULL }; +int str2ba(const char *str, bdaddr_t *ba) { + //TODO + *ba = *BDADDR_ANY; + return 0; +} #endif #endif @@ -36,9 +41,11 @@ bdaddr_t bluez_compat_bdaddr_any = { BTH_ADDR_NULL }; #include "obex_test_client.h" #include "obex_test_server.h" -#ifndef _WIN32 +#if defined(_WIN32) +#undef HAVE_CABLE_OBEX +#else #include "obex_test_cable.h" - +#define HAVE_CABLE_OBEX 1 #include <sys/socket.h> #include <arpa/inet.h> #include <netdb.h> @@ -76,7 +83,7 @@ static void obex_event(obex_t *handle, obex_object_t *object, int mode, break; case OBEX_EV_REQDONE: - if(mode == OBEX_MODE_CLIENT) { + if (mode == OBEX_MODE_CLIENT) { client_done(handle, object, obex_cmd, obex_rsp); } else { @@ -155,76 +162,88 @@ int main (int argc, char *argv[]) { char cmd[3]; int end = 0; - int cobex = FALSE, tcpobex = FALSE, btobex = FALSE, r320 = FALSE, usbobex = FALSE; - obex_t *handle; + int tcpobex = FALSE; + obex_t *handle = NULL; + struct context global_context = {0}; + #ifdef HAVE_BLUETOOTH + int btobex = FALSE; bdaddr_t bdaddr; uint8_t channel = 0; #endif - #ifdef HAVE_USB + int usbobex = FALSE; obex_interface_t *obex_intf = NULL; #endif - - struct context global_context = {0,}; - -#ifndef _WIN32 - +#ifdef HAVE_CABLE_OBEX + int cobex = FALSE, r320 = FALSE; char *port; obex_ctrans_t custfunc; +#endif - if( (argc == 2) && (strcmp(argv[1], "-h") == 0 ) ) { + if (argc == 2 && strcmp(argv[1], "-h") == 0) { printf( "Usage: obex_test [options]\n" "\n" "Options:\n" - " -s [tty] Use cable transport (Sony-Ericsson phones/DCU-11 cable)\n" - " -r [tty] Use cable transport for R320\n" - " -i Use IP/TCP transport\n" - " -b [addr] [chan] Use bluetooth transport\n" - " -u [interface] Use USB transport\n" - " -h Print this help message\n" +#ifdef HAVE_CABLE_OBEX + " -s [tty] Use cable transport (Sony-Ericsson phones/DCU-11 cable)\n" + " -r [tty] Use cable transport for R320\n" +#endif +#ifdef HAVE_BLUETOOTH + " -b [addr] [chan] Use bluetooth RFCOMM transport\n" +#endif +#ifdef HAVE_USB + " -u [interface] Use USB transport\n" +#endif + " -i Use IP/TCP transport\n" + " -h Print this help message\n" "\n" "If no transport is selected, IrDA is used.\n" ); return 0; } - if( (argc == 2 || argc ==3) && (strcmp(argv[1], "-s") == 0 ) ) +#ifdef HAVE_CABLE_OBEX + if ((argc == 2 || argc ==3) && strcmp(argv[1], "-s") == 0) cobex = TRUE; - if( (argc == 2 || argc ==3) && (strcmp(argv[1], "-r") == 0 ) ) { + if ((argc == 2 || argc ==3) && strcmp(argv[1], "-r") == 0) { cobex = TRUE; r320 = TRUE; } #endif - - if( (argc == 2) && (strcmp(argv[1], "-i") == 0 ) ) - tcpobex = TRUE; - if( (argc >= 2) && (strcmp(argv[1], "-b") == 0 ) ) +#ifdef HAVE_BLUETOOTH + if (argc >= 2 && strcmp(argv[1], "-b") == 0) btobex = TRUE; - if( (argc >= 2) && (strcmp(argv[1], "-u") == 0 ) ) +#endif +#ifdef HAVE_USB + if (argc >= 2 && strcmp(argv[1], "-u") == 0) usbobex = TRUE; +#endif + if (argc == 2 && strcmp(argv[1], "-i") == 0) + tcpobex = TRUE; - if(cobex) { -#ifndef _WIN32 - if(argc == 3) +#ifdef HAVE_CABLE_OBEX + if (cobex) { + if (argc == 3) port = argv[2]; else port = "/dev/ttyS0"; - if(r320) + if (r320) printf("OBEX to R320 on %s!\n", port); else printf("OBEX on %s!\n", port); custfunc.customdata = cobex_open(port, r320); - if(custfunc.customdata == NULL) { + if (custfunc.customdata == NULL) { printf("cobex_open() failed\n"); return -1; } - if(! (handle = OBEX_Init(OBEX_TRANS_CUSTOM, obex_event, 0))) { + handle = OBEX_Init(OBEX_TRANS_CUSTOM, obex_event, 0); + if (!handle) { perror( "OBEX_Init failed"); return -1; } @@ -235,69 +254,67 @@ int main (int argc, char *argv[]) custfunc.handleinput = cobex_handle_input; custfunc.listen = cobex_connect; // Listen and connect is 100% same on cable - if(OBEX_RegisterCTransport(handle, &custfunc) < 0) { + if (OBEX_RegisterCTransport(handle, &custfunc) < 0) printf("Custom transport callback-registration failed\n"); - } -#else - printf("Not implemented in Win32 yet.\n"); -#endif // _WIN32 - } - else if(tcpobex) { - printf("Using TCP transport\n"); - if(! (handle = OBEX_Init(OBEX_TRANS_INET, obex_event, 0))) { - perror( "OBEX_Init failed"); - exit(0); - } - } - else if(btobex) { -#ifndef _WIN32 - switch (argc) { + } else +#endif #ifdef HAVE_BLUETOOTH + if (btobex) { + const char *channel_arg = NULL; + switch (argc) { case 4: str2ba(argv[2], &bdaddr); - channel = atoi(argv[3]); + channel_arg = argv[3]; break; case 3: str2ba(argv[2], &bdaddr); if (bacmp(&bdaddr, BDADDR_ANY) == 0) - channel = atoi(argv[2]); - else - channel = BT_CHANNEL; + channel_arg = argv[2]; break; case 2: bacpy(&bdaddr, BDADDR_ANY); - channel = BT_CHANNEL; break; -#endif default: printf("Wrong number of arguments\n"); exit(0); } - printf("Using Bluetooth RFCOMM transport\n"); - if(! (handle = OBEX_Init(OBEX_TRANS_BLUETOOTH, obex_event, 0))) { + switch (btobex) { + case TRUE: + printf("Using Bluetooth RFCOMM transport\n"); + handle = OBEX_Init(OBEX_TRANS_BLUETOOTH, obex_event, 0); + if (channel_arg) + channel = (atoi(channel_arg) & 0xFF); + else + channel = BT_CHANNEL; + break; + } + + if (!handle) { perror( "OBEX_Init failed"); exit(0); } -#else - printf("Not implemented in Win32 yet.\n"); -#endif // _WIN32 - } - else if(usbobex) { + } else +#endif #ifdef HAVE_USB + if (usbobex) { int i, interfaces_number, intf_num; switch (argc) { case 2: - printf("Using USB transport, querying available interfaces\n"); - if(! (handle = OBEX_Init(OBEX_TRANS_USB, obex_event, 0))) { + printf("Using USB transport, " + "querying available interfaces\n"); + handle = OBEX_Init(OBEX_TRANS_USB, obex_event, 0); + if (!handle) { perror( "OBEX_Init failed"); exit(0); } interfaces_number = OBEX_EnumerateInterfaces(handle); - for (i=0; i < interfaces_number; i++) { + for (i = 0; i < interfaces_number; i++) { obex_intf = OBEX_GetInterfaceByIndex(handle, i); - printf("Interface %d: idVendor: %#x, idProduct: %#x, bus %d, dev %d, intf %d, %s %s %s\n", i, + printf("Interface %d: idVendor: %#x, " + "idProduct: %#x, bus %d, dev %d, " + "intf %d, %s %s %s\n", i, obex_intf->usb.idVendor, obex_intf->usb.idProduct, obex_intf->usb.bus_number, @@ -307,14 +324,16 @@ int main (int argc, char *argv[]) obex_intf->usb.product, obex_intf->usb.control_interface); } - printf("Use '%s -u interface_number' to run interactive OBEX test client\n", argv[0]); + printf("Use '%s -u interface_number' to run " + "interactive OBEX test client\n", argv[0]); OBEX_Cleanup(handle); exit(0); break; case 3: intf_num = atoi(argv[2]); printf("Using USB transport \n"); - if(! (handle = OBEX_Init(OBEX_TRANS_USB, obex_event, 0))) { + handle = OBEX_Init(OBEX_TRANS_USB, obex_event, 0); + if (!handle) { perror( "OBEX_Init failed"); exit(0); } @@ -331,14 +350,21 @@ int main (int argc, char *argv[]) printf("Wrong number of arguments\n"); exit(0); } -#else - printf("Not compiled with USB support\n"); - exit(0); + } else #endif - } - else { + + if (tcpobex) { + printf("Using TCP transport\n"); + handle = OBEX_Init(OBEX_TRANS_INET, obex_event, 0); + if (!handle) { + perror( "OBEX_Init failed"); + exit(0); + } + + } else { printf("Using IrDA transport\n"); - if(! (handle = OBEX_Init(OBEX_TRANS_IRDA, obex_event, 0))) { + handle = OBEX_Init(OBEX_TRANS_IRDA, obex_event, 0); + if (!handle) { perror( "OBEX_Init failed"); exit(0); } @@ -386,44 +412,41 @@ int main (int argc, char *argv[]) break; case 'c': /* First connect transport */ - if(tcpobex) { - if(TcpOBEX_TransportConnect(handle, NULL, 0) < 0) { - printf("Transport connect error! (TCP)\n"); - break; - } - } - if(cobex) { - if(OBEX_TransportConnect(handle, (void*) 1, 0) < 0) { +#ifdef HAVE_CABLE_OBEX + if (cobex) { + if (OBEX_TransportConnect(handle, (void*) 1, 0) < 0) { printf("Transport connect error! (Serial)\n"); break; } - } - if(btobex) { + } else +#endif #ifdef HAVE_BLUETOOTH + if (btobex) { if (bacmp(&bdaddr, BDADDR_ANY) == 0) { printf("Device address error! (Bluetooth)\n"); break; } - if(BtOBEX_TransportConnect(handle, BDADDR_ANY, &bdaddr, channel) <0) { + if (BtOBEX_TransportConnect(handle, BDADDR_ANY, &bdaddr, channel) <0) { printf("Transport connect error! (Bluetooth)\n"); break; } -#else - printf("Transport not found! (Bluetooth)\n"); + } else #endif - } - if (usbobex) { #ifdef HAVE_USB + if (usbobex) { if (OBEX_InterfaceConnect(handle, obex_intf) < 0) { printf("Transport connect error! (USB)\n"); break; } -#else - printf("Transport not found! (USB)\n"); + } else #endif - } - if (!tcpobex && !cobex && !btobex && !usbobex) { - if(IrOBEX_TransportConnect(handle, IR_SERVICE) < 0) { + if (tcpobex) { + if (TcpOBEX_TransportConnect(handle, NULL, 0) < 0) { + printf("Transport connect error! (TCP)\n"); + break; + } + } else { + if (IrOBEX_TransportConnect(handle, IR_SERVICE) < 0) { printf("Transport connect error! (IrDA)\n"); break; } @@ -436,33 +459,35 @@ int main (int argc, char *argv[]) break; case 's': /* First register server */ - if(tcpobex) { - if(TcpOBEX_ServerRegister(handle, NULL, 0) < 0) { - printf("Server register error! (TCP)\n"); - break; - } - } - if(cobex) { - if(OBEX_ServerRegister(handle, (void*) 1, 0) < 0) { +#ifdef HAVE_CABLE_OBEX + if (cobex) { + if (OBEX_ServerRegister(handle, (void*) 1, 0) < 0) { printf("Server register error! (Serial)\n"); break; } - } - if(btobex) { + } else +#endif #ifdef HAVE_BLUETOOTH - if(BtOBEX_ServerRegister(handle, BDADDR_ANY, channel) < 0) { + if (btobex) { + if (BtOBEX_ServerRegister(handle, BDADDR_ANY, channel) < 0) { printf("Server register error! (Bluetooth)\n"); break; } -#else - printf("Transport not found! (Bluetooth)\n"); + } else #endif - } +#ifdef HAVE_USB if (usbobex) { printf("Transport not found! (USB)\n"); - } - if (!tcpobex && !cobex && !btobex && !usbobex) { - if(IrOBEX_ServerRegister(handle, IR_SERVICE) < 0) { + } else +#endif + if (tcpobex) { + if (TcpOBEX_ServerRegister(handle, NULL, 0) < 0) { + printf("Server register error! (TCP)\n"); + break; + } + + } else { + if (IrOBEX_ServerRegister(handle, IR_SERVICE) < 0) { printf("Server register error! (IrDA)\n"); break; } @@ -475,8 +500,8 @@ int main (int argc, char *argv[]) printf("Unknown command %s\n", cmd); } } -#ifndef _WIN32 - if(cobex) +#ifdef HAVE_CABLE_OBEX + if (cobex) cobex_close(custfunc.customdata); #endif -- 1.7.5.4 ------------------------------------------------------------------------------ Got Input? Slashdot Needs You. Take our quick survey online. Come on, we don't ask for help often. Plus, you'll get a chance to win $100 to spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________ Openobex-users mailing list Openobex-users@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/openobex-users