Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 141756
b: refs/heads/master
c: 705ecec
h: refs/heads/master
v: v3
  • Loading branch information
Markus Grabner authored and Greg Kroah-Hartman committed Apr 3, 2009
1 parent 509dd40 commit a3f1e67
Show file tree
Hide file tree
Showing 30 changed files with 6,963 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e642f09951f7cbb69983781b07bb9cd881546ac4
refs/heads/master: 705ececd1c60d0f5d6ef2a719008847883516970
20 changes: 20 additions & 0 deletions trunk/drivers/staging/line6/Kconfig
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.

15 changes: 15 additions & 0 deletions trunk/drivers/staging/line6/Makefile
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
69 changes: 69 additions & 0 deletions trunk/drivers/staging/line6/audio.c
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;
}
24 changes: 24 additions & 0 deletions trunk/drivers/staging/line6/audio.h
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
Loading

0 comments on commit a3f1e67

Please sign in to comment.