static void basic_tests(int mode) { int16_t amp[SAMPLES_PER_CHUNK]; int outframes; int len; int push; int i; v18_state_t *v18_a; v18_state_t *v18_b; printf("Testing %s\n", v18_mode_to_str(mode)); v18_a = v18_init(NULL, TRUE, mode, put_text_msg, NULL); v18_b = v18_init(NULL, FALSE, mode, put_text_msg, NULL); /* Fake an OK condition for the first message test */ good_message_received = TRUE; push = 0; if (v18_put(v18_a, qbf_tx, -1) != strlen(qbf_tx)) { printf("V.18 put failed\n"); exit(2); } for (i = 0; i < 100000; i++) { if (push == 0) { if ((len = v18_tx(v18_a, amp, SAMPLES_PER_CHUNK)) == 0) push = 10; } else { len = 0; /* Push a little silence through, to flush things out */ if (--push == 0) { if (!good_message_received) { printf("No message received\n"); exit(2); } good_message_received = FALSE; if (v18_put(v18_a, qbf_tx, -1) != strlen(qbf_tx)) { printf("V.18 put failed\n"); exit(2); } } } if (len < SAMPLES_PER_CHUNK) { memset(&[len], 0, sizeof(int16_t)*(SAMPLES_PER_CHUNK - len)); len = SAMPLES_PER_CHUNK; } if (log_audio) { outframes = sf_writef_short(outhandle, amp, len); if (outframes != len) { fprintf(stderr, " Error writing audio file\n"); exit(2); } } v18_rx(v18_b, amp, len); } v18_free(v18_a); v18_free(v18_b); }
static void basic_tests(int mode) { int16_t amp[SAMPLES_PER_CHUNK]; int outframes; int len; int push; int i; v18_state_t *v18_a; v18_state_t *v18_b; printf("Testing %s\n", v18_mode_to_str(mode)); v18_a = v18_init(NULL, TRUE, mode, put_text_msg, NULL); v18_b = v18_init(NULL, FALSE, mode, put_text_msg, NULL); /* Fake an OK condition for the first message test */ good_message_received = TRUE; push = 0; v18_put(v18_a, "The quick Brown Fox Jumps Over The Lazy dog 0123456789!@#$%^&*()", -1); for (i = 0; i < 100000; i++) { if (push == 0) { if ((len = v18_tx(v18_a, amp, SAMPLES_PER_CHUNK)) == 0) push = 10; } else { len = 0; /* Push a little silence through, to flush things out */ if (--push == 0) { if (!good_message_received) { printf("No message received\n"); exit(2); } good_message_received = FALSE; v18_put(v18_a, "The quick Brown Fox Jumps Over The Lazy dog 0123456789!@#$%^&*()", -1); } } if (len < SAMPLES_PER_CHUNK) { memset(&[len], 0, sizeof(int16_t)*(SAMPLES_PER_CHUNK - len)); len = SAMPLES_PER_CHUNK; } if (log_audio) { outframes = afWriteFrames(outhandle, AF_DEFAULT_TRACK, amp, len); if (outframes != len) { fprintf(stderr, " Error writing wave file\n"); exit(2); } } v18_rx(v18_b, amp, len); } v18_free(v18_a); v18_free(v18_b); }