home *** CD-ROM | disk | FTP | other *** search
- /*
- ***************************************************************************
- *
- * Datei:
- * RSysPreferenceLists.c
- *
- * Inhalt:
- * void SysPrefList(void);
- * void SysEnvList(void);
- * void SysExtPrinterData(void);
- *
- * Bemerkungen:
- * Liste der System- und Druckereinstellungen sowie der Env:-Variablen.
- *
- * Erstellungsdatum:
- * 07-Jul-93 Rolf Böhme
- *
- * Änderungen:
- * 07-Jul-93 Rolf Böhme Erstellung
- *
- ***************************************************************************
- */
-
- #include "RSysDebug.h"
- #include "RSysFunc.h"
-
- /*
- * MakeNumEntry() erzeugt ein Zahleneintrag für die
- * anzuzeigende Liste
- */
- static void
- MakeNumEntry(int *num, char *title, long entry)
- {
- sprintf(Entries[*num].se_Entry, "%-22s : %ld", title, entry);
- AddNodeToList(*num, NO_SORT);
-
- (*num)++;
-
- return;
- }
-
- /*
- * MakeStringEntry() erzeugt ein Zeileneintrag für die
- * anzuzeigende Liste
- */
- static void
- MakeStringEntry(int *num, char *title, char *entry)
- {
- sprintf(Entries[*num].se_Entry, "%-22s : %s", title, entry);
- AddNodeToList(*num, NO_SORT);
-
- (*num)++;
-
- return;
- }
-
- /*
- * MakeHeadEntry() erzeugt eine Titelzeileneintrag für die
- * anzuzeigende Liste
- */
- void
- MakeHeadEntry(int *num, char *title)
- {
- strcpy(Entries[*num].se_Entry, field[BLANK_FIELD]);
- AddNodeToList(*num, NO_SORT);
-
- (*num)++;
-
- strncpy(Entries[*num].se_Entry, title,BUFSIZE);
- AddNodeToList(*num, NO_SORT);
-
- (*num)++;
-
- return;
- }
-
- /*
- * MakeColEntry() erzeugt ein Zahleneintrag für die
- * anzuzeigende Liste in einem bestimmten Format
- */
- static void
- MakeColEntry(int *num, char *title, long entry)
- {
- sprintf(Entries[*num].se_Entry, "%-22s : 0x%04lx", title, (long)entry);
- AddNodeToList(*num, NO_SORT);
-
- (*num)++;
-
- return;
- }
-
- /*
- * MakeHexEntry() erzeugt einen hexadezimalen
- * Zahleneintrag für die anzuzeigende Liste
- */
- void
- MakeHexEntry(int *num, char *title, APTR entry)
- {
- sprintf(Entries[*num].se_Entry, "%-14s : 0x%08lx", title, entry);
- AddNodeToList(*num, NO_SORT);
-
- (*num)++;
-
- return;
- }
-
- /*
- * MakeTimeEntry() erzeugt einen Zeiteintrag für die
- * anzuzeigende Liste
- */
- static void
- MakeTimeEntry(int *num, char *title, struct timeval *tv)
- {
- sprintf(Entries[*num].se_Entry, "%-22s : %ld sec %-6ld µsec",
- title, tv->tv_secs, tv->tv_micro);
-
- AddNodeToList(*num, NO_SORT);
-
- (*num)++;
-
- return;
- }
-
- /*
- * MakeMeasureEntry() erzeugt ein Maßzahleneintrag für die
- * anzuzeigende Liste
- */
- static void
- MakeMeasureEntry(int *num, char *title, long entry, char *measure)
- {
- sprintf(Entries[*num].se_Entry, "%-22s : %ld %s",
- title, (long)entry, measure);
-
- AddNodeToList(*num, NO_SORT);
-
- (*num)++;
-
- return;
- }
-
- /*
- * SysPrefList() listet die Preferenceseinstellungen auf.
- * Diese werden NICHT aus den 2.0-IFF-Prefs-Dateien
- * geholt, sondern mit einer Systemfunktion ausgelesen
- */
- void
- SysPrefList(void)
- {
- int i = 0;
- struct Preferences PrefCopy,
- *PCptr;
- char *prtype = "Printer type",
- *prshade = "Print shade",
- *prpaper = "Paper size",
- *baudrate = "Baud rate",
- *parity = "Parity",
- *handshake = "Handshake",
- *baud = "Baud";
-
- DPOS;
-
- if (PCptr = GetPrefs(&PrefCopy, sizeof(struct Preferences)))
- {
- PrintHeader(PREFS, NULL);
-
- EmptyListView();
-
- PrintInfo("Read Preferences", NO_SPEAK, 0);
-
- countentries = 61;
- Entries = AllocScrollEntries(countentries);
-
- strcpy(Entries[i].se_Entry, "----- Input/Keyboard:");
- AddNodeToList(i++, NO_SORT);
-
- MakeTimeEntry(&i, "Keyboard repeat speed", &PCptr->KeyRptSpeed);
-
- MakeTimeEntry(&i, "Keyboard repeat delay", &PCptr->KeyRptDelay);
-
- MakeTimeEntry(&i, "Double click time", &PCptr->DoubleClick);
-
-
- MakeHeadEntry(&i, "----- Pointer");
-
- /* Intuition Pointer data */
- MakeNumEntry(&i, "\"Hot spot\" X", (long)PCptr->XOffset);
- MakeNumEntry(&i, "\"Hot spot\" Y", (long)PCptr->YOffset);
-
- MakeColEntry(&i, "Pointer Sprite Col 0", (long)PCptr->color17);
- MakeColEntry(&i, "Pointer Sprite Col 1", (long)PCptr->color18);
- MakeColEntry(&i, "Pointer Sprite Col 2", (long)PCptr->color19);
-
- MakeNumEntry(&i, "Pointer Sensitivity", (long)PCptr->PointerTicks);
-
-
-
- MakeHeadEntry(&i, "----- Workbench");
-
- MakeNumEntry(&i, "Height default font", (long)PCptr->FontHeight);
-
- MakeColEntry(&i, "Standard Color 0", (long)PCptr->color0);
- MakeColEntry(&i, "Standard Color 1", (long)PCptr->color1);
- MakeColEntry(&i, "Standard Color 2", (long)PCptr->color2);
- MakeColEntry(&i, "Standard Color 3", (long)PCptr->color3);
-
- MakeNumEntry(&i, "View X-Offset", (long)PCptr->ViewXOffset);
- MakeNumEntry(&i, "View Y-Offset", (long)PCptr->ViewYOffset);
- MakeNumEntry(&i, "View init offset X", (long)PCptr->ViewInitX);
- MakeNumEntry(&i, "View init offset Y", (long)PCptr->ViewInitY);
-
- MakeNumEntry(&i, "Height default font", (long)PCptr->FontHeight);
-
- MakeStringEntry(&i, "CLI availability",
- (PCptr->EnableCLI ? "CLI enabled" : "CLI disabled"));
-
- MakeStringEntry(&i, "Workbench interlaced",
- (PCptr->LaceWB ? "Yes" : "No"));
-
- MakeNumEntry(&i, "Override WB width", (long)PCptr->wb_Width);
-
- MakeNumEntry(&i, "Override WB height", (long)PCptr->wb_Height);
-
- MakeNumEntry(&i, "Override WB depth", (long)PCptr->wb_Depth);
-
- MakeNumEntry(&i, "Extension Info size", (long)PCptr->ext_size);
-
-
-
- MakeHeadEntry(&i, "----- Printer");
-
- MakeStringEntry(&i, "Printer port",
- (PCptr->PrinterPort ? "Serial port" : "Parallel port"));
-
- switch (PCptr->PrinterType)
- {
- case 0x00:
- MakeStringEntry(&i, prtype, "Custom");
- break;
-
- case 0x01:
- MakeStringEntry(&i, prtype, "Alpha P101");
- break;
-
- case 0x02:
- MakeStringEntry(&i, prtype, "Brother 15XL");
- break;
-
- case 0x03:
- MakeStringEntry(&i, prtype, "CBM MPS1000");
- break;
-
- case 0x04:
- MakeStringEntry(&i, prtype, "Diabolo 630");
- break;
-
- case 0x05:
- MakeStringEntry(&i, prtype, "Diabolo ADV-D25");
- break;
-
- case 0x06:
- MakeStringEntry(&i, prtype, "Diabolo C-150");
- break;
-
- case 0x07:
- MakeStringEntry(&i, prtype, "Epson");
- break;
-
- case 0x08:
- MakeStringEntry(&i, prtype, "Epson JX-80");
- break;
-
- case 0x09:
- MakeStringEntry(&i, prtype, "Okimate 20");
- break;
-
- case 0x0A:
- MakeStringEntry(&i, prtype, "Qume-LP 20");
- break;
-
- case 0x0B:
- MakeStringEntry(&i, prtype, "HP-Laserjet");
- break;
-
- case 0x0C:
- MakeStringEntry(&i, prtype, "HP-Laserjet +");
- break;
-
- default:
- MakeStringEntry(&i, prtype, "Unknown");
- break;
- }
-
- MakeStringEntry(&i, "Printer Driver", (char *)PCptr->PrinterFilename);
-
- MakeNumEntry(&i, "Print pitch", (long)PCptr->PrintPitch);
-
- MakeStringEntry(&i, "Print quality",
- (PCptr->PrintQuality ? "Letter" : "Draft"));
-
- MakeStringEntry(&i, "Lines per inch",
- (PCptr->PrintSpacing ? "8 LPI" : "6 LPI"));
-
- MakeNumEntry(&i, "Left margin", (long)PCptr->PrintLeftMargin);
-
- MakeMeasureEntry(&i, "Right margin", (long)PCptr->PrintRightMargin,
- "Chars");
-
- MakeStringEntry(&i, "Print image",
- (PCptr->PrintImage ? "Negative" : "Positive"));
-
- MakeStringEntry(&i, "Print aspect",
- (PCptr->PrintImage ? "Vertical" : "Horizontal"));
-
-
- switch (PCptr->PrintShade)
- {
- case 0:
- MakeStringEntry(&i, prshade, "Black/White");
- break;
-
- case 1:
- MakeStringEntry(&i, prshade, "Grey scale");
- break;
-
- default:
- MakeStringEntry(&i, prshade, "Color");
- break;
- }
-
- MakeNumEntry(&i, "Print Threshold", (long)PCptr->PrintThreshold);
-
- switch (PCptr->PaperSize)
- {
- case US_LETTER:
- MakeStringEntry(&i, prpaper, "USA Letter");
- break;
-
- case US_LEGAL:
- MakeStringEntry(&i, prpaper, "USA Legal");
- break;
-
- case N_TRACTOR:
- MakeStringEntry(&i, prpaper, "Narrow tractor");
- break;
-
- case W_TRACTOR:
- MakeStringEntry(&i, prpaper, "Wide tractor");
- break;
-
- case CUSTOM:
- MakeStringEntry(&i, prpaper, "Custom width");
- break;
-
- }
-
- MakeMeasureEntry(&i, "Paper length", (long)PCptr->PaperLength,
- "Rows");
-
- MakeStringEntry(&i, "Paper type",
- (PCptr->PaperType ? "Single paper" : "Fanfold paper"));
-
- MakeStringEntry(&i, "Temp file for printer",
- ((PCptr->WorkName != NULL) ? (char *)PCptr->WorkName :
- (char *)"None"));
-
- MakeNumEntry(&i, "Affect Rows/Columns", (long)PCptr->RowSizeChange);
-
- sprintf(Entries[i].se_Entry, "User preference flags : 0x%08lx",
- PCptr->PrintFlags);
- AddNodeToList(i++, NO_SORT);
-
- MakeMeasureEntry(&i, "Max width of picture", (long)PCptr->PrintMaxWidth / 10,
- "inch");
-
- MakeMeasureEntry(&i, "Max height of picture", (long)PCptr->PrintMaxHeight / 10,
- "inch");
- MakeMeasureEntry(&i, "Offset of picture", (long)PCptr->PrintXOffset / 10,
- "inch");
- MakeNumEntry(&i, "Print density", (long)PCptr->PrintDensity);
-
-
-
- MakeHeadEntry(&i, "----- Serial configuration");
-
- switch (PCptr->BaudRate)
- {
- case 0x00:
- MakeMeasureEntry(&i, baudrate, 110L, baud);
- break;
-
- case 0x01:
- MakeMeasureEntry(&i, baudrate, 300L, baud);
- break;
-
- case 0x02:
- MakeMeasureEntry(&i, baudrate, 1200L, baud);
- break;
-
- case 0x03:
- MakeMeasureEntry(&i, baudrate, 2400L, baud);
- break;
-
- case 0x04:
- MakeMeasureEntry(&i, baudrate, 4800L, baud);
- break;
-
- case 0x05:
- MakeMeasureEntry(&i, baudrate, 9600L, baud);
- break;
-
- case 0x06:
- MakeMeasureEntry(&i, baudrate, 19200L, baud);
- break;
-
- case 0x07:
- MakeStringEntry(&i, baudrate, "MIDI (31.250 baud)");
- break;
-
- default:
- MakeStringEntry(&i, baudrate, (char *)field[NO_BAUD]);
- break;
- }
-
- MakeNumEntry(&i, "Read bits", (long)SRBNUM(PCptr->SerRWBits));
- MakeNumEntry(&i, "Write bits", (long)SWBNUM(PCptr->SerRWBits));
-
- MakeNumEntry(&i, "Stop bits", (long)SSBNUM(PCptr->SerStopBuf));
-
- switch (SPARNUM(PCptr->SerParShk))
- {
- case SPARITY_NONE:
- MakeStringEntry(&i, parity, "None");
- break;
-
- case SPARITY_EVEN:
- MakeStringEntry(&i, parity, "Even");
- break;
-
- case SPARITY_ODD:
- MakeStringEntry(&i, parity, "Odd");
- break;
-
- default:
- MakeStringEntry(&i, parity, (char *)field[NO_PARITY]);
- break;
- }
-
- switch (SHAKNUM(PCptr->SerParShk))
- {
- case SHSHAKE_XON:
- MakeStringEntry(&i, handshake, "XOn/XOff");
- break;
-
- case SHSHAKE_RTS:
- MakeStringEntry(&i, handshake, "RTS/CTS");
- break;
-
- case SHSHAKE_NONE:
- MakeStringEntry(&i, handshake, "None");
- break;
-
- default:
- MakeStringEntry(&i, handshake, (char *)field[NO_HANDSHK]);
- break;
- }
- }
- else
- ErrorHandle(ENV_ERR, INFO_FAIL, NO_KILL);
-
- PrintStatistics();
-
- return;
- }
-
-
- /*
- * SysEnvList() erzeugt eine Liste aller Dateien
- * (Environmentvariablen) im Verzeichnis ENV:
- */
- void
- SysEnvList(void)
- {
- int i;
- UBYTE envline[MAXFULLNAME+1];
- char envname[ENVLEN+1], envfullname[MAXFULLNAME];
- struct ExAllControl *eac;
- struct ExAllData *EAData,
- *ead;
- int more;
- long s;
- int d = 0;
- BPTR lock;
- int ftyp;
-
- DPOS;
-
- PrintHeader(ENVVARS, NULL);
-
- EmptyListView();
-
- if (lock = Lock((UBYTE *) "ENV:", ACCESS_READ))
- {
- countentries = SizeOfDir(lock, &s, &d);
- countentries += d;
-
- if (NoEntries())
- {
- UnLock(lock);
- return;
- }
-
- Entries = AllocScrollEntries(countentries);
-
- i = 0;
-
- if (eac = AllocDosObject(DOS_EXALLCONTROL, NULL))
- {
- eac->eac_LastKey = 0;
-
- EAData = MyAllocVec((MAXLARGEMEM+1) * sizeof(struct ExAllData),
- MEMF_ANY | MEMF_CLEAR, NO_KILL);
-
- if (EAData)
- {
- do
- {
- more = ExAll(lock, EAData, MAXLARGEMEM * sizeof(struct ExAllData),
- ED_TYPE, eac);
-
- if ((!more) && (IoErr()!= ERROR_NO_MORE_ENTRIES))
- {
- ErrorHandle(DOS_EXALL_ERR, EXALL_FAIL, NO_KILL);
- break;
- }
-
- if (eac->eac_Entries == 0)
- continue;
-
- ead = EAData;
-
- do
- {
- strncpy(envname, (char *)ead->ed_Name, ENVLEN);
- envname[ENVLEN] = STRINGEND;
- sprintf(envfullname,"ENV:%s",envname);
-
- ftyp = filetype((char *)envfullname);
-
- if(ead->ed_Type > 0)
- sprintf(Entries[i].se_Entry,EntryAttr[18].ea_dataformat,
- envname, "<dir>");
- else if(ftyp == TYPE_TEXT)
- {
- if (GetVar((STRPTR)envname, envline, MAXFULLNAME,GVF_GLOBAL_ONLY) > 0)
- {
- envline[MAXSTRLEN-1] = STRINGEND;
-
- sprintf(Entries[i].se_Entry, EntryAttr[18].ea_dataformat,
- envname, (char *)envline);
- }
- else
- sprintf(Entries[i].se_Entry,
- EntryAttr[18].ea_dataformat,
- envname, "<env error>");
- }
- else
- sprintf(Entries[i].se_Entry,
- EntryAttr[18].ea_dataformat,
- envname, "<no text>");
-
- AddNodeToList(i++, SORT);
-
- ead = ead->ed_Next;
- }
- while (ead && (i < countentries));
- }
- while (more && (i < countentries));
-
- MyFreeVec(EAData);
- }
-
- FreeDosObject(DOS_EXALLCONTROL, eac);
- }
- else
- ErrorHandle(MEMORY_ERR, ALLOC_FAIL, NO_KILL);
-
- UnLock(lock);
- }
- else
- {
- ErrorHandle(ENV_ERR, FIND_FAIL, NO_KILL);
- return;
- }
-
- PrintStatistics();
-
- return;
- }
-
-
-
- void
- SysExtPrinterData(void)
- {
- union printerIO
- {
- struct IOStdReq ios;
- struct IODRPReq iodrp;
- struct IOPrtCmdReq iopc;
- } *PIO;
- struct MsgPort *PrinterMP;
- struct PrinterData *PD;
- struct PrinterExtendedData *PED;
- int i = 0;
-
- DPOS;
-
- PrintHeader(PRINTERDATA, NULL);
-
- EmptyListView();
-
- countentries = 13;
- Entries = AllocScrollEntries(countentries);
-
- if (PrinterMP = (struct MsgPort *) CreateMsgPort())
- {
- if (PIO = (union printerIO *) CreateExtIO(PrinterMP,
- sizeof(union printerIO)))
- {
- if (!(OpenDevice((STRPTR)"printer.device", 0,
- (struct IORequest *) PIO, 0)))
- {
- PD = (struct PrinterData *) PIO->iodrp.io_Device;
- PED = (struct PrinterExtendedData *) &PD->pd_SegmentData->ps_PED;
-
- MakeStringEntry(&i,"Printer name",PED->ped_PrinterName);
- MakeNumEntry(&i,"Version",(long)PD->pd_SegmentData->ps_Version);
- MakeNumEntry(&i,"Revision",(long)PD->pd_SegmentData->ps_Revision);
-
- MakeNumEntry(&i,"Printer class",(long)PED->ped_PrinterClass);
- MakeNumEntry(&i,"Color class",(long)PED->ped_ColorClass);
-
- MakeNumEntry(&i,"Print columns",(long)PED->ped_MaxColumns);
- MakeNumEntry(&i,"Char sets",(long)PED->ped_NumCharSets);
- MakeNumEntry(&i,"Print head pins",(long)PED->ped_NumRows);
-
- MakeMeasureEntry(&i,"Max X-dots in dump",PED->ped_MaxXDots,"dots");
- MakeMeasureEntry(&i,"Max Y-dots in dump",PED->ped_MaxYDots,"dots");
- MakeMeasureEntry(&i,"Density X",(long)PED->ped_XDotsInch,"dots/inch");
- MakeMeasureEntry(&i,"Density Y",(long)PED->ped_YDotsInch,"dots/inch");
- MakeMeasureEntry(&i,"Timeout",(long)PED->ped_TimeoutSecs,"sec");
-
- CloseDevice((struct IORequest *) PIO);
- }
-
- DeleteExtIO((struct IORequest *) PIO);
- }
-
- DeleteMsgPort((struct MsgPort *) PrinterMP);
- }
-
- PrintStatistics();
-
- return;
- }
-