ALSA: line6: Make common PCM pointer callback
Both playback and capture callbacks are identical, so let's merge them. Tested-by: Chris Rorvick <chris@rorvick.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
63e20df1e5
commit
2954f914f2
@ -231,15 +231,6 @@ static int snd_line6_capture_close(struct snd_pcm_substream *substream)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* capture pointer callback */
|
|
||||||
static snd_pcm_uframes_t
|
|
||||||
snd_line6_capture_pointer(struct snd_pcm_substream *substream)
|
|
||||||
{
|
|
||||||
struct snd_line6_pcm *line6pcm = snd_pcm_substream_chip(substream);
|
|
||||||
|
|
||||||
return line6pcm->in.pos_done;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* capture operators */
|
/* capture operators */
|
||||||
struct snd_pcm_ops snd_line6_capture_ops = {
|
struct snd_pcm_ops snd_line6_capture_ops = {
|
||||||
.open = snd_line6_capture_open,
|
.open = snd_line6_capture_open,
|
||||||
@ -249,7 +240,7 @@ struct snd_pcm_ops snd_line6_capture_ops = {
|
|||||||
.hw_free = snd_line6_hw_free,
|
.hw_free = snd_line6_hw_free,
|
||||||
.prepare = snd_line6_prepare,
|
.prepare = snd_line6_prepare,
|
||||||
.trigger = snd_line6_trigger,
|
.trigger = snd_line6_trigger,
|
||||||
.pointer = snd_line6_capture_pointer,
|
.pointer = snd_line6_pointer,
|
||||||
};
|
};
|
||||||
|
|
||||||
int line6_create_audio_in_urbs(struct snd_line6_pcm *line6pcm)
|
int line6_create_audio_in_urbs(struct snd_line6_pcm *line6pcm)
|
||||||
|
@ -266,6 +266,15 @@ int snd_line6_trigger(struct snd_pcm_substream *substream, int cmd)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* common PCM pointer callback */
|
||||||
|
snd_pcm_uframes_t snd_line6_pointer(struct snd_pcm_substream *substream)
|
||||||
|
{
|
||||||
|
struct snd_line6_pcm *line6pcm = snd_pcm_substream_chip(substream);
|
||||||
|
struct line6_pcm_stream *pstr = get_stream(line6pcm, substream->stream);
|
||||||
|
|
||||||
|
return pstr->pos_done;
|
||||||
|
}
|
||||||
|
|
||||||
/* Acquire and start duplex streams:
|
/* Acquire and start duplex streams:
|
||||||
* type is either LINE6_STREAM_IMPULSE or LINE6_STREAM_MONITOR
|
* type is either LINE6_STREAM_IMPULSE or LINE6_STREAM_MONITOR
|
||||||
*/
|
*/
|
||||||
|
@ -214,6 +214,7 @@ extern int snd_line6_prepare(struct snd_pcm_substream *substream);
|
|||||||
extern int snd_line6_hw_params(struct snd_pcm_substream *substream,
|
extern int snd_line6_hw_params(struct snd_pcm_substream *substream,
|
||||||
struct snd_pcm_hw_params *hw_params);
|
struct snd_pcm_hw_params *hw_params);
|
||||||
extern int snd_line6_hw_free(struct snd_pcm_substream *substream);
|
extern int snd_line6_hw_free(struct snd_pcm_substream *substream);
|
||||||
|
extern snd_pcm_uframes_t snd_line6_pointer(struct snd_pcm_substream *substream);
|
||||||
extern void line6_pcm_disconnect(struct snd_line6_pcm *line6pcm);
|
extern void line6_pcm_disconnect(struct snd_line6_pcm *line6pcm);
|
||||||
extern int line6_pcm_acquire(struct snd_line6_pcm *line6pcm, int type);
|
extern int line6_pcm_acquire(struct snd_line6_pcm *line6pcm, int type);
|
||||||
extern void line6_pcm_release(struct snd_line6_pcm *line6pcm, int type);
|
extern void line6_pcm_release(struct snd_line6_pcm *line6pcm, int type);
|
||||||
|
@ -380,15 +380,6 @@ static int snd_line6_playback_close(struct snd_pcm_substream *substream)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* playback pointer callback */
|
|
||||||
static snd_pcm_uframes_t
|
|
||||||
snd_line6_playback_pointer(struct snd_pcm_substream *substream)
|
|
||||||
{
|
|
||||||
struct snd_line6_pcm *line6pcm = snd_pcm_substream_chip(substream);
|
|
||||||
|
|
||||||
return line6pcm->out.pos_done;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* playback operators */
|
/* playback operators */
|
||||||
struct snd_pcm_ops snd_line6_playback_ops = {
|
struct snd_pcm_ops snd_line6_playback_ops = {
|
||||||
.open = snd_line6_playback_open,
|
.open = snd_line6_playback_open,
|
||||||
@ -398,7 +389,7 @@ struct snd_pcm_ops snd_line6_playback_ops = {
|
|||||||
.hw_free = snd_line6_hw_free,
|
.hw_free = snd_line6_hw_free,
|
||||||
.prepare = snd_line6_prepare,
|
.prepare = snd_line6_prepare,
|
||||||
.trigger = snd_line6_trigger,
|
.trigger = snd_line6_trigger,
|
||||||
.pointer = snd_line6_playback_pointer,
|
.pointer = snd_line6_pointer,
|
||||||
};
|
};
|
||||||
|
|
||||||
int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm)
|
int line6_create_audio_out_urbs(struct snd_line6_pcm *line6pcm)
|
||||||
|
Loading…
Reference in New Issue
Block a user