Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • 1.0.11
  • 1.0.10
  • 1.0.9
  • 1.0.8
  • 1.0.7
  • 1.0.6
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0.0
13 results

gamebook.scss

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    BufferDataSourceTest.cpp 2.94 KiB
    #include <ITAException.h>
    #include <ITABufferDataSource.h>
    #include <ITADataSourceUtils.h>
    #include <stdio.h>
    #include <vector>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char* argv[]) {
    
    	ITABufferDatasource* pSource = 0;
    	const unsigned int uiBuffersize = 1000;
    	float* pfRamp = new float[uiBuffersize];
    	for (unsigned int i=0; i<uiBuffersize; i++)
    		pfRamp[i] = 2*(((float) i) / ((float) uiBuffersize-1)) - 1;
    	float* pfInvRamp = new float[uiBuffersize];
    	for (unsigned int i=0; i<uiBuffersize; i++)
    		pfInvRamp[i] = 1 - 2*(((float) i) / ((float) uiBuffersize-1));
    	std::vector<float*> v;
    	v.push_back(pfRamp);
    	v.push_back(pfInvRamp);
    
    	try {
    		pSource = new ITABufferDatasource(v, uiBuffersize, 44100, 128);
    		
    		printf("Blocklength: %d\n", pSource->GetBlocklength());
    		printf("Capacity: %d\n", pSource->GetCapacity());
    		printf("Cursor: %d\n", pSource->GetCursor());
    		printf("AbsCursor: %d\n", pSource->GetAbsoluteCursor());
    		printf("ROI: [%d, %d)\n", pSource->GetROIStart(), pSource->GetROIEnd());
    		printf("ROI-Length: %d\n", pSource->GetROILength());
    
    		// Kompletten Inhalt in eine Datei schreiben
    		WriteFromDatasourceToFile( pSource, "Complete.wav", pSource->GetCapacity() );
    
    		// Rckspulen testen
    		pSource->Rewind();
    		WriteFromDatasourceToFile(pSource, "CompleteRewind.wav", pSource->GetCapacity());
    
    		// Wiederholungsmodus testen
    		printf("\n\nLoop!\n\n\n");
    		pSource->SetLoopMode(true);
    		//pSource->Rewind();
    		WriteFromDatasourceToFile(pSource, "Loop.wav", uiBuffersize*4);
    
    		// Ausschnitt testen
    		printf("\n\nAusschnitt!\n\n\n");
    
    		pSource->SetLoopMode(false);
    		pSource->Rewind();
    		pSource->SetROI(300, 600);
    
    		printf("Capacity: %d\n", pSource->GetCapacity());
    		printf("Cursor: %d\n", pSource->GetCursor());
    		printf("AbsCursor: %d\n", pSource->GetAbsoluteCursor());
    		printf("ROI: [%d, %d)\n", pSource->GetROIStart(), pSource->GetROIEnd());
    		printf("ROI-Length: %d\n", pSource->GetROILength());
    
    		//pSource->Rewind();
    		WriteFromDatasourceToFile(pSource, "Section.wav", pSource->GetROILength());
    
    		printf("Capacity: %d\n", pSource->GetCapacity());
    		printf("Cursor: %d\n", pSource->GetCursor());
    		printf("AbsCursor: %d\n", pSource->GetAbsoluteCursor());
    		printf("ROI: [%d, %d)\n", pSource->GetROIStart(), pSource->GetROIEnd());
    		printf("ROI-Length: %d\n", pSource->GetROILength());
    
    		// Wiederholten Ausschnitt testen
    		printf("\n\nLoop-Ausschnitt!\n\n\n");
    		pSource->SetLoopMode(true);
    		pSource->Rewind();
    		WriteFromDatasourceToFile(pSource, "SectionLoop.wav", pSource->GetROILength()*3);
    
    		// Kleineren wiederholten Ausschnitt testen
    		pSource->SetROI(256, 384);
    		pSource->Rewind();
    		WriteFromDatasourceToFile(pSource, "SectionLoopShort.wav", pSource->GetROILength()*3);
    
    		// Leere Sektion
    		pSource->SetROI(800, 800);
    		WriteFromDatasourceToFile(pSource, "EmptyLoop.wav", pSource->GetROILength());
    
    		delete pSource;
    	} catch (ITAException& e) {
    		delete pSource;
    
    		cerr << e << std::endl;
    	}
    
    	delete pfRamp;
    	delete pfInvRamp;
    
    	return 0;
    }