int main(int argc, char *argv[]) { int default_in; int default_out; int i = 0, n = 0; char line[STRING_MAX]; int test_input = 0, test_output = 0, test_both = 0, somethingStupid = 0; int stream_test = 0; int latency_valid = FALSE; if (sizeof(void *) == 8) printf("Apparently this is a 64-bit machine.\n"); else if (sizeof(void *) == 4) printf ("Apparently this is a 32-bit machine.\n"); for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-h") == 0) { show_usage(); } else if (strcmp(argv[i], "-l") == 0 && (i + 1 < argc)) { i = i + 1; latency = atoi(argv[i]); printf("Latency will be %ld\n", (long) latency); latency_valid = TRUE; } else { show_usage(); } } while (!latency_valid) { int lat; // declared int to match "%d" printf("Latency in ms: "); if (scanf("%d", &lat) == 1) { latency = (int32_t) lat; // coerce from "%d" to known size latency_valid = TRUE; } } /* determine what type of test to run */ printf("begin portMidi test...\n"); printf("%s%s%s%s%s", "enter your choice...\n 1: test input\n", " 2: test input (fail w/assert)\n", " 3: test input (fail w/NULL assign)\n", " 4: test output\n 5: test both\n", " 6: stream test\n"); while (n != 1) { n = scanf("%d", &i); fgets(line, STRING_MAX, stdin); switch(i) { case 1: test_input = 1; break; case 2: test_input = 1; somethingStupid = 1; break; case 3: test_input = 1; somethingStupid = 2; break; case 4: test_output = 1; break; case 5: test_both = 1; break; case 6: stream_test = 1; break; default: printf("got %d (invalid input)\n", n); break; } } /* list device information */ default_in = Pm_GetDefaultInputDeviceID(); default_out = Pm_GetDefaultOutputDeviceID(); for (i = 0; i < Pm_CountDevices(); i++) { char *deflt; const PmDeviceInfo *info = Pm_GetDeviceInfo(i); if (((test_input | test_both) & info->input) | ((test_output | test_both | stream_test) & info->output)) { printf("%d: %s, %s", i, info->interf, info->name); if (info->input) { deflt = (i == default_in ? "default " : ""); printf(" (%sinput)", deflt); } if (info->output) { deflt = (i == default_out ? "default " : ""); printf(" (%soutput)", deflt); } printf("\n"); } } /* run test */ if (stream_test) { main_test_stream(); } else if (test_input) { main_test_input(somethingStupid); } else if (test_output) { main_test_output(); } else if (test_both) { main_test_both(); } printf("finished portMidi test...type ENTER to quit..."); fgets(line, STRING_MAX, stdin); return 0; }
int main(int argc, char *argv[]) { int i = 0, n = 0; char line[STRING_MAX]; int test_input = 0, test_output = 0, test_both = 0, somethingStupid = 0; int stream_test = 0; int latency_valid = FALSE; for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-h") == 0) { show_usage(); } else if (strcmp(argv[i], "-l") == 0 && (i + 1 < argc)) { i = i + 1; latency = atoi(argv[i]); printf("Latency will be %ld\n", latency); latency_valid = TRUE; } else { show_usage(); } } while (!latency_valid) { printf("Latency in ms: "); if (scanf("%ld", &latency) == 1) { latency_valid = TRUE; } } /* determine what type of test to run */ printf("begin portMidi test...\n"); printf("%s%s%s%s%s", "enter your choice...\n 1: test input\n", " 2: test input (fail w/assert)\n", " 3: test input (fail w/NULL assign)\n", " 4: test output\n 5: test both\n", " 6: stream test\n"); while (n != 1) { n = scanf("%d", &i); fgets(line, STRING_MAX, stdin); switch(i) { case 1: test_input = 1; break; case 2: test_input = 1; somethingStupid = 1; break; case 3: test_input = 1; somethingStupid = 2; break; case 4: test_output = 1; break; case 5: test_both = 1; break; case 6: stream_test = 1; break; default: printf("got %d (invalid input)\n", n); break; } } /* list device information */ for (i = 0; i < Pm_CountDevices(); i++) { const PmDeviceInfo *info = Pm_GetDeviceInfo(i); if (((test_input | test_both) & info->input) | ((test_output | test_both | stream_test) & info->output)) { printf("%d: %s, %s", i, info->interf, info->name); if (info->input) printf(" (input)"); if (info->output) printf(" (output)"); printf("\n"); } } /* run test */ if (stream_test) { main_test_stream(); } else if (test_input) { main_test_input(somethingStupid); } else if (test_output) { main_test_output(); } else if (test_both) { main_test_both(); } printf("finished portMidi test...type ENTER to quit..."); fgets(line, STRING_MAX, stdin); return 0; }