Skip to content

Commit 991a2b5

Browse files
authored
Fix seeking issue
fix a seeking issue added in a recent update
1 parent d2021a6 commit 991a2b5

File tree

1 file changed

+64
-57
lines changed

1 file changed

+64
-57
lines changed

src/fl2k_file.c

Lines changed: 64 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,6 +1286,67 @@ int main(int argc, char **argv)
12861286
signal_gain_b = 1;
12871287
ire_b = 0;
12881288
}
1289+
1290+
if(red == 1)
1291+
{
1292+
if(!strcmp(get_filename_ext(filename_r),"tbc")){r16 = 1;r_sign = 0;tbcR = 1;}
1293+
else if(!strcmp(get_filename_ext(filename_r),"s8")){r16 = 0;r_sign = 1;}
1294+
else if(!strcmp(get_filename_ext(filename_r),"u8")){r16 = 0;r_sign = 0;}
1295+
else if(!strcmp(get_filename_ext(filename_r),"s16")){r16 = 1;r_sign = 1;}
1296+
else if(!strcmp(get_filename_ext(filename_r),"u16")){r16 = 1;r_sign = 0;}
1297+
else if(!strcmp(get_filename_ext(filename_r),"wav")){r16 = 1;r_sign = 1;}
1298+
else if(!strcmp(get_filename_ext(filename_r),"pcm")){r16 = 1;r_sign = 1;}
1299+
else if(!strcmp(get_filename_ext(filename_r),"efm")){r16 = 0;r_sign = 0;}
1300+
else if(!strcmp(get_filename_ext(filename_r),"raw")){r16 = 1;r_sign = 1;}
1301+
else if(!strcmp(get_filename_ext(filename_r),"r8")){r16 = 0;r_sign = 0;}
1302+
else if(!strcmp(get_filename_ext(filename_r),"r16")){r16 = 1;r_sign = 0;}
1303+
//else if(!strcmp(get_filename_ext(filename_r),"cds")){r16 = 1;r_sign = 0;}//10 bit packed
1304+
}
1305+
if(green == 1)
1306+
{
1307+
if(!strcmp(get_filename_ext(filename_g),"tbc")){g16 = 1;g_sign = 0;tbcG = 1;}
1308+
else if(!strcmp(get_filename_ext(filename_g),"s8")){g16 = 0;g_sign = 1;}
1309+
else if(!strcmp(get_filename_ext(filename_g),"u8")){g16 = 0;g_sign = 0;}
1310+
else if(!strcmp(get_filename_ext(filename_g),"s16")){g16 = 1;g_sign = 1;}
1311+
else if(!strcmp(get_filename_ext(filename_g),"u16")){g16 = 1;g_sign = 0;}
1312+
else if(!strcmp(get_filename_ext(filename_g),"wav")){g16 = 1;g_sign = 1;}
1313+
else if(!strcmp(get_filename_ext(filename_g),"pcm")){g16 = 1;g_sign = 1;}
1314+
else if(!strcmp(get_filename_ext(filename_g),"efm")){g16 = 0;g_sign = 0;}
1315+
else if(!strcmp(get_filename_ext(filename_g),"raw")){g16 = 1;g_sign = 1;}
1316+
else if(!strcmp(get_filename_ext(filename_g),"r8")){g16 = 0;g_sign = 0;}
1317+
else if(!strcmp(get_filename_ext(filename_g),"r16")){g16 = 1;g_sign = 0;}
1318+
//else if(!strcmp(get_filename_ext(filename_g),"cds")){g16 = 1;g_sign = 0;}
1319+
}
1320+
if(blue == 1)
1321+
{
1322+
if(!strcmp(get_filename_ext(filename_b),"tbc")){b16 = 1;b_sign = 0;tbcB = 1;}
1323+
else if(!strcmp(get_filename_ext(filename_b),"s8")){b16 = 0;b_sign = 1;}
1324+
else if(!strcmp(get_filename_ext(filename_b),"u8")){b16 = 0;b_sign = 0;}
1325+
else if(!strcmp(get_filename_ext(filename_b),"s16")){b16 = 1;b_sign = 1;}
1326+
else if(!strcmp(get_filename_ext(filename_b),"u16")){b16 = 1;b_sign = 0;}
1327+
else if(!strcmp(get_filename_ext(filename_b),"wav")){b16 = 1;b_sign = 1;}
1328+
else if(!strcmp(get_filename_ext(filename_b),"pcm")){b16 = 1;b_sign = 1;}
1329+
else if(!strcmp(get_filename_ext(filename_b),"efm")){b16 = 0;b_sign = 0;}
1330+
else if(!strcmp(get_filename_ext(filename_b),"raw")){b16 = 1;b_sign = 1;}
1331+
else if(!strcmp(get_filename_ext(filename_b),"r8")){b16 = 0;b_sign = 0;}
1332+
else if(!strcmp(get_filename_ext(filename_b),"r16")){b16 = 1;b_sign = 0;}
1333+
//else if(!strcmp(get_filename_ext(filename_b),"cds")){b16 = 1;b_sign = 0;}
1334+
}
1335+
1336+
//16bit override
1337+
if(override_r16 != -1){r16 = override_r16;}
1338+
if(override_g16 != -1){g16 = override_g16;}
1339+
if(override_b16 != -1){b16 = override_b16;}
1340+
1341+
//tbc override
1342+
if(override_tbc_r != -1){tbcR = override_tbc_r;}
1343+
if(override_tbc_g != -1){tbcG = override_tbc_g;}
1344+
if(override_tbc_b != -1){tbcB = override_tbc_b;}
1345+
1346+
//sign override
1347+
if(override_r_sign != -1){r_sign = override_r_sign;}
1348+
if(override_g_sign != -1){g_sign = override_g_sign;}
1349+
if(override_b_sign != -1){b_sign = override_b_sign;}
12891350

12901351
if(samp_rate == 17734475 || samp_rate == 17735845)//PAL
12911352
{
@@ -1304,7 +1365,7 @@ int main(int argc, char **argv)
13041365
video_standard = 'N';
13051366
}
13061367

1307-
//RED
1368+
//RED file
13081369
if(red == 1)
13091370
{
13101371
if (strcmp(filename_r, "-") == 0)/* Read samples from stdin */
@@ -1322,19 +1383,6 @@ if(red == 1)
13221383
{
13231384
FSEEK(file_r,start_r,0);
13241385
}
1325-
1326-
if(!strcmp(get_filename_ext(filename_r),"tbc")){r16 = 1;r_sign = 0;tbcR = 1;}
1327-
else if(!strcmp(get_filename_ext(filename_r),"s8")){r16 = 0;r_sign = 1;}
1328-
else if(!strcmp(get_filename_ext(filename_r),"u8")){r16 = 0;r_sign = 0;}
1329-
else if(!strcmp(get_filename_ext(filename_r),"s16")){r16 = 1;r_sign = 1;}
1330-
else if(!strcmp(get_filename_ext(filename_r),"u16")){r16 = 1;r_sign = 0;}
1331-
else if(!strcmp(get_filename_ext(filename_r),"wav")){r16 = 1;r_sign = 1;}
1332-
else if(!strcmp(get_filename_ext(filename_r),"pcm")){r16 = 1;r_sign = 1;}
1333-
else if(!strcmp(get_filename_ext(filename_r),"efm")){r16 = 0;r_sign = 0;}
1334-
else if(!strcmp(get_filename_ext(filename_r),"raw")){r16 = 1;r_sign = 1;}
1335-
else if(!strcmp(get_filename_ext(filename_r),"r8")){r16 = 0;r_sign = 0;}
1336-
else if(!strcmp(get_filename_ext(filename_r),"r16")){r16 = 1;r_sign = 0;}
1337-
//else if(!strcmp(get_filename_ext(filename_r),"cds")){r16 = 1;r_sign = 0;}//10 bit packed
13381386
}
13391387

13401388
txbuf_r = malloc(FL2K_BUF_LEN);
@@ -1364,7 +1412,7 @@ if(red2 == 1)
13641412
}
13651413
}
13661414

1367-
//GREEN
1415+
//GREEN file
13681416
if(green == 1)
13691417
{
13701418
if (strcmp(filename_g, "-") == 0)/* Read samples from stdin */
@@ -1389,19 +1437,6 @@ if(green == 1)
13891437
fprintf(stderr, "(GREEN) : malloc error!\n");
13901438
goto out;
13911439
}
1392-
1393-
if(!strcmp(get_filename_ext(filename_g),"tbc")){g16 = 1;g_sign = 0;tbcG = 1;}
1394-
else if(!strcmp(get_filename_ext(filename_g),"s8")){g16 = 0;g_sign = 1;}
1395-
else if(!strcmp(get_filename_ext(filename_g),"u8")){g16 = 0;g_sign = 0;}
1396-
else if(!strcmp(get_filename_ext(filename_g),"s16")){g16 = 1;g_sign = 1;}
1397-
else if(!strcmp(get_filename_ext(filename_g),"u16")){g16 = 1;g_sign = 0;}
1398-
else if(!strcmp(get_filename_ext(filename_g),"wav")){g16 = 1;g_sign = 1;}
1399-
else if(!strcmp(get_filename_ext(filename_g),"pcm")){g16 = 1;g_sign = 1;}
1400-
else if(!strcmp(get_filename_ext(filename_g),"efm")){g16 = 0;g_sign = 0;}
1401-
else if(!strcmp(get_filename_ext(filename_g),"raw")){g16 = 1;g_sign = 1;}
1402-
else if(!strcmp(get_filename_ext(filename_g),"r8")){g16 = 0;g_sign = 0;}
1403-
else if(!strcmp(get_filename_ext(filename_g),"r16")){g16 = 1;g_sign = 0;}
1404-
//else if(!strcmp(get_filename_ext(filename_g),"cds")){g16 = 1;g_sign = 0;}
14051440
}
14061441

14071442
if(green2 == 1)
@@ -1424,7 +1459,7 @@ if(green2 == 1)
14241459
}
14251460
}
14261461

1427-
//BLUE
1462+
//BLUE file
14281463
if(blue == 1)
14291464
{
14301465
if (strcmp(filename_b, "-") == 0)/* Read samples from stdin */
@@ -1449,19 +1484,6 @@ if(blue == 1)
14491484
fprintf(stderr, "(BLUE) : malloc error!\n");
14501485
goto out;
14511486
}
1452-
1453-
if(!strcmp(get_filename_ext(filename_b),"tbc")){b16 = 1;b_sign = 0;tbcB = 1;}
1454-
else if(!strcmp(get_filename_ext(filename_b),"s8")){b16 = 0;b_sign = 1;}
1455-
else if(!strcmp(get_filename_ext(filename_b),"u8")){b16 = 0;b_sign = 0;}
1456-
else if(!strcmp(get_filename_ext(filename_b),"s16")){b16 = 1;b_sign = 1;}
1457-
else if(!strcmp(get_filename_ext(filename_b),"u16")){b16 = 1;b_sign = 0;}
1458-
else if(!strcmp(get_filename_ext(filename_b),"wav")){b16 = 1;b_sign = 1;}
1459-
else if(!strcmp(get_filename_ext(filename_b),"pcm")){b16 = 1;b_sign = 1;}
1460-
else if(!strcmp(get_filename_ext(filename_b),"efm")){b16 = 0;b_sign = 0;}
1461-
else if(!strcmp(get_filename_ext(filename_b),"raw")){b16 = 1;b_sign = 1;}
1462-
else if(!strcmp(get_filename_ext(filename_b),"r8")){b16 = 0;b_sign = 0;}
1463-
else if(!strcmp(get_filename_ext(filename_b),"r16")){b16 = 1;b_sign = 0;}
1464-
//else if(!strcmp(get_filename_ext(filename_b),"cds")){b16 = 1;b_sign = 0;}
14651487
}
14661488

14671489
if(blue2 == 1)
@@ -1504,21 +1526,6 @@ if(audio == 1)
15041526
}
15051527
}
15061528

1507-
//16bit override
1508-
if(override_r16 != -1){r16 = override_r16;}
1509-
if(override_g16 != -1){g16 = override_g16;}
1510-
if(override_b16 != -1){b16 = override_b16;}
1511-
1512-
//tbc override
1513-
if(override_tbc_r != -1){tbcR = override_tbc_r;}
1514-
if(override_tbc_g != -1){tbcG = override_tbc_g;}
1515-
if(override_tbc_b != -1){tbcB = override_tbc_b;}
1516-
1517-
//sign override
1518-
if(override_r_sign != -1){r_sign = override_r_sign;}
1519-
if(override_g_sign != -1){g_sign = override_g_sign;}
1520-
if(override_b_sign != -1){b_sign = override_b_sign;}
1521-
15221529
//next
15231530

15241531
fl2k_open(&dev, (uint32_t)dev_index);

0 commit comments

Comments
 (0)