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 ------------------------------------------------------------------------------ AppSumo Presents a FREE Video for the SourceForge Community by Eric Ries, the creator of the Lean Startup Methodology on "Lean Startup Secrets Revealed." This video shows you how to validate your ideas, optimize your ideas and identify your business strategy. http://p.sf.net/sfu/appsumosfdev2dev _______________________________________________ Openobex-users mailing list Openobex-users@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/openobex-users