aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etisnoop.cpp29
1 files changed, 21 insertions, 8 deletions
diff --git a/etisnoop.cpp b/etisnoop.cpp
index a9f70ca..de9672a 100644
--- a/etisnoop.cpp
+++ b/etisnoop.cpp
@@ -53,7 +53,9 @@ void decodeFIG(unsigned char* figdata,
unsigned short int figtype,
unsigned short int indent);
-int eti_analyse(int etifd, int verbosity);
+int eti_analyse(int etifd,
+ int verbosity,
+ bool ignore_error);
#define no_argument 0
#define required_argument 1
@@ -61,6 +63,7 @@ int eti_analyse(int etifd, int verbosity);
const struct option longopts[] = {
{"help", no_argument, 0, 'h'},
{"verbose", no_argument, 0, 'v'},
+ {"ignore-error", no_argument, 0, 'e'},
{"input", required_argument, 0, 'i'},
{"save-msc", required_argument, 0, 's'}
};
@@ -81,6 +84,7 @@ int main(int argc, char *argv[])
string file_name("-");
int verbosity = 0;
+ bool ignore_error = false;
while(ch != -1) {
ch = getopt_long(argc, argv, "hvi:s:", longopts, &index);
@@ -93,6 +97,9 @@ int main(int argc, char *argv[])
case 'v':
verbosity++;
break;
+ case 'e':
+ ignore_error = true;
+ break;
case 'h':
usage();
return 1;
@@ -113,11 +120,11 @@ int main(int argc, char *argv[])
}
}
- eti_analyse(etifd, verbosity);
+ eti_analyse(etifd, verbosity, ignore_error);
close(etifd);
}
-int eti_analyse(int etifd, int verbosity)
+int eti_analyse(int etifd, int verbosity, bool ignore_error)
{
unsigned char p[ETINIPACKETSIZE];
string desc;
@@ -141,11 +148,17 @@ int eti_analyse(int etifd, int verbosity)
printbuf("SYNC", 0, p, 4);
// SYNC - ERR
- if (p[0] == 0xFF)
+ if (p[0] == 0xFF) {
desc = "No error";
- else
+ printbuf("ERR", 1, p, 1, desc);
+ }
+ else {
desc = "Error";
- printbuf("ERR", 1, p, 1, desc);
+ printbuf("ERR", 1, p, 1, desc);
+ if (!ignore_error) {
+ break;
+ }
+ }
// SYNC - FSYNC
@@ -531,11 +544,11 @@ void decodeFIG(unsigned char* f, unsigned char figlen,unsigned short int figtype
if (pd == 0)
sprintf(desc,
- "Service ID=0x%02X (Country id=%d, Service referemce=%d), Number of components=%d, Local flag=%d, CAID=%d",
+ "Service ID=0x%02X (Country id=%d, Service reference=%d), Number of components=%d, Local flag=%d, CAID=%d",
sid, cid, sref, ncomp, local, caid);
else
sprintf(desc,
- "Service ID=0x%02X (ECC=%d, Country id=%d, Service referemce=%d), Number of components=%d, Local flag=%d, CAID=%d",
+ "Service ID=0x%02X (ECC=%d, Country id=%d, Service reference=%d), Number of components=%d, Local flag=%d, CAID=%d",
sid, ecc, cid, sref, ncomp, local, caid);
printbuf(desc, indent+1, NULL, 0);