/* *INDENT-OFF* */
enum {
- POD_SYSEX_CLIP = 0x0f,
POD_SYSEX_SAVE = 0x24,
POD_SYSEX_SYSTEM = 0x56,
POD_SYSEX_SYSTEMREQ = 0x57,
pod_save_button_pressed(pod, buf[6], buf[7]);
break;
- case POD_SYSEX_CLIP:
- dev_dbg(pod->line6.ifcdev, "audio clipped\n");
- pod->clipping.value = 1;
- wake_up(&pod->clipping.wait);
- break;
-
case POD_SYSEX_STORE:
dev_dbg(pod->line6.ifcdev,
"message %02X not yet implemented\n",
return sprintf(buf, "%d\n", pod->device_id);
}
-/*
- "read" request on "clip" special file.
-*/
-static ssize_t pod_wait_for_clip(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- struct usb_interface *interface = to_usb_interface(dev);
- struct usb_line6_pod *pod = usb_get_intfdata(interface);
- return wait_event_interruptible(pod->clipping.wait,
- pod->clipping.value != 0);
-}
-
/*
POD startup procedure.
This is a sequence of functions with special requirements (e.g., must
#undef GET_SYSTEM_PARAM
/* POD special files: */
-static DEVICE_ATTR(clip, S_IRUGO, pod_wait_for_clip, line6_nop_write);
static DEVICE_ATTR(device_id, S_IRUGO, pod_get_device_id, line6_nop_write);
static DEVICE_ATTR(dirty, S_IRUGO, pod_get_dirty, line6_nop_write);
static DEVICE_ATTR(dump, S_IWUSR | S_IRUGO, pod_get_dump, pod_set_dump);
{
int err;
- CHECK_RETURN(device_create_file(dev, &dev_attr_clip));
CHECK_RETURN(device_create_file(dev, &dev_attr_device_id));
CHECK_RETURN(device_create_file(dev, &dev_attr_dirty));
CHECK_RETURN(device_create_file(dev, &dev_attr_dump));
init_waitqueue_head(&pod->tuner_freq.wait);
init_waitqueue_head(&pod->tuner_note.wait);
init_waitqueue_head(&pod->tuner_pitch.wait);
- init_waitqueue_head(&pod->clipping.wait);
memset(pod->param_dirty, 0xff, sizeof(pod->param_dirty));
pod->line6.
properties->device_bit, dev);
- device_remove_file(dev, &dev_attr_clip);
device_remove_file(dev, &dev_attr_device_id);
device_remove_file(dev, &dev_attr_dirty);
device_remove_file(dev, &dev_attr_dump);