Ejemplo n.º 1
0
Defaults::Defaults(void)
{
FileFormat *filef;
FSSpec fspec;
McoStatus status;
int		magic_num;
int		version;
Str255  def = MONACO_DEFAULT;
Str255  fold = MONACO_FOLDER;

// set factory defaults
printer_type = 1;
input_type = DT_None;
patch_format = 1;
port = 1;

// now try to load in the user defults
filef = new FileFormat;

ptocstr(def);
ptocstr(fold);

status = filef->openFilefromPref(&fspec,(char*)def,(char*)fold);
if (status != MCO_SUCCESS) goto bail;

status = filef->relRead(sizeof(int),(char*)&magic_num);
if (status != MCO_SUCCESS) goto bail;

if (magic_num != DEFAULTS_MAGIC_NUM) goto bail;

status = filef->relRead(sizeof(int),(char*)&version);
if (status != MCO_SUCCESS) goto bail;

if (version > DEFAULTS_VERSION) goto bail;

status = filef->relRead(sizeof(int),(char*)&printer_type);
if (status != MCO_SUCCESS) goto bail;

status = filef->relRead(sizeof(int),(char*)&input_type);
if (status != MCO_SUCCESS) goto bail;

status = filef->relRead(sizeof(int),(char*)&patch_format);
if (status != MCO_SUCCESS) goto bail;

status = filef->relRead(sizeof(int),(char*)&port);
if (status != MCO_SUCCESS) goto bail;

filef->closeFile();

bail:
delete filef;

}
Ejemplo n.º 2
0
McoStatus ToneTab::updateWindowData(int changed)
{
Rect r1;
short	iType;
Handle	iHandle;
Str255	text;
char	desc[100];
int 	result;
int newhand;

if (!doc) return MCO_OBJECT_NOT_INITIALIZED;
if (!doc->printData) return MCO_OBJECT_NOT_INITIALIZED;

// see if export is valid
GetDItem (dp, DESCRIPTION+startNum, &iType, (Handle*)&iHandle, &r1);
GetIText(iHandle,text);
ptocstr(text);
strcpy(desc,doc->printData->setting.toneDesc);
if (strcmp((char*)text,desc))
	{
	ctopstr(desc);
	SetIText(iHandle,(unsigned char*)desc);
	}
	
if (last_changed) changed = 0;
last_changed = 0;	
	
if (changed) CopyIntoControl(-1);

return MCO_SUCCESS;
}
Ejemplo n.º 3
0
Defaults::~Defaults(void)
{
FileFormat *filef;
FSSpec fspec;
McoStatus status;
int		magic_num = DEFAULTS_MAGIC_NUM;
int		version = DEFAULTS_VERSION;
Str255  def = MONACO_DEFAULT;
Str255  fold = MONACO_FOLDER;

// now try to load in the user defults
filef = new FileFormat;

ptocstr(def);
ptocstr(fold);

status = filef->createFileinPref(&fspec,(char*)def,(char*)fold);
if (status != MCO_SUCCESS) return;

status = filef->openFile(&fspec);
if (status != MCO_SUCCESS) return;

status = filef->relWrite(sizeof(int),(char*)&magic_num);
if (status != MCO_SUCCESS) return;

status = filef->relWrite(sizeof(int),(char*)&version);
if (status != MCO_SUCCESS) return;

status = filef->relWrite(sizeof(int),(char*)&printer_type);
if (status != MCO_SUCCESS) return;

status = filef->relWrite(sizeof(int),(char*)&input_type);
if (status != MCO_SUCCESS) return;

status = filef->relWrite(sizeof(int),(char*)&patch_format);
if (status != MCO_SUCCESS) return;

status = filef->relWrite(sizeof(int),(char*)&port);
if (status != MCO_SUCCESS) return;

filef->setInfo(&fspec,MONACO_SIG,'MCO7');

filef->closeFile();
delete filef;
}
Ejemplo n.º 4
0
// The event handler for the main menu
McoStatus	ToneTab::DoEvents(short item, Point clickPoint, WindowCode *wc, int32 *numwc, void **data,Boolean &changed)
{
int					didit = 0;
int		i,j;
McoStatus 			status = MCO_SUCCESS;	
short 				item2 = item - startNum;
Str255				prompt;
StandardFileReply 	soutReply,sinReply;
Str255				outname = "\p";
SFTypeList			filelist;
Str255				inname;
Rect r1;
short	iType;
Handle	iHandle;
WindowPtr	oldP;

GetPort(&oldP);
SetPort( dp ) ;

	// no codes passed back
	*numwc = 0;
	
	for (i=0; i<numControls; i++) 
		{
		status = controls[i]->DoEvents(item,clickPoint,wc,numwc,data,changed,&didit);
		if (status) return status;
		if (changed) 
			{
			doc->changedLinearTone = 1;
			last_changed = 1;
			CopyOutofControl(i);
			CopyIntoControl(i);
			}
		else last_changed = 0;		
		if (didit) return status;
		}

	if (item2 == EXPORT)
		{
		if (doc->calCurves)
			{
			GetIndString(prompt,PROMPT_STRINGS,STANDARD_PROMPT);
			StandardPutFile(prompt, outname, &soutReply);
			if(soutReply.sfGood)
				{
				memcpy(outname, soutReply.sfFile.name, *(soutReply.sfFile.name)+1);	
				PathNameFromDirID(soutReply.sfFile.parID, soutReply.sfFile.vRefNum, outname);
				ptocstr(outname);
				status = doc->calCurves->exportTone((char*)outname);
				if (status) McoErrorAlert(status);
				else 
					{
					FileFormat ff;
	
					ff.setInfo(&soutReply.sfFile,MONACO_SIG,'TEXT');
					}
				}
			}
		}
	else if (item2 == IMPORT)
		{
		if (doc->calCurves)
			{	
			filelist[0] = 'TEXT';
			StandardGetFile(0L, 1, filelist, &sinReply);
			if(sinReply.sfGood)	
				{
				memcpy(inname, sinReply.sfFile.name, *(sinReply.sfFile.name)+1);
				PathNameFromDirID(sinReply.sfFile.parID, sinReply.sfFile.vRefNum, inname);
				ptocstr(inname);	
				status = doc->calCurves->importTone((char*)inname);
				if (status) McoErrorAlert(status);
				else 
					{
					CopyIntoControl(-1);
					doc->changedLinearTone = 1;
					}
				status = MCO_SUCCESS;
				}
			}
		}
	else
		{
		GetDItem (dp, DESCRIPTION+startNum, &iType, (Handle*)&iHandle, &r1);
		GetIText(iHandle,inname);
		if (inname[0] > 100) inname[0] = 100;
		ptocstr(inname);
		strcpy(doc->printData->setting.toneDesc,(char*)inname);
		}
	SetPort(oldP);		
	return status;
}
Ejemplo n.º 5
0
// Open a gammut surface dialog, use info passed in data if data is valid
McoStatus AllWins::openGammutSurface1(void)
{
	GamutSurfaceWin 	*gamutsurf;
	int32		maxwinnum  = 0;
	McoStatus	state = MCO_SUCCESS;
	int i;
	Str255		patchFName;
	RawData		*raw;
	

	StandardFileReply 	sinReply;
	SFTypeList			filelist;
	Str255				inname;
	FILE 				*fs;
	if (!QD3D_Present) return MCO_NO_QD3D;
	if (xyztorgb == NULL) return MCO_FAILURE;

	
	// raw is deleted by the window
	raw = new RawData();	
	
	filelist[0] = 'TEXT';
	StandardGetFile(nil, 1, filelist, &sinReply);
	if(sinReply.sfGood == 0)
		return MCO_CANCEL;
		
	copy_str(patchFName,sinReply.sfFile.name);

	memcpy(inname, sinReply.sfFile.name, *(sinReply.sfFile.name)+1);
	PathNameFromDirID(sinReply.sfFile.parID, sinReply.sfFile.vRefNum, inname);
	ptocstr(inname);	
	
	fs = fopen( (char*)inname, "r" );
	if(!fs)
		return MCO_FILE_OPEN_ERROR;
		
	raw->loadData(fs);
	
	fclose(fs);
	
	//for (i=0; i<tempdoc->_condata.smooth; i++) raw->smooth_patch();
	
	maxwinnum = 0;
	for (i=0; i<numWins; i++) if (wins[i]->isMyWindowType(GammutSurfaceTherm1))
		{
		if (wins[i]->WinNum >= maxwinnum) maxwinnum = wins[i]->WinNum+1;
		}
		
	memcpy(inname, sinReply.sfFile.name, *(sinReply.sfFile.name)+1);	

	// the flag after raw indicates that the window should delete raw
	gamutsurf = new GamutSurfaceWin(0L,raw,1,GammutSurfaceTherm1,maxwinnum,inname);
	if (gamutsurf == 0L) return MCO_MEM_ALLOC_ERROR;
	if (gamutsurf->error == MCO_MEM_ALLOC_ERROR)
		{
		McoErrorAlert(gamutsurf->error);
		delete gamutsurf;
		return MCO_SUCCESS;
		}
	if (gamutsurf->error != MCO_SUCCESS) 
		{
		state = gamutsurf->error;
		delete gamutsurf;
		return state;
		}
	

	return AddWin(gamutsurf,0L);
}