For Gray mode added time stamp option, remove compiler warning

merge-requests/2/head
Gerard Klaver 2008-04-30 10:12:21 +00:00
rodzic 98b025d3de
commit 7336b06465
1 zmienionych plików z 56 dodań i 21 usunięć

Wyświetl plik

@ -6,6 +6,8 @@
The add_text routine and font_6x11.h file are taken from the (GPLed) The add_text routine and font_6x11.h file are taken from the (GPLed)
webcam.c file, part of xawtv, (c) 1998-2002 Gerd Knorr. webcam.c file, part of xawtv, (c) 1998-2002 Gerd Knorr.
add_text was modified for this program (xcam_add_text). add_text was modified for this program (xcam_add_text).
Update 2008 Gerard Klaver
Added add_text routine to gray images.
This program is free software; you can redistribute it and/or This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as modify it under the terms of the GNU General Public License as
@ -339,6 +341,8 @@ xcam_add_text (SANE_Byte * image, int width, int height, char *txt)
int i, x, y, f, len; int i, x, y, f, len;
char fmtstring[25] = " %Y-%m-%d %H:%M:%S"; char fmtstring[25] = " %Y-%m-%d %H:%M:%S";
char fmttxt[46]; char fmttxt[46];
char buf[100];
DBG (DBG_debug, "xcam_add_text: enter\n"); DBG (DBG_debug, "xcam_add_text: enter\n");
time (&t); time (&t);
@ -351,6 +355,10 @@ xcam_add_text (SANE_Byte * image, int width, int height, char *txt)
len = strftime (line, MSG_MAXLEN, fmttxt, tm); len = strftime (line, MSG_MAXLEN, fmttxt, tm);
switch (win.params.format)
{
case SANE_FRAME_RGB:
for (y = 0; y < CHAR_HEIGHT; y++) for (y = 0; y < CHAR_HEIGHT; y++)
{ {
ptr = image + 3 * width * (height - CHAR_HEIGHT - 2 + y) + 12; ptr = image + 3 * width * (height - CHAR_HEIGHT - 2 + y) + 12;
@ -370,7 +378,33 @@ xcam_add_text (SANE_Byte * image, int width, int height, char *txt)
} /* for i */ } /* for i */
} /* for x */ } /* for x */
} /* for y */ } /* for y */
break;
case SANE_FRAME_GRAY:
for (y = 0; y < CHAR_HEIGHT; y++)
{
ptr = image + width * (height - CHAR_HEIGHT - 2 + y) + 12;
for (x = 0; x < len; x++)
{
f = fontdata[line[x] * CHAR_HEIGHT + y];
for (i = CHAR_WIDTH - 1; i >= 0; i--)
{
if (f & (CHAR_START << i))
{
ptr[0] = 255;
}
ptr += 1;
} /* for i */
} /* for x */
} /* for y */
case SANE_FRAME_RED:
case SANE_FRAME_GREEN:
case SANE_FRAME_BLUE:
snprintf (buf, sizeof (buf),
"Time stamp for separate channel transfers are not supported");
break;
}
DBG (DBG_debug, "xcam_add_text: exit vw=%d, vh=%d\n", width, height); DBG (DBG_debug, "xcam_add_text: exit vw=%d, vh=%d\n", width, height);
status = (SANE_STATUS_GOOD); status = (SANE_STATUS_GOOD);
return status; return status;
@ -1107,7 +1141,7 @@ input_available (gpointer ignore, gint source, GdkInputCondition cond)
(win.fps_old3 + win.fps_old2 + win.fps_old1 + win.fps) / 4; (win.fps_old3 + win.fps_old2 + win.fps_old1 + win.fps) / 4;
DBG (DBG_debug, DBG (DBG_debug,
"xcam: input_available fps count=%d, frame_time * 30 = %2.3f, fps=%2.3f, fps_av=%2.3f\n", "xcam: input_available fps count=%ld, frame_time * 30 = %2.3f, fps=%2.3f, fps_av=%2.3f\n",
win.f_count, frame_time, win.fps, win.fps_av); win.f_count, frame_time, win.fps, win.fps_av);
win.i_time = 0; win.i_time = 0;
@ -1287,7 +1321,7 @@ save_frame_button (GtkWidget * widget, gpointer client_data,
/* test for pnm formats */ /* test for pnm formats */
strncpy (testfilename, preferences.filename, sizeof (testfilename)); strncpy (testfilename, preferences.filename, sizeof (testfilename));
testfilename[sizeof (testfilename)] = 0; testfilename[sizeof (testfilename) - 1] = 0;
g_strreverse (testfilename); g_strreverse (testfilename);
if (!((!strncmp (testfilename, "mnp.", 4)) || if (!((!strncmp (testfilename, "mnp.", 4)) ||
(!strncmp (testfilename, "mgp.", 4)) || (!strncmp (testfilename, "mgp.", 4)) ||
@ -1597,7 +1631,8 @@ main (int argc, char **argv)
} }
} }
DBG (DBG_debug, "xcam.main: buf_backend_size 0x%x\n", win.buf_backend_size); DBG (DBG_debug, "xcam.main: buf_backend_size 0x%x\n",
(unsigned) win.buf_backend_size);
win.buf = malloc (win.buf_backend_size); win.buf = malloc (win.buf_backend_size);