dont clear_output for single step for shuttle, shuttle fix for HI_JOG event
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / shuttle.C
index 22adeaf01180c29609e9d3280870313bc84ad403..e8d5572b82571425656773bae387a40f34bc9d0c 100644 (file)
@@ -603,6 +603,8 @@ void Shuttle::jogshuttle(unsigned short code, unsigned int value)
        case EVENT_CODE_SHUTTLE:
                shuttle(value);
                break;
+       case EVENT_CODE_HI_JOG:  // redundant report of JOG value*120
+               break;
        default:
                fprintf(stderr, "jogshuttle(%d, %d) invalid code\n", code, value);
                break;
@@ -619,6 +621,8 @@ static const struct shuttle_dev {
                0x0b33, 0x0030 },
        { "/dev/input/by-id/usb-Contour_Design_ShuttlePro-event-if00",
                0x0b33, 0x0030 },
+       { "/dev/input/by-id/usb-Contour_Design_ShuttlePRO_v2-event-joystick",
+               0x0b33, 0x0030 },
 };
 
 #ifdef HAVE_SHUTTLE_USB
@@ -847,7 +851,7 @@ void Shuttle::run()
        while( devsh && !done ) {
                int len = 0;
                static const int IN_ENDPOINT = 0x81;
-               unsigned char dat[BCSTRLEN];
+               unsigned char dat[5];
                int ret = libusb_interrupt_transfer(devsh,
                                IN_ENDPOINT, dat, sizeof(dat), &len, 100);
                if( ret != 0 ) {
@@ -891,7 +895,7 @@ void Shuttle::run()
                        if( first_time ) break;
                        continue;
                }
-               if( !ioctl(fd, EVIOCGRAB, 1) ) { // exclusive access
+               if( 1 || !ioctl(fd, EVIOCGRAB, 1) ) { // exclusive access
                        first_time = 0;
                        while( !done ) {
                                int ret = read(fd, &ev, sizeof(ev));