Hi,
hast du SOX installiert?
Edit:
Laut der Manpage (http://monitor.08k.de/index.php/Manpage) ist dies für ZVEI möglich. Bei FMS kann ich es dir nicht sagen.
Unter welchem OS hast du Monitor laufen?
Hi,
hast du SOX installiert?
Edit:
Laut der Manpage (http://monitor.08k.de/index.php/Manpage) ist dies für ZVEI möglich. Bei FMS kann ich es dir nicht sagen.
Unter welchem OS hast du Monitor laufen?
Geändert von Keen (09.01.2010 um 18:55 Uhr)
Du könntest dir selbst den Befehl von SOX zusammenbauen und als Aktion bei Monitor starten. Die zweite Möglichkeit wäre es im Quelltext zu ändern. Als Programmierer kein Problem ;)
Das ist mir klar. Darum dachte ich eher an Ubuntu, Suse, Knoppix, etc... ;) Aber ist nicht ausschlaggebend.
Schon probiert: Geht nicht. Grund: /dev/dsp ist vom monitor selbst besetzt und sox kann dann nicht aufnehmen.
Genau darauf will ich hinaus:
Die eigentliche @rec-Funktion ist in unixinout.c festgelegt und theoretisch aus jedem Decoder-Modul heraus startbar. Bislang ist das Schlüsselwort "@rec" aber nur dem Zvei-Dekoder bekannt. Jetzt bräuchte man einen C-Programmierer -- am besten einer, der sich mit dem Quellcode der 1.8.1 noch auskennt -- der das @rec-Feature als Funktion des "ACTFMS"-Befehls in die fms.c einbaut.
Dafür reichen meine C-Kentnisse leider nicht aus.
Wer kann hier Helfen???
viele Grüße,
Andreas
Stimmt, die Quelle ist mit Monitor besetzt. Ich hab mir den Quellcode mal durchgesehen. Aber ich bin ehrlich: Dafür reicht es leider nicht. Ich meine die ganze Record-Geschichte hängt stark mit ZVEI zusammen, man könnte höchstens ACTFMS nutzen um @rec zu starten und ihm ZVEI "vorgaukeln".
C++ ist bei mir Jahre her ....
Ich glaube, dass ist die wesentliche Stelle (demod_zvei.c)
Die Funktion "record_start" findet sich in der unixinout.c.Code:void zvei_action(void) { /* Aktion für ZVEI * system ruft die auszufuehrende * Datei mit Pfad auf */ ... while (1) { if(strcmp(act->string, "(@rec)&")) { time(&tp); /* falls nicht bereits innerhalb der letzten 30 Sec. */ if (tp - act->value > 1) {//30 act->value = tp; system(act->string); } } else record_start(al->code.zvei); ....
In der demod_fms.c gibt es folgenden Abschitt:
und da müßte irgendwo eine Abfrage rein, ob das Schlüsselwort "@rec" in der Parameterzeile von ACTFMS steht, gefolgt vom Aufruf der Funktion "record_start".Code:case 2: /* ACTFMS */ if (*ss == '[') ss++; actact = (*form)->action; if (actact == NULL) { actact = (Line *) malloc (sizeof(Line)); } else { actroot = actact; while (actact->next != NULL) actact->next = actact->next->next; actact->next = (Line *) malloc (sizeof(Line)); actact = actact->next; } memset(actact, 0, sizeof(Line)); strncat(actact->string, &c[2], 1); while (*ss && *ss != ']') { strncat(actact->string, ss, 1); ss++; } if (strlen(actact->string) == 1) { char zero[] = "ls > /dev/null"; strcat(actact->string, zero); } strncat(actact->string, c, 2); if (actroot == NULL) (*form)->action = actact; else break;
Soweit die Theorie.
Aber wie gesagt: Meine C-Kentnisse reichen nicht aus, um die erforderlichen Änderungen sauber in die fms.c reinzuprogrammieren.
Welcher gewiefte C-Guru in diesem Forum kann helfen?
viele Grüße,
Andreas
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)