Mercurial > pt1
changeset 32:6004fe4f37f9
adapted to use of multiple number of pt1:
- now recpt1 supports simultaneous use of two pt1s.
- new device option has been added.
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 03 Mar 2009 05:30:25 +0900 |
parents | 289794dc265f |
children | f25820d90249 |
files | recpt1/recpt1.c recpt1/recpt1.h |
diffstat | 2 files changed, 51 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/recpt1/recpt1.c Tue Mar 03 05:15:40 2009 +0900 +++ b/recpt1/recpt1.c Tue Mar 03 05:30:25 2009 +0900 @@ -307,7 +307,7 @@ show_usage(char *cmd) { fprintf(stderr, "\n"); - fprintf(stderr, "Usage: \n%s [--b25 [--round N] [--strip] [--EMM]] [--udp [--addr hostname --port portnumber]] channel recsec destfile\n", cmd); + fprintf(stderr, "Usage: \n%s [--b25 [--round N] [--strip] [--EMM]] [--udp [--addr hostname --port portnumber]] [--device devicefile] channel recsec destfile\n", cmd); fprintf(stderr, "\n"); fprintf(stderr, "Remarks:\n"); fprintf(stderr, "if recsec is '-', records indefinitely.\n"); @@ -326,6 +326,7 @@ fprintf(stderr, "--udp: Turn on udp broadcasting\n"); fprintf(stderr, " --addr hostname: Hostname or address to connect\n"); fprintf(stderr, " --port portnumber: Port number to connect\n"); + fprintf(stderr, "--device devicefile: Specify devicefile to use\n"); fprintf(stderr, "--help: Show this help\n"); fprintf(stderr, "\n"); } @@ -536,6 +537,7 @@ { "udp", 0, NULL, 'u'}, { "addr", 1, NULL, 'a'}, { "port", 1, NULL, 'p'}, + { "device", 1, NULL, 'd'}, { "help", 0, NULL, 'h'}, {0, 0, NULL, 0} /* terminate */ }; @@ -547,8 +549,9 @@ char *host_to = NULL; int port_to = 1234; sock_data *sockdata = NULL; + char *device = NULL; - while((result = getopt_long(argc, argv, "br:smua:p:h", + while((result = getopt_long(argc, argv, "br:smua:p:d:h", long_options, &option_index)) != -1) { switch(result) { case 'b': @@ -588,6 +591,10 @@ port_to = atoi(optarg); fprintf(stderr, "UDP port: %d\n", port_to); break; + case 'd': + device = optarg; + fprintf(stderr, "using device: %s\n", device); + break; } } @@ -615,27 +622,45 @@ freq.slot = ptr->add_freq; if(ptr->type == CHTYPE_SATELLITE) { - for(lp = 0; lp < 2; lp++) { - tfd = open(bsdev[lp], O_RDONLY); - if(tfd >= 0) { - break; + if(device) { + tfd = open(device, O_RDONLY); + if(tfd < 0) { + fprintf(stderr, "Cannot open tuner\n"); + return 1; } } - if(tfd < 0) { - fprintf(stderr, "Cannot open tuner\n"); - return 1; + else { + for(lp = 0; lp < NUM_BSDEV; lp++) { + tfd = open(bsdev[lp], O_RDONLY); + if(tfd >= 0) { + break; + } + } + if(tfd < 0) { + fprintf(stderr, "Cannot open tuner\n"); + return 1; + } } } else { - for(lp = 0; lp < 2; lp++) { - tfd = open(isdb_t_dev[lp], O_RDONLY); - if(tfd >= 0) { - break; + if(device) { + tfd = open(device, O_RDONLY); + if(tfd < 0) { + fprintf(stderr, "Cannot open tuner\n"); + return 1; } } - if(tfd < 0) { - fprintf(stderr, "Cannot open tuner\n"); - return 1; + else { + for(lp = 0; lp < NUM_ISDB_T_DEV; lp++) { + tfd = open(isdb_t_dev[lp], O_RDONLY); + if(tfd >= 0) { + break; + } + } + if(tfd < 0) { + fprintf(stderr, "Cannot open tuner\n"); + return 1; + } } }
--- a/recpt1/recpt1.h Tue Mar 03 05:15:40 2009 +0900 +++ b/recpt1/recpt1.h Tue Mar 03 05:30:25 2009 +0900 @@ -1,13 +1,20 @@ #ifndef _RECPT1_H_ #define _RECPT1_H_ -char *bsdev[2] = { +#define NUM_BSDEV 4 +#define NUM_ISDB_T_DEV 4 + +char *bsdev[NUM_BSDEV] = { "/dev/pt1video1", - "/dev/pt1video0" + "/dev/pt1video0", + "/dev/pt1video5", + "/dev/pt1video4" }; -char *isdb_t_dev[2] = { +char *isdb_t_dev[NUM_ISDB_T_DEV] = { "/dev/pt1video2", "/dev/pt1video3" + "/dev/pt1video6", + "/dev/pt1video7" }; #define CHTYPE_SATELLITE 0 /* satellite digital */