diff core/RTAudioCommandLine.cpp @ 108:3068421c0737 ultra-staging

Merged default into ultra-staging
author Giulio Moro <giuliomoro@yahoo.it>
date Tue, 18 Aug 2015 00:35:15 +0100
parents a6d223473ea2
children e63563507edd
line wrap: on
line diff
--- a/core/RTAudioCommandLine.cpp	Mon Jun 08 01:07:48 2015 +0100
+++ b/core/RTAudioCommandLine.cpp	Tue Aug 18 00:35:15 2015 +0100
@@ -9,52 +9,65 @@
 #include <cstdlib>
 #include <cstring>
 #include <getopt.h>
-#include "../include/RTAudio.h"
+#include "../include/BeagleRT.h"
 
 #ifndef OPT_PRU_FILE
-#define OPT_PRU_FILE 176 // this is an extended ascii code
+#define OPT_PRU_FILE 176 // this is an extended ASCII code
 #endif
 
+enum {
+	kAmplifierMutePin = 61	// P8-26 controls amplifier mute
+};
+
 // Default command-line options for RTAudio
 struct option gDefaultLongOptions[] =
 {
 	{"period", 1, NULL, 'p'},
 	{"verbose", 0, NULL, 'v'},
-	{"use-analog", 1, NULL, 'm'},
-	{"use-digital-gpio", 1, NULL, 'g'},
+	{"use-analog", 1, NULL, 'N'},
+	{"use-digital", 1, NULL, 'G'},
 	{"analog-channels", 1, NULL, 'C'},
-	{"digital-channels", 1, NULL, 'G'},
+	{"digital-channels", 1, NULL, 'B'},
 	{"mute-speaker", 1, NULL, 'M'},
 	{"dac-level", 1, NULL, 'D'},
 	{"adc-level", 1, NULL, 'A'},
 	{"hp-level", 1, NULL, 'H'},
-	{"receive-port", 1, NULL, 'r'},
-	{"transmit-port", 1, NULL, 't'},
-	{"server-name",1,NULL,'s'},
-	{"pru-file",1,NULL,OPT_PRU_FILE},
+	{"receive-port", 1, NULL, 'R'},
+	{"transmit-port", 1, NULL, 'T'},
+	{"server-name", 1, NULL, 'S'},
+	{"pru-file", 1, NULL, OPT_PRU_FILE},
 	{NULL, 0, NULL, 0}
 };
 
-const char gDefaultShortOptions[] = "p:vm:M:C:D:A:H:g:G:r:t:s:";
+const char gDefaultShortOptions[] = "p:vN:M:C:D:A:H:G:B:R:T:S:";
 
-// This function sets the default settings for the RTAudioSettings structure
-void BeagleRT_defaultSettings(RTAudioSettings *settings)
+// This function sets the default settings for the BeagleRTInitSettings structure
+void BeagleRT_defaultSettings(BeagleRTInitSettings *settings)
 {
 	// Set default values for settings
 	settings->periodSize = 8;
+	settings->useAnalog = 1;
+	settings->useDigital = 1;
+	settings->numAnalogChannels = 8;
+	settings->numDigitalChannels = 16;
+
 	settings->beginMuted = 0;
 	settings->dacLevel = DEFAULT_DAC_LEVEL;
 	settings->adcLevel = DEFAULT_ADC_LEVEL;
 	settings->headphoneLevel = DEFAULT_HP_LEVEL;
-	settings->useAnalog = 1;
-	settings->useDigital = 1;
-	settings->numAnalogChannels = 8;
-	settings->numDigitalChannels = 16;
+
 	settings->verbose = 0;
-	settings->pruFilename[0]='\0';
+	settings->pruFilename[0] = '\0';
+
+	// These two deliberately have no command-line flags by default.
+	// A given program might prefer one mode or another, but it's unlikely
+	// the user would want to switch at runtime
+	settings->interleave = 1;
+	settings->analogOutputsPersist = 1;
+
 	settings->codecI2CAddress = CODEC_I2C_ADDRESS;
-	settings->receivePort=9998;
-	settings->transmitPort=9999;
+	settings->receivePort = 9998;
+	settings->transmitPort = 9999;
 	strcpy(settings->serverName, "127.0.0.1");
 	settings->ampMutePin = kAmplifierMutePin;
 }
@@ -65,7 +78,7 @@
 // be stored in settings, otherwise arguments will be returned
 // as getopt() normally does.
 
-int BeagleRT_getopt_long(int argc, char *argv[], const char *customShortOptions, const struct option *customLongOptions, RTAudioSettings *settings)
+int BeagleRT_getopt_long(int argc, char *argv[], const char *customShortOptions, const struct option *customLongOptions, BeagleRTInitSettings *settings)
 {
 	static int firstRun = 1;
 	static char totalShortOptions[256];
@@ -137,10 +150,10 @@
 		case 'v':
 			settings->verbose = 1;
 			break;
-		case 'm':
+		case 'N':
 			settings->useAnalog = atoi(optarg);
 			break;
-		case 'g':
+		case 'G':
 			settings->useDigital = atoi(optarg);
 			settings->numDigitalChannels = 0;
 			break;
@@ -153,7 +166,7 @@
 			else
 				settings->numAnalogChannels = 2;
 			break;
-		case 'G':
+		case 'B':
 			settings->numDigitalChannels = atoi(optarg);
 			if(settings->numDigitalChannels >= 16)
 				settings->numDigitalChannels = 16;
@@ -175,13 +188,13 @@
 		case 'H':
 			settings->headphoneLevel = atof(optarg);
 			break;
-		case 'r':
+		case 'R':
 			settings->receivePort = atoi(optarg);
 			break;
-		case 't':
+		case 'T':
 			settings->transmitPort = atoi(optarg);
 			break;
-		case 's':
+		case 'S':
 			if(strlen(optarg)<MAX_SERVERNAME_LENGTH)
 				strcpy(settings->serverName, optarg);
 			else
@@ -189,7 +202,7 @@
 						" Using default severName Instead ( " << settings->serverName << " ).\n";
 			break;
 		case OPT_PRU_FILE:
-			if(strlen(optarg)<MAX_PRU_FILENAME_LENGTH)
+			if(strlen(optarg) < MAX_PRU_FILENAME_LENGTH)
 				strcpy(settings->pruFilename, optarg);
 			else
 				std::cerr << "Warning: filename for the PRU code is too long (>" << MAX_PRU_FILENAME_LENGTH << " characters). Using embedded PRU code instead\n";
@@ -210,14 +223,13 @@
 	std::cerr << "   --adc-level [-A] dBs:            Set the ADC input level (0dB max; -12dB min)\n";
 	std::cerr << "   --hp-level [-H] dBs:             Set the headphone output level (0dB max; -63.5dB min)\n";
 	std::cerr << "   --mute-speaker [-M] val:         Set whether to mute the speaker initially (default: no)\n";
-	std::cerr << "   --use-analog [-m] val:           Set whether to use ADC/DAC analog (default: yes)\n";
-	std::cerr << "   --use-digital [-g] val:          Set whether to use digital GPIO channels (default: yes)\n";
+	std::cerr << "   --use-analog [-N] val:           Set whether to use ADC/DAC analog (default: yes)\n";
+	std::cerr << "   --use-digital [-G] val:          Set whether to use digital GPIO channels (default: yes)\n";
 	std::cerr << "   --analog-channels [-C] val:      Set the number of ADC/DAC channels (default: 8)\n";
-	std::cerr << "   --digital-channels [-G] val:     Set the number of GPIO channels (default: 16)\n";
-	std::cerr << "   --digital-channels [-G] val:     Set the number of digital GPIO channels (default: 16)\n";
-	std::cerr << "   --receive-port [-r] val:         Set the receive port (default: 9998)\n";
-	std::cerr << "   --transmit-port [-t] val:        Set the transmit port (default: 9999)\n";
-	std::cerr << "   --server-name [-s] val:          Set the destination server name (default: '127.0.0.1')\n";
+	std::cerr << "   --digital-channels [-B] val:     Set the number of GPIO channels (default: 16)\n";
+	std::cerr << "   --receive-port [-R] val:         Set the receive port (default: 9998)\n";
+	std::cerr << "   --transmit-port [-T] val:        Set the transmit port (default: 9999)\n";
+	std::cerr << "   --server-name [-S] val:          Set the destination server name (default: '127.0.0.1')\n";
 	std::cerr << "   --pru-file val:                  Set an optional external file to use for the PRU binary code\n";
 	std::cerr << "   --verbose [-v]:                  Enable verbose logging information\n";
 }