And fix it for IOCTL as well.
This commit is contained in:
@@ -315,21 +315,44 @@ ioctl_get_track_info(const void *local, const uint32_t track,
|
|||||||
const raw_track_info_t *rti = (const raw_track_info_t *) ioctl->cur_rti;
|
const raw_track_info_t *rti = (const raw_track_info_t *) ioctl->cur_rti;
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
int trk = -1;
|
int trk = -1;
|
||||||
|
int next = -1;
|
||||||
|
|
||||||
if ((track >= 1) && (track < 99))
|
if ((track >= 1) && (track < 99)) {
|
||||||
for (int i = 0; i < ioctl->blocks_num; i++)
|
for (int i = 0; i < ioctl->blocks_num; i++)
|
||||||
if (rti[i].point == track) {
|
if (rti[i].point == track) {
|
||||||
trk = i;
|
trk = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((track >= 1) && (track < 98))
|
||||||
|
for (int i = 0; i < ioctl->blocks_num; i++)
|
||||||
|
if ((rti[i].point == (track + 1)) && (rti[i].session == rti[trk].session)) {
|
||||||
|
next = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((track >= 1) && (track < 99) && (trk != -1) && (next == -1))
|
||||||
|
for (int i = 0; i < ioctl->blocks_num; i++)
|
||||||
|
if ((rti[i].point == 0xa2) && (rti[i].session == rti[trk].session)) {
|
||||||
|
next = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if ((track == 0xaa) || (trk == -1)) {
|
if ((track == 0xaa) || (trk == -1)) {
|
||||||
ioctl_log(ioctl->log, "ioctl_get_track_info(%02i)\n", track);
|
ioctl_log(ioctl->log, "ioctl_get_track_info(%02i)\n", track);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
} else {
|
} else {
|
||||||
ti->m = rti[trk].pm;
|
if (end) {
|
||||||
ti->s = rti[trk].ps;
|
if (next != -1) {
|
||||||
ti->f = rti[trk].pf;
|
ti->m = rti[next].pm;
|
||||||
|
ti->s = rti[next].ps;
|
||||||
|
ti->f = rti[next].pf;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ti->m = rti[trk].pm;
|
||||||
|
ti->s = rti[trk].ps;
|
||||||
|
ti->f = rti[trk].pf;
|
||||||
|
}
|
||||||
|
|
||||||
ti->number = rti[trk].point;
|
ti->number = rti[trk].point;
|
||||||
ti->attr = rti[trk].adr_ctl;
|
ti->attr = rti[trk].adr_ctl;
|
||||||
|
|||||||
Reference in New Issue
Block a user