OK, ausführlichere Erklärung Wens nicht interessiert, nicht weiterlesen
Die App frägt beim Hauptreceiver den Speicher an. Bekommt von diesem 2 Werte zurück: Speicher gesamt und Speicher belegt. Mal ein Beispiel vom MR401:
{"content":{"Command":"memoryqueryresult","UsedMemory":93967424,"TotolMemory":488385560}}
Und dann geht die Rechnerei los, n bissl hab ichs gekürzt und z.B. Übersetzungen oder den Grenzfall weniger als 1h entfernt. Wer es genau wissen will macht in den Developer Tools die …appmain.js auf und sucht nach „e.usedText_media(o)“ und sollte in diesem Absatz rauskommen.
var i = Number(t.UsedMemory, 10),
n = Number(t.TotolMemory, 10),
a = n - i,
o = 1024 * i / 462.5 / 3600;
o = Math.ceil(o),
e.usedText_media(o),
var s = 1024 * a / 462.5 / 3600;
e.availableSpace_media(s),
So und dann übersetze ich das mal so gut es geht
in i steht der belegte Speicher, in n der gesamte Speicherplatz und in a der freie Speicherplatz (n-i). o und s sind dann die Werte in Stunden.
Dann wird der belegte Speicher in Stunden berechnet wie folgt:
1024 * <belegter Speicher>(MB) / 462.5(KB/s) / 3600(s/h)
Zur „Einheitenprobe“ hab ich mal die Einheiten dazu geschrieben.
D.h. die App macht aus den MB erstmal KB, teilt das durch eine angenommene durchschnittliche Bitrate von 462,5KB/s (also 3,7MBit/s) und teilt das dann durch 3600 um auf einen Stundenwert zu kommen. Dann kürzen sich KB und 1024*MB (=KB) sowie s raus und h bleibt stehen.
So und wenn jetzt der Wert von der STB in KB kommt, kürzt sich KB direkt raus und das 1024 bleibt stehen, also muss man das „*1024“ wieder rückgängig machen, weil der Wert sonst einfach um den Faktor 1024 zu groß ist.
Danach das gleiche für den verfügbaren Speicher.
Hab ich mein ich vor Monaten schonmal gemacht. Muss mal wieder nachfragen was daraus geworden ist.