Lines Matching refs:rec
28 struct snd_pcm_indirect *rec, size_t bytes);
35 struct snd_pcm_indirect *rec,
40 snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr;
48 rec->sw_ready += (int)frames_to_bytes(runtime, diff);
49 rec->appl_ptr = appl_ptr;
51 qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size;
52 while (rec->hw_ready < qsize && rec->sw_ready > 0) {
53 unsigned int hw_to_end = rec->hw_buffer_size - rec->hw_data;
54 unsigned int sw_to_end = rec->sw_buffer_size - rec->sw_data;
55 unsigned int bytes = qsize - rec->hw_ready;
56 if (rec->sw_ready < (int)bytes)
57 bytes = rec->sw_ready;
64 copy(substream, rec, bytes);
65 rec->hw_data += bytes;
66 if (rec->hw_data == rec->hw_buffer_size)
67 rec->hw_data = 0;
68 rec->sw_data += bytes;
69 if (rec->sw_data == rec->sw_buffer_size)
70 rec->sw_data = 0;
71 rec->hw_ready += bytes;
72 rec->sw_ready -= bytes;
83 struct snd_pcm_indirect *rec, unsigned int ptr)
85 int bytes = ptr - rec->hw_io;
87 bytes += rec->hw_buffer_size;
88 rec->hw_io = ptr;
89 rec->hw_ready -= bytes;
90 rec->sw_io += bytes;
91 if (rec->sw_io >= rec->sw_buffer_size)
92 rec->sw_io -= rec->sw_buffer_size;
95 return bytes_to_frames(substream->runtime, rec->sw_io);
104 struct snd_pcm_indirect *rec,
109 snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr;
116 rec->sw_ready -= frames_to_bytes(runtime, diff);
117 rec->appl_ptr = appl_ptr;
119 while (rec->hw_ready > 0 &&
120 rec->sw_ready < (int)rec->sw_buffer_size) {
121 size_t hw_to_end = rec->hw_buffer_size - rec->hw_data;
122 size_t sw_to_end = rec->sw_buffer_size - rec->sw_data;
123 size_t bytes = rec->sw_buffer_size - rec->sw_ready;
124 if (rec->hw_ready < (int)bytes)
125 bytes = rec->hw_ready;
132 copy(substream, rec, bytes);
133 rec->hw_data += bytes;
134 if ((int)rec->hw_data == rec->hw_buffer_size)
135 rec->hw_data = 0;
136 rec->sw_data += bytes;
137 if (rec->sw_data == rec->sw_buffer_size)
138 rec->sw_data = 0;
139 rec->hw_ready -= bytes;
140 rec->sw_ready += bytes;
151 struct snd_pcm_indirect *rec, unsigned int ptr)
154 int bytes = ptr - rec->hw_io;
156 bytes += rec->hw_buffer_size;
157 rec->hw_io = ptr;
158 rec->hw_ready += bytes;
159 qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size;
160 if (rec->hw_ready > qsize)
162 rec->sw_io += bytes;
163 if (rec->sw_io >= rec->sw_buffer_size)
164 rec->sw_io -= rec->sw_buffer_size;
167 return bytes_to_frames(substream->runtime, rec->sw_io);