/*
** $VER: Negative.ieb 1.01, IE Arexx script
** Image Engineer Batch Processing script
** © by Patrik M Nydensten 
** 7/11 1996 Stockholm/Sweden
**
** Make image negative. 
*/

options results
signal on error

parse arg input command
input = upper(strip(input))
address 'IMAGEENGINEER'

select  /* Required batch script commands */
  when input = 'INFO' then    return get_info()
  when input = 'CONFIG' then  return get_config(command)
  when input = 'PROCESS' then return process_image(command)
  otherwise do
    'REQUEST' '"Failure in call to batch script!"' '" Quit "'
    return '<ERROR>'
  end
end

exit 0

/* Required "Get_info" procedure  ------------------------------------ */
/* S = SECONDARY, A = ALPHA, 1 = Single file, 2 = Multiple files       */

get_info:
  back = 'OK'
return back

/* Required "Get_config" procedure  ---------------------------------- */

get_config:
  parse arg '"'command'"'

  'IE_TO_FRONT'

  'REQUEST' '"This Batch script does not have any settings."' '" OK "'

  back = 'OK'
return back

/* Required "Process_image" procedure  ------------------------------- */

process_image:
  parse arg '"'src_image'"' '"'dst_image'"' '"'options'"'
  parse var options command

  'OPEN' '"'src_image'"' '24'
  if (RC ~= 0) then do
    'IE_TO_FRONT'
    'REQUEST' '"Failed to load image:' d2c(10)||src_image'"' '" OK "'
    return '<ERROR>'
  end
  else LoadImage = result

  'NEGATIVE' LoadImage
  OutputImage = result
  'CLOSE' LoadImage
  
  'SAVE_DATA' OutputImage '"'dst_image'"' '"ILBM CmpByteRun1"'
  if (RC ~= 0) then do
    'IE_TO_FRONT'
    'REQUEST' '"Failed to save image:' d2c(10)||dst_image'"' '" OK "'
    return '<ERROR>'
  end
  'CLOSE' OutputImage

  back = 'OK'
return back

/* Internal procedures  ---------------------------------------------- */

/*******************************************************************/
/* This is where control goes when an error code is returned by IE */
/* It puts up a message saying what happened and on which line     */
/*******************************************************************/
error:
if RC=5 then do			/* Did the user just cancel us? */
	IE_TO_FRONT
	LAST_ERROR
	'REQUEST "'||RESULT||'"'
end
else do
	IE_TO_FRONT
	LAST_ERROR
	'REQUEST "Error detected!!!'||D2C(10)||'Image Engineer error message is as follows'||D2C(10)||result||D2C(10)||'Script failed on line '||SIGL||'"' 'Doh!'
end

return '<ERROR>'
