Lines Matching refs:hw

481     HWVoiceOut hw;
500 HWVoiceIn hw;
537 static int coreaudio_run_out(HWVoiceOut *hw);
539 static int coreaudio_ctl_out(HWVoiceOut *hw, int cmd, ...);
540 static void coreaudio_fini_out(HWVoiceOut *hw);
541 static int coreaudio_init_out(HWVoiceOut *hw, audsettings_t *as);
542 static int caInitOutput(HWVoiceOut *hw);
543 static void caReinitOutput(HWVoiceOut *hw);
623 csAvail = IORingBufferUsed(caVoice->pBuf) >> caVoice->hw.info.shift; /* bytes -> samples */
626 csAvail = RT_MIN(csAvail, ioData->mBuffers[0].mDataByteSize >> caVoice->hw.info.shift);
628 CA_EXT_DEBUG_LOG(("CoreAudio: [Output] Start reading buffer with %RU32 samples (%RU32 bytes)\n", csAvail, csAvail << caVoice->hw.info.shift));
635 cbToRead = csToRead << caVoice->hw.info.shift; /* samples -> bytes */
640 csToRead = cbToRead >> caVoice->hw.info.shift; /* bytes -> samples */
646 memcpy((char*)ioData->mBuffers[0].mData + (csReads << caVoice->hw.info.shift), pcSrc, cbToRead);
653 ioData->mBuffers[0].mDataByteSize = csReads << caVoice->hw.info.shift; /* samples -> bytes */
655 CA_EXT_DEBUG_LOG(("CoreAudio: [Output] Finished reading buffer with %RU32 samples (%RU32 bytes)\n", csReads, csReads << caVoice->hw.info.shift));
660 static int caInitOutput(HWVoiceOut *hw)
674 caVoiceOut *caVoice = (caVoiceOut *) hw;
845 caPCMInfoToAudioStreamBasicDescription(&caVoice->hw.info, &caVoice->streamFormat);
919 IORingBufferCreate(&caVoice->pBuf, cSamples << hw->info.shift);
927 if ( hw->samples != 0
928 && hw->samples != (int32_t)cSamples)
929 LogRel(("CoreAudio: [Output] Warning! After recreation, the CoreAudio ring buffer doesn't has the same size as the device buffer (%RU32 vs. %RU32).\n", cSamples, (uint32_t)hw->samples));
950 static void caReinitOutput(HWVoiceOut *hw)
952 caVoiceOut *caVoice = (caVoiceOut *) hw;
954 coreaudio_fini_out(&caVoice->hw);
955 caInitOutput(&caVoice->hw);
957 coreaudio_ctl_out(&caVoice->hw, VOICE_ENABLE);
960 static int coreaudio_run_out(HWVoiceOut *hw)
969 caVoiceOut *caVoice = (caVoiceOut *) hw;
973 caReinitOutput(&caVoice->hw);
978 return audio_pcm_hw_get_live_out(hw);
981 coreaudio_ctl_out(&caVoice->hw, VOICE_ENABLE);
984 csAvail = IORingBufferFree(caVoice->pBuf) >> hw->info.shift; /* bytes -> samples */
987 csAvail = RT_MIN(csAvail, (uint32_t)audio_pcm_hw_get_live_out(hw));
989 CA_EXT_DEBUG_LOG(("CoreAudio: [Output] Start writing buffer with %RU32 samples (%RU32 bytes)\n", csAvail, csAvail << hw->info.shift));
995 csToWrite = RT_MIN(csAvail - csWritten, (uint32_t)(hw->samples - hw->rpos));
996 cbToWrite = csToWrite << hw->info.shift; /* samples -> bytes */
1001 csToWrite = cbToWrite >> hw->info.shift;
1007 psSrc = hw->mix_buf + hw->rpos;
1008 hw->clip((uint8_t*)pcDst, psSrc, csToWrite);
1011 hw->rpos = (hw->rpos + csToWrite) % hw->samples;
1016 CA_EXT_DEBUG_LOG(("CoreAudio: [Output] Finished writing buffer with %RU32 samples (%RU32 bytes)\n", csWritten, csWritten << hw->info.shift));
1027 static int coreaudio_ctl_out(HWVoiceOut *hw, int cmd, ...)
1031 caVoiceOut *caVoice = (caVoiceOut *) hw;
1084 static void coreaudio_fini_out(HWVoiceOut *hw)
1089 caVoiceOut *caVoice = (caVoiceOut *) hw;
1096 rc = coreaudio_ctl_out(hw, VOICE_DISABLE);
1132 static int coreaudio_init_out(HWVoiceOut *hw, audsettings_t *as)
1138 caVoiceOut *caVoice = (caVoiceOut *) hw;
1143 hw->samples = 0;
1146 audio_pcm_init_info(&hw->info, as);
1161 rc = caInitOutput(hw);
1166 hw->samples = (IORingBufferSize(caVoice->pBuf) >> hw->info.shift) / caVoice->streamFormat.mChannelsPerFrame;
1180 Log(("CoreAudio: [Output] HW samples: %d\n", hw->samples));
1192 static int coreaudio_run_in(HWVoiceIn *hw);
1194 static int coreaudio_ctl_in(HWVoiceIn *hw, int cmd, ...);
1195 static void coreaudio_fini_in(HWVoiceIn *hw);
1196 static int coreaudio_init_in(HWVoiceIn *hw, audsettings_t *as);
1197 static int caInitInput(HWVoiceIn *hw);
1198 static void caReinitInput(HWVoiceIn *hw);
1364 csAvail = IORingBufferFree(caVoice->pBuf) >> caVoice->hw.info.shift; /* bytes -> samples */
1369 CA_EXT_DEBUG_LOG(("CoreAudio: [Input] Start writing buffer with %RU32 samples (%RU32 bytes)\n", csAvail, csAvail << caVoice->hw.info.shift));
1380 cbToWrite = csToWrite << caVoice->hw.info.shift;
1385 csToWrite = cbToWrite >> caVoice->hw.info.shift;
1412 csToWrite = cbToWrite >> caVoice->hw.info.shift;
1423 CA_EXT_DEBUG_LOG(("CoreAudio: [Input] Finished writing buffer with %RU32 samples (%RU32 bytes)\n", csWritten, csWritten << caVoice->hw.info.shift));
1445 csAvail = IORingBufferFree(caVoice->pBuf) >> caVoice->hw.info.shift; /* bytes -> samples */
1448 csAvail = RT_MIN(csAvail, caVoice->bufferList.mBuffers[0].mDataByteSize >> caVoice->hw.info.shift);
1450 CA_EXT_DEBUG_LOG(("CoreAudio: [Input] Start writing buffer with %RU32 samples (%RU32 bytes)\n", csAvail, csAvail << caVoice->hw.info.shift));
1457 cbToWrite = csToWrite << caVoice->hw.info.shift;
1462 csToWrite = cbToWrite >> caVoice->hw.info.shift;
1468 memcpy(pcDst, (char*)caVoice->bufferList.mBuffers[0].mData + (csWritten << caVoice->hw.info.shift), cbToWrite);
1476 CA_EXT_DEBUG_LOG(("CoreAudio: [Input] Finished writing buffer with %RU32 samples (%RU32 bytes)\n", csWritten, csWritten << caVoice->hw.info.shift));
1482 static int caInitInput(HWVoiceIn *hw)
1498 caVoiceIn *caVoice = (caVoiceIn *) hw;
1674 caPCMInfoToAudioStreamBasicDescription(&caVoice->hw.info, &caVoice->streamFormat);
1836 if ( hw->samples != 0
1837 && hw->samples != (int32_t)cSamples)
1838 LogRel(("CoreAudio: [Input] Warning! After recreation, the CoreAudio ring buffer doesn't has the same size as the device buffer (%RU32 vs. %RU32).\n", cSamples, (uint32_t)hw->samples));
1840 IORingBufferCreate(&caVoice->pBuf, cSamples << hw->info.shift);
1882 static void caReinitInput(HWVoiceIn *hw)
1884 caVoiceIn *caVoice = (caVoiceIn *) hw;
1886 coreaudio_fini_in(&caVoice->hw);
1887 caInitInput(&caVoice->hw);
1889 coreaudio_ctl_in(&caVoice->hw, VOICE_ENABLE);
1892 static int coreaudio_run_in(HWVoiceIn *hw)
1901 caVoiceIn *caVoice = (caVoiceIn *) hw;
1905 caReinitInput(&caVoice->hw);
1911 csAvail = IORingBufferUsed(caVoice->pBuf) >> hw->info.shift; /* bytes -> samples */
1914 csAvail = RT_MIN(csAvail, (uint32_t)(hw->samples - audio_pcm_hw_get_live_in (hw)));
1916 CA_EXT_DEBUG_LOG(("CoreAudio: [Input] Start reading buffer with %RU32 samples (%RU32 bytes)\n", csAvail, csAvail << caVoice->hw.info.shift));
1922 csToRead = RT_MIN(csAvail - csReads, (uint32_t)(hw->samples - hw->wpos));
1923 cbToRead = csToRead << hw->info.shift;
1928 csToRead = cbToRead >> hw->info.shift;
1934 psDst = hw->conv_buf + hw->wpos;
1935 hw->conv(psDst, pcSrc, csToRead, &nominal_volume);
1938 hw->wpos = (hw->wpos + csToRead) % hw->samples;
1943 CA_EXT_DEBUG_LOG(("CoreAudio: [Input] Finished reading buffer with %RU32 samples (%RU32 bytes)\n", csReads, csReads << caVoice->hw.info.shift));
1953 static int coreaudio_ctl_in(HWVoiceIn *hw, int cmd, ...)
1957 caVoiceIn *caVoice = (caVoiceIn *) hw;
2007 static void coreaudio_fini_in(HWVoiceIn *hw)
2012 caVoiceIn *caVoice = (caVoiceIn *) hw;
2019 rc = coreaudio_ctl_in(hw, VOICE_DISABLE);
2070 static int coreaudio_init_in(HWVoiceIn *hw, audsettings_t *as)
2076 caVoiceIn *caVoice = (caVoiceIn *) hw;
2084 hw->samples = 0;
2087 audio_pcm_init_info(&hw->info, as);
2100 rc = caInitInput(hw);
2105 hw->samples = (IORingBufferSize(caVoice->pBuf) >> hw->info.shift) / caVoice->streamFormat.mChannelsPerFrame;
2119 Log(("CoreAudio: [Input] HW samples: %d\n", hw->samples));