linux/sound/usb/line6/playback.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Line 6 Linux USB driver
 *
 * Copyright (C) 2004-2010 Markus Grabner ([email protected])
 */

#include <linux/slab.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>

#include "capture.h"
#include "driver.h"
#include "pcm.h"
#include "playback.h"

/*
	Software stereo volume control.
*/
static void change_volume(struct urb *urb_out, int volume[],
			  int bytes_per_frame)
{}

/*
	Create signal for impulse response test.
*/
static void create_impulse_test_signal(struct snd_line6_pcm *line6pcm,
				       struct urb *urb_out, int bytes_per_frame)
{}

/*
	Add signal to buffer for software monitoring.
*/
static void add_monitor_signal(struct urb *urb_out, unsigned char *signal,
			       int volume, int bytes_per_frame)
{}

/*
	Find a free URB, prepare audio data, and submit URB.
	must be called in line6pcm->out.lock context
*/
static int submit_audio_out_urb(struct snd_line6_pcm *line6pcm)
{}

/*
	Submit all currently available playback URBs.
	must be called in line6pcm->out.lock context
 */
int line6_submit_audio_out_all_urbs(struct snd_line6_pcm *line6pcm)
{}

/*
	Callback for completed playback URB.
*/
static void audio_out_callback(struct urb *urb)
{}

/* open playback callback */
static int snd_line6_playback_open(struct snd_pcm_substream *substream)
{}

/* close playback callback */
static int snd_line6_playback_close(struct snd_pcm_substream *substream)
{}

/* playback operators */
const struct snd_pcm_ops snd_line6_playback_ops =;

int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm)
{}