| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /*
- * Line6 Linux USB driver - 0.9.1beta
- *
- * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, version 2.
- *
- */
- #ifndef POD_H
- #define POD_H
- #include <linux/interrupt.h>
- #include <linux/spinlock.h>
- #include <linux/usb.h>
- #include <sound/core.h>
- #include "driver.h"
- /*
- PODxt Live interfaces
- */
- #define PODXTLIVE_INTERFACE_POD 0
- #define PODXTLIVE_INTERFACE_VARIAX 1
- /*
- Locate name in binary program dump
- */
- #define POD_NAME_OFFSET 0
- #define POD_NAME_LENGTH 16
- /*
- Other constants
- */
- #define POD_CONTROL_SIZE 0x80
- #define POD_BUFSIZE_DUMPREQ 7
- #define POD_STARTUP_DELAY 1000
- /*
- Stages of POD startup procedure
- */
- enum {
- POD_STARTUP_INIT = 1,
- POD_STARTUP_VERSIONREQ,
- POD_STARTUP_WORKQUEUE,
- POD_STARTUP_SETUP,
- POD_STARTUP_LAST = POD_STARTUP_SETUP - 1
- };
- struct usb_line6_pod {
- /**
- Generic Line6 USB data.
- */
- struct usb_line6 line6;
- /**
- Instrument monitor level.
- */
- int monitor_level;
- /**
- Timer for device initializaton.
- */
- struct timer_list startup_timer;
- /**
- Work handler for device initializaton.
- */
- struct work_struct startup_work;
- /**
- Current progress in startup procedure.
- */
- int startup_progress;
- /**
- Serial number of device.
- */
- int serial_number;
- /**
- Firmware version (x 100).
- */
- int firmware_version;
- /**
- Device ID.
- */
- int device_id;
- };
- extern void line6_pod_disconnect(struct usb_interface *interface);
- extern int line6_pod_init(struct usb_interface *interface,
- struct usb_line6_pod *pod);
- extern void line6_pod_process_message(struct usb_line6_pod *pod);
- extern void line6_pod_transmit_parameter(struct usb_line6_pod *pod, int param,
- u8 value);
- #endif
|