mock_alsa_wrapper.h 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. // Copyright (c) 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef MEDIA_AUDIO_ALSA_MOCK_ALSA_WRAPPER_H_
  5. #define MEDIA_AUDIO_ALSA_MOCK_ALSA_WRAPPER_H_
  6. #include "media/audio/alsa/alsa_wrapper.h"
  7. #include "testing/gmock/include/gmock/gmock.h"
  8. namespace media {
  9. class MockAlsaWrapper : public AlsaWrapper {
  10. public:
  11. MockAlsaWrapper();
  12. MockAlsaWrapper(const MockAlsaWrapper&) = delete;
  13. MockAlsaWrapper& operator=(const MockAlsaWrapper&) = delete;
  14. ~MockAlsaWrapper() override;
  15. MOCK_METHOD3(DeviceNameHint, int(int card, const char* iface, void*** hints));
  16. MOCK_METHOD2(DeviceNameGetHint, char*(const void* hint, const char* id));
  17. MOCK_METHOD1(DeviceNameFreeHint, int(void** hints));
  18. MOCK_METHOD1(CardNext, int(int* rcard));
  19. MOCK_METHOD4(PcmOpen,
  20. int(snd_pcm_t** handle,
  21. const char* name,
  22. snd_pcm_stream_t stream,
  23. int mode));
  24. MOCK_METHOD1(PcmClose, int(snd_pcm_t* handle));
  25. MOCK_METHOD1(PcmPrepare, int(snd_pcm_t* handle));
  26. MOCK_METHOD1(PcmDrain, int(snd_pcm_t* handle));
  27. MOCK_METHOD1(PcmDrop, int(snd_pcm_t* handle));
  28. MOCK_METHOD2(PcmDelay, int(snd_pcm_t* handle, snd_pcm_sframes_t* delay));
  29. MOCK_METHOD1(PcmResume, int(snd_pcm_t* handle));
  30. MOCK_METHOD3(PcmWritei,
  31. snd_pcm_sframes_t(snd_pcm_t* handle,
  32. const void* buffer,
  33. snd_pcm_uframes_t size));
  34. MOCK_METHOD3(PcmReadi,
  35. snd_pcm_sframes_t(snd_pcm_t* handle,
  36. void* buffer,
  37. snd_pcm_uframes_t size));
  38. MOCK_METHOD3(PcmRecover, int(snd_pcm_t* handle, int err, int silent));
  39. MOCK_METHOD7(PcmSetParams,
  40. int(snd_pcm_t* handle,
  41. snd_pcm_format_t format,
  42. snd_pcm_access_t access,
  43. unsigned int channels,
  44. unsigned int rate,
  45. int soft_resample,
  46. unsigned int latency));
  47. MOCK_METHOD3(PcmGetParams,
  48. int(snd_pcm_t* handle,
  49. snd_pcm_uframes_t* buffer_size,
  50. snd_pcm_uframes_t* period_size));
  51. MOCK_METHOD1(PcmHwParamsMalloc, int(snd_pcm_hw_params_t** hw_params));
  52. MOCK_METHOD2(PcmHwParamsAny,
  53. int(snd_pcm_t* handle, snd_pcm_hw_params_t* hw_params));
  54. MOCK_METHOD1(PcmHwParamsCanResume, int(snd_pcm_hw_params_t* hw_params));
  55. MOCK_METHOD3(PcmHwParamsSetRateResample,
  56. int(snd_pcm_t* handle,
  57. snd_pcm_hw_params_t* hw_params,
  58. unsigned int value));
  59. MOCK_METHOD4(PcmHwParamsSetRateNear,
  60. int(snd_pcm_t* handle,
  61. snd_pcm_hw_params_t* hw_params,
  62. unsigned int* rate,
  63. int* direction));
  64. MOCK_METHOD3(PcmHwParamsTestFormat,
  65. int(snd_pcm_t* handle,
  66. snd_pcm_hw_params_t* hw_params,
  67. snd_pcm_format_t format));
  68. MOCK_METHOD2(PcmFormatSize, int(snd_pcm_format_t format, size_t samples));
  69. MOCK_METHOD2(PcmHwParamsGetChannelsMin,
  70. int(const snd_pcm_hw_params_t* hw_params,
  71. unsigned int* min_channels));
  72. MOCK_METHOD2(PcmHwParamsGetChannelsMax,
  73. int(const snd_pcm_hw_params_t* hw_params,
  74. unsigned int* max_channels));
  75. MOCK_METHOD3(PcmHwParamsSetFormat,
  76. int(snd_pcm_t* handle,
  77. snd_pcm_hw_params_t* hw_params,
  78. snd_pcm_format_t format));
  79. MOCK_METHOD3(PcmHwParamsSetAccess,
  80. int(snd_pcm_t* handle,
  81. snd_pcm_hw_params_t* hw_params,
  82. snd_pcm_access_t access));
  83. MOCK_METHOD3(PcmHwParamsSetChannels,
  84. int(snd_pcm_t* handle,
  85. snd_pcm_hw_params_t* hw_params,
  86. unsigned int channels));
  87. MOCK_METHOD3(PcmHwParamsSetBufferSizeNear,
  88. int(snd_pcm_t* handle,
  89. snd_pcm_hw_params_t* hw_params,
  90. snd_pcm_uframes_t* buffer_size));
  91. MOCK_METHOD4(PcmHwParamsSetPeriodSizeNear,
  92. int(snd_pcm_t* handle,
  93. snd_pcm_hw_params_t* hw_params,
  94. snd_pcm_uframes_t* period_size,
  95. int* direction));
  96. MOCK_METHOD2(PcmHwParams,
  97. int(snd_pcm_t* handle, snd_pcm_hw_params_t* hw_params));
  98. MOCK_METHOD1(PcmHwParamsFree, void(snd_pcm_hw_params_t* hw_params));
  99. MOCK_METHOD1(PcmSwParamsMalloc, int(snd_pcm_sw_params_t** sw_params));
  100. MOCK_METHOD2(PcmSwParamsCurrent,
  101. int(snd_pcm_t* handle, snd_pcm_sw_params_t* sw_params));
  102. MOCK_METHOD3(PcmSwParamsSetStartThreshold,
  103. int(snd_pcm_t* handle,
  104. snd_pcm_sw_params_t* sw_params,
  105. snd_pcm_uframes_t start_threshold));
  106. MOCK_METHOD3(PcmSwParamsSetAvailMin,
  107. int(snd_pcm_t* handle,
  108. snd_pcm_sw_params_t* sw_params,
  109. snd_pcm_uframes_t period_size));
  110. MOCK_METHOD2(PcmSwParams,
  111. int(snd_pcm_t* handle, snd_pcm_sw_params_t* sw_params));
  112. MOCK_METHOD1(PcmSwParamsFree, void(snd_pcm_sw_params_t* sw_params));
  113. MOCK_METHOD1(PcmName, const char*(snd_pcm_t* handle));
  114. MOCK_METHOD1(PcmAvailUpdate, snd_pcm_sframes_t(snd_pcm_t* handle));
  115. MOCK_METHOD1(PcmState, snd_pcm_state_t(snd_pcm_t* handle));
  116. MOCK_METHOD1(PcmStart, int(snd_pcm_t* handle));
  117. MOCK_METHOD2(MixerOpen, int(snd_mixer_t** mixer, int mode));
  118. MOCK_METHOD2(MixerAttach, int(snd_mixer_t* mixer, const char* name));
  119. MOCK_METHOD3(MixerElementRegister,
  120. int(snd_mixer_t* mixer,
  121. struct snd_mixer_selem_regopt* options,
  122. snd_mixer_class_t** classp));
  123. MOCK_METHOD1(MixerFree, void(snd_mixer_t* mixer));
  124. MOCK_METHOD2(MixerDetach, int(snd_mixer_t* mixer, const char* name));
  125. MOCK_METHOD1(MixerClose, int(snd_mixer_t* mixer));
  126. MOCK_METHOD1(MixerLoad, int(snd_mixer_t* mixer));
  127. MOCK_METHOD1(MixerFirstElem, snd_mixer_elem_t*(snd_mixer_t* mixer));
  128. MOCK_METHOD1(MixerNextElem, snd_mixer_elem_t*(snd_mixer_elem_t* elem));
  129. MOCK_METHOD1(MixerSelemIsActive, int(snd_mixer_elem_t* elem));
  130. MOCK_METHOD1(MixerSelemName, const char*(snd_mixer_elem_t* elem));
  131. MOCK_METHOD2(MixerSelemSetCaptureVolumeAll,
  132. int(snd_mixer_elem_t* elem, long value));
  133. MOCK_METHOD3(MixerSelemGetCaptureVolume,
  134. int(snd_mixer_elem_t* elem,
  135. snd_mixer_selem_channel_id_t channel,
  136. long* value));
  137. MOCK_METHOD1(MixerSelemHasCaptureVolume, int(snd_mixer_elem_t* elem));
  138. MOCK_METHOD3(MixerSelemGetCaptureVolumeRange,
  139. int(snd_mixer_elem_t* elem, long* min, long* max));
  140. MOCK_METHOD1(MixerElemGetCallbackPrivate, void*(const snd_mixer_elem_t* obj));
  141. MOCK_METHOD2(MixerElemSetCallback,
  142. void(snd_mixer_elem_t* obj, snd_mixer_elem_callback_t val));
  143. MOCK_METHOD2(MixerElemSetCallbackPrivate,
  144. void(snd_mixer_elem_t* obj, void* val));
  145. MOCK_METHOD2(MixerFindSelem,
  146. snd_mixer_elem_t*(snd_mixer_t* mixer,
  147. const snd_mixer_selem_id_t* id));
  148. MOCK_METHOD1(MixerHandleEvents, int(snd_mixer_t* mixer));
  149. MOCK_METHOD3(MixerPollDescriptors,
  150. int(snd_mixer_t* mixer,
  151. struct pollfd* pfds,
  152. unsigned int space));
  153. MOCK_METHOD1(MixerPollDescriptorsCount, int(snd_mixer_t* mixer));
  154. MOCK_METHOD3(MixerSelemGetPlaybackSwitch,
  155. int(snd_mixer_elem_t* elem,
  156. snd_mixer_selem_channel_id_t channel,
  157. int* value));
  158. MOCK_METHOD3(MixerSelemGetPlaybackVolume,
  159. int(snd_mixer_elem_t* elem,
  160. snd_mixer_selem_channel_id_t channel,
  161. long* value));
  162. MOCK_METHOD3(MixerSelemGetPlaybackVolumeRange,
  163. int(snd_mixer_elem_t* elem, long* min, long* max));
  164. MOCK_METHOD1(MixerSelemHasPlaybackSwitch, int(snd_mixer_elem_t* elem));
  165. MOCK_METHOD2(MixerSelemIdSetIndex,
  166. void(snd_mixer_selem_id_t* obj, unsigned int val));
  167. MOCK_METHOD2(MixerSelemIdSetName,
  168. void(snd_mixer_selem_id_t* obj, const char* val));
  169. MOCK_METHOD3(MixerSelemSetPlaybackSwitch,
  170. int(snd_mixer_elem_t* elem,
  171. snd_mixer_selem_channel_id_t channel,
  172. int value));
  173. MOCK_METHOD2(MixerSelemSetPlaybackVolumeAll,
  174. int(snd_mixer_elem_t* elem, long value));
  175. MOCK_METHOD1(MixerSelemIdMalloc, int(snd_mixer_selem_id_t** ptr));
  176. MOCK_METHOD1(MixerSelemIdFree, void(snd_mixer_selem_id_t* obj));
  177. MOCK_METHOD1(StrError, const char*(int errnum));
  178. };
  179. } // namespace media
  180. #endif // MEDIA_AUDIO_ALSA_MOCK_ALSA_WRAPPER_H_