|
@@ -166,16 +166,10 @@ bool parse_command(struct videohub_data *data, char *cmd) {
|
166
|
166
|
|
167
|
167
|
case CMD_VIDEO_OUTPUT_LOCKS:
|
168
|
168
|
if (valid_slot) {
|
169
|
|
- // L is lock owned by somebody else (set from other IP address)
|
170
|
|
- // O is lock owned by us (set from our IP address)
|
171
|
|
- if (slot_data[0] == 'L' || slot_data[0] == 'O') {
|
172
|
|
- data->outputs[slot_pos].locked = true;
|
173
|
|
- if (slot_data[0] == 'L')
|
174
|
|
- data->outputs[slot_pos].locked_other = true;
|
175
|
|
- else
|
176
|
|
- data->outputs[slot_pos].locked_other = false;
|
177
|
|
- } else {
|
178
|
|
- data->outputs[slot_pos].locked = false;
|
|
169
|
+ switch (slot_data[0]) {
|
|
170
|
+ case 'O': data->outputs[slot_pos].lock = PORT_LOCKED; break;
|
|
171
|
+ case 'L': data->outputs[slot_pos].lock = PORT_LOCKED_OTHER; break;
|
|
172
|
+ default : data->outputs[slot_pos].lock = PORT_UNLOCKED; break;
|
179
|
173
|
}
|
180
|
174
|
}
|
181
|
175
|
break;
|
|
@@ -274,10 +268,8 @@ void prepare_cmd_entry(struct videohub_data *d, struct vcmd_entry *e) {
|
274
|
268
|
e->port_no1 = search_video_output_name(d, e->param1);
|
275
|
269
|
if (!e->port_no1)
|
276
|
270
|
die("Unknown output port number/name: %s", e->param1);
|
277
|
|
- e->locked_other = d->outputs[e->port_no1 - 1].locked_other;
|
278
|
|
- } else {
|
279
|
|
- e->locked_other = d->outputs[e->port_no1 - 1].locked_other;
|
280
|
271
|
}
|
|
272
|
+ e->lock = d->outputs[e->port_no1 - 1].lock;
|
281
|
273
|
break;
|
282
|
274
|
case CMD_VIDEO_OUTPUT_ROUTING:
|
283
|
275
|
if (e->port_no1 == 0 || e->port_no1 > d->device.num_video_outputs) {
|
|
@@ -314,7 +306,7 @@ void format_cmd_text(struct vcmd_entry *e, char *buf, unsigned int bufsz) {
|
314
|
306
|
break;
|
315
|
307
|
case CMD_VIDEO_OUTPUT_LOCKS:
|
316
|
308
|
snprintf(buf, bufsz, "%s:\n%u %s\n\n", get_cmd_text(e->cmd),
|
317
|
|
- e->port_no1 - 1, e->do_lock ? "O" : (e->locked_other ? "F" : "U"));
|
|
309
|
+ e->port_no1 - 1, e->do_lock ? "O" : (e->lock == PORT_LOCKED_OTHER ? "F" : "U"));
|
318
|
310
|
break;
|
319
|
311
|
case CMD_VIDEO_OUTPUT_ROUTING:
|
320
|
312
|
snprintf(buf, bufsz, "%s:\n%u %u\n\n", get_cmd_text(e->cmd),
|
|
@@ -351,7 +343,7 @@ void show_cmd(struct videohub_data *d, struct vcmd_entry *e) {
|
351
|
343
|
case CMD_VIDEO_OUTPUT_LOCKS:
|
352
|
344
|
printf("%s%s video output %d - \"%s\"\n",
|
353
|
345
|
prefix,
|
354
|
|
- e->do_lock ? "lock" : (e->locked_other ? "force unlock" : "unlock"),
|
|
346
|
+ e->do_lock ? "lock" : (e->lock == PORT_LOCKED_OTHER ? "force unlock" : "unlock"),
|
355
|
347
|
e->port_no1, d->outputs[e->port_no1 - 1].name
|
356
|
348
|
);
|
357
|
349
|
break;
|