McoStatus PrinterType::Load(FSSpec *fspec) { int i; McoStatus status = MCO_SUCCESS; FileFormat *filef; int magic_num; int version; filef = new FileFormat; status = filef->openFile(fspec); if (status != MCO_SUCCESS) goto bail; status = filef->relRead(sizeof(int),(char*)&magic_num); if (status != MCO_SUCCESS) goto bailclose; status = filef->relRead(sizeof(int),(char*)&version); if (status != MCO_SUCCESS) goto bailclose; if (version != PRINTERTYPE_VERSION) goto bailclose; status = filef->relRead(sizeof(ConData),(char*)&data); if (status != MCO_SUCCESS) goto bailclose; status = filef->relRead(sizeof(int),(char*)&num_hands); if (status != MCO_SUCCESS) goto bailclose; status = filef->relRead(sizeof(double)*31,(char*)x_hands); if (status != MCO_SUCCESS) goto bailclose; status = filef->relRead(sizeof(double)*31,(char*)y_hands); if (status != MCO_SUCCESS) goto bailclose; status = filef->relRead(sizeof(int),(char*)&sim_num); if (status != MCO_SUCCESS) goto bailclose; status = filef->relRead(sizeof(int),(char*)&num_tweaks); if (status != MCO_SUCCESS) goto bailclose; for (i=0; i<num_tweaks; i++) { if (!tweaks[i]) tweaks[i] = new Tweak_Element(0L); if (!tweaks[i]) goto bailclose; status = filef->relRead(sizeof(Tweak_Element),(char*)tweaks[i]); if (status != MCO_SUCCESS) goto bailclose; } bailclose: filef->closeFile(); bail: delete filef; return status; }
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; }