summaryrefslogtreecommitdiffstats
path: root/usr.bin/setchannel/setchannel.c
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>2006-12-09 02:44:09 +0000
committergrog <grog@FreeBSD.org>2006-12-09 02:44:09 +0000
commit8cd193c68236617f9d4c2273cecb5330108f9bd4 (patch)
treebba289bd82190abba196c89757148f2a73898fa8 /usr.bin/setchannel/setchannel.c
parent0c3cf23447805809f8bced407ea6fd01a070e3e3 (diff)
downloadFreeBSD-src-8cd193c68236617f9d4c2273cecb5330108f9bd4.zip
FreeBSD-src-8cd193c68236617f9d4c2273cecb5330108f9bd4.tar.gz
Change formatting to be more compliant with style(9). Doubtless
others will find more things to change.
Diffstat (limited to 'usr.bin/setchannel/setchannel.c')
-rw-r--r--usr.bin/setchannel/setchannel.c445
1 files changed, 218 insertions, 227 deletions
diff --git a/usr.bin/setchannel/setchannel.c b/usr.bin/setchannel/setchannel.c
index bf17645..fd3ff7a 100644
--- a/usr.bin/setchannel/setchannel.c
+++ b/usr.bin/setchannel/setchannel.c
@@ -26,9 +26,7 @@
* $FreeBSD$
*/
-/*
- * Set the channel of the tuner card.
- */
+/* Set the channel of the tuner card. */
#include <stdio.h>
#include <stdlib.h>
@@ -52,231 +50,224 @@
static void
usage()
{
- printf("Usage: setchannel [-a {on|off}] [-c | -r | -s | -t] [-g geom] [-m chnl_set] [chnl | freq]\n"
- " -a Enable / disable AFC.\n"
- " -c Select composite input.\n"
- " -r Select radio input.\n"
- " -s Select svideo input.\n"
- " -t Select tuner.\n"
- " -g Select geometry.\n"
- " 352x240 or 352x288 = VCD\n"
- " 480x480 or 480x576 = SVCD\n"
- " 352x480 or 352x576 = DVD (half D1)\n"
- " 720x480 or 720x576 = DVD (full D1)\n"
- " -m Select channel set / system.\n"
- " 0 = Tuner Default\n"
- " %u = US Broadcast / NTSC\n"
- " %u = US Cable / NTSC\n"
- " %u = Western Europe / PAL\n"
- " %u = Japan Broadcast / NTSC\n"
- " %u = Japan Cable / NTSC\n"
- " %u = Australia / PAL\n"
- " %u = France / SECAM\n"
- " chnl Channel\n"
- " freq Frequency in MHz (must include decimal point).\n",
- CHNLSET_NABCST, CHNLSET_CABLEIRC,
- CHNLSET_WEUROPE, CHNLSET_JPNBCST, CHNLSET_JPNCABLE,
- CHNLSET_AUSTRALIA, CHNLSET_FRANCE);
+ printf
+ ("Usage: setchannel [-a {on|off}] [-c | -r | -s | -t] "
+ "[-g geom] [-m chnl_set] [chnl | freq]\n"
+ " -a Enable / disable AFC.\n"
+ " -c Select composite input.\n" " -r Select radio input.\n"
+ " -s Select svideo input.\n" " -t Select tuner.\n"
+ " -g Select geometry.\n" " 352x240 or 352x288 = VCD\n"
+ " 480x480 or 480x576 = SVCD\n"
+ " 352x480 or 352x576 = DVD (half D1)\n"
+ " 720x480 or 720x576 = DVD (full D1)\n"
+ " -m Select channel set / system.\n"
+ " 0 = Tuner Default\n"
+ " %u = US Broadcast / NTSC\n"
+ " %u = US Cable / NTSC\n"
+ " %u = Western Europe / PAL\n"
+ " %u = Japan Broadcast / NTSC\n"
+ " %u = Japan Cable / NTSC\n"
+ " %u = Australia / PAL\n"
+ " %u = France / SECAM\n" " chnl Channel\n"
+ " freq Frequency in MHz (must include decimal point).\n",
+ CHNLSET_NABCST, CHNLSET_CABLEIRC, CHNLSET_WEUROPE, CHNLSET_JPNBCST,
+ CHNLSET_JPNCABLE, CHNLSET_AUSTRALIA, CHNLSET_FRANCE);
}
-int main( int argc, char *argv[] )
+int
+main(int argc, char *argv[])
{
- char *ptr;
- char *endptr;
- int afc;
- int audio;
- int c;
- int channel_set;
- int i;
- int status;
- int tfd;
- unsigned int channel;
- unsigned int fraction;
- unsigned int freq;
- unsigned int x_size;
- unsigned int y_size;
- unsigned long device;
- struct bktr_capture_area cap;
-
- afc = -1;
- audio = -1;
- channel = 0;
- channel_set = -1;
- device = 0;
- freq = 0;
- status = 0;
- x_size = 0;
- y_size = 0;
-
- while ((c = getopt (argc, argv, "a:crstg:m:")) != -1)
- switch (c) {
- case 'a':
- if (strcasecmp (optarg, "on") == 0)
- afc = 1;
- else if (strcasecmp (optarg, "off") == 0)
- afc = 0;
- else {
- usage ();
- exit (1);
- }
- break;
-
- case 'c':
- device = METEOR_INPUT_DEV2;
- audio = -1;
- break;
-
- case 'r':
- device = 0;
- audio = AUDIO_INTERN;
- break;
-
- case 's':
- device = METEOR_INPUT_DEV_SVIDEO;
- audio = -1;
- break;
-
- case 't':
- device = METEOR_INPUT_DEV1;
- audio = -1;
- break;
-
- case 'g':
- if (sscanf (optarg, "%ux%u", &x_size, &y_size) != 2
- || x_size == 0 || y_size == 0) {
- usage ();
- exit (1);
- }
- break;
-
- case 'm':
- channel_set = atoi (optarg);
- if (channel_set < 0 || channel_set > CHNLSET_MAX) {
- usage ();
- exit (1);
- }
- break;
-
- default:
- usage ();
- exit (1);
- }
-
- if ( optind < argc) {
-
- /*
- * A number containing a decimal point is the frequency in MHz.
- */
-
- if ((ptr = strchr( argv[optind], '.' )) != NULL) {
- freq = strtol( argv[optind], &endptr, 10) * 1000;
- if (ptr != endptr) {
- usage ();
- exit (1);
- }
-
- ptr++;
-
- fraction = strtol( ptr, &endptr, 10);
- if (! isdigit( *ptr ) || *endptr != '\0') {
- usage ();
- exit (1);
- }
-
- for (i = endptr - ptr; i > 3; i--)
- fraction /= 10;
- for ( ; i < 3; i++)
- fraction *= 10;
-
- freq += fraction;
- }
-
- /*
- * An integer is the channel.
- */
-
- else
- channel = atoi( argv[optind] );
- }
-
- if (afc == -1 && audio == -1 && ! device && x_size == 0 && y_size == 0
- && channel_set == -1 && ! channel && ! freq) {
- usage ();
- exit (1);
- }
-
- tfd = open( "/dev/cxm0", O_RDONLY );
- if ( tfd < 0 ) {
- perror( "open() of /dev/cxm0 failed." );
- exit(1);
- }
-
- if (afc != -1)
- if ( ioctl( tfd, TVTUNER_SETAFC, &afc ) < 0 ) {
- perror( "ioctl( tfd, TVTUNER_SETAFC ) failed." );
- status = 1;
- }
-
- if (device)
- if ( ioctl( tfd, METEORSINPUT, &device ) < 0 ) {
- perror( "ioctl( tfd, METEORSINPUT ) failed." );
- status = 1;
- }
-
- if (audio != -1)
- if ( ioctl( tfd, BT848_SAUDIO, &audio ) < 0 ) {
- perror( "ioctl( tfd, BT848_SAUDIO ) failed." );
- status = 1;
- }
-
- if ( ioctl( tfd, BT848_GAUDIO, &audio ) < 0 ) {
- perror( "ioctl( tfd, BT848_GAUDIO ) failed." );
- status = 1;
- }
-
- if (x_size && y_size ) {
- memset (&cap, 0, sizeof (cap));
- cap.x_size = x_size;
- cap.y_size = y_size;
- if ( ioctl( tfd, BT848_SCAPAREA, &cap ) < 0 ) {
- perror( "ioctl( tfd, BT848_SCAPAREA ) failed." );
- status = 1;
- }
- }
-
- if (channel_set != -1)
- if ( ioctl( tfd, TVTUNER_SETTYPE, &channel_set ) < 0 ) {
- perror( "ioctl( tfd, TVTUNER_SETTYPE ) failed." );
- status = 1;
- }
-
- if (channel) {
- if ( ioctl( tfd, TVTUNER_SETCHNL, &channel ) < 0 ) {
- perror( "ioctl( tfd, TVTUNER_SETCHNL ) failed." );
- status = 1;
- }
- }
- else if (freq) {
- if (audio == AUDIO_INTERN) {
- /* Convert from kHz to MHz * 100 */
- freq = freq / 10;
-
- if ( ioctl( tfd, RADIO_SETFREQ, &freq ) < 0 ) {
- perror( "ioctl( tfd, RADIO_SETFREQ ) failed." );
- status = 1;
- }
- }
- else {
- /* Convert from kHz to MHz * 16 */
- freq = (freq * 16) / 1000;
-
- if ( ioctl( tfd, TVTUNER_SETFREQ, &freq ) < 0 ) {
- perror( "ioctl( tfd, TVTUNER_SETFREQ ) failed." );
- status = 1;
- }
- }
- }
-
- close ( tfd );
- exit ( status );
+ char *ptr;
+ char *endptr;
+ int afc;
+ int audio;
+ int c;
+ int channel_set;
+ int i;
+ int status;
+ int tfd;
+ unsigned int channel;
+ unsigned int fraction;
+ unsigned int freq;
+ unsigned int x_size;
+ unsigned int y_size;
+ unsigned long device;
+ struct bktr_capture_area cap;
+
+ afc = -1;
+ audio = -1;
+ channel = 0;
+ channel_set = -1;
+ device = 0;
+ freq = 0;
+ status = 0;
+ x_size = 0;
+ y_size = 0;
+
+ while ((c = getopt(argc, argv, "a:crstg:m:")) != -1)
+ switch (c) {
+ case 'a':
+ if (strcasecmp(optarg, "on") == 0)
+ afc = 1;
+ else if (strcasecmp(optarg, "off") == 0)
+ afc = 0;
+ else {
+ usage();
+ exit(1);
+ }
+ break;
+
+ case 'c':
+ device = METEOR_INPUT_DEV2;
+ audio = -1;
+ break;
+
+ case 'r':
+ device = 0;
+ audio = AUDIO_INTERN;
+ break;
+
+ case 's':
+ device = METEOR_INPUT_DEV_SVIDEO;
+ audio = -1;
+ break;
+
+ case 't':
+ device = METEOR_INPUT_DEV1;
+ audio = -1;
+ break;
+
+ case 'g':
+ if (sscanf(optarg, "%ux%u", &x_size, &y_size) != 2
+ || x_size == 0 || y_size == 0) {
+ usage();
+ exit(1);
+ }
+ break;
+
+ case 'm':
+ channel_set = atoi(optarg);
+ if (channel_set < 0 || channel_set > CHNLSET_MAX) {
+ usage();
+ exit(1);
+ }
+ break;
+
+ default:
+ usage();
+ exit(1);
+ }
+
+ if (optind < argc) {
+
+ /*
+ * A number containing a decimal point is the frequency in MHz.
+ */
+
+ if ((ptr = strchr(argv[optind], '.')) != NULL) {
+ freq = strtol(argv[optind], &endptr, 10) * 1000;
+ if (ptr != endptr) {
+ usage();
+ exit(1);
+ }
+
+ ptr++;
+
+ fraction = strtol(ptr, &endptr, 10);
+ if (!isdigit(*ptr) || *endptr != '\0') {
+ usage();
+ exit(1);
+ }
+
+ for (i = endptr - ptr; i > 3; i--)
+ fraction /= 10;
+ for (; i < 3; i++)
+ fraction *= 10;
+
+ freq += fraction;
+ }
+
+ /* An integer is the channel. */
+ else
+ channel = atoi(argv[optind]);
+ }
+
+ if (afc == -1 && audio == -1 && !device && x_size == 0 && y_size == 0
+ && channel_set == -1 && !channel && !freq) {
+ usage();
+ exit(1);
+ }
+
+ tfd = open("/dev/cxm0", O_RDONLY);
+ if (tfd < 0) {
+ perror("open() of /dev/cxm0 failed.");
+ exit(1);
+ }
+
+ if (afc != -1)
+ if (ioctl(tfd, TVTUNER_SETAFC, &afc) < 0) {
+ perror("ioctl(tfd, TVTUNER_SETAFC) failed.");
+ status = 1;
+ }
+
+ if (device)
+ if (ioctl(tfd, METEORSINPUT, &device) < 0) {
+ perror("ioctl(tfd, METEORSINPUT) failed.");
+ status = 1;
+ }
+
+ if (audio != -1)
+ if (ioctl(tfd, BT848_SAUDIO, &audio) < 0) {
+ perror("ioctl(tfd, BT848_SAUDIO) failed.");
+ status = 1;
+ }
+
+ if (ioctl(tfd, BT848_GAUDIO, &audio) < 0) {
+ perror("ioctl(tfd, BT848_GAUDIO) failed.");
+ status = 1;
+ }
+
+ if (x_size && y_size) {
+ memset(&cap, 0, sizeof(cap));
+ cap.x_size = x_size;
+ cap.y_size = y_size;
+ if (ioctl(tfd, BT848_SCAPAREA, &cap) < 0) {
+ perror("ioctl(tfd, BT848_SCAPAREA) failed.");
+ status = 1;
+ }
+ }
+
+ if (channel_set != -1)
+ if (ioctl(tfd, TVTUNER_SETTYPE, &channel_set) < 0) {
+ perror("ioctl(tfd, TVTUNER_SETTYPE) failed.");
+ status = 1;
+ }
+
+ if (channel) {
+ if (ioctl(tfd, TVTUNER_SETCHNL, &channel) < 0) {
+ perror("ioctl(tfd, TVTUNER_SETCHNL) failed.");
+ status = 1;
+ }
+ } else if (freq) {
+ if (audio == AUDIO_INTERN) {
+ /* Convert from kHz to MHz * 100 */
+ freq = freq / 10;
+
+ if (ioctl(tfd, RADIO_SETFREQ, &freq) < 0) {
+ perror("ioctl(tfd, RADIO_SETFREQ) failed.");
+ status = 1;
+ }
+ } else {
+ /* Convert from kHz to MHz * 16 */
+ freq = (freq * 16) / 1000;
+
+ if (ioctl(tfd, TVTUNER_SETFREQ, &freq) < 0) {
+ perror("ioctl(tfd, TVTUNER_SETFREQ) failed.");
+ status = 1;
+ }
+ }
+ }
+
+ close(tfd);
+ exit(status);
}
OpenPOWER on IntegriCloud