/* * frames.c * * Created on: 2021Äê11ÔÂ2ÈÕ * Author: graydon */ #include #include #include #include "frames.h" #include "config.h" #include "../drv/memory.h" //20230724: ÄÚ´æÐ޸ijÉÁ¬ÐøÄÚ´æ. graydon . Frames::Frames() { } Frames::~Frames() { for (std::vector::iterator iter = dataFrame.begin(); iter != dataFrame.end();iter++) { delete[] (*iter)->Data(); delete *iter; } dataFrame.clear(); } Frames::Frames(int num) { Frame* frameList = (Frame*)sram_malloc(SRAM_AUTO,mem_any, num*sizeof(Frame)); for (int i = 0; i < num; i++) { Frame* pcm = &frameList[i]; ufloat* dataPtr = (ufloat*)sram_malloc(SRAM_AUTO,mem_any ,SAMPLE_NUM*sizeof(float)); assert(dataPtr != NULL); pcm->SetBuffer(dataPtr, SAMPLE_NUM); pcm->Clear(); dataFrame.push_back(pcm); } } Frame* Frames::GetFrame(int channel ) { if (channel >= dataFrame.size()) { std::cout<<"GetChannelPcmPtr channel over range.\n"; return NULL; } return dataFrame[channel]; } Frame* Frames::AllocFrame() { Frame* pcm = new Frame(SAMPLE_NUM); if (pcm == NULL) { std::cout << "alloc frame fail.\n"; return NULL; } pcm->Clear(); dataFrame.push_back(pcm); return pcm; }