AG HEAD: controld

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

AG HEAD: controld

Beitrag von kerlimann »

erweiterung der controld zwecks mute On/Off im StandBy

ich stelle mir den anfang so vor:

Code: Alles auswählen

--- neutrino.cpp.org	2003-10-13 01:06:24.000000000 +0200
+++ neutrino.cpp	2003-10-14 18:56:06.000000000 +0200
@@ -1558,6 +1558,12 @@
 	oj->addOption(2, "audiomenu.lirc");
 	audioSettings.addItem( oj );

+	audioSettings.addItem( oj );
+	oj = new CMenuOptionChooser("audiomenu.mute_standby", &g_settings.audio_mute_standby, true, audioSetupNotifier);
+	oj->addOption(0, "options.off");
+	oj->addOption(1, "options.on");
+	audioSettings.addItem( oj );
+
 }

 void CNeutrinoApp::InitVideoSettings(CMenuWidget &videoSettings, CVideoSetupNotifier* videoSetupNotifier)

Code: Alles auswählen

--- setting_helpers.cpp.org	2003-10-12 18:30:42.000000000 +0200
+++ setting_helpers.cpp	2003-10-16 12:12:22.000000000 +0200
@@ -372,7 +372,14 @@
 		g_Zapit->setAudioMode(g_settings.audio_AnalogMode);
 		return true;
 	}
+
+	if(OptionName=="audiomenu.mute_standby")
+	{
+		g_Zapit->setAudioMode(g_settings.audio_mute_standby);
+		return true;
+	}
 	return false;
+
 }

 bool CVideoSetupNotifier::changeNotify(const std::string & OptionName, void*)
controld lass ich erstmal weg, stolpere mit obigem bereits darueber, dass bei einstellungen ->audio avs/ost 2mal hintereinander auftaucht <g>. laesst sich allerdings nur eins selektieren. funktion mute standby ist aber wie gewuenscht vorhanden.
Sepp776
Semiprofi
Semiprofi
Beiträge: 1173
Registriert: Samstag 1. September 2001, 00:00

Beitrag von Sepp776 »

du weist glaube ich 2x das gleiche Objekt (oj) an das Menü zu. Erstell mal ein neues Objekt (oj1 oder so) für deinen neuen Menüpunkt, dann sollte es klappen.

Nee, halt: Du musst einfach die eine Zeile .addItem... löschen :)


Ciao,
Sepp.
Philips Sat
Astra 19.2°
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

Sepp776 hat geschrieben: Nee, halt: Du musst einfach die eine Zeile .addItem... löschen :)
jau!! scheiss cut and paste, hehe. ein neues item ist das ja garnicht, mit item ist offensichtlich das komplette audiomenue an sich gemeint?!

noe, isses nicht, hmm.. dann wuerde das ja auch stereo/mono betreffen. also irgendwie ist das verwirrend (kommt wohl daher, weil viele koeche darin arbeiten, iss aber jetzt nicht abwertend gemeint - es ist lediglich verwirrend).

naja, wie auch immer, menuepunkt ist jetzt vorhanden. setting_helpers meinst du ist OK so? ich sehe bisher immer noch nicht ganz, woher er weiss, das er sich das aus der controld.conf holen soll, und nicht aus neutrino.conf.

ok.. ich poste mal den controld.diff:

Code: Alles auswählen

--- controld.cpp.org	2003-08-26 22:13:55.000000000 +0200
+++ controld.cpp	2003-10-16 12:31:03.000000000 +0200
@@ -79,6 +79,7 @@
 	bool mute_avs;
 	int  videooutput;
 	int  videoformat;
+	bool mute_standby;

 	CControldClient::tuxbox_maker_t boxtype; // not part of the config - set by setBoxType()
 } settings;
@@ -543,7 +544,7 @@
 		setVideoFormat(-1, false);
 		//zapit.setStandby(true);
 		zapit.muteAudio(true);
-		audioControl::setMute(true);
+		audioControl::setMute(settings.mute_standby);
 	}
 }
 
@@ -859,12 +860,13 @@
 	}

 
-	settings.volume      = config->getInt32("volume", 100);
-	settings.volume_avs  = config->getInt32("volume_avs", 100);
-	settings.mute        = config->getBool("mute", false);
-	settings.mute_avs    = config->getBool("mute_avs", false);
-	settings.videooutput = config->getInt32("videooutput", 1); // fblk1 - rgb
-	settings.videoformat = config->getInt32("videoformat", 2); // fnc2 - 4:3
+	settings.volume		= config->getInt32("volume", 100);
+	settings.volume_avs	= config->getInt32("volume_avs", 100);
+	settings.mute		= config->getBool("mute", false);
+	settings.mute_avs	= config->getBool("mute_avs", false);
+	settings.videooutput	= config->getInt32("videooutput", 1); // fblk1 - rgb
+	settings.videoformat	= config->getInt32("videoformat", 2); // fnc2 - 4:3
+	settings.mute_standby	= config->getBool("mute_standby", false);

 	setBoxType(); // dummy set - liest den aktuellen Wert aus!
hab ich schon x-mal drin rumprobiert, funktioniert aber nicht. der speichert das in der controld.conf ja garnicht ab!? lesen tut die controld das, wenn ich das auf TRUE setze von hand in controld.conf.

das problem muss also im neutrino source liegen, oder? also in den setting_helpers oder in neutrino.cpp?

PS: sorry, das in dem controld.diff so viel drin iss, hatte die blanks durch tabs ersetzt ;)
Sepp776
Semiprofi
Semiprofi
Beiträge: 1173
Registriert: Samstag 1. September 2001, 00:00

Beitrag von Sepp776 »

Hab mit den kompletten Code jetzt noch nicht angeguckt, aber in der controld.cpp muss noch ne Extra-Funktion zum Schreiben der Settings sein. Such mal in der Datei nach der umgekehrten Zuweisung, also config->setInt32(blabla) = settings.blabla (hoffe du verstehst was ich meine, hihi).
Philips Sat
Astra 19.2°
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

Sepp776 hat geschrieben:Hab mit den kompletten Code jetzt noch nicht angeguckt, aber in der controld.cpp muss noch ne Extra-Funktion zum Schreiben der Settings sein. Such mal in der Datei nach der umgekehrten Zuweisung, also config->setInt32(blabla) = settings.blabla (hoffe du verstehst was ich meine, hihi).
verstehe ich jetzt ehrlich gesagt nicht :o
die settings werden ja ueber das setup in neutrino geschrieben, also zum bleistift "use avs" oder "use ost", usw.. die controld liest diese eintraege lediglich aus, sobald sie gestartet wird.

da aber das speichern der auswhl von avs/ost tadellos funktioniert, wundert mich, das dies bei meinem mute_standby nicht der fall ist. ich verstehe auch nicht, woher der neutrino code weiss, das er diese settings in der controld.conf speichern soll.
Sepp776
Semiprofi
Semiprofi
Beiträge: 1173
Registriert: Samstag 1. September 2001, 00:00

Beitrag von Sepp776 »

Hi kerlimann!
Ich habe mir die controld.cpp mal angeguckt. Die Werte die in die controld.conf reinkommen werden dort abgespeichert, nicht in Neutrino. Du findest in der controld.conf, verteilt an verschiedenen Stellen, "config->setInt32...", oder setBool oder sonstwas. Damit werden die Werte in das config-Objekt gespeichert.

Der Wert den du schreiben willst, sollte vielleicht in void saveSettings() (Zeile 107) rein. Da werden die Werte in die controld.conf geschrieben.

Code: Alles auswählen

config->setBool("mute_standby", settings.mute_standby);
Kannste ja mal ausprobieren...

Ciao,
Sepp.
Philips Sat
Astra 19.2°
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

hmm, so wie das fuer mein verstaendnis ausschaut, wird dort der aktuelle stand beim shutdown gespeichert. also beim standby.

schau mal in die neutrino.conf:

audio_AnalogMode=0
audio_DolbyDigital=0
audio_avs_Control=1

??

ps: hmm, wo sind die anderen 30 leute, die mit JA gestimmt hatten :P
Sepp776
Semiprofi
Semiprofi
Beiträge: 1173
Registriert: Samstag 1. September 2001, 00:00

Beitrag von Sepp776 »

schau mal in die neutrino.conf:

audio_AnalogMode=0
audio_DolbyDigital=0
audio_avs_Control=1
Raff ich gerade nicht was du mir damit sagen willst :roll:

Die Funktion saveSettings wird aufgerufen, wenn du im Einstellungen Menü auf "Einstellungen speichern" drückst. In der Neutrino.cpp wird nix mit der controld.conf gemacht.

Probier das mal aus, funktioniert bestimmt! :)
Philips Sat
Astra 19.2°
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

>>audio_AnalogMode=0
>>audio_DolbyDigital=0
>>audio_avs_Control=1

>Raff ich gerade nicht was du mir damit sagen willst :roll:
ich FRAGE MICH, warum die dann in der neutrino.conf drinnen sind? wenn ich im neutrino was abspeichere (unter settings), dann wird das offensichtlich in der neutrino.conf abgelegt. AUCH diese 3 controld werte. oder verstehe ich das miss? das ist in der tat recht verwirrend. oder warum sind die werte ansonsten da drin?

>Die Funktion saveSettings wird aufgerufen, wenn du im Einstellungen
>Menü auf "Einstellungen speichern" drückst. In der Neutrino.cpp wird nix
> mit der controld.conf gemacht.
>Probier das mal aus, funktioniert bestimmt! :)
ich weiss nicht, was ich da noch ausprobieren soll? ich habe "mute_standby" ueberall dort hinzugefuegt, wo auch der andere krempel abgefragt wird, das ist ja aus meinem diff ersichtlich.

hmm..

kannst du uns etwas detaillierter auf die spruenge helfen?
Sepp776
Semiprofi
Semiprofi
Beiträge: 1173
Registriert: Samstag 1. September 2001, 00:00

Beitrag von Sepp776 »

kerlimann hat geschrieben: ich weiss nicht, was ich da noch ausprobieren soll?
Ich meine mach doch mal die Zeile die ich oben geschrieben habe in die saveSettings-Funktion rein. Ich möchte wetten dass der Wert dann in der controld.conf drinsteht.
kerlimann hat geschrieben: ich FRAGE MICH, warum die dann in der neutrino.conf drinnen sind?
Achso... das weiß ich allerdings auch nicht :) Hab den Code jetzt gerade nicht zur Hand. Gucke ich mir morgen mal an.

Schö,
Sepp.
Philips Sat
Astra 19.2°
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

Sepp776 hat geschrieben: Ich meine mach doch mal die Zeile die ich oben geschrieben habe in die saveSettings-Funktion rein. Ich möchte wetten dass der Wert dann in der controld.conf drinsteht.
klappt nicht, in der controld bleibt false (oder wenn ich da true reinschreibe halt true), egal was ich in den neutrino settings setze.

ps: sorry, war so schoenes wetter, bin erst jetzt dazu gekommen.
thegoodguy
Erleuchteter
Erleuchteter
Beiträge: 465
Registriert: Mittwoch 14. August 2002, 20:45

Beitrag von thegoodguy »

Sehe ich es richtig, dass es um das unmute nach standby bei OST-Volume-Steuerung geht?
Schaut auch doch mal die

Code: Alles auswählen

audioDecoder->mute();
und

Code: Alles auswählen

audioDecoder->unmute();
Aufrufe in

Code: Alles auswählen

apps/dvb/zapit/src/zapit.cpp
an ...
Dann wird klar warum das Verhalten derzeit so ist ...
Ob es anders richtiger ist will ich jetzt mal nicht kommentieren.
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

thegoodguy hat geschrieben:Sehe ich es richtig, dass es um das unmute nach standby bei OST-Volume-Steuerung geht?
eigentlich um AVS und OST ( je nachdem halt, was man nutzt, wenn schon, denn schon <g>.) nach OST hatte ich bisher aber nicht geschaut, da ich persoenlich halt AVS nutze.

auf die zapit bin ich nicht gekommen, danke erstmal. es war (fuer mich zumindest) schon irgendwie unuebersichtlich genug, das die werte sowohl in controld.conf sowie neutrino.conf stehen. wenn jetzt die zapit auch noch ins spiel kommt.. naja.
Ob es anders richtiger ist will ich jetzt mal nicht kommentieren.
ich denke mal, das ist wohl ansichtssache, oder geschmackssache, was "richtiger" oder "besser" ist. darueber kann man hier sicher wochenlang diskutieren, lass mal stecken <g>.

hmpf, ich schau dann nachher mal in die zapit, dank auf alle faelle fuer den tip. aber wie auch immer.. wenn ich hier:

//zapit.setStandby(true);
zapit.muteAudio(true);
audioControl::setMute(true);

mute auf false setze (direkt im code, hardcoded) funktioniert ja das von mir gewuenschte?! daher ging ich davon aus, man koenne sich anstelle von true/flase auch den wert aus der config holen.