📄 libarrayfilldecoderinputpm.c
字号:
/*********************************************************************
* *
* Software License Agreement *
* *
* The software supplied herewith by Microchip Technology *
* Incorporated (the "Company") for its dsPIC controller *
* is intended and supplied to you, the Company's customer, *
* for use solely and exclusively on Microchip dsPIC *
* products. The software is owned by the Company and/or its *
* supplier, and is protected under applicable copyright laws. All *
* rights are reserved. Any use in violation of the foregoing *
* restrictions may subject the user to criminal sanctions under *
* applicable laws, as well as to civil liability for the breach of *
* the terms and conditions of this license. *
* *
* THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO *
* WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, *
* BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND *
* FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE *
* COMPANY SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, *
* INCIDENTAL OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. *
* *
*********************************************************************/
/******************************************************************************
**
** Filename: libarrayFillDecoderInputPM.c
**
** System: RISC
**
** Platform: dsPIC33F
**
** Description: This file contains only libarrayFillG711ExpanderInputPM() API.
** This API fills the user defined ping pong buffers with speech
** samples from array in .c file created using PCRU.
**
******************************************************************************/
#include <p33Fxxxx.h>
#include "G711Lib_common.h"
/******************************************************************************
**
** FunctionName: libarrayFillDecoderInputPM ( )
**
** Description: This API is called in the Main for moving data from array
** in .s file created using PCRU the to the user defined ping
** pong buffers.It accesses members of the codecsetup structure.
** It has no outputs.
******************************************************************************/
void libarrayFillDecoderInputPM (void)
{
short u, *temp;
for (u = 0; ( u < codecdata.numOfSamplesPerBlock ) &&
(codecdata.sampleCount < codecdata.arraysizeinbytes); u++)
{
/* Read the samples to input buffer and Remove the Sign Extension*/
*codecdata.sampleComprsIpBuffer++ = (( short )libTblByteRead ( ) & 0x00FF);
/* Increament the number of samples Expanded */
codecdata.sampleCount++;
}
/* ping-pong house keeping */
if(codecdata.sampleCount >= codecdata.arraysizeinbytes)
{
/* Input buffer pointing back to the last value */
codecdata.sampleComprsIpBuffer--;
}
else
{
codecdata.sampleComprsIpBuffer -= (codecdata.numOfSamplesPerBlock );
temp = codecdata.sampleComprsIpBuffer;
codecdata.sampleComprsIpBuffer = codecdata.sampleComprsOpBuffer;
codecdata.sampleComprsOpBuffer = temp;
/* Set this flag to indicate that one buffer has been filed to its capacity
and is ready for use */
codecdata.fBlockdone = 0x01;
}
}
/*-----------------------------------------------------------------------------
END OF FILE : libarrayFillDecoderInputPM.c
-----------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -