diff -Nru qpxtool-0.6/ChangeLog qpxtool-current/ChangeLog --- qpxtool-0.6/ChangeLog 2006-08-25 21:28:53.000000000 +0400 +++ qpxtool-current/ChangeLog 2006-09-05 22:17:14.000000000 +0400 @@ -1,6 +1,11 @@ QPxTool History *********************************************** +** 0.6.1 (2006-09-00) + + - + +*********************************************** ** 0.6.0 (2006-08-25) - scons is used to compile stuff diff -Nru qpxtool-0.6/Makefile qpxtool-current/Makefile --- qpxtool-0.6/Makefile 2006-08-20 23:18:23.000000000 +0400 +++ qpxtool-current/Makefile 2006-08-29 00:31:28.000000000 +0400 @@ -6,6 +6,7 @@ install: scons install + ./makesuid install-lib: scons install-lib diff -Nru qpxtool-0.6/lib/qpxscan/include/plextor_qcheck.h qpxtool-current/lib/qpxscan/include/plextor_qcheck.h --- qpxtool-0.6/lib/qpxscan/include/plextor_qcheck.h 2006-07-18 14:11:34.000000000 +0400 +++ qpxtool-current/lib/qpxscan/include/plextor_qcheck.h 2006-09-05 22:23:57.000000000 +0400 @@ -18,7 +18,7 @@ extern int plextor_end_scan(drive_info* drive); extern int plextor_start_fete(drive_info* drive); -extern int plextor_end_fete(drive_info* drive); extern int plextor_read_fete(drive_info* drive); +extern int plextor_end_fete(drive_info* drive); #endif //__CHECK_PLEXTOR_ diff -Nru qpxtool-0.6/lib/qpxscan/include/scan_pointers.h qpxtool-current/lib/qpxscan/include/scan_pointers.h --- qpxtool-0.6/lib/qpxscan/include/scan_pointers.h 2006-08-10 23:34:34.000000000 +0400 +++ qpxtool-current/lib/qpxscan/include/scan_pointers.h 2006-09-05 22:28:21.000000000 +0400 @@ -9,6 +9,9 @@ * See the file "COPYING" for the exact licensing terms. */ +#define SCAN_BLOCK_DONE 0 +#define SCAN_BLOCK_FAIL 1 +#define SCAN_BLOCK_LAST 2 #ifndef __SCAN_POINTERS_ #define __SCAN_POINTERS_ diff -Nru qpxtool-0.6/lib/qpxscan/media_check_nec.cpp qpxtool-current/lib/qpxscan/media_check_nec.cpp --- qpxtool-0.6/lib/qpxscan/media_check_nec.cpp 2006-08-25 20:13:33.000000000 +0400 +++ qpxtool-current/lib/qpxscan/media_check_nec.cpp 2006-09-05 22:28:05.000000000 +0400 @@ -88,7 +88,9 @@ drive->cmd[0] = 0xF3; drive->cmd[1] = 0x03; if ((drive->err=drive->cmd.transport(READ,drive->rd_buf,8))){ - sperror ("nec_cx_do_one_interval",drive->err); return 1; + sperror ("nec_cx_do_one_interval",drive->err); + if (drive->err == 0x30200) return SCAN_BLOCK_LAST; + else return SCAN_BLOCK_FAIL; } *BLER = swap2(drive->rd_buf+4); *E11 = 0; @@ -99,7 +101,7 @@ *E32 = 0; // *lba+=75; *lba=((int)drive->rd_buf[1] * 4500 + (int)drive->rd_buf[2] * 75 + (int)drive->rd_buf[3]); - return 0; + return SCAN_BLOCK_DONE; } int nec_pie_do_eight_ecc_blocks(drive_info* drive, int* lba, int* pie, int* pof) @@ -108,17 +110,15 @@ drive->cmd[0] = 0xF3; drive->cmd[1] = 0x03; if ((drive->err=drive->cmd.transport(READ,drive->rd_buf,8))){ - sperror ("nec_pie_do_one_interval",drive->err); return 1; + sperror ("nec_pie_do_one_interval",drive->err); + if (drive->err == 0x30200) return SCAN_BLOCK_LAST; + else return SCAN_BLOCK_FAIL; } *pie = swap2(drive->rd_buf+4); *pof = 0; -// *pif = swap2(drive->rd_buf+6); - -// *lba=(((int)drive->rd_buf[0] << 24) & 0xFF000000) + (((int)drive->rd_buf[1] << 16) & 0xFF0000) + -// (((int)drive->rd_buf[2] << 8) & 0xFF00) + (((int)drive->rd_buf[3]) & 0xFF); -// *lba=swap4(drive->rd_buf); - *lba+=0x80; - return 0; + *lba=swap4(drive->rd_buf); +// *lba+=0x80; + return SCAN_BLOCK_DONE; } int nec_pif_do_one_ecc_block(drive_info* drive, int* lba, int* pif) @@ -127,16 +127,14 @@ drive->cmd[0] = 0xF3; drive->cmd[1] = 0x03; if ((drive->err=drive->cmd.transport(READ,drive->rd_buf,8))){ - sperror ("nec_pif_do_one_interval",drive->err); return 1; + sperror ("nec_pif_do_one_interval",drive->err); + if (drive->err == 0x30200) return SCAN_BLOCK_LAST; + else return SCAN_BLOCK_FAIL; } -// *pie = swap2(drive->rd_buf+4); *pif = swap2(drive->rd_buf+6); -// *lba+=75; -// *lba=(((int)drive->rd_buf[0] << 24) & 0xFF000000) + (((int)drive->rd_buf[1] << 16) & 0xFF0000) + -// (((int)drive->rd_buf[2] << 8) & 0xFF00) + (((int)drive->rd_buf[3]) & 0xFF); -// *lba=swap4(drive->rd_buf); - *lba+=0x10; - return 0; + *lba=swap4(drive->rd_buf); +// *lba+=0x10; + return SCAN_BLOCK_DONE; } // ************* END SCAN COMMAND ********* diff -Nru qpxtool-0.6/qpxtool/QPxTool.cpp qpxtool-current/qpxtool/QPxTool.cpp --- qpxtool-0.6/qpxtool/QPxTool.cpp 2006-08-25 22:18:42.000000000 +0400 +++ qpxtool-current/qpxtool/QPxTool.cpp 2006-09-05 22:42:44.000000000 +0400 @@ -1565,8 +1565,8 @@ if (drive->plextor_silent.access_speed == SILENT_ACCESS_SLOW) access=1; eject=drive->plextor_silent.eject_speed; load=drive->plextor_silent.load_speed; - combo_silent_cd_rd->setEnabled(!drive->media.disc_type & DISC_DVD); - combo_silent_cd_wr->setEnabled(!drive->media.disc_type & DISC_DVD); + combo_silent_cd_rd->setEnabled(!(drive->media.disc_type & DISC_DVD)); + combo_silent_cd_wr->setEnabled(!(drive->media.disc_type & DISC_DVD)); combo_silent_dvd_rd->setEnabled((drive->media.disc_type & DISC_DVD)); combo_silent_dvd_wr->setEnabled((drive->media.disc_type & DISC_DVD)); @@ -2269,8 +2269,8 @@ thread->set_drive(drive); #ifdef __USE_QTHREAD -// thread->start(QThread::NormalPriority); - thread->start(QThread::HighPriority); +// thread->start(QThread::HighPriority); + thread->start(QThread::TimeCriticalPriority); thread_time->start(QThread::NormalPriority); #else pthread_create(drive->test_thread_id, NULL, scan, (void*)thread); @@ -3209,24 +3209,24 @@ { fprintf(html,"\t\t\t\n"); if (drive->media.disc_type & DISC_CD) { - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n"); } else { - fprintf(html,"\t\t\t\t\n"); - fprintf(html,"\t\t\t\t\n",drive->media.layers+1); - fprintf(html,"\t\t\t\t\n",(drive->media.layers+1)*2); - fprintf(html,"\t\t\t\t\n",(drive->media.layers+1)*3); - fprintf(html,"\t\t\t\t\n",(drive->media.layers+1)*4); - fprintf(html,"\t\t\t\t\n",(drive->media.layers+1)*5); + fprintf(html,"\t\t\t\t\n"); + fprintf(html,"\t\t\t\t\n",drive->media.layers+1); + fprintf(html,"\t\t\t\t\n",(drive->media.layers+1)*2); + fprintf(html,"\t\t\t\t\n",(drive->media.layers+1)*3); + fprintf(html,"\t\t\t\t\n",(drive->media.layers+1)*4); + fprintf(html,"\t\t\t\t\n",(drive->media.layers+1)*5); } fprintf(html,"\t\t\t
102030405060708090100102030405060708090100%dG%dG%dG%dG%dG%dG%dG%dG%dG%dG

\n"); } @@ -3234,7 +3234,7 @@ void QPxToolWidget::generate_result_html_ex_tbl1(FILE *html) { fprintf(html,"\t\n\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\n"); fprintf(html,"\t\n"); fprintf(html,"\t\t\n"); @@ -3280,8 +3280,8 @@ fprintf(html,"\t\t\n\t\t\t\n\t\t\t\n\t\t\n", line_disc_info->text().data()); fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\t\n"); - fprintf(html,"\t\t\t\n", + fprintf(html,"\t\t\t\n"); + fprintf(html,"\t\t\t\n", text_vendor->text().data(), text_model->text().data(), text_fw->text().data(), @@ -3291,7 +3291,7 @@ fprintf(html,"\t\n"); fprintf(html,"\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\n"); fprintf(html,"\t\t\t
1000
\n"); fprintf(html,"\t\t\t
\n"); @@ -3245,13 +3245,13 @@ fprintf(html,"\t\t\t
1
\n"); fprintf(html,"\t\t
\n"); fprintf(html,"\t\t
\n"); + fprintf(html,"\t\t\n"); } void QPxToolWidget::generate_result_html_ex_tbl2(FILE *html) { fprintf(html,"\t\t
\n\t\t
Disc label:%s
Scaned on:%s %s %s @%sScaned on:%s %s %s @%s
\n"); fprintf(html,"\t\n"); - fprintf(html,"\t\t\n", + fprintf(html,"\t\t\n", text_tla->text().data(), text_serial->text().data()); if (drive->media.disc_type & DISC_CD) { @@ -3317,7 +3317,7 @@ if (tests & CHK_RD) { fprintf(html,"\t
Transfer rate

\n"); fprintf(html,"\t
TLA# %s, S/N: %s
TLA# %s, S/N: %s
\n\t\n"); - fprintf(html,"\t\t\n\t\t\n\t\t\n"); - fprintf(html,"\t\t\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\n"); fprintf(html,"\t\n"); fprintf(html,"\t\t\n"); @@ -3369,7 +3369,7 @@ if ((tests & CHK_CX) && (drive->media.disc_type & DISC_CD)) { fprintf(html,"\t

C1/C2/CU scan

\n"); fprintf(html,"\t
\n"); + fprintf(html,"\t\t\n"); if (drive->media.disc_type & DISC_CD) { fprintf(html,"\t\t\t
60x
\n"); @@ -3336,12 +3336,12 @@ } fprintf(html,"\t\t\t
\n"); - fprintf(html,"\t\t\n
"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\"Transfer\n", png_name_rd.data()); fprintf(html,"\t\t
\n\t\t
\n\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\n"); fprintf(html,"\t\n"); fprintf(html,"\t\t\n"); @@ -3419,14 +3419,14 @@ fprintf(html,"\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\n"); fprintf(html,"\t\t\t
1000
\n"); fprintf(html,"\t\t\t
\n"); @@ -3380,11 +3380,11 @@ fprintf(html,"\t\t\t
1
\n"); fprintf(html,"\t\t
\n"); fprintf(html,"\t\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\t\"C1/C2/CU\"\n", png_name_cx.data()); fprintf(html,"\t\t
\n\t\t
\n"); fprintf(html,"\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\t\n", Exx.color[0]); - fprintf(html,"\t\t\t\n", Exx.color[1]); - fprintf(html,"\t\t\t\n", Exx.color[2]); - fprintf(html,"\t\t\t\n", Exx.color[3]); - fprintf(html,"\t\t\t\n", Exx.color[4]); - fprintf(html,"\t\t\t\n", Exx.color[5]); - fprintf(html,"\t\t\t\n", Exx.color[6]); + fprintf(html,"\t\t\n"); + fprintf(html,"\t\t\t\n", Exx.color[0]); + fprintf(html,"\t\t\t\n", Exx.color[1]); + fprintf(html,"\t\t\t\n", Exx.color[2]); + fprintf(html,"\t\t\t\n", Exx.color[3]); + fprintf(html,"\t\t\t\n", Exx.color[4]); + fprintf(html,"\t\t\t\n", Exx.color[5]); + fprintf(html,"\t\t\t\n", Exx.color[6]); // ****** Total: fprintf(html,"\t\t\n\t\t\t\n"); fprintf(html,"\t\t\t\n", Exx.tot[0]); @@ -3522,7 +3522,7 @@ fprintf(html,"\t
BLERE11E21E31E12E22E32
BLERE11E21E31E12E22E32
Total:%d
\n\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\n"); fprintf(html,"\t\n"); fprintf(html,"\t\t\n"); @@ -3600,51 +3600,51 @@ fprintf(html,"\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\n"); fprintf(html,"\t\t\t
1000
\n"); fprintf(html,"\t\t\t
\n"); @@ -3533,11 +3533,11 @@ fprintf(html,"\t\t\t
1
\n"); fprintf(html,"\t\t
\n"); fprintf(html,"\t\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\"PIE/PIF\"\n", png_name_cx.data()); fprintf(html,"\t\t
\n\t\t
\n\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n"); @@ -3661,17 +3661,17 @@ fprintf(html,"\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\n", color_beta); fprintf(html,"\t\t\t
\n"); - fprintf(html,"\t\t\t
+7%
\n"); - fprintf(html,"\t\t\t
+6%
\n"); - fprintf(html,"\t\t\t
+5%
\n"); - fprintf(html,"\t\t\t
+4%
\n"); - fprintf(html,"\t\t\t
+3%
\n"); - fprintf(html,"\t\t\t
+2%
\n"); - fprintf(html,"\t\t\t
+1%
\n"); - fprintf(html,"\t\t\t
0%
\n"); - fprintf(html,"\t\t\t
-1%
\n"); - fprintf(html,"\t\t\t
-2%
\n"); - fprintf(html,"\t\t\t
-3%
\n"); - fprintf(html,"\t\t\t
-4%
\n"); - fprintf(html,"\t\t\t
-5%
\n"); - fprintf(html,"\t\t\t
-6%
\n"); - fprintf(html,"\t\t\t
-7%
\n"); + fprintf(html,"\t\t\t
+7%%
\n"); + fprintf(html,"\t\t\t
+6%%
\n"); + fprintf(html,"\t\t\t
+5%%
\n"); + fprintf(html,"\t\t\t
+4%%
\n"); + fprintf(html,"\t\t\t
+3%%
\n"); + fprintf(html,"\t\t\t
+2%%
\n"); + fprintf(html,"\t\t\t
+1%%
\n"); + fprintf(html,"\t\t\t
0%%
\n"); + fprintf(html,"\t\t\t
-1%%
\n"); + fprintf(html,"\t\t\t
-2%%
\n"); + fprintf(html,"\t\t\t
-3%%
\n"); + fprintf(html,"\t\t\t
-4%%
\n"); + fprintf(html,"\t\t\t
-5%%
\n"); + fprintf(html,"\t\t\t
-6%%
\n"); + fprintf(html,"\t\t\t
-7%%
\n"); fprintf(html,"\t\t\t
\n"); fprintf(html,"\t\t
\n"); fprintf(html,"\t\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\t\"Jitter/Beta\"\n", png_name_jb.data()); fprintf(html,"\t\t\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\n", color_jitter); fprintf(html,"\t\t\t
\n"); - fprintf(html,"\t\t\t
15%
\n"); - fprintf(html,"\t\t\t
14%
\n"); - fprintf(html,"\t\t\t
13%
\n"); - fprintf(html,"\t\t\t
12%
\n"); - fprintf(html,"\t\t\t
11%
\n"); - fprintf(html,"\t\t\t
10%
\n"); - fprintf(html,"\t\t\t
9%
\n"); - fprintf(html,"\t\t\t
8%
\n"); - fprintf(html,"\t\t\t
7%
\n"); - fprintf(html,"\t\t\t
6%
\n"); - fprintf(html,"\t\t\t
5%
\n"); - fprintf(html,"\t\t\t
4%
\n"); - fprintf(html,"\t\t\t
3%
\n"); - fprintf(html,"\t\t\t
2%
\n"); - fprintf(html,"\t\t\t
1%
\n"); + fprintf(html,"\t\t\t
15%%
\n"); + fprintf(html,"\t\t\t
14%%
\n"); + fprintf(html,"\t\t\t
13%%
\n"); + fprintf(html,"\t\t\t
12%%
\n"); + fprintf(html,"\t\t\t
11%%
\n"); + fprintf(html,"\t\t\t
10%%
\n"); + fprintf(html,"\t\t\t
9%%
\n"); + fprintf(html,"\t\t\t
8%%
\n"); + fprintf(html,"\t\t\t
7%%
\n"); + fprintf(html,"\t\t\t
6%%
\n"); + fprintf(html,"\t\t\t
5%%
\n"); + fprintf(html,"\t\t\t
4%%
\n"); + fprintf(html,"\t\t\t
3%%
\n"); + fprintf(html,"\t\t\t
2%%
\n"); + fprintf(html,"\t\t\t
1%%
\n"); fprintf(html,"\t\t\t
\n"); fprintf(html,"\t\t
\n"); fprintf(html,"\t\t
\n"); fprintf(html,"\t\n"); fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\t\n"); - fprintf(html,"\t\t\t\n", color_jitter); - fprintf(html,"\t\t\t\n", color_beta); + fprintf(html,"\t\t\t\n"); + fprintf(html,"\t\t\t\n", color_jitter); + fprintf(html,"\t\t\t\n", color_beta); fprintf(html,"\t\t\n"); - fprintf(html,"\t\t\n", + fprintf(html,"\t\t\n", text_j_max->text().data(), text_b_max->text().data()); - fprintf(html,"\t\t\n", + fprintf(html,"\t\t\n", text_j_min->text().data(), text_b_min->text().data()); - fprintf(html,"\t\t\n", + fprintf(html,"\t\t\n", text_j_avg->text().data(), text_b_avg->text().data()); fprintf(html,"\t\n\t
JitterBetaJitterBeta
Max%s %%s %
Max%s %%%s %%
Min%s %%s %
Min%s %%%s %%
Avg%s %%s %
Avg%s %%%s %%
\n"); @@ -3681,7 +3681,7 @@ fprintf(html,"\t
Focus/Tracking errors
\n"); fprintf(html,"\t\n\t\n"); - fprintf(html,"\t\t\n\t\t\n\t\t"); - fprintf(html,"\t\t\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\n\t"); fprintf(html,"\n\t"); fprintf(html,"\n\t\t"); @@ -3703,9 +3703,9 @@ fprintf(html,"\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\t
60
\n"); fprintf(html,"\t\t\t
50
\n"); fprintf(html,"\t\t\t
40
\n"); @@ -3689,11 +3689,11 @@ fprintf(html,"\t\t\t
20
\n"); fprintf(html,"\t\t\t
10
\n"); fprintf(html,"\t\t\t
\n"); - fprintf(html,"\t\t
\n"); + fprintf(html,"\t\t\n"); fprintf(html,"\t\t\t\"FE/TE\"\n", png_name_ft.data()); fprintf(html,"\t\t
\n"); fprintf(html,"\t\n"); - fprintf(html,"\t\t"); - fprintf(html,"",color_TE); - fprintf(html,"\n", color_FE); + fprintf(html,"\t\t"); + fprintf(html,"",color_TE); + fprintf(html,"\n", color_FE); fprintf(html,"\t\t\n", text_t_max->text().data(), text_f_max->text().data()); diff -Nru qpxtool-0.6/qpxtool/qcheck/test_threads.cpp qpxtool-current/qpxtool/qcheck/test_threads.cpp --- qpxtool-0.6/qpxtool/qcheck/test_threads.cpp 2006-08-25 19:01:48.000000000 +0400 +++ qpxtool-current/qpxtool/qcheck/test_threads.cpp 2006-09-05 22:56:15.000000000 +0400 @@ -208,6 +208,9 @@ post_signal(event_test_init,(void*)TEST); struct timeval start, finish; + int scan_blk = 0; + int blocks_failed = 0; + block_data block; block.test=TEST_CD_CX; block.err_total=0; block.err_max=0; block.err_cur=0; block.err_avg=0.0; @@ -252,7 +255,13 @@ block_E12=0; block_E22=0; block_E32=0; for (i=0;(i<128) && (block.idx == oldidx) && (block.lbamedia.capacity);i++) { - scan_tbl[drive->ven_ID].cx_one_interval(drive, &block.lba, &BLER, &E11, &E21, &E31, &E12, &E22, &E32); + scan_blk = scan_tbl[drive->ven_ID].cx_one_interval(drive, &block.lba, &BLER, &E11, &E21, &E31, &E12, &E22, &E32); + switch(scan_blk) { + case SCAN_BLOCK_DONE: break; + case SCAN_BLOCK_FAIL: blocks_failed++; break; + case SCAN_BLOCK_LAST: block.lba = drive->media.capacity; break; + default: break; + } // block.idx = max(0, block.lba/hscaleCD - 1); block.idx = block.lba/hscaleCD; // block.lba+=75; @@ -471,6 +480,9 @@ char* TEST="DVD PIE"; post_signal(event_test_init,(void*)TEST); struct timeval start, finish; + + int scan_blk = 0; + int blocks_failed = 0; int hscale = hscaleDVD*drive->media.layers; block_data block; @@ -530,11 +542,17 @@ // block.lba = block.idx*hscale+i*128; oldidx = block.idx; if (read_poe) - scan_tbl[drive->ven_ID].pie_poe_8_ecc_blocks(drive, &block.lba, &pie, &poe, &pof); + scan_blk = scan_tbl[drive->ven_ID].pie_poe_8_ecc_blocks(drive, &block.lba, &pie, &poe, &pof); else if (read_pif) - scan_tbl[drive->ven_ID].pie_pif_8_ecc_blocks(drive, &block.lba, &pie, &pif, &pof); + scan_blk = scan_tbl[drive->ven_ID].pie_pif_8_ecc_blocks(drive, &block.lba, &pie, &pif, &pof); else - scan_tbl[drive->ven_ID].pie_8_ecc_blocks(drive, &block.lba, &pie, &pof); + scan_blk = scan_tbl[drive->ven_ID].pie_8_ecc_blocks(drive, &block.lba, &pie, &pof); + switch(scan_blk) { + case SCAN_BLOCK_DONE: break; + case SCAN_BLOCK_FAIL: blocks_failed++; break; + case SCAN_BLOCK_LAST: block.lba = drive->media.capacity; break; + default: break; + } block.idx = block.lba / hscale; // printf("block.lba = %d; block.idx = %d\n",block.lba,block.idx); event_block_done(event_show_lba, block); @@ -659,6 +677,9 @@ int hscale = hscaleDVD*drive->media.layers; struct timeval start, finish; + int scan_blk = 0; + int blocks_failed = 0; + block_data block; block.test=TEST_DVD_PIF; block.err_total=0; block.err_max=0; block.err_min=0; block.err_cur=0; block.err_avg=0.0; @@ -692,7 +713,13 @@ for (i=0;oldidx == block.idx;i++){ // block.lba = block.idx*hscale+i*16; oldidx = block.idx; - scan_tbl[drive->ven_ID].pif_1_ecc_block(drive, &block.lba, ¤t); + scan_blk = scan_tbl[drive->ven_ID].pif_1_ecc_block(drive, &block.lba, ¤t); + switch(scan_blk) { + case SCAN_BLOCK_DONE: break; + case SCAN_BLOCK_FAIL: blocks_failed++; break; + case SCAN_BLOCK_LAST: block.lba = drive->media.capacity; break; + default: break; + } block.idx = block.lba / hscale; // printf("block.lba = %d; block.idx = %d\n",block.lba,block.idx); event_block_done(event_show_lba, block); diff -Nru qpxtool-0.6/qpxtool/version.h qpxtool-current/qpxtool/version.h --- qpxtool-0.6/qpxtool/version.h 2006-08-25 21:38:09.000000000 +0400 +++ qpxtool-current/qpxtool/version.h 2006-09-05 22:28:44.000000000 +0400 @@ -9,7 +9,7 @@ * See the file "COPYING" for the exact licensing terms. */ -#define VERSION "0.6" +#define VERSION "0.6.0.2" #define LIBVER_MIN_TRANSPORT 0x00000600 #define LIBVER_MIN_SCAN 0x00000600 #define LIBVER_MIN_PLEXTOR 0x00000600
TrackingFocus
TrackingFocus
Max%s%s