Lines Matching refs:coarsecal
2101 s->coarsecal.width_pix = s->darkcal.width_pix = s->lightcal.width_pix = width;
2102 s->coarsecal.width_bytes = s->darkcal.width_bytes = s->lightcal.width_bytes = width * 3;
2103 s->coarsecal.height = 1;
2104 s->coarsecal.mode = MODE_COLOR;
2105 s->coarsecal.x_res = s->darkcal.x_res = s->lightcal.x_res = settings[i].x_res;
2106 s->coarsecal.y_res = s->darkcal.y_res = s->lightcal.y_res = settings[i].y_res;
2108 s->coarsecal.pages = s->darkcal.pages = s->lightcal.pages = img_pages;
2109 s->coarsecal.buffer = s->darkcal.buffer = s->lightcal.buffer = NULL;
2471 ret = coarsecal(s);
2473 DBG (5, "sane_start: ERROR: failed to coarsecal\n");
2560 s->coarsecal.buffer = calloc (1,s->coarsecal.width_bytes * s->coarsecal.height * s->coarsecal.pages);
2561 if(!s->coarsecal.buffer){
2783 /* update the coarsecal payload to use our new dark offset parameters */
2800 ret = coarsecal_get_line(s, &s->coarsecal);
2807 for (j = 0; j < s->coarsecal.pages; j++)
2809 int page_offset = j * s->coarsecal.width_bytes * s->coarsecal.height;
2810 for (x = 0; x < s->coarsecal.width_bytes; x++)
2812 int val = s->coarsecal.buffer[page_offset + x];
2819 for (j = 0; j < s->coarsecal.pages; j++)
2821 avg[j] /= s->coarsecal.width_bytes;
2822 zcount[j] = zcount[j] * 1000 / s->coarsecal.width_bytes;
2829 for (j = 0; j < s->coarsecal.pages; j++)
2846 if (cal_good[0] + cal_good[1] == s->coarsecal.pages) break;
2886 ret = coarsecal_get_line(s, &s->coarsecal);
2890 for (i = 0; i < s->coarsecal.pages; i++)
2893 for (i = 0; i < s->coarsecal.pages; i++)
2895 for (x = 0; x < s->coarsecal.width_pix; x++)
2898 unsigned char *rgbpix = s->coarsecal.buffer + (i * s->coarsecal.width_bytes * s->coarsecal.height) + x * 3;
2908 for (i = 0; i < s->coarsecal.pages; i++)
2912 for (i = 0; i < s->coarsecal.pages; i++)
2914 avg[i] = MAX3(rgb_avg[i][0], rgb_avg[i][1], rgb_avg[i][2]) / s->coarsecal.width_pix;
2916 rgb_avg[i][j] /= s->coarsecal.width_pix;
2919 for (i = 0; i < s->coarsecal.pages; i++)
2923 rgb_hicount[i][j] = rgb_hicount[i][j] * 1000 / s->coarsecal.width_pix;
2934 for (x = 0; x < s->coarsecal.pages; x++)
2951 if (cal_good[0] + cal_good[1] == s->coarsecal.pages) break;
2953 /* update the coarsecal payload to use the new gain parameters */
2972 coarsecal(struct scanner *s)
2978 DBG (10, "coarsecal: start\n");
2998 DBG (5, "coarsecal: error sending setwindow\n");
3010 DBG (10, "coarsecal: finish\n");
4721 if(s->coarsecal.buffer){
4722 free(s->coarsecal.buffer);
4723 s->coarsecal.buffer = NULL;