void S9xMSU1PostLoadState(void) { if (DataOpen()) { REVERT_STREAM(dataStream, MSU1.MSU1_DATA_POS, 0); } if (MSU1.MSU1_STATUS & AudioPlaying) { if (AudioOpen()) { REVERT_STREAM(audioStream, 4, 0); READ_STREAM((char *)&audioLoopPos, 4, audioStream); audioLoopPos = GET_LE32(&audioLoopPos); audioLoopPos <<= 2; audioLoopPos += 8; REVERT_STREAM(audioStream, MSU1.MSU1_AUDIO_POS, 0); } else { MSU1.MSU1_STATUS &= ~(AudioPlaying | AudioRepeating); MSU1.MSU1_STATUS |= AudioError; } } bufPos = 0; bufBegin = 0; bufEnd = 0; partial_frames = 0; }
void S9xMSU1PostLoadState(void) { if (DataOpen()) { REVERT_STREAM(dataStream, MSU1.MSU1_DATA_POS, 0); } if (MSU1.MSU1_STATUS & AudioPlaying) { uint32 savedPosition = MSU1.MSU1_AUDIO_POS; if (AudioOpen()) { REVERT_STREAM(audioStream, 4, 0); READ_STREAM((char *)&audioLoopPos, 4, audioStream); audioLoopPos = GET_LE32(&audioLoopPos); audioLoopPos <<= 2; audioLoopPos += 8; MSU1.MSU1_AUDIO_POS = savedPosition; REVERT_STREAM(audioStream, MSU1.MSU1_AUDIO_POS, 0); } else { MSU1.MSU1_STATUS &= ~(AudioPlaying | AudioRepeating); MSU1.MSU1_STATUS |= AudioError; } } if (msu_resampler) msu_resampler->clear(); partial_frames = 0; }
int main() { ProfTimer mProfTimer; unsigned char *sTextData = TextData(); float mArrVecParser_CSV[nWidthParser]; float mArrVecParserCopy[nWidthParser]; float mArrVecParserCopy2[nWidthParser]; DataOpen("1909175498_image_profile.csv", mArrVecParser_CSV); //DataOpen("-1916029922_image_profile.csv", mArrVecParser_CSV); while (1) { memcpy(mArrVecParserCopy, mArrVecParser_CSV, sizeof(float)* nWidthParser); Global::Image mImageParser(nWidthParser, nheightParser, Global::TYPE::BYTE, 3); Global::Image mImageParser2(nWidthParser, nheightParser, Global::TYPE::BYTE, 3); Global::Image mImageParserReSize(img_wid, img_hig, Global::TYPE::BYTE, 3); for (int i = 0; i < nWidthParser; i++) { Global::Circle(&mImageParser, i, mArrVecParserCopy[i], 1, RGB8(0, 0, 255)); } #if 0 int nXTest0 = 800; int nXTest1 = 900; int nTest; Sample sSample; sSample.nX0 = nXTest0; sSample.nX1 = nXTest1; Line(&mImageParser, mArrVecParserCopy, sSample,true); nXTest0 = 400; nXTest1 = 810; //Line(&mImageParser, nXTest0, nXTest1, mArrVecParserCopy, nTest, true); //DeletePoint(nWidthParser, nheightParser, 400, 700, mArrVecParserCopy); #endif #if 1 int nLineCount(1); const int nSample = 1000; Sample sSample[nSample]; while (nLineCount) { mProfTimer.Start(); nLineCount--; int nArrNumderSize(0); int nSampleCount(0); memset(sSample, 0, sizeof(Sample)* nSample); int nMaxSample = 0; int nMaxSampleArrNum = 0; while (nSample - nArrNumderSize) { float fCutLine = nheightParser / 1.2; int nRandX0 = (std::rand() % nWidthParser);//중복은 나중에 고려 int nRandX1 = (std::rand() % nWidthParser);//중복은 나중에 고려 if (nRandX0 == nRandX1 || mArrVecParserCopy[nRandX0] < fCutLine || mArrVecParserCopy[nRandX1] < fCutLine) { continue; } sSample[nSampleCount].nX0 = nRandX0; sSample[nSampleCount].nX1 = nRandX1; if (Line(&mImageParser, mArrVecParserCopy, sSample[nSampleCount])) { if (sSample[nSampleCount].nSn > nMaxSample && sSample[nSampleCount].nSn > 10) { nMaxSample = sSample[nSampleCount].nSn; nMaxSampleArrNum = nSampleCount; nSampleCount++; //printf(" nMaxSampleArrNum : %d \n", nMaxSampleArrNum); } nArrNumderSize++; } } //mVecParserCopy if (nSampleCount > 0) { Line(0, mArrVecParserCopy, sSample[nMaxSampleArrNum], true); memcpy(mArrVecParserCopy2, mArrVecParser_CSV, sizeof(float)* nWidthParser); ReAgainst(nWidthParser, nheightParser, sSample[nMaxSampleArrNum], mArrVecParserCopy2); } mProfTimer.Stop(); printf("mProfTimer : %f \n", mProfTimer.GetDurationInSecs()); if (nSampleCount > 0) { Line(&mImageParser, mArrVecParserCopy, sSample[nMaxSampleArrNum], true); DeletePoint(nWidthParser, nheightParser, sSample[nMaxSampleArrNum], mArrVecParserCopy); for (int i = 0; i < nWidthParser; i++) { Global::Circle(&mImageParser2, i, mArrVecParserCopy2[i], 2, RGB8(0, 0, 255)); } } //break; } #endif #if 0 Global::Show("Parser ", &mImageParser); Global::Show("Test ", &mImageParser2); #else Global::Filter2D(&mImageParser2, &mImageParser2, Global::FILTER::GAUSSIAN, 1); Global::ReSize(&mImageParser2, &mImageParserReSize); Global::Show("Test ", &mImageParserReSize); Global::Filter2D(&mImageParser, &mImageParser, Global::FILTER::GAUSSIAN, 1); Global::ReSize(&mImageParser, &mImageParserReSize); Global::Show("Parser ", &mImageParserReSize); #endif //Sleep(1); } delete sTextData; return 0; }
void S9xMSU1Init(void) { DataOpen(); }