Browse Source

Add enum for input/output/monitoring/serial ports statuses.

Georgi Chorbadzhiyski 9 years ago
parent
commit
ec2454ac5a
3 changed files with 22 additions and 8 deletions
  1. 5
    1
      cmd.c
  2. 9
    1
      data.h
  3. 8
    6
      display.c

+ 5
- 1
cmd.c View File

@@ -197,7 +197,11 @@ bool parse_command(struct videohub_data *d, char *cmd) {
197 197
 			snprintf(s_port->port[port_num].name, sizeof(s_port->port[port_num].name), "%s", port_data);
198 198
 			break;
199 199
 		case PARSE_STATUS:
200
-			snprintf(s_port->port[port_num].status, sizeof(s_port->port[port_num].status), "%s", port_data);
200
+			s_port->port[port_num].status = S_UNKNOWN;
201
+			if (streq("BNC", port_data))          s_port->port[port_num].status = S_BNC;
202
+			else if (streq("Optical", port_data)) s_port->port[port_num].status = S_OPTICAL;
203
+			else if (streq("RS422", port_data))   s_port->port[port_num].status = S_RS422;
204
+			else if (streq("None", port_data))    s_port->port[port_num].status = S_NONE;
201 205
 			break;
202 206
 		case PARSE_DIR:
203 207
 			s_port->port[port_num].direction = DIR_AUTO;

+ 9
- 1
data.h View File

@@ -28,6 +28,14 @@ struct device_desc {
28 28
 	unsigned int	num_video_processing_units;
29 29
 };
30 30
 
31
+enum port_status {
32
+	S_UNKNOWN,
33
+	S_NONE,
34
+	S_BNC,
35
+	S_OPTICAL,
36
+	S_RS422,
37
+};
38
+
31 39
 enum port_lock {
32 40
 	PORT_UNLOCKED,
33 41
 	PORT_LOCKED,
@@ -46,7 +54,7 @@ struct port {
46 54
 	// The statuses (actually they are connection types) are:
47 55
 	//  BNC, Optical or None /missing port/ - for input/output
48 56
 	//  RS422, None                         - for serial ports
49
-	char			status[8];
57
+	enum port_status	status;
50 58
 	// For serial ports.
51 59
 	// The values are:
52 60
 	//    control - In (Workstation)

+ 8
- 6
display.c View File

@@ -26,12 +26,14 @@ static void printf_line(int len) {
26 26
 	printf("\n");
27 27
 }
28 28
 
29
-static char format_status(char *status) {
30
-	if (!strlen(status))          return ' ';
31
-	if (streq(status, "BNC"))     return 'B';
32
-	if (streq(status, "Optical")) return 'o';
33
-	if (streq(status, "None"))    return 'x';
34
-	if (streq(status, "RS422"))   return '4'; // For serial ports
29
+static char format_status(enum port_status status) {
30
+	switch (status) {
31
+	case S_UNKNOWN: return ' ';
32
+	case S_BNC    : return 'B';
33
+	case S_OPTICAL: return 'o';
34
+	case S_NONE   : return 'x';
35
+	case S_RS422  : return '4'; // For serial ports
36
+	}
35 37
 	return '?';
36 38
 }
37 39
 

Loading…
Cancel
Save