/*	Pic file Viewer	by Kunizo Konishi f92047	*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "mdr_lib2.h"

BOOL main(argc, argv)
int argc;
char *argv[];
{
	long	lStX, lStY;		/* Display Start Point		*/
	long	lSzX, lSzY;		/* Data Picture Size		*/
	FILE	*fpPic1;		/* Picture File Pointer		*/
	char	acFileName[256];/* Picture File Name		*/
	BYTE	*abyPic;		/* Picture Data				*/
	int		iStatus;
	int		i, j;
	int		dfR, dfG, dfB, df;

	if ((abyPic = 
		(BYTE *)malloc(DEFAULT_PIC_SIZE_X * DEFAULT_PIC_SIZE_Y * 3)) == NULL) {
		fprintf(stderr, "Out of Memory\n");
		
		return FALSE;
	}
	lSzX = DEFAULT_PIC_SIZE_X;
	lSzY = DEFAULT_PIC_SIZE_Y;
	lStX = 0;
	lStY = 100;
	
	if (argc != 2) {
		fprintf(stderr, "xv datafile");
		
		return FALSE;
	}

	strcpy(acFileName, DEFAULT_PATH);
	strcat(acFileName, argv[1]);
	
	if ((fpPic1 = fopen(acFileName, "r")) == NULL) {
		fprintf(stderr, "Can't open file %s\n", acFileName);
		
		return FALSE;
	}
	
	if ((iStatus = MDRinit()) < 0) {
		fprintf(stderr, "MDRinit() error status = %d\n", iStatus);
		
		return FALSE;
	} else {
		fread(abyPic, 3, lSzX * lSzY, fpPic1);
		MDRwritePic(lStX + 256, lStY, lSzX, lSzY, abyPic);
		for (j = 0; j != 1; j++) {
		    for (i = 0; i != lSzX * lSzY * 3; i += 3) {
				dfR = abyPic[i+0] - abyPic[i+3];
				dfG = abyPic[i+1] - abyPic[i+4];
				dfB = abyPic[i+2] - abyPic[i+5];
/*				df = (dfR + dfG + dfB) / 3;
*/
				df = dfR;
				if (df > 50) {
					abyPic[i] = abyPic[i+1] = abyPic[i+2] = 0;
				} else {
					abyPic[i] = abyPic[i+1] = abyPic[i+2] = 255;
		    	}
			}
		}
		MDRwritePic(lStX, lStY, lSzX, lSzY, abyPic);
	}
	
	fclose(fpPic1);
	free(abyPic);
	return TRUE;
}

