Login
Newsletter
Werbung

Do, 2. Februar 2017, 15:00

Diashow beim Booten mit Plymouth

Von dknof

Bilderwechsel

Für Änderungen der Darstellung bietet Plymouth verschiedene CallBack-Funktionen an. So wird beispielsweise mit

Plymouth.SetBootProgressFunction(progress_callback);

immer bei Änderungen vom Boot-Fortschritt und bis zu 50 Mal die Sekunde die Funktion progress_callback aufgerufen. Damit kann während des Bootvorgangs das Bild geändert werden:

fun progress_callback(zeit, fortschritt)
{
  if (fortschritt * 6 > foto_nr) {
    foto_nr = foto_nr + 1;
    foto = Sprite(Image(foto_nr + ".png"));
    foto.SetX((Window.GetWidth() - foto.GetImage().GetWidth()) / 2);
    foto.SetY((Window.GetHeight() - foto.GetImage().GetHeight()) / 2);
  }
}
foto_nr = 0;
foto = Sprite();
Plymouth.SetBootProgressFunction(progress_callback);

Die Funktion progress_callback hat zwei Argumente. zeit ist die abgelaufene Zeit in Sekunden, fortschritt ist ein Wert zwischen 0 und 1, der angibt, wie weit der Bootvorgang abgeschlossen ist.

In dem Skript werden nacheinander die Fotos 1.png, 2.png bis 6.png angezeigt, jeweils nach einem Sechstel des abgelaufenen Bootprozesses. Zum einfacheren Testen ist die Ausgabe des Fortschritts hilfreich. Diese kann in der Funktion progress_callback erfolgen:

global.modus = Sprite(Image.Text(Plymouth.GetMode() + " " + Math.Int(fortschritt * 100) + " %", 1, 0, 0));

Ist beim Testen der Fortschritt zu langsam, kann er mit

fortschritt *= 10;

am Anfang der Funktion progress_callback um den Faktor 10 beschleunigt werden. Dies sollte für den produktiven Einsatz auskommentiert werden. Hierfür einfach eine Raute (#) voranstellen.

Pro-Linux
Traut euch!
Neue Nachrichten
Werbung