mirror of https://gitee.com/openkylin/linux.git
ALSA: bebob: code refactoring for callback function to rawmidi interface
The pairs of rawmidi.hw_params callback functions and .hw_free callback functions for both direction have no differences. This commit unifies the pairs. Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
f69fc17947
commit
73f7864eb5
|
@ -8,7 +8,7 @@
|
|||
|
||||
#include "bebob.h"
|
||||
|
||||
static int midi_capture_open(struct snd_rawmidi_substream *substream)
|
||||
static int midi_open(struct snd_rawmidi_substream *substream)
|
||||
{
|
||||
struct snd_bebob *bebob = substream->rmidi->private_data;
|
||||
int err;
|
||||
|
@ -30,42 +30,7 @@ static int midi_capture_open(struct snd_rawmidi_substream *substream)
|
|||
return err;
|
||||
}
|
||||
|
||||
static int midi_playback_open(struct snd_rawmidi_substream *substream)
|
||||
{
|
||||
struct snd_bebob *bebob = substream->rmidi->private_data;
|
||||
int err;
|
||||
|
||||
err = snd_bebob_stream_lock_try(bebob);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
mutex_lock(&bebob->mutex);
|
||||
err = snd_bebob_stream_reserve_duplex(bebob, 0);
|
||||
if (err >= 0) {
|
||||
++bebob->substreams_counter;
|
||||
err = snd_bebob_stream_start_duplex(bebob);
|
||||
}
|
||||
mutex_unlock(&bebob->mutex);
|
||||
if (err < 0)
|
||||
snd_bebob_stream_lock_release(bebob);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static int midi_capture_close(struct snd_rawmidi_substream *substream)
|
||||
{
|
||||
struct snd_bebob *bebob = substream->rmidi->private_data;
|
||||
|
||||
mutex_lock(&bebob->mutex);
|
||||
bebob->substreams_counter--;
|
||||
snd_bebob_stream_stop_duplex(bebob);
|
||||
mutex_unlock(&bebob->mutex);
|
||||
|
||||
snd_bebob_stream_lock_release(bebob);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int midi_playback_close(struct snd_rawmidi_substream *substream)
|
||||
static int midi_close(struct snd_rawmidi_substream *substream)
|
||||
{
|
||||
struct snd_bebob *bebob = substream->rmidi->private_data;
|
||||
|
||||
|
@ -127,13 +92,13 @@ static void set_midi_substream_names(struct snd_bebob *bebob,
|
|||
int snd_bebob_create_midi_devices(struct snd_bebob *bebob)
|
||||
{
|
||||
static const struct snd_rawmidi_ops capture_ops = {
|
||||
.open = midi_capture_open,
|
||||
.close = midi_capture_close,
|
||||
.open = midi_open,
|
||||
.close = midi_close,
|
||||
.trigger = midi_capture_trigger,
|
||||
};
|
||||
static const struct snd_rawmidi_ops playback_ops = {
|
||||
.open = midi_playback_open,
|
||||
.close = midi_playback_close,
|
||||
.open = midi_open,
|
||||
.close = midi_close,
|
||||
.trigger = midi_playback_trigger,
|
||||
};
|
||||
struct snd_rawmidi *rmidi;
|
||||
|
|
Loading…
Reference in New Issue