📄 conv_o_m.cpp
字号:
/*********************************************************************
Name: CONV_O_M.CPP
Purpose: Converter Output Interface via memory
Programmer: Yuji Hisaminato
Date: 1999/12/13
Copyright (C) 1999 YAMAHA Corporation.
*********************************************************************/
/* C僶乕僕儑儞偺応崌偵曄悢傪愰尵偡傞偨傔偵昁梫 */
#define CONV_OUT_MEMORY_DECLARE_MEMBER
#include <memory.h>
#include "conv_o_m.h"
#ifdef _DEBUG
#include <stdio.h>
#endif
#if defined(mycplusplus)
void CONV_OUT_MEMORY_CLASS_CC conv_out_init(void){
m_is_opened = false;
m_pos = 0;
m_eof = false;
}
#else
void CONV_OUT_MEMORY_CLASS_CC conv_out_init(Conv_out *pconv_out){
m_is_opened = false;
m_pos = 0;
m_eof = false;
/* 儕僜乕僗娭悢傊偺億僀儞僞傪愝掕偡傞丅*/
pconv_out->input_data = &input_data;
}
#endif
#if defined(mycplusplus)
CONV_OUT_MEMORY_CLASS_CC Conv_out_memory(){
conv_out_init();
}
CONV_OUT_MEMORY_CLASS_CC ~Conv_out_memory(){
}
#endif
UINT32 CONV_OUT_MEMORY_CLASS_CC conv_out_get_total_size(void){
// 尰嵼傑偱偺曄姺屻偺僨乕僞僒僀僘傪曉偡丅
return m_pos;
};
CONV_OUT_M_RESULT CONV_OUT_MEMORY_CLASS_CC conv_out_memory_open( // 彂偒崬傒儌乕僪偱奐偔
UINT8 *pdata, // 僨乕僞傪弌椡偡傞応強
UINT32 size // pdata偵曐懚偝傟偰偄傞僨乕僞偺屄悢[僶僀僩]
){
m_pdata = pdata;
m_size = size;
m_is_opened = true;
rewind_data();
return CONV_OUT_M_R_SUCCESSFUL;
}
CONV_OUT_STATIC bool CONV_OUT_MEMORY_CLASS_CC rewind_data(void){ // 弌椡偺愭摢偵堏摦偡傞丅
m_pos = 0;
m_eof = false;
return true;
}
// Converter偐傜弌椡偝傟偨僨乕僞傪儊儌儕偵僐僺乕偡傞丅
// 弌椡僶僢僼傽傪挻偊傞僨乕僞偑偒偨偲偒偵偼壗傕偟側偄偱婣傞丅
CONV_OUT_STATIC bool CONV_OUT_MEMORY_CLASS_CC input_data(
UINT8 *pdata,
UINT32 count
){
#ifdef _DEBUG
//int i;
//printf("CONV_OUT_MEMORY_CLASS_CCinput_data: m_pos = %xH, count = %d:",m_pos, count);
//for(i=0;i<count;++i) printf("%02X,",pdata[i]);
//printf("\n");
#endif
if (m_pos+count > m_size) return false; // Buffer overflow!
memcpy(m_pdata+m_pos,pdata,count);
m_pos += count;
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -