-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This is an experimental Linux driver for the guitar amp, cab, and effects modeller PODxt Pro by Line6 (and similar devices), supporting the following features: - Reading/writing individual parameters - Reading/writing complete channel, effects setup, and amp setup data - Channel switching - Virtual MIDI interface - Tuner access - Playback/capture/mixer device for any ALSA-compatible PCM audio application - Signal routing (record clean/processed guitar signal, re-amping) Moreover, preliminary support for the Variax Workbench is included. From: Markus Grabner <grabner@icg.tugraz.at> Cc: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
- Loading branch information
Markus Grabner
authored and
Greg Kroah-Hartman
committed
Apr 3, 2009
1 parent
e642f09
commit 705ecec
Showing
29 changed files
with
6,962 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
config LINE6_USB | ||
tristate "Line6 USB support" | ||
depends on USB | ||
help | ||
This is a driver for the guitar amp, cab, and effects modeller | ||
PODxt Pro by Line6 (and similar devices), supporting the | ||
following features: | ||
* Reading/writing individual parameters | ||
* Reading/writing complete channel, effects setup, and amp | ||
setup data | ||
* Channel switching | ||
* Virtual MIDI interface | ||
* Tuner access | ||
* Playback/capture/mixer device for any ALSA-compatible PCM | ||
audio application | ||
* Signal routing (record clean/processed guitar signal, | ||
re-amping) | ||
|
||
Preliminary support for the Variax Workbench is included. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
obj-$(CONFIG_LINE6_USB) += line6usb.o | ||
|
||
line6usb-objs := \ | ||
audio.o \ | ||
capture.o \ | ||
control.o \ | ||
driver.o \ | ||
dumprequest.o \ | ||
midi.o \ | ||
midibuf.o \ | ||
pcm.o \ | ||
playback.o \ | ||
pod.o \ | ||
toneport.o \ | ||
variax.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/* | ||
* Line6 Linux USB driver - 0.8.0 | ||
* | ||
* Copyright (C) 2004-2009 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. | ||
* | ||
*/ | ||
|
||
#include "driver.h" | ||
|
||
#include <sound/core.h> | ||
#include <sound/initval.h> | ||
|
||
|
||
static int line6_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; | ||
static char *line6_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; | ||
|
||
|
||
/* | ||
Initialize the Line6 USB audio system. | ||
*/ | ||
int line6_init_audio(struct usb_line6 *line6) | ||
{ | ||
static int dev = 0; | ||
struct snd_card *card; | ||
|
||
card = snd_card_new(line6_index[dev], line6_id[dev], THIS_MODULE, 0); | ||
|
||
if(card == NULL) | ||
return -ENOMEM; | ||
|
||
line6->card = card; | ||
|
||
strcpy(card->driver, DRIVER_NAME); | ||
strcpy(card->shortname, "Line6-USB"); | ||
sprintf(card->longname, "Line6 %s at USB %s", line6->properties->name, line6->ifcdev->bus_id); /* 80 chars - see asound.h */ | ||
return 0; | ||
} | ||
|
||
/* | ||
Register the Line6 USB audio system. | ||
*/ | ||
int line6_register_audio(struct usb_line6 *line6) | ||
{ | ||
int err; | ||
|
||
if((err = snd_card_register(line6->card)) < 0) | ||
return err; | ||
|
||
return 0; | ||
} | ||
|
||
/* | ||
Cleanup the Line6 USB audio system. | ||
*/ | ||
void line6_cleanup_audio(struct usb_line6 *line6) | ||
{ | ||
struct snd_card *card = line6->card; | ||
|
||
if(card == 0) | ||
return; | ||
|
||
snd_card_disconnect(card); | ||
snd_card_free(card); | ||
line6->card = 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
/* | ||
* Line6 Linux USB driver - 0.8.0 | ||
* | ||
* Copyright (C) 2004-2009 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 AUDIO_H | ||
#define AUDIO_H | ||
|
||
|
||
#include "driver.h" | ||
|
||
|
||
extern void line6_cleanup_audio(struct usb_line6 *); | ||
extern int line6_init_audio(struct usb_line6 *); | ||
extern int line6_register_audio(struct usb_line6 *); | ||
|
||
|
||
#endif |
Oops, something went wrong.