Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
  1/*
  2 * Line6 Linux USB driver - 0.9.1beta
  3 *
  4 * Copyright (C) 2004-2010 Markus Grabner (grabner@icg.tugraz.at)
  5 *
  6 *	This program is free software; you can redistribute it and/or
  7 *	modify it under the terms of the GNU General Public License as
  8 *	published by the Free Software Foundation, version 2.
  9 *
 10 */
 11
 12#ifndef POD_H
 13#define POD_H
 14
 15#include <linux/interrupt.h>
 16#include <linux/spinlock.h>
 17#include <linux/usb.h>
 18
 19#include <sound/core.h>
 20
 21#include "driver.h"
 22
 23/*
 24	PODxt Live interfaces
 25*/
 26#define PODXTLIVE_INTERFACE_POD    0
 27#define PODXTLIVE_INTERFACE_VARIAX 1
 28
 29/*
 30	Locate name in binary program dump
 31*/
 32#define	POD_NAME_OFFSET 0
 33#define	POD_NAME_LENGTH 16
 34
 35/*
 36	Other constants
 37*/
 38#define POD_CONTROL_SIZE 0x80
 39#define POD_BUFSIZE_DUMPREQ 7
 40#define POD_STARTUP_DELAY 1000
 41
 42/*
 43	Stages of POD startup procedure
 44*/
 45enum {
 46	POD_STARTUP_INIT = 1,
 47	POD_STARTUP_VERSIONREQ,
 48	POD_STARTUP_WORKQUEUE,
 49	POD_STARTUP_SETUP,
 50	POD_STARTUP_LAST = POD_STARTUP_SETUP - 1
 51};
 52
 53struct usb_line6_pod {
 54	/**
 55		Generic Line6 USB data.
 56	*/
 57	struct usb_line6 line6;
 58
 59	/**
 60		Instrument monitor level.
 61	*/
 62	int monitor_level;
 63
 64	/**
 65		Timer for device initializaton.
 66	*/
 67	struct timer_list startup_timer;
 68
 69	/**
 70		Work handler for device initializaton.
 71	*/
 72	struct work_struct startup_work;
 73
 74	/**
 75		Current progress in startup procedure.
 76	*/
 77	int startup_progress;
 78
 79	/**
 80		Serial number of device.
 81	*/
 82	int serial_number;
 83
 84	/**
 85		Firmware version (x 100).
 86	*/
 87	int firmware_version;
 88
 89	/**
 90		Device ID.
 91	*/
 92	int device_id;
 93};
 94
 95extern void line6_pod_disconnect(struct usb_interface *interface);
 96extern int line6_pod_init(struct usb_interface *interface,
 97			  struct usb_line6_pod *pod);
 98extern void line6_pod_process_message(struct usb_line6_pod *pod);
 99extern void line6_pod_transmit_parameter(struct usb_line6_pod *pod, int param,
100					 u8 value);
101
102#endif