Ich habe einen Eigenbau MP3 Player mit grafischem Display und externem Speicher (1MB). Möchte über das grafische Display Ordnerstrukturen anzeigen lassen nur fehlt mir die Idee wie ich so etwas effizient machen kann. Derzeit lese ich alle FAT Einträge beim "Abtauchen" in einen Ordner aus und speicher Dateigröße, Startcluster und Dateiname im externen SRAM. Wenn ich jetzt im ausgelesenen Ordner herumscrolle aktualisiere ich ständig die Datein bzw. Ordner am Display. Tauche ich wieder in einen anderen Ordner ab, werden die gespeicherten Einträge im SRAM mit den neuen überschrieben. Die Methode ist aber extrem lahm, denn taucht man in einen Ordner mit vielen Datein ab, dann dauert das entsprechend lange bis man alle Einträge verarbeitet hat. Abgesehen davon geht irgendwann auch der Speicher aus. Wie macht ihr das? Wie habt ihr das mit der Ausgabe der Ordnerstrukturen gelöst?
speicher nur die infos im ram, die du gerade anzeigen bzw. verarbeiten willst...
Aber schlussendlich brauch ich ja alle Informationen aller Lieder auf der Festplatte, zumindest wieviele Lieder es gibt und welchen Startcluster die haben. Wenn ich im Shuffle Modus erst wieder beim Rootdirectory anfangen muss und mich bis zu einer gewünschten Datei durchwühlen muss, dann dauert so was ja lange oder nicht? Dasselbe trifft doch auch zu, wenn ich durch die Ordner "browse". Ich muss wieder die gesamte FAT Tabelle auslesen bis ich zu der nächsten Datei im Browser gelange und von dieser dann Dateilänge, Name... auslese.
RK-NK wrote: > Aber schlussendlich brauch ich ja alle Informationen aller Lieder auf > der Festplatte, zumindest wieviele Lieder es gibt und welchen > Startcluster die haben. Wenn ich im Shuffle Modus erst wieder beim > Rootdirectory anfangen muss und mich bis zu einer gewünschten Datei > durchwühlen muss, dann dauert so was ja lange oder nicht? > Dasselbe trifft doch auch zu, wenn ich durch die Ordner "browse". Ich > muss wieder die gesamte FAT Tabelle auslesen bis ich zu der nächsten > Datei im Browser gelange und von dieser dann Dateilänge, Name... > auslese. Ja das musst du. Die Frage ist nur, wie du das mit der Anzeige ineinander verzahnst. Das ganze nennt sich 'lazy evaluation': Wenn eine Information 'teuer' zu beschaffen ist, dann besorge sie erst dann, wenn du sie wirklich brauchst. In deinem Fall: Erst dann wenn ein Eintrag in dein Display hineingescrollt wird, wird er auch tatsächlich vom Directory ausgelesen. Gewisse Dinge, wie zb. eine notwendige Sortierung der Einträge können dir da einen Strich durch die Rechnung machen. Aber letztendlich kann niemand zaubern: Wenn du alle Einträge gleichzeitig brauchst, dann musst du auch alle Einträge lesen. Allerdings: Für den Shuffle Modus musst du ja nicht alle Einträge im Detail kennen. Du musst nur wissen wieviele es sind. Deine 'Shuffle Liste' besteht dann nur aus einer Zahlenliste in der steht, welches Lied (welche Nr) als nöchstes kommt. Wenn du dann das Lied anspielst, holst du zuerst den zugehörigen Directory Eintrag und zeigst ihn an (lazy Evaluation).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.