/* Get raw data (ie: uncompressed data) from image processor. */ static int get_ip_data(struct ledm_session *ps, SANE_Byte *data, SANE_Int maxLength, SANE_Int *length) { int ip_ret=IP_INPUT_ERROR; unsigned int outputAvail=maxLength, outputUsed=0, outputThisPos; unsigned char *input, *output = data; unsigned int inputAvail, inputUsed=0, inputNextPos; if (!ps->ip_handle) { goto bugout; } int eof; eof=bb_get_image_data(ps, outputAvail); if (ps->cnt > 0) { inputAvail = ps->cnt; input = &ps->buf[ps->index]; } else { input = NULL; inputAvail = 0; } /* Transform input data to output. Note, output buffer may consume more bytes than input buffer (ie: jpeg to raster). */ ip_ret = ipConvert(ps->ip_handle, inputAvail, input, &inputUsed, &inputNextPos, outputAvail, output, &outputUsed, &outputThisPos); DBG6("cnt=%d index=%d input=%p inputAvail=%d inputUsed=%d inputNextPos=%d output=%p outputAvail=%d outputUsed=%d outputThisPos=%d\n", ps->cnt, ps->index, input, inputAvail, inputUsed, inputNextPos, output, outputAvail, outputUsed, outputThisPos); if (input != NULL) { if (inputAvail == inputUsed) { ps->index = ps->cnt = 0; // } else { ps->cnt -= inputUsed; // save left over buffer for next soap_read ps->index += inputUsed; } } if (data) *length = outputUsed; /* For sane do not send output data simultaneously with IP_DONE. */ if (ip_ret & IP_DONE && outputUsed) ip_ret &= ~IP_DONE; bugout: return ip_ret; } /* get_ip_data */
void BuzzMachineCallbacksPre12::SetPatternData(CPattern *ppat, int const row, int const group, int const track, int const field, int const value) { DBG6("(ppat=%p,row=%d,group=%d,track=%d,field=%d,value=%d)\n",ppat,row,group,track,field,value); FIXME; }