1 /* 2 * ALSA interface to cobalt PCM capture streams 3 * 4 * Copyright 2014-2015 Cisco Systems, Inc. and/or its affiliates. 5 * All rights reserved. 6 * 7 * This program is free software; you may redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; version 2 of the License. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 12 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 13 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 15 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 16 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 17 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 18 * SOFTWARE. 19 */ 20 21 struct snd_card; 22 23 struct snd_cobalt_card { 24 struct cobalt_stream *s; 25 struct snd_card *sc; 26 unsigned int capture_transfer_done; 27 unsigned int hwptr_done_capture; 28 unsigned alsa_record_cnt; 29 struct snd_pcm_substream *capture_pcm_substream; 30 31 unsigned int pb_size; 32 unsigned int pb_count; 33 unsigned int pb_pos; 34 unsigned pb_filled; 35 bool alsa_pb_channel; 36 unsigned alsa_playback_cnt; 37 struct snd_pcm_substream *playback_pcm_substream; 38 }; 39 40 int cobalt_alsa_init(struct cobalt_stream *s); 41 void cobalt_alsa_exit(struct cobalt_stream *s); 42