ign="justify"> mtx_AccumulatedData.lock (); (m_IsAccumulating [i])
{
n = m_iAccPutInd [i] <<5;
// поміщаємо дані в буфер накопичення
m_pvAccumulatedData [i + n] = * ((SData *) (m_puiDataFromUH) + i);
m_iAccPutInd [i] + +;// збільшуємо значення індексу для наступного приміщення даних (m_iAccPutInd [i] == ACCBUFF_DEPTH) m_iAccPutInd [i] = 0;// циклічний перехід в начало_iAccIndDelta [i] + +;// збільшуємо відстань по відношенню до індексу для вилучення
if (m_iAccIndDelta [i]> ACCBUFF_DEPTH)
{
// фіксуємо стан переповнення буфера накопичення
printf ("Acc buf overflow for% i n", i);
}
}
mtx_AccumulatedData.unlock ();
} ((p_DIN) && (ParamRtpPrint [m_ucIndDI]))
{
snprintf (buf1, 400,">> UH% i:% 08x (% i) n", m_ucUHNum, (unsigned int) puiAddress, m_uiDumpNum);
k = 0x80000000;
for (i = 31; i> = 0; i -)
{
if (ParamRtpPrint [m_ucIndDI] & k)
{
uiSize = ((SData *) (m_puiDataFromUH) + i) -> m_vSDataCtrl.SpeachSize;
pucData = ((SData *) (m_puiDataFromUH) + i) -> m_ucData; (buf1, 400, "[% i]: CN-% 01x , tone-% 02x, size-% i n ", i,
((SData *) (m_puiDataFromUH) + i) -> m_vSDataCtrl.CN,
((SData *) (m_puiDataFromUH) + i) -> m_vSDataCtrl.Tone, uiSize);
printf (buf1); (uiSize)
{
buf1 [0] = ' 0'; (ii = 0, j = 0, n = 0; (j
{(& buf1 [ii], 400, "% 02X", pucData [j]); + = 3; ((ii <399) && (n == 30 )) {n = 0; buf1 [ii + +] = ' n';}
}
printf (buf1);
}
}
k>> = 1;
}
}
return (true);
}
/** ПРИЗНАЧЕННЯ: помістити дані з буфера відтворення у внутрішню пам'ять УШ
* ВХІДНІ ПАРАМЕТРИ: немає
* ВИХІДНІ ПАРАМЕТРИ: true - дані записані,
* false - дані не записані (у разі, якщо значення m_uiDumpNum
* некоректно)
*/t_UHInterface :: PutDataToUH (void)
{
unsigned int * puiAddress;
# ifndef ___ PC
int ires;
# endif
int i, ii, j, n;
unsigned int uiSize, k;
unsigned char * pucData;
# ifdef ___ PCInterval; MyTimeBegin, MyTimeEnd, MyDurTime;
# endif
char buf1 [400];
// printf ("=== RTP: PutDataToUH n"); (! (m_uiDumpNum & 0x03)) return (false);
puiAddress = m_puiBaseDataForUH;
if (m_uiDumpNum == 2) puiAddress + = DUMP_SIZE>> 2; (i = 31; i> = 0; i -)
{
mtx_PlayBackBuf.lock (); (m_iPlayBackIndDelta [i]> m_ucMaxPlayBackBufInd)// переповнення
{
while (m_iPlayBackGetInd [i]! = m_iPlayBackPutInd [i])
{= m_iPlayBackGetInd [i] <<5; _iPlayBackGetInd [i] + +;
m_iPlayBackIndDelta [i] -;
// циклічний перехід в початок буфера
if (m_iPlayBackGetInd [i] == m_ucMaxPlayBackBufInd) m_iPlayBackGetInd [i] = 0;
}
}
else// ні даних
if (m_iPlayBackIndDelta [i] == 0)
{
m_pvTmpPlayBackBuf [i]. m_vSDataCtrl.SpeachSize = 0;
m_pvTmpPlayBackBuf [i]. m_vSDataCtrl.Tone = 0;
m_pvTmpPlayBackBuf [i]. m_vSDataCtrl.CN = 1; _PlayBackBuf.unlock ();
continue;
}
n = m_iPlayBackGetInd [i] <<5;
m_pvTmpPlayBackBuf [i] = m_pvPlayBackBuf [i + n];
m_iPlayBackGetInd [i] + +;
m_iPlayBackIndDelta [i] -;
// циклічний перехід в початок буфера