OSD Audio-Status

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Grabber66
Einsteiger
Einsteiger
Beiträge: 216
Registriert: Dienstag 1. Juni 2004, 12:24

OSD Audio-Status

Beitrag von Grabber66 »

Hallo zusammen,
ich würde gerne dem Lautstärkebalken eine andere Position geben.
Im Menue gibt es ja normal, unten & aus. Nun würde ich in meinem
Versuch den Wert für normal gerne etwas ändern. Doch leider finde ich ihn
nicht. Kann mir da jemand auf die Sprünge helfen.

THX
Grabber66
Einsteiger
Einsteiger
Beiträge: 216
Registriert: Dienstag 1. Juni 2004, 12:24

Beitrag von Grabber66 »

Hab nun diesenCode in der neutrino.cpp gefunden:

Code: Alles auswählen

void CNeutrinoApp::setVolume(const neutrino_msg_t key, const bool bDoPaint)
{
	neutrino_msg_t msg = key;

	int dx = 256;
	int dy = 40;
	int x = (((g_settings.screen_EndX- g_settings.screen_StartX)- dx) / 2) + g_settings.screen_StartX;
	int y = g_settings.screen_EndY- 100;

    if( g_settings.widget_osd == 1 )
    {
        y = y + 50;
    }

	fb_pixel_t * pixbuf = NULL;

	if( (bDoPaint) && (g_settings.widget_osd != 2 ) )
	{
		pixbuf = new fb_pixel_t[dx * dy];
		if(pixbuf!= NULL)
			frameBuffer->SaveScreen(x, y, dx, dy, pixbuf);
		frameBuffer->paintIcon("volume.raw",x,y, COL_INFOBAR);
	}

	neutrino_msg_data_t data;

	unsigned long long timeoutEnd;

	char current_volume = g_Controld->getVolume((CControld::volume_type)g_settings.audio_avs_Control);

	do
	{
		if (msg <= CRCInput::RC_MaxRC)
		{
			if (msg == CRCInput::RC_plus)
			{
				if((CControld::volume_type)g_settings.audio_avs_Control==CControld::TYPE_LIRC)
				{
					current_volume = 60; //>50 is plus
				}
				else
				{
					if (current_volume < 100 - 5)
						current_volume += 5;
					else
						current_volume = 100;
				}
			}
			else if (msg == CRCInput::RC_minus)
			{
				if((CControld::volume_type)g_settings.audio_avs_Control==CControld::TYPE_LIRC)
				{
					current_volume = 40; //<40 is minus
				}
				else
				{
					if (current_volume > 5)
						current_volume -= 5;
					else
						current_volume = 0;
				}
			}
			else
			{
				g_RCInput->postMsg(msg, data);
				break;
			}

			g_Controld->setVolume(current_volume, (CControld::volume_type)g_settings.audio_avs_Control);

			if((CControld::volume_type)g_settings.audio_avs_Control==CControld::TYPE_LIRC)
			{
				current_volume = 50;
			}
			timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR] / 2);
		}
		else if (msg == NeutrinoMessages::EVT_VOLCHANGED)
		{
			current_volume = g_Controld->getVolume((CControld::volume_type)g_settings.audio_avs_Control);
			timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_INFOBAR] / 2);
		}
		else if (handleMsg(msg, data) & messages_return::unhandled)
		{
			g_RCInput->postMsg(msg, data);
			break;
		}

		if( (bDoPaint) && (g_settings.widget_osd != 2 ) )
		{
			int vol = current_volume << 1;
			frameBuffer->paintBoxRel(x + 40      , y + 12, vol      , 15, COL_INFOBAR_PLUS_3);
			frameBuffer->paintBoxRel(x + 40 + vol, y + 12, 200 - vol, 15, COL_INFOBAR_PLUS_1);
		}

		CLCD::getInstance()->showVolume(current_volume);
		if (msg != CRCInput::RC_timeout)
		{
			g_RCInput->getMsgAbsoluteTimeout(&msg, &data, &timeoutEnd );
		}

		}
	while (msg != CRCInput::RC_timeout);

	if( (bDoPaint) && (g_settings.widget_osd != 2 ) && (pixbuf!= NULL) )
	{
		frameBuffer->RestoreScreen(x, y, dx, dy, pixbuf);
		delete [] pixbuf;
	}
}
Doch die voreinstellung für "aus"-"normal"-"unten" kann ich leider nicht zuordnen...
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Beitrag von Gaucho316 »

Wenn ich den Code richtig lese, dann gilt folgendes:
normal: g_settings.widget_osd == 0
unten: g_settings.widget_osd == 1
aus: g_settings.widget_osd == 2

Die Y-Position von "normal" verstellst du hier:

Code: Alles auswählen

int y = g_settings.screen_EndY- 100;
Die Y-Position von "unten" verstellt du hier:

Code: Alles auswählen

int y = g_settings.screen_EndY- 100;
if( g_settings.widget_osd == 1 )
{
	y = y + 50;
}
Achte also darauf, dass ein Ändern von "normal" auch Auswirkungen auf "unten hat".