Mercurial > pt1
comparison recpt1/recpt1.c @ 14:cad940a903f5
- replace host option with addr option.
- adde help option.
- tweak help.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 24 Feb 2009 22:26:07 +0900 |
parents | 003fe2470af8 |
children | 1b0883b02b4f |
comparison
equal
deleted
inserted
replaced
13:003fe2470af8 | 14:cad940a903f5 |
---|---|
286 } | 286 } |
287 | 287 |
288 void | 288 void |
289 show_usage(char *cmd) | 289 show_usage(char *cmd) |
290 { | 290 { |
291 fprintf(stderr, "Usage: %s [--b25 [--round N] [--strip] [--EMM]] [--udp [--host hostname --port port]] channel recsec destfile\n", cmd); | 291 fprintf(stderr, "\n"); |
292 } | 292 fprintf(stderr, "Usage: \n%s [--b25 [--round N] [--strip] [--EMM]] [--udp [--addr hostname --port portnumber]] channel recsec destfile\n", cmd); |
293 | 293 fprintf(stderr, "\n"); |
294 } | |
295 | |
296 void | |
297 show_options(vod) | |
298 { | |
299 fprintf(stderr, "Options:\n"); | |
300 fprintf(stderr, "--b25: Decrypt using BCAS card\n"); | |
301 fprintf(stderr, " --round N: Specify round number\n"); | |
302 fprintf(stderr, " --strip: Strip null stream\n"); | |
303 fprintf(stderr, " --EMM: Instruct EMM operation\n"); | |
304 fprintf(stderr, "--udp: Turn on udp broadcasting\n"); | |
305 fprintf(stderr, " --addr hostname: Hostname or address to connect\n"); | |
306 fprintf(stderr, " --port portnumber: Port number to connect\n"); | |
307 fprintf(stderr, "--help: Show this help\n"); | |
308 fprintf(stderr, "\n"); | |
309 } | |
294 void | 310 void |
295 show_channels(void) | 311 show_channels(void) |
296 { | 312 { |
297 printf("Channel List:\n"); | 313 fprintf(stderr, "Available Channels:\n"); |
298 printf("151ch:BS Asahi\n"); | 314 fprintf(stderr, "13-52:Terrestrial Channels\n"); |
299 printf("161ch:BS-i\n"); | 315 fprintf(stderr, "151ch:BS Asahi\n"); |
300 printf("191ch:WOWOW\n"); | 316 fprintf(stderr, "161ch:BS-i\n"); |
301 printf("171ch:BS Japan\n"); | 317 fprintf(stderr, "191ch:WOWOW\n"); |
302 printf("200ch:Star Channel\n"); | 318 fprintf(stderr, "171ch:BS Japan\n"); |
303 printf("211ch:BS11 Digital\n"); | 319 fprintf(stderr, "200ch:Star Channel\n"); |
304 printf("222ch:TwellV\n"); | 320 fprintf(stderr, "211ch:BS11 Digital\n"); |
305 printf("141ch:BS Nittele\n"); | 321 fprintf(stderr, "222ch:TwellV\n"); |
306 printf("181ch:BS Fuji\n"); | 322 fprintf(stderr, "141ch:BS Nittele\n"); |
307 printf("101ch:NHK BS1\n"); | 323 fprintf(stderr, "181ch:BS Fuji\n"); |
308 printf("102ch:NHK BS2\n"); | 324 fprintf(stderr, "101ch:NHK BS1\n"); |
309 printf("103ch:NHK BShi\n"); | 325 fprintf(stderr, "102ch:NHK BS2\n"); |
310 printf("CS2-CS24:CS Channels\n"); | 326 fprintf(stderr, "103ch:NHK BShi\n"); |
327 fprintf(stderr, "CS2-CS24:CS Channels\n"); | |
328 fprintf(stderr, "\n"); | |
311 } | 329 } |
312 | 330 |
313 float | 331 float |
314 getsignal_isdb_s(int signal) | 332 getsignal_isdb_s(int signal) |
315 { | 333 { |
405 { "round", 1, NULL, 'r'}, | 423 { "round", 1, NULL, 'r'}, |
406 { "strip", 0, NULL, 's'}, | 424 { "strip", 0, NULL, 's'}, |
407 { "emm", 0, NULL, 'm'}, | 425 { "emm", 0, NULL, 'm'}, |
408 { "EMM", 0, NULL, 'm'}, | 426 { "EMM", 0, NULL, 'm'}, |
409 { "udp", 0, NULL, 'u'}, | 427 { "udp", 0, NULL, 'u'}, |
410 { "host", 1, NULL, 'h'}, | 428 { "addr", 1, NULL, 'a'}, |
411 { "port", 1, NULL, 'p'}, | 429 { "port", 1, NULL, 'p'}, |
430 { "help", 0, NULL, 'h'}, | |
412 {0, 0, 0, 0} /* terminate */ | 431 {0, 0, 0, 0} /* terminate */ |
413 }; | 432 }; |
414 | 433 |
415 int use_b25 = FALSE; | 434 int use_b25 = FALSE; |
416 int use_udp = FALSE; | 435 int use_udp = FALSE; |
417 int fileless = FALSE; | 436 int fileless = FALSE; |
418 char *host_to = NULL; | 437 char *host_to = NULL; |
419 int port_to = 1234; | 438 int port_to = 1234; |
420 sock_data *sdata = NULL; | 439 sock_data *sdata = NULL; |
421 | 440 |
422 while((result = getopt_long(argc, argv, "br:smuh:p:", long_options, &option_index)) != -1) { | 441 while((result = getopt_long(argc, argv, "br:smua:p:h", |
442 long_options, &option_index)) != -1) { | |
423 switch(result) { | 443 switch(result) { |
424 case 'b': | 444 case 'b': |
425 use_b25 = TRUE; | 445 use_b25 = TRUE; |
426 fprintf(stderr, "using B25...\n"); | 446 fprintf(stderr, "using B25...\n"); |
427 break; | 447 break; |
436 case 'u': | 456 case 'u': |
437 use_udp = TRUE; | 457 use_udp = TRUE; |
438 host_to = "localhost"; | 458 host_to = "localhost"; |
439 fprintf(stderr, "enable UDP broadcasting\n"); | 459 fprintf(stderr, "enable UDP broadcasting\n"); |
440 break; | 460 break; |
441 /* | 461 case 'h': |
442 case ':': | |
443 fprintf(stderr, "%c needs value\n", result); | |
444 break; | |
445 */ | |
446 case '?': | |
447 show_usage(argv[0]); | 462 show_usage(argv[0]); |
448 break; | 463 show_options(); |
449 | 464 show_channels(); |
450 | 465 exit(0); |
466 break; | |
451 /* following options require argument */ | 467 /* following options require argument */ |
452 case 'r': | 468 case 'r': |
453 dopt.round = atoi(optarg); | 469 dopt.round = atoi(optarg); |
454 fprintf(stderr, "set round %d\n", dopt.round); | 470 fprintf(stderr, "set round %d\n", dopt.round); |
455 break; | 471 break; |
456 case 'h': | 472 case 'a': |
457 use_udp = TRUE; | 473 use_udp = TRUE; |
458 host_to = optarg; | 474 host_to = optarg; |
459 fprintf(stderr, "UDP destination address: %s\n", host_to); | 475 fprintf(stderr, "UDP destination address: %s\n", host_to); |
460 break; | 476 break; |
461 case 'p': | 477 case 'p': |
465 } | 481 } |
466 } | 482 } |
467 | 483 |
468 if(argc - optind < 3) { | 484 if(argc - optind < 3) { |
469 if(argc - optind == 2 && use_udp) { | 485 if(argc - optind == 2 && use_udp) { |
470 fprintf(stderr, "fileless udp broadcasting\n"); | 486 fprintf(stderr, "Fileless UDP broadcasting\n"); |
471 fileless = TRUE; | 487 fileless = TRUE; |
472 wfd = -1; | 488 wfd = -1; |
473 } | 489 } |
474 else { | 490 else { |
475 show_usage(argv[0]); | 491 fprintf(stderr, "Arguments are necessary!\n"); |
476 show_channels(); | 492 fprintf(stderr, "Try '%s --help' for more information.\n", argv[0]); |
477 return 1; | 493 return 1; |
478 } | 494 } |
479 } | 495 } |
480 | 496 |
481 /* get channel */ | 497 /* get channel */ |
482 ptr = searchrecoff(argv[optind]); | 498 ptr = searchrecoff(argv[optind]); |
483 if(ptr == NULL){ | 499 if(ptr == NULL) { |
484 fprintf(stderr, "Channel Select Error(%s)\n", argv[optind]); | 500 fprintf(stderr, "Channel Select Error(%s)\n", argv[optind]); |
485 return 1; | 501 return 1; |
486 } | 502 } |
487 | 503 |
488 freq.frequencyno = ptr->set_freq; | 504 freq.frequencyno = ptr->set_freq; |
512 } | 528 } |
513 } | 529 } |
514 | 530 |
515 /* get recsec */ | 531 /* get recsec */ |
516 recsec = atoi(argv[optind + 1]); | 532 recsec = atoi(argv[optind + 1]); |
517 if(recsec == 0) | 533 if(recsec <= 0) |
518 indefinite = TRUE; | 534 indefinite = TRUE; |
519 | 535 |
520 /* initialize decoder */ | 536 /* initialize decoder */ |
521 if(use_b25) { | 537 if(use_b25) { |
522 dec = b25_startup(&dopt); | 538 dec = b25_startup(&dopt); |