From: Maximilian Seesslen <mes@seesslen.net>
To: linux-dvb@linuxtv.org
Subject: [linux-dvb] Acoustical mode for femon
Date: Wed, 23 Dec 2009 22:20:29 +0100 [thread overview]
Message-ID: <200912232220.29626.mes@seesslen.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 467 bytes --]
Hi List,
find attached a patch that adds a "Acoustical mode" to femon.
The monitoring application produces a sound indicating the signal quality. The
higher the beep the better the signal quality.
This is useful while mounting the antenna for finding the best position without
having to look at the monitor or without even having a monitor.
--
Maximilian Seeßlen
Ludwigstrasse 9
D-87437 Kempten
+49 831 687 510 2
+49 174 233 644 3
seesslen.net
[-- Attachment #2: femon.diff --]
[-- Type: text/x-patch, Size: 2612 bytes --]
diff -r dd1b701fcacc util/femon/femon.c
--- a/util/femon/femon.c Sat Dec 05 22:51:46 2009 +0100
+++ b/util/femon/femon.c Wed Dec 23 22:17:40 2009 +0100
@@ -42,10 +42,17 @@
static char *usage_str =
"\nusage: femon [options]\n"
" -H : human readable output\n"
+ " -A : Acoustical mode. A sound indicates the signal quality.\n"
+ " -r : If 'Acoustical mode' is active it tells the application\n"
+ " is called remotely via ssh. The sound is heard on the 'real'\n"
+ " machine but. The user has to be root.\n"
" -a number : use given adapter (default 0)\n"
" -f number : use given frontend (default 0)\n"
" -c number : samples to take (default 0 = infinite)\n\n";
+int sleep_time=1000000;
+int acoustical_mode=0;
+int remote=0;
static void usage(void)
{
@@ -59,6 +66,27 @@
{
struct dvbfe_info fe_info;
unsigned int samples = 0;
+ FILE *ttyFile=NULL;
+
+ // We dont write the "beep"-codes to stdout but to /dev/tty1.
+ // This is neccessary for Thin-Client-Systems or Streaming-Boxes
+ // where the computer does not have a monitor and femon is called via ssh.
+ if(acoustical_mode)
+ {
+ if(remote)
+ {
+ ttyFile=fopen("/dev/tty1","w");
+ if(!ttyFile)
+ {
+ fprintf(stderr, "Could not open /dev/tty1. No access rights?\n");
+ exit(-1);
+ }
+ }
+ else
+ {
+ ttyFile=stdout;
+ }
+ }
do {
if (dvbfe_get_info(fe, FE_STATUS_PARAMS, &fe_info, DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0) != FE_STATUS_PARAMS) {
@@ -94,12 +122,24 @@
if (fe_info.lock)
printf("FE_HAS_LOCK");
+ // create beep if acoustical_mode enabled
+ if(acoustical_mode)
+ {
+ int signal=(fe_info.signal_strength * 100) / 0xffff;
+ fprintf( ttyFile, "\033[10;%d]\a", 500+(signal*2));
+ // printf("Variable : %d\n", signal);
+ fflush(ttyFile);
+ }
+
printf("\n");
fflush(stdout);
- usleep(1000000);
+ usleep(sleep_time);
samples++;
} while ((!count) || (count-samples));
-
+
+ if(ttyFile)
+ fclose(ttyFile);
+
return 0;
}
@@ -148,7 +188,7 @@
int human_readable = 0;
int opt;
- while ((opt = getopt(argc, argv, "Ha:f:c:")) != -1) {
+ while ((opt = getopt(argc, argv, "rAHa:f:c:")) != -1) {
switch (opt)
{
default:
@@ -166,6 +206,15 @@
case 'H':
human_readable = 1;
break;
+ case 'A':
+ // Acoustical mode: we have to reduce the delay between
+ // checks in order to hear nice sound
+ sleep_time=5000;
+ acoustical_mode=1;
+ break;
+ case 'r':
+ remote=1;
+ break;
}
}
[-- Attachment #3: Type: text/plain, Size: 228 bytes --]
_______________________________________________
linux-dvb users mailing list
For V4L/DVB development, please use instead linux-media@vger.kernel.org
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
next reply other threads:[~2009-12-23 21:24 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-23 21:20 Maximilian Seesslen [this message]
2009-12-27 22:24 ` [linux-dvb] Acoustical mode for femon Manu Abraham
2009-12-28 6:12 ` VDR User
2009-12-28 21:47 ` Mika Laitio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200912232220.29626.mes@seesslen.net \
--to=mes@seesslen.net \
--cc=linux-dvb@linuxtv.org \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox