Example #1
0
char * smartpen_get_peninfo (obex_t *handle)
{
	char *name = "peninfo";
	int len;

	return get_named_object(handle, name, &len);
}
Example #2
0
char *smartpen_get_changelist(obex_t *handle, int starttime)
{
	char name[256];
	int len;

	snprintf(name, sizeof(name), "changelist?start_time=%d", starttime);
	return get_named_object(handle, name, &len);
}
Example #3
0
int smartpen_get_penletlist (obex_t *handle, FILE *out)
{
	char *name = "penletlist";
	char *buf;
	int len;

	buf = get_named_object(handle, name, &len);
	fwrite(buf, len, 1, out);
	return 1;
}
Example #4
0
int smartpen_get_paperreplay (obex_t *handle, FILE *out,
			      long long int start_time)
{
	char name[256];
	char *buf;
	int len;

	snprintf(name, sizeof(name), "lspdata?name=com.livescribe.paperreplay.PaperReplay&start_time=%lld&returnVersion=0.3&remoteCaller=WIN_LD_200",
		 start_time);

	buf = get_named_object(handle, name, &len);
	fwrite(buf, len, 1, out);
	return 1;
}
Example #5
0
int smartpen_get_guid (obex_t *handle, FILE *out, char *guid,
		       long long int start_time)
{
	char name[256];
	char *buf;
	int len;

	snprintf(name, sizeof(name), "lspdata?name=%s&start_time=%lld",
		 guid, start_time);

	buf = get_named_object(handle, name, &len);
	fwrite(buf, len, 1, out);
	return len;
}
Example #6
0
void
cb_get_nameless_object(void *handle)
{
  dpl_async_task_t *atask = (dpl_async_task_t *) handle;
  int i;
  dpl_dict_var_t *metadatum = NULL;

  if (DPL_SUCCESS != atask->ret)
    {
      fprintf(stderr, "dpl_get failed: %s (%d)\n", dpl_status_str(atask->ret), atask->ret);
      exit(1);
    }

  printf("data:\n");
  write(1, dpl_buf_ptr(atask->u.get.buf), MIN(dpl_buf_size(atask->u.get.buf), 10));
  printf("...\nmetadata:\n");
  dpl_dict_print(atask->u.get.metadata, stdout, 0);

  dpl_async_task_free(atask);

  get_named_object();
}
Example #7
0
obex_t *smartpen_connect(short vendor, short product)
{
	obex_t *handle;
	obex_object_t *obj;
	int rc, num, i;
	struct obex_state *state;
	obex_interface_t *obex_intf;
	obex_headerdata_t hd;
	int size, count;
	char *buf;

again:
	handle = OBEX_Init(OBEX_TRANS_USB, obex_event, 0);
	if (!handle)
		goto out;

        num = OBEX_EnumerateInterfaces(handle);
	for (i=0; i<num; i++) {
                obex_intf = OBEX_GetInterfaceByIndex(handle, i);
		if (!strcmp(obex_intf->usb.manufacturer, "Livescribe"))
			break;
	}

        if (i == num) {
		printf("No such device\n");
		handle = NULL;
		goto out;
        }

	state = malloc(sizeof(struct obex_state));
	if (!state) {
		handle = NULL;
		goto out;
	}
	memset(state, 0, sizeof(struct obex_state));

	if (!swizzle_usb(vendor, product)) {
		handle = NULL;
		goto out;
	}

        rc = OBEX_InterfaceConnect(handle, obex_intf);
        if (rc < 0) {
		printf("Connect failed %d\n", rc);
		handle = NULL;
		goto out;
	}

        OBEX_SetUserData(handle, state);
        OBEX_SetTransportMTU(handle, 0x400, 0x400);

        obj = OBEX_ObjectNew(handle, OBEX_CMD_CONNECT);
        hd.bs = (unsigned char *)"LivescribeService";
        size = strlen((char*)hd.bs)+1;
        OBEX_ObjectAddHeader(handle, obj, OBEX_HDR_TARGET, hd, size, 0);

        rc = OBEX_Request(handle, obj);

	count = state->req_done;
        while (rc == 0 && state->req_done <= count) {
            OBEX_HandleInput(handle, 100);
        }

	if (rc < 0 || !state->got_connid) {
		printf("Retry connection...\n");
		OBEX_Cleanup(handle);
		goto again;
	}

	buf = get_named_object(handle, "ppdata?key=pp0000", &rc);
	if (!buf) {
		printf("Retry connection...\n");
		OBEX_Cleanup(handle);
		pen_reset(vendor, product);
		goto again;
	}

out:
	return handle;
}