void test_chn_hints(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=null"); csoundCompileOrc(csound, orc6); (void)csoundStart(csound); // err = csoundPerformKsmps(csound); //Need this to load instr 0 controlChannelHints_t hints; hints.attributes = 0; CU_ASSERT_EQUAL(0, csoundGetControlChannelHints(csound, "chan", &hints)); CU_ASSERT_EQUAL(hints.x, 10); CU_ASSERT_EQUAL(hints.y, 10); CU_ASSERT_EQUAL(hints.width, 50); CU_ASSERT_EQUAL(hints.height, 100); CU_ASSERT_EQUAL(hints.attributes, 0); CU_ASSERT_EQUAL(0, csoundGetControlChannelHints(csound, "chan2", &hints)); CU_ASSERT_EQUAL(hints.x, 10); CU_ASSERT_EQUAL(hints.y, 10); CU_ASSERT_EQUAL(hints.width, 50); CU_ASSERT_EQUAL(hints.height, 100); CU_ASSERT_STRING_EQUAL(hints.attributes, "testattr"); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_string_channel(void) { const char orcS[] = "chn_S \"strchan1\",1\n chn_S \"strchan2\",2\n chn_S \"strchan3\",3\n instr 1\n endin\n"; csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=NULL"); csoundCompileOrc(csound, orcS); int err = csoundStart(csound); CU_ASSERT(err == CSOUND_SUCCESS); csoundSetStringChannel(csound, "testing", "ttt"); int len = csoundGetChannelDatasize(csound, "testing"); char string[len]; csoundGetStringChannel(csound, "testing", string); CU_ASSERT_STRING_EQUAL(string, "ttt"); csoundSetStringChannel(csound, "strchan1", "strchan1_val"); csoundSetStringChannel(csound, "strchan2", "strchan2_val"); csoundSetStringChannel(csound, "strchan3", "strchan3_val"); csoundGetStringChannel(csound, "strchan1", string); CU_ASSERT_STRING_EQUAL(string, "strchan1_val"); csoundGetStringChannel(csound, "strchan2", string); CU_ASSERT_STRING_EQUAL(string, "strchan2_val"); csoundGetStringChannel(csound, "strchan3", string); CU_ASSERT_STRING_EQUAL(string, "strchan3_val"); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_pvs_opcodes(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=null"); int err = csoundCompileOrc(csound, orc5); CU_ASSERT(err == CSOUND_SUCCESS); err = csoundStart(csound); PVSDATEXT pvs_data, pvs_data2; memset(&pvs_data,0,sizeof(PVSDATEXT)); memset(&pvs_data2,0,sizeof(PVSDATEXT)); pvs_data.N = 16; pvs_data.winsize = 32; err = csoundSetPvsChannel(csound, &pvs_data, "1"); err = csoundGetPvsChannel(csound, &pvs_data2, "1"); CU_ASSERT_EQUAL(pvs_data.N, pvs_data2.N); MYFLT pFields[] = {1.0, 0.0, 1.0}; err = csoundScoreEvent(csound, 'i', pFields, 3); err = csoundPerformKsmps(csound); CU_ASSERT_EQUAL(32.0, csoundGetControlChannel(csound, "winsize", NULL)); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_control_channel_params(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=NULL"); //int argc = 2; csoundCompileOrc(csound, orc1); CU_ASSERT(csoundStart(csound) == CSOUND_SUCCESS); controlChannelHints_t hints; hints.behav = CSOUND_CONTROL_CHANNEL_INT; hints.dflt = 5; hints.min = 1; hints.max = 10; hints.attributes = NULL; csoundSetControlChannelHints(csound, "testing", hints); controlChannelHints_t hints2; csoundGetControlChannelHints(csound, "testing", &hints2); CU_ASSERT(hints2.behav == CSOUND_CONTROL_CHANNEL_INT); CU_ASSERT(hints2.dflt == 5); CU_ASSERT(hints2.min == 1); CU_ASSERT(hints2.max == 10); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_buffer_run(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); int result = csoundCompileOrc(csound, "instr 1\n" "asig oscil 0.1, 440\n" "out asig\n" "endin\n"); csoundReadScore(csound, "i 1 0 0.1\n"); csoundStart(csound); csoundPerform(csound); while (csoundGetMessageCnt(csound)) { const char * msg = csoundGetFirstMessage(csound); CU_ASSERT_PTR_NOT_NULL(msg); csoundPopFirstMessage(csound); printf("CSOUND MESSAGE: %s", msg); } csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_control_channel(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=null"); //int argc = 2; csoundCompileOrc(csound, orc1); CU_ASSERT(csoundStart(csound) == CSOUND_SUCCESS); csoundSetControlChannel(csound, "testing", 5.0); CU_ASSERT_EQUAL(5.0, csoundGetControlChannel(csound, "testing", NULL)); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_invalid_channel(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=null"); csoundCompileOrc(csound, orc5); int err; CU_ASSERT_EQUAL(0.0, csoundGetControlChannel(csound, "nonexistent_channel", &err)); CU_ASSERT_EQUAL(err, CSOUND_SUCCESS); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_channel_list(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=null"); //int argc = 2; csoundCompileOrc(csound, orc2); CU_ASSERT(csoundStart(csound) == CSOUND_SUCCESS); controlChannelInfo_t *lst; int numchnls = csoundListChannels(csound, &lst); CU_ASSERT(numchnls == 2); CU_ASSERT_STRING_EQUAL(lst->name, "testing"); CU_ASSERT_EQUAL(lst->type, CSOUND_CONTROL_CHANNEL | CSOUND_INPUT_CHANNEL | CSOUND_OUTPUT_CHANNEL | CSOUND_CONTROL_CHANNEL_INT) CU_ASSERT_STRING_EQUAL(lst[1].name, "testing2"); csoundDeleteChannelList(csound, lst); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_channel_callbacks(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=null"); csoundCompileOrc(csound, orc3); csoundSetInputChannelCallback(csound, (channelCallback_t) inputCallback); csoundSetOutputChannelCallback(csound, (channelCallback_t) outputCallback); int err = csoundStart(csound); CU_ASSERT(err == CSOUND_SUCCESS); MYFLT pFields[] = {1.0, 0.0, 1.0}; err = csoundScoreEvent(csound, 'i', pFields, 3); MYFLT pFields2[] = {2.0, 0.0, 1.0}; err += csoundScoreEvent(csound, 'i', pFields2, 3); CU_ASSERT(err == CSOUND_SUCCESS); err = csoundPerformKsmps(csound); CU_ASSERT(err == CSOUND_SUCCESS); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_create_buffer(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); int argc = 2; char *argv[] = {"csound", "-v"}; csoundCreateMessageBuffer(csound, 0); int result = csoundCompile(csound, argc, argv); int cnt = csoundGetMessageCnt(csound); CU_ASSERT(cnt > 0); const char * msg = csoundGetFirstMessage(csound); CU_ASSERT_PTR_NOT_NULL(msg); int newcnt = csoundGetMessageCnt(csound); CU_ASSERT_EQUAL(cnt, newcnt); csoundPopFirstMessage(csound); newcnt = csoundGetMessageCnt(csound); CU_ASSERT_EQUAL(cnt - 1, newcnt); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }
void test_channel_opcodes(void) { csoundSetGlobalEnv("OPCODE6DIR64", "../../"); CSOUND *csound = csoundCreate(0); csoundCreateMessageBuffer(csound, 0); csoundSetOption(csound, "--logfile=null"); csoundCompileOrc(csound, orc4); csoundSetInputChannelCallback(csound, (channelCallback_t) inputCallback2); csoundSetOutputChannelCallback(csound, (channelCallback_t) outputCallback2); int err = csoundStart(csound); CU_ASSERT(err == CSOUND_SUCCESS); csoundGetControlChannel(csound, "1", &err); CU_ASSERT(err == CSOUND_SUCCESS) csoundSetControlChannel(csound, "1", 5.0); MYFLT pFields[] = {1.0, 0.0, 1.0}; err = csoundScoreEvent(csound, 'i', pFields, 3); err = csoundPerformKsmps(csound); CU_ASSERT(err == CSOUND_SUCCESS); CU_ASSERT_EQUAL(5.0, csoundGetControlChannel(csound, "2", NULL)); MYFLT pFields2[] = {2.0, 0.0, 1.0}; err = csoundScoreEvent(csound, 'i', pFields2, 3); CU_ASSERT(err == CSOUND_SUCCESS); err = csoundPerformKsmps(csound); CU_ASSERT(err == CSOUND_SUCCESS); CU_ASSERT_EQUAL(6.0, csoundGetControlChannel(csound, "3", NULL)); MYFLT pFields3[] = {3.0, 0.0, 1.0}; err = csoundScoreEvent(csound, 'i', pFields3, 3); CU_ASSERT(err == CSOUND_SUCCESS); err = csoundPerformKsmps(csound); CU_ASSERT(err == CSOUND_SUCCESS); CU_ASSERT_EQUAL(7.0, csoundGetControlChannel(csound, "4", NULL)); csoundCleanup(csound); csoundDestroyMessageBuffer(csound); csoundDestroy(csound); }