1 /* 2 * Line6 Linux USB driver - 0.9.1beta 3 * 4 * Copyright (C) 2005-2008 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 USBDEFS_H 13 #define USBDEFS_H 14 15 #define LINE6_VENDOR_ID 0x0e41 16 17 #define USB_INTERVALS_PER_SECOND 1000 18 19 /* 20 Device ids. 21 */ 22 #define LINE6_DEVID_BASSPODXT 0x4250 23 #define LINE6_DEVID_BASSPODXTLIVE 0x4642 24 #define LINE6_DEVID_BASSPODXTPRO 0x4252 25 #define LINE6_DEVID_GUITARPORT 0x4750 26 #define LINE6_DEVID_POCKETPOD 0x5051 27 #define LINE6_DEVID_PODHD300 0x5057 28 #define LINE6_DEVID_PODHD500 0x414D 29 #define LINE6_DEVID_PODSTUDIO_GX 0x4153 30 #define LINE6_DEVID_PODSTUDIO_UX1 0x4150 31 #define LINE6_DEVID_PODSTUDIO_UX2 0x4151 32 #define LINE6_DEVID_PODX3 0x414a 33 #define LINE6_DEVID_PODX3LIVE 0x414b 34 #define LINE6_DEVID_PODXT 0x5044 35 #define LINE6_DEVID_PODXTLIVE 0x4650 36 #define LINE6_DEVID_PODXTPRO 0x5050 37 #define LINE6_DEVID_TONEPORT_GX 0x4147 38 #define LINE6_DEVID_TONEPORT_UX1 0x4141 39 #define LINE6_DEVID_TONEPORT_UX2 0x4142 40 #define LINE6_DEVID_VARIAX 0x534d 41 42 #define LINE6_BIT(x) LINE6_BIT_ ## x = 1 << LINE6_INDEX_ ## x 43 44 enum { 45 LINE6_INDEX_BASSPODXT, 46 LINE6_INDEX_BASSPODXTLIVE, 47 LINE6_INDEX_BASSPODXTPRO, 48 LINE6_INDEX_GUITARPORT, 49 LINE6_INDEX_POCKETPOD, 50 LINE6_INDEX_PODHD300, 51 LINE6_INDEX_PODHD500, 52 LINE6_INDEX_PODSTUDIO_GX, 53 LINE6_INDEX_PODSTUDIO_UX1, 54 LINE6_INDEX_PODSTUDIO_UX2, 55 LINE6_INDEX_PODX3, 56 LINE6_INDEX_PODX3LIVE, 57 LINE6_INDEX_PODXT, 58 LINE6_INDEX_PODXTLIVE, 59 LINE6_INDEX_PODXTPRO, 60 LINE6_INDEX_TONEPORT_GX, 61 LINE6_INDEX_TONEPORT_UX1, 62 LINE6_INDEX_TONEPORT_UX2, 63 LINE6_INDEX_VARIAX, 64 65 LINE6_BIT(BASSPODXT), 66 LINE6_BIT(BASSPODXTLIVE), 67 LINE6_BIT(BASSPODXTPRO), 68 LINE6_BIT(GUITARPORT), 69 LINE6_BIT(POCKETPOD), 70 LINE6_BIT(PODHD300), 71 LINE6_BIT(PODHD500), 72 LINE6_BIT(PODSTUDIO_GX), 73 LINE6_BIT(PODSTUDIO_UX1), 74 LINE6_BIT(PODSTUDIO_UX2), 75 LINE6_BIT(PODX3), 76 LINE6_BIT(PODX3LIVE), 77 LINE6_BIT(PODXT), 78 LINE6_BIT(PODXTLIVE), 79 LINE6_BIT(PODXTPRO), 80 LINE6_BIT(TONEPORT_GX), 81 LINE6_BIT(TONEPORT_UX1), 82 LINE6_BIT(TONEPORT_UX2), 83 LINE6_BIT(VARIAX), 84 85 LINE6_BITS_PRO = LINE6_BIT_BASSPODXTPRO | LINE6_BIT_PODXTPRO, 86 LINE6_BITS_LIVE = LINE6_BIT_BASSPODXTLIVE | LINE6_BIT_PODXTLIVE | LINE6_BIT_PODX3LIVE, 87 LINE6_BITS_PODXTALL = LINE6_BIT_PODXT | LINE6_BIT_PODXTLIVE | LINE6_BIT_PODXTPRO, 88 LINE6_BITS_PODX3ALL = LINE6_BIT_PODX3 | LINE6_BIT_PODX3LIVE, 89 LINE6_BITS_PODHDALL = LINE6_BIT_PODHD300 | LINE6_BIT_PODHD500, 90 LINE6_BITS_BASSPODXTALL = LINE6_BIT_BASSPODXT | LINE6_BIT_BASSPODXTLIVE | LINE6_BIT_BASSPODXTPRO 91 }; 92 93 /* device supports settings parameter via USB */ 94 #define LINE6_BIT_CONTROL (1 << 0) 95 /* device supports PCM input/output via USB */ 96 #define LINE6_BIT_PCM (1 << 1) 97 /* device support hardware monitoring */ 98 #define LINE6_BIT_HWMON (1 << 2) 99 100 #define LINE6_BIT_CONTROL_PCM_HWMON (LINE6_BIT_CONTROL | \ 101 LINE6_BIT_PCM | \ 102 LINE6_BIT_HWMON) 103 104 #define LINE6_FALLBACK_INTERVAL 10 105 #define LINE6_FALLBACK_MAXPACKETSIZE 16 106 107 #endif 108