ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/AmigaOS/prefs_editor_amiga.cpp
(Generate patch)

Comparing BasiliskII/src/AmigaOS/prefs_editor_amiga.cpp (file contents):
Revision 1.5 by cebix, 1999-11-01T16:24:10Z vs.
Revision 1.14 by cebix, 2001-01-04T19:50:22Z

# Line 27 | Line 27
27   #include <libraries/asl.h>
28   #include <libraries/gtlayout.h>
29   #include <libraries/Picasso96.h>
30 + #include <cybergraphics/cybergraphics.h>
31   #include <graphics/displayinfo.h>
32   #include <devices/ahi.h>
33   #include <proto/exec.h>
# Line 37 | Line 38
38   #include <proto/graphics.h>
39   #include <proto/asl.h>
40   #include <proto/Picasso96.h>
41 + #include <proto/cybergraphics.h>
42   #include <proto/ahi.h>
43  
44   #include "sysdeps.h"
# Line 352 | Line 354 | bool PrefsEditor(void)
354                                                  case GAD_BOOTDRIVER:
355                                                          switch (code) {
356                                                                  case 0:
357 <                                                                        PrefsReplaceInt16("bootdriver", 0);
357 >                                                                        PrefsReplaceInt32("bootdriver", 0);
358                                                                          break;
359                                                                  case 1:
360 <                                                                        PrefsReplaceInt16("bootdriver", CDROMRefNum);
360 >                                                                        PrefsReplaceInt32("bootdriver", CDROMRefNum);
361                                                                          break;
362                                                          }
363                                                          break;
# Line 426 | Line 428 | bool PrefsEditor(void)
428                                                  case GAD_SCSI6_DEVICE:
429                                                  case GAD_SERIALA_DEVICE:
430                                                  case GAD_SERIALB_DEVICE:
431 +                                                        if (dev_request) {
432 +                                                                LT_LockWindow(win);
433 +                                                                BOOL result = AslRequestTags(dev_request,
434 +                                                                        ASLFR_Window, (ULONG)win,
435 +                                                                        ASLFR_InitialDrawer, (ULONG) "Devs:",
436 +                                                                        TAG_END);
437 +                                                                LT_UnlockWindow(win);
438 +                                                                if (result) {
439 +                                                                        char *str;
440 +                                                                        GT_GetGadgetAttrs(gad, win, NULL, GTST_String, (ULONG)&str, TAG_END);
441 +                                                                        strncpy(str, dev_request->rf_File, 255);        // Don't copy the directory part. This is usually "DEVS:" and we don't need that.
442 +                                                                        str[255] = 0;
443 +                                                                        LT_SetAttributes(h, gad->GadgetID, GTST_String, (ULONG)str, TAG_END);
444 +                                                                }
445 +                                                        }
446 +                                                        break;
447 +
448                                                  case GAD_ETHER_DEVICE:
449                                                          if (dev_request) {
450                                                                  LT_LockWindow(win);
451 <                                                                BOOL result = AslRequestTags(dev_request, ASLFR_Window, (ULONG)win, TAG_END);
451 >                                                                BOOL result = AslRequestTags(dev_request,
452 >                                                                        ASLFR_Window, (ULONG)win,
453 >                                                                        ASLFR_InitialDrawer, (ULONG) "Devs:Networks",
454 >                                                                        TAG_END);
455                                                                  LT_UnlockWindow(win);
456                                                                  if (result) {
457                                                                          char *str;
# Line 511 | Line 533 | quit:
533          FreeAslRequest(dev_request);
534          FreeAslRequest(file_request);
535  
536 +        // Delete Menus
537 +        LT_DisposeMenu(menu);
538 +
539          // Delete handle
540          LT_DeleteHandle(h);
541  
# Line 549 | Line 574 | static void parse_volumes_prefs(void)
574  
575          bootdriver_num = 0;
576  
577 <        int bootdriver = PrefsFindInt16("bootdriver");
577 >        int bootdriver = PrefsFindInt32("bootdriver");
578          switch (bootdriver) {
579                  case 0:
580                          bootdriver_num = 0;
# Line 871 | Line 896 | do_req:                                                if (req) {
896                  }
897          } while (!done);
898  
874        // Delete handle
875        LT_DeleteHandle(h);
876
899          // Update preferences and list view
900          if (ok_clicked) {
901                  char str[256];
# Line 911 | Line 933 | do_req:                                                if (req) {
933                  LT_SetAttributes(h2, GAD_DISK_LIST, GTLV_Labels, (ULONG)&disk_list, TAG_END);
934                  ghost_volumes_gadgets(h2);
935          }
936 +
937 +        // Delete handle
938 +        LT_DeleteHandle(h);
939   }
940  
941   // Remove volume from list
# Line 1239 | Line 1264 | static void ghost_graphics_gadgets(struc
1264   // Show screen mode requester
1265   static void screen_mode_req(struct Window *win, struct LayoutHandle *h)
1266   {
1267 <        if (P96Base == NULL)
1267 >        if (P96Base == NULL && CyberGfxBase == NULL)
1268                  return;
1269  
1270          LT_LockWindow(win);
1271 <        ULONG id = p96RequestModeIDTags(
1272 <                P96MA_MinDepth, 8,
1273 <                P96MA_FormatsAllowed, RGBFF_CLUT | RGBFF_R5G5B5 | RGBFF_A8R8G8B8,
1274 <                TAG_END
1275 <        );
1271 >
1272 >        ULONG id;
1273 >
1274 >        // Try P96 first, because it also provides a (fake) cybergraphics.library
1275 >        if (P96Base) {
1276 >                id = p96RequestModeIDTags(
1277 >                        P96MA_MinDepth, 8,
1278 >                        P96MA_FormatsAllowed, RGBFF_CLUT | RGBFF_R5G5B5 | RGBFF_A8R8G8B8,
1279 >                        TAG_END
1280 >                );
1281 >        } else {
1282 >                UWORD ModelArray[] = { PIXFMT_LUT8, PIXFMT_RGB15, PIXFMT_ARGB32, 0, ~0 };
1283 >                id = (ULONG) CModeRequestTags(NULL,
1284 >                        CYBRMREQ_MinDepth, 8,
1285 >                        CYBRMREQ_CModelArray, (ULONG) ModelArray,
1286 >                        TAG_END
1287 >                );
1288 >        }
1289          LT_UnlockWindow(win);
1290  
1291          if (id != INVALID_ID) {
# Line 1428 | Line 1466 | static void parse_serial_prefs(void)
1466          ether_unit = 0;
1467  
1468          const char *str = PrefsFindString("ether");
1469 <        if (str)
1470 <                sscanf(str, "%[^/]/%ld", ether_dev, &ether_unit);
1469 >        if (str) {
1470 >                const char *FirstSlash = strchr(str, '/');
1471 >                const char *LastSlash = strrchr(str, '/');
1472 >
1473 >                if (FirstSlash && FirstSlash && FirstSlash != LastSlash) {
1474 >                        // Device name contains path, i.e. "Networks/xyzzy.device"
1475 >                        const char *lp = str;
1476 >                        char *dp = ether_dev;
1477 >
1478 >                        while (lp != LastSlash)
1479 >                                *dp++ = *lp++;
1480 >                        *dp = '\0';
1481 >
1482 >                        sscanf(LastSlash, "/%ld", &ether_unit);
1483 >
1484 > //                      printf("dev=<%s> unit=%d\n", ether_dev, ether_unit);
1485 >                } else {
1486 >                        sscanf(str, "%[^/]/%ld", ether_dev, &ether_unit);
1487 >                }
1488 >        }
1489   }
1490  
1491   // Set serial preference item
# Line 1451 | Line 1507 | static void read_serial_settings(void)
1507  
1508          if (strlen(ether_dev)) {
1509                  char str[256];
1510 +
1511                  sprintf(str, "%s/%ld", ether_dev, ether_unit);
1512                  PrefsReplaceString("ether", str);
1513          } else

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines