Physikalische Lesekopfposition eines DVD-Laufwerks ermitteln
Verfasst: 22.06.2017 00:53
Moin!
Habe ein einfaches Leseprogramm, das Daten von verkratzten DVDs einliest.
Datei öffnen geht mit z.B.
ganz regulär. Auch Positionieren läuft mit FileSeek() und Lesen mit ReadData() ganz gut.
Leider benötige ich jetzt die physikalische LASER-Position als Radius zum Scheibenmittelpunkt an der aktuellen Lesestelle einer Datei, um an dieser Stelle ggf. polieren zu können. Da ich nicht davon ausgehen darf, daß die Dateien auf der Scheibe alphabetisch angeordnet sind (habe etliche in „analphabetical order“), kann ich die Rechnerei über Durchmesser relativ zum Gesamtdatenvolumen der Scheibe usw. gleich wieder vergessen.
GNU/Linux hält Infos in etlichen Dateien wie /proc/cpuinfo usw. bereit, aber hier stehe ich wie der Ochs’ vorm Berg. Vielleicht geht es eleganter über die Linux-API, aber auch hier bin ich überfragt. Die Linux-API-Doku von Omi schweigt sich zu IO-Themen leider noch aus. Vollversion von PB ist vorhanden.
Weiß jemand von Euch, wie es am besten geht? Die Foren-Suche habe ich selbstverständlich bemüht, doch keine Lowlewel-Programmierung für Datei-IO auf GNU gefunden. Jeder Schubs in die richtige Richtung ist willkommen.
Danke vorerst!
Domino
____
Edit 2017-06-22 01:20 GMT:
Ein paar Infos habe ich aufgetan: ioctl() mit Kommando CDROMSUBCHNL könnte helfen, da es eine Struktur cdrom_subchnl zurückgibt und darin das Feld cdsc_trk möglicherweise die Sektornummer des LASERs enthält. Das ist zwar vage, aber sicherlich eine Überprüfung wert. Leider weiß ich immer noch nicht, wie ich die Aufrufe von PB aus anstoße. Jetzt erstmal heia machen.
Habe ein einfaches Leseprogramm, das Daten von verkratzten DVDs einliest.
Datei öffnen geht mit z.B.
Code: Alles auswählen
OpenFile(#PB_Any, "/media/domino/Filme/VIDEO_TS/VTS_01_2.VOB")
Leider benötige ich jetzt die physikalische LASER-Position als Radius zum Scheibenmittelpunkt an der aktuellen Lesestelle einer Datei, um an dieser Stelle ggf. polieren zu können. Da ich nicht davon ausgehen darf, daß die Dateien auf der Scheibe alphabetisch angeordnet sind (habe etliche in „analphabetical order“), kann ich die Rechnerei über Durchmesser relativ zum Gesamtdatenvolumen der Scheibe usw. gleich wieder vergessen.
GNU/Linux hält Infos in etlichen Dateien wie /proc/cpuinfo usw. bereit, aber hier stehe ich wie der Ochs’ vorm Berg. Vielleicht geht es eleganter über die Linux-API, aber auch hier bin ich überfragt. Die Linux-API-Doku von Omi schweigt sich zu IO-Themen leider noch aus. Vollversion von PB ist vorhanden.
Weiß jemand von Euch, wie es am besten geht? Die Foren-Suche habe ich selbstverständlich bemüht, doch keine Lowlewel-Programmierung für Datei-IO auf GNU gefunden. Jeder Schubs in die richtige Richtung ist willkommen.
Danke vorerst!
Domino
____
Edit 2017-06-22 01:20 GMT:
Ein paar Infos habe ich aufgetan: ioctl() mit Kommando CDROMSUBCHNL könnte helfen, da es eine Struktur cdrom_subchnl zurückgibt und darin das Feld cdsc_trk möglicherweise die Sektornummer des LASERs enthält. Das ist zwar vage, aber sicherlich eine Überprüfung wert. Leider weiß ich immer noch nicht, wie ich die Aufrufe von PB aus anstoße. Jetzt erstmal heia machen.