quick shell script hack for tethered shooting with qiv
[alphamote.git] / shutter.c
bloba6ee3e46210b4ca26adeddb42a8a2f0f193c9c06
1 /* This file is generated with usbsnoop2libusb.pl from a usbsnoop log file. */
2 /* Latest version of the script should be in http://iki.fi/lindi/usb/usbsnoop2libusb.pl */
3 #include <stdio.h>
4 #include <stdlib.h>
5 #include <string.h>
6 #include <assert.h>
7 #include <signal.h>
8 #include <ctype.h>
9 #include <usb.h>
10 #include <getopt.h>
11 #include "alphamote.h"
13 void print_bytes(char *bytes, int len) {
14 int i;
15 if (len > 0) {
16 for (i=0; i<len; i++) {
17 printf("%02x ", (int)((unsigned char)bytes[i]));
19 printf("\"");
20 for (i=0; i<len; i++) {
21 printf("%c", isprint(bytes[i]) ? bytes[i] : '.');
23 printf("\"");
28 int main(int argc, char **argv) {
29 int ret, c;
30 char buf[65535];
32 init_usb();
34 usleep(50*1000);
35 // shutter release
36 memcpy(buf, "\x10\x00\x00\x00\x01\x00\x07\x92\x0e\x05\x00\x00\xc7\xd2\x00\x00", 0x0000010);
37 ret = usb_bulk_write(devh, 0x00000001, buf, 0x0000010, 1000);
38 printf("3982 bulk write returned %d, bytes: ", ret);
39 print_bytes(buf, ret);
40 printf("\n");
41 usleep(7*1000);
42 memcpy(buf, "\x0e\x00\x00\x00\x02\x00\x07\x92\x0e\x05\x00\x00\x02\x00", 0x000000e);
43 ret = usb_bulk_write(devh, 0x00000001, buf, 0x000000e, 1000);
44 printf("3983 bulk write returned %d, bytes: ", ret);
45 print_bytes(buf, ret);
46 printf("\n");
47 usleep(6*1000);
48 ret = usb_bulk_read(devh, 0x00000082, buf, 0x0000200, 1030);
49 printf("3984 bulk read returned %d, bytes: ", ret);
50 print_bytes(buf, ret);
51 printf("\n");
52 usleep(68*1000);
53 memcpy(buf, "\x0c\x00\x00\x00\x01\x00\x08\x92\x0f\x05\x00\x00", 0x000000c);
54 ret = usb_bulk_write(devh, 0x00000001, buf, 0x000000c, 1000);
55 printf("3985 bulk write returned %d, bytes: ", ret);
56 print_bytes(buf, ret);
57 printf("\n");
58 usleep(4*1000);
59 ret = usb_bulk_read(devh, 0x00000082, buf, 0x0000200, 1030);
60 printf("3986 bulk read returned %d, bytes: ", ret);
61 print_bytes(buf, ret);
62 printf("\n");
63 usleep(9*1000);
64 ret = usb_bulk_read(devh, 0x00000082, buf, 0x0000200, 1030);
65 printf("3987 bulk read returned %d, bytes: ", ret);
66 print_bytes(buf, ret);
67 printf("\n");
68 usleep(8*1000);
69 usleep(8*1000);
70 memcpy(buf, "\x10\x00\x00\x00\x01\x00\x07\x92\x10\x05\x00\x00\xc2\xd2\x00\x00", 0x0000010);
71 ret = usb_bulk_write(devh, 0x00000001, buf, 0x0000010, 1000);
72 printf("3988 bulk write returned %d, bytes: ", ret);
73 print_bytes(buf, ret);
74 printf("\n");
75 usleep(4*1000);
76 memcpy(buf, "\x0e\x00\x00\x00\x02\x00\x07\x92\x10\x05\x00\x00\x01\x00", 0x000000e);
77 ret = usb_bulk_write(devh, 0x00000001, buf, 0x000000e, 1000);
78 printf("3989 bulk write returned %d, bytes: ", ret);
79 print_bytes(buf, ret);
80 printf("\n");
81 usleep(10*1000);
82 ret = usb_bulk_read(devh, 0x00000082, buf, 0x0000200, 1030);
83 printf("3990 bulk read returned %d, bytes: ", ret);
84 print_bytes(buf, ret);
85 printf("\n");
86 usleep(65*1000);
87 memcpy(buf, "\x10\x00\x00\x00\x01\x00\x07\x92\x11\x05\x00\x00\xc1\xd2\x00\x00", 0x0000010);
88 ret = usb_bulk_write(devh, 0x00000001, buf, 0x0000010, 1000);
89 printf("3991 bulk write returned %d, bytes: ", ret);
90 print_bytes(buf, ret);
91 printf("\n");
92 usleep(5*1000);
93 memcpy(buf, "\x0e\x00\x00\x00\x02\x00\x07\x92\x11\x05\x00\x00\x01\x00", 0x000000e);
94 ret = usb_bulk_write(devh, 0x00000001, buf, 0x000000e, 1000);
95 printf("3992 bulk write returned %d, bytes: ", ret);
96 print_bytes(buf, ret);
97 printf("\n");
98 usleep(3*1000);
99 ret = usb_bulk_read(devh, 0x00000082, buf, 0x0000200, 1030);
100 printf("3993 bulk read returned %d, bytes: ", ret);
101 print_bytes(buf, ret);
102 printf("\n");
103 usleep(73*1000);
105 ret = usb_release_interface(devh, 0);
106 assert(ret == 0);
107 ret = usb_close(devh);
108 assert(ret == 0);
109 return 0;