static void obex_event(obex_t *handle, obex_object_t *object, int mode, int event, int command, int response) { switch (event) { case OBEX_EV_PROGRESS: //printf("Evt: Progress\n"); break; case OBEX_EV_ABORT: printf("Evt: Abort\n"); break; case OBEX_EV_REQDONE: //printf("Evt: Request done\n"); obex_request_done(handle, object, command, response); break; case OBEX_EV_REQHINT: printf("Evt: Request hint\n"); /* Accept any command. Not really good :) */ OBEX_ObjectSetRsp(object, OBEX_RSP_CONTINUE, OBEX_RSP_SUCCESS); break; case OBEX_EV_REQ: printf("Evt: Request\n"); break; case OBEX_EV_LINKERR: printf("Evt: Link error\n"); OBEX_TransportDisconnect(handle); break; case OBEX_EV_PARSEERR: printf("Evt: Parse error\n"); OBEX_TransportDisconnect(handle); break; case OBEX_EV_STREAMEMPTY: printf("Evt: Stream empty\n"); break; default: printf("Evt: Unknown event %02x\n", event); break; } }
// // Called by the obex-layer when some event occurs. // void obex_event(obex_t *handle, obex_object_t *object, int mode, int event, int obex_cmd, int obex_rsp) { switch (event) { case OBEX_EV_PROGRESS: printf("Made some progress...\n"); break; case OBEX_EV_ABORT: printf("Request aborted!\n"); break; case OBEX_EV_REQDONE: if(mode == OBEX_MODE_CLIENT) { client_done(handle, object, obex_cmd, obex_rsp); } else { server_done(handle, object, obex_cmd, obex_rsp); } break; case OBEX_EV_REQHINT: /* Accept any command. Not rellay good, but this is a test-program :) */ OBEX_ObjectSetRsp(object, OBEX_RSP_CONTINUE, OBEX_RSP_SUCCESS); break; case OBEX_EV_REQ: server_request(handle, object, event, obex_cmd); break; case OBEX_EV_LINKERR: OBEX_TransportDisconnect(handle); printf("Link broken!\n"); break; case OBEX_EV_STREAMEMPTY: fillstream(handle, object); break; default: printf("Unknown event %02x!\n", event); break; } }
// // Do disconnect as client // int ircp_cli_disconnect(ircp_client_t *cli) { obex_object_t *object; int ret; DEBUG(4, "\n"); ircp_return_val_if_fail(cli != NULL, -1); cli->infocb(IRCP_EV_DISCONNECTING, ""); object = OBEX_ObjectNew(cli->obexhandle, OBEX_CMD_DISCONNECT); ret = cli_sync_request(cli, object); if(ret < 0) cli->infocb(IRCP_EV_ERR, ""); else cli->infocb(IRCP_EV_OK, ""); OBEX_TransportDisconnect(cli->obexhandle); return ret; }
static void obex_event(obex_t *handle, obex_object_t *object, int mode, int event, int command, int response) { obex_context_t *context = OBEX_GetUserData(handle); switch (event) { case OBEX_EV_PROGRESS: obex_progress(handle, object); break; case OBEX_EV_REQHINT: OBEX_ObjectSetRsp(object, OBEX_RSP_NOT_IMPLEMENTED, response); break; case OBEX_EV_REQ: OBEX_ObjectSetRsp(object, OBEX_RSP_NOT_IMPLEMENTED, response); break; case OBEX_EV_REQDONE: debug("OBEX_EV_REQDONE"); context->obex_rsp = response; queue_event(context, OBEX_EV_REQDONE); if (context->pending && OBEX_Request(handle, context->pending) == 0) { if (OBEX_ObjectGetCommand(handle, context->pending) == OBEX_CMD_PUT) queue_event(context, OBEX_EV_STREAMEMPTY); context->pending = NULL; } switch (command) { case OBEX_CMD_CONNECT: obex_connect_done(handle, object, response); break; case OBEX_CMD_DISCONNECT: obex_disconnect_done(handle, object, response); break; case OBEX_CMD_PUT: case OBEX_CMD_GET: break; case OBEX_CMD_SETPATH: break; case OBEX_CMD_SESSION: break; case OBEX_CMD_ABORT: break; } break; case OBEX_EV_LINKERR: OBEX_TransportDisconnect(handle); break; case OBEX_EV_PARSEERR: OBEX_TransportDisconnect(handle); break; case OBEX_EV_ACCEPTHINT: break; case OBEX_EV_ABORT: queue_event(context, OBEX_EV_ABORT); break; case OBEX_EV_STREAMEMPTY: debug("OBEX_EV_STREAMEMPTY"); obex_writestream(handle, object); break; case OBEX_EV_STREAMAVAIL: debug("OBEX_EV_STREAMAVAIL"); obex_readstream(handle, object); break; case OBEX_EV_UNEXPECTED: break; case OBEX_EV_REQCHECK: break; } }