1. 10 Aug, 2024 2 commits
  2. 20 Feb, 2023 2 commits
    • Robert Sprowson's avatar
      [559] Don't allow selection of an empty MDF · 11657718
      Robert Sprowson authored
      If ScreenModes returns an error to LoadModeFile, report the error then revert
      to the "Auto" monitor type, rather than leaving a duff MDF in the monitor type
      selection.
      
      Version 0.45. Tagged as 'ScrnSetup-0_45'
      11657718
    • Robert Sprowson's avatar
      Squash a few warnings · 287053f8
      Robert Sprowson authored
      Remove the C_WARNINGS override from the makefile, and put those extern objects
      into header files, or mark static as appropriate.
      287053f8
  3. 20 Jun, 2020 1 commit
  4. 17 Oct, 2019 1 commit
    • Robert Sprowson's avatar
      Type cast correction · 02be889e
      Robert Sprowson authored
      Use the true type rather than a void pointer for toolbox_template_lookup().
      Required by ToolboxLib-0_28 or later.
      
      Version 0.44. Tagged as 'ScrnSetup-0_44'
      02be889e
  5. 27 Aug, 2018 1 commit
    • Robert Sprowson's avatar
      Fix handle and memory leaks on error · 4703ec24
      Robert Sprowson authored
      screen.c: if the destination file couldn't be opened, don't leak the source file; and when there are no disc based screen savers don't leak menustring (since the built in DPMS saver name doesn't need allocating - it can go straight into the stringset gadget).
      Found by cppcheck static analysis.
      
      Version 0.43. Tagged as 'ScrnSetup-0_43'
      4703ec24
  6. 26 Aug, 2018 1 commit
    • Robert Sprowson's avatar
      Fix handle and memory leaks on error · 96f73151
      Robert Sprowson authored
      screen.c: if the destination file couldn't be opened, don't leak the source file; and when there are no disc based screen savers don't leak menustring (since the built in DPMS saver name doesn't need allocating - it can go straight into the stringset gadget).
      Found by cppcheck static analysis.
      
      Version 0.43. Tagged as 'ScrnSetup-0_43'
      96f73151
  7. 14 Apr, 2018 1 commit
    • Robert Sprowson's avatar
      Improve fading logic when unselecting Native · ce30c56c
      Robert Sprowson authored
      When the previously configured mode was Native, in order to avoid accessing the colour flags array with a -ve index, the depth was arbitrarily set to 1bpp.
      However, if the graphics controller doesn't support 1bpp the search would exit with no matches the the colour/frame rate popups remained greyed and unselectable.
      Instead let the loop run up to the highest colour depth (16M), the best match logic will pick the best colour/frame rate combination, but more importantly the GUI controls will be activated.
      
      Version 0.42. Tagged as 'ScrnSetup-0_42'
      ce30c56c
  8. 08 Apr, 2017 1 commit
    • ROOL's avatar
      Minor UI improvements · 62ec0f01
      ROOL authored
      Detail:
        Move the resolution picker menu after the monitor type picker menu, so the logical order flows better.
        Fix for failure to unshade menus after cancelling a 'Try' operation with the Auto monitor type.
        Improve the clarity of the magic EDID entry by using the text 'Auto (BrandX 123GTI)' in the menu so it stands out from other non-Auto detected types.
      Admin:
        Submission for the EDID bounty.
      
      Version 0.41. Tagged as 'ScrnSetup-0_41'
      62ec0f01
  9. 05 Mar, 2017 1 commit
    • ROOL's avatar
      Add support for EDID monitors in the system · 5955997b
      ROOL authored
      Detail:
        Upgrade the MDF directory enumeration to minimally parse EDID data blobs. Add these to the list of known monitors. This allows a disc based MDF to override faulty data in the monitor, or on systems such as IOMD that don't support EDID, for them to benefit from a library of blobs rather than needing a parallel set of MDFs creating.
        Add the path of EDID blobs exported by ScrModes to those scanned for monitor definitions. EDID data is always placed in the top level manufacturer menu below 'Auto'.
        Add interactive help to clarify what 'Auto' means and how it differs from the EDID data.
      
        common.c: Relocate [un]grey_gadget() from screen.c.
        main.c: Simplify unnecessary memset(). Create a flag based on ScreenModes_Features whether the host OS supports EDID or not.
        monitor.c: Extra scanning. Conflict resolution if duplicate monitor definitions exist from differing sources. Simple EDID parser to get the monitor name (else default string) and DPMS flags.
      Admin:
        Submission for the EDID bounty.
        Tested with ScrModes-0_61, and also on earlier versions, on RISC OS 5.23.
        Briefly tested on RISC OS 3.70 with !Boot.Resources.Configure.Monitors containing EDID data (should be ignored).
      
      Version 0.40. Tagged as 'ScrnSetup-0_40'
      5955997b
  10. 04 Aug, 2016 1 commit
  11. 02 Aug, 2016 1 commit
    • Robert Sprowson's avatar
      Fix for thinking 0th model is Auto type · de5f16d0
      Robert Sprowson authored
      The current_montype variable now holds the entry number within the menu for the selected manufacturer, whereas it used to be the current entry for the 1 (and only) models menu.
      So, when selecting any 0th model from a submenu this would be mistaken as the former 'Auto' entry, and the PreDesk$Configure file wiped out.
      
      Rescope current_montype to be static so it can only be used for its intended purpose, and derive 'Auto' or not in set_monitor_choices() by whether the filename is NULL like elsewhere.
      Use defines when calling OS_ScreenMode rather than magic numbers.
      Should fix issue described in https://www.riscosopen.org/forum/forums/11/topics/6370 introduced in ScrnSetup-0_36.
      
      Version 0.38. Tagged as 'ScrnSetup-0_38'
      de5f16d0
  12. 19 May, 2016 1 commit
    • Robert Sprowson's avatar
      Make the previous selection more obvious · 10389c3e
      Robert Sprowson authored
      Having chosen a monitor type from within a group, it wasn't very obvious from which group it came.
      Follow the same behaviour as a font menu: tick the parent when an exclusive selection is made from its child.
      
      Version 0.37. Tagged as 'ScrnSetup-0_37'
      10389c3e
  13. 18 May, 2016 2 commits
    • Robert Sprowson's avatar
      Group manufacturers together in the type menu · b6bf856c
      Robert Sprowson authored
      The plugin scans all the subdirectories of BootResources:Configure.Monitors but then presents the findings unsorted in a huge menu. Now there are lots of MDFs the menu is so big it has a scrollbox too.
      To simplify this, and make finding the right one easier, collect up the monitors by manufacturer (inferred from name of the topmost directory) into submenus.
      Tested on a Risc PC with a mix of complexities of subdirectories from a default !Boot.
      
      Version 0.36. Tagged as 'ScrnSetup-0_36'
      b6bf856c
    • Robert Sprowson's avatar
      Make monitor type into a display field + popup menu · 24bd39e8
      Robert Sprowson authored
      Was previously a StringSet, but these are limited to only one level of menu tree.
      Turned off "Deliver event before showing" for the popups in the main window, since nothing registered events against them.
      No longer spends an eternity rebuilding the monitors menu when adjust clicking on 'Cancel', because the read_choices() function also used to scan the MDFs to make the menu. Now it really does just read the choices back in.
      Correction to interactive help for the "Resolution" menu - the guidance about square and rectangular pixels was back to front.
      
      Version 0.35. Tagged as 'ScrnSetup-0_35'
      24bd39e8
  14. 01 Feb, 2016 1 commit
  15. 11 May, 2015 1 commit
  16. 15 Oct, 2014 1 commit
    • Robert Sprowson's avatar
      Look for territory specific messages before falling back to en-gb · d1553a1b
      Robert Sprowson authored
      To build the screen saver 'Info' menu this plugin reaches into the screensaver to get the purpose/author/version fields from its messages, however was not respecting any territory selection.
      This change emulates how Toolbox_Initialise would look and is essentially a repeat of ticket #367.
      Also - the return registers for MessageTrans_FileInfo were wrong, R0 and R2 (not R1 and R2) but since the flags were never used, this is easier to delete.
      
      Version 0.32. Tagged as 'ScrnSetup-0_32'
      d1553a1b
  17. 15 Sep, 2014 1 commit
    • Robert Sprowson's avatar
      Display field resized · 9a06a312
      Robert Sprowson authored
      Monitor display field was 56 tall, when Style Guide says 52 (as the others are).
      
      Version 0.31. Tagged as 'ScrnSetup-0_31'
      9a06a312
  18. 09 Feb, 2014 1 commit
    • Robert Sprowson's avatar
      Leave the selected monitor type correct after hitting 'Set' · d8dd5893
      Robert Sprowson authored
      When the monitor type is Auto at startup (type=3) and the user selects a monitor from an MDF (type=7) when pressing 'Set' the temporary instance of the ScreenModes module is killed off (in program_exit()) which restores the monitor type back to what it was when starting (type=3). That leaves DisplayManager thinking there's an MDF loaded, but the base instance of ScreenModes thinking not.
      main.c/defines.h:
      Minor unrelated clean ups.
      monitor.c:
      When saving the settings, kill off the temporary instance, apply the setting, then create a new one - this is much like adjust clicking on cancel does.
      Complete a TODO with an error message if the settings file wont open.
      Messages;
      New error token for the TODO.
      
      Fixes ticket #372.
      
      Version 0.30. Tagged as 'ScrnSetup-0_30'
      d8dd5893
  19. 18 Dec, 2013 1 commit
    • Jeffrey Lee's avatar
      Fix a couple of issues · a5767dc5
      Jeffrey Lee authored
      Detail:
        Resources/UK/Res,fae - Change the default Colours box text to "4096 colours", as it's now the longest string the box needs to display. Fixes "buffer too short" error when trying to select a 4K colour mode.
        c/monitor - Adjust switch_colour() so that it checks both the X and Y dimensions when finding the new mode instead of just the X dimension. Avoids the selection unintentionally switching to the tallest available mode with the matching width when all you want to do is change the number of colours.
        c/monitor - Adjust update_monitor_displayfields() so that the monitor text box is only reset to "Auto" if it failed to find a monitor. Fixes a visible flicker on some machines due to the display temporarily switching to "Auto" when changing settings.
      Admin:
        Tested on RiscPC with latest ROM softload
      
      
      Version 0.29. Tagged as 'ScrnSetup-0_29'
      a5767dc5
  20. 15 Dec, 2013 1 commit
    • Jeffrey Lee's avatar
      Update to add support for new screen modes · 6d44f8db
      Jeffrey Lee authored
      Detail:
        Resources/UK/Res,fae - Add new 4K and 64K entries to colours menu
        c/monitor - Generalise mode provider block parsing to deal with the fact we might encounter both new and old format blocks. Rework handling of colour menu entries and colour selection to deal with 4K & 64K modes and the possibility of RGB/alpha variants. Update PreDesk configuration file parsing to prefer to use OS_ScreenMode 13 where possible.
      Admin:
        Tested on Iyonix & BB with new and old ROMs
        Requires Kernel-5_35-4_79_2_203 to build
      
      
      Version 0.28. Tagged as 'ScrnSetup-0_28'
      6d44f8db
  21. 31 Jul, 2013 1 commit
  22. 17 Jul, 2013 1 commit
  23. 17 Jan, 2013 1 commit
    • Robert Sprowson's avatar
      Minor ScrnSetup improvements · 5dd3b0de
      Robert Sprowson authored
      * Get OS_Byte/OS_File/filetypes/CMOS/OS_Module defs from header files.
      * Fix ticket #312 (misuse of OS_GBPB means enumerating dirs on a non FileCore filing system could get stuck).
      * Simplify the steps in the mode 'Try' sequence, now the mouse is bounded in the 'Keep/Cancel' message box (with the same 5s timeout) so that you can't click elsewhere on the main window. Previously, you could click 'Set', then the 5s would elapse and the mode revert to not the one you set.
      * Window size is now compared with screensize on startup and the V scroll bar turned on/off as needed.
      
      Note that in reviewing the plugins the minimum resolution considered to fit without scroll bars is 640x480, a special case is made of the screen setup plugin in case it starts in some mode less than that and you can't reach the 'OK' button to set it to anything else.
      
      Version 0.25. Tagged as 'ScrnSetup-0_25'
      5dd3b0de
  24. 06 Oct, 2012 1 commit
    • Jeffrey Lee's avatar
      Add vertical scrollbar · 45119a3d
      Jeffrey Lee authored
      Detail:
        Resources/UK/Res,fae - Vertical scroll bar added, to avoid window being cut off in low res modes
      Admin:
        Tested in 640x480 screen mode
      
      
      Version 0.24. Tagged as 'ScrnSetup-0_24'
      45119a3d
  25. 15 Sep, 2012 1 commit
  26. 28 Aug, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix null pointer dereference when monitor is unknown. Be more sensible when setting/testing mode. · 9be3643c
      Jeffrey Lee authored
      Detail:
        c/monitor - Added a few checks to make sure current_monitor_file isn't null before we try accessing it. Make sure monitor is reset to "Auto" if switching to a set of settings where no MDF is loaded.
        c/monitor, h/monitor - Updated set_monitor_choices to only complain about unspecified mode settings if an MDF is in use. Return true/false for whether the settings were applied or not.
        c/main - Make use of set_monitor_choices return code to decide whether the 5 second "try" timeout is needed or not. Make sure selected monitor gets reset when switching between different settings during the various "try" stages.
      Admin:
        Tested on Raspberry Pi with high processor vectors
      
      
      Version 0.23. Tagged as 'ScrnSetup-0_23'
      9be3643c
  27. 22 Aug, 2012 1 commit
  28. 22 Jul, 2012 1 commit
  29. 26 Jun, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix null pointer dereference on startup · dd2ba6de
      Jeffrey Lee authored
      Detail:
        c/main - Command line parsing now checks if enough arguments exist before attempting to look for an -openat option
      Admin:
        Tested on Raspberry Pi with high processor vectors
      
      
      Version 0.20. Tagged as 'ScrnSetup-0_20'
      dd2ba6de
  30. 12 Feb, 2012 1 commit
    • Robert Sprowson's avatar
      Internationalised the screensaver blank times. · 77fbdb2f
      Robert Sprowson authored
      When reading choices, read from Choices:.
      If no screensaver is set then adjustclicking on 'Cancel' now correctly restores the DPMS saver as the default.
      Use OS_FSControl instead of OS_CLI(*COPY).
      'Auto' and 'Unknown' put in messages file.
      
      Version 0.19. Tagged as 'ScrnSetup-0_19'
      77fbdb2f
  31. 11 Feb, 2012 1 commit
  32. 14 Jan, 2012 1 commit
  33. 13 Apr, 2011 1 commit
    • Jeffrey Lee's avatar
      Add framerate selection to ScrnSetup plugin. Update to take version number from VersionNum file. · 42b82d34
      Jeffrey Lee authored
      Detail:
        c/main, c/monitor, h/defines, h/monitor, Resources/UK/Res,fae - Added an extra box to the display settings are to allow selection of screen refresh rate.
        Makefile, Resources/UK/Messages - Updated so that version number is taken from the VersionNum file instead of being hard-coded in the messages file.
      Admin:
        Tested on Iyonix. New plugin seems to work OK with parsing both the old and new WimpMode lines, as well as when the PreDesk.Configure.Monitor file is missing altogether.
      
      
      Version 0.16. Tagged as 'ScrnSetup-0_16'
      42b82d34
  34. 27 Jan, 2010 1 commit
    • Steve Revill's avatar
      Fix bug in "Try" button for screensavers. · 0ebe9fec
      Steve Revill authored
      If you select a screensaver from the menu and 'try' it, then decide to
      cancel the plug-in, the last selected screensaver is left as the current
      saver, rather than restoring what you had configured originally. A reboot
      would sort it out, but that's a little OTT. Fixed.
      
      Version 0.15. Tagged as 'ScrnSetup-0_15'
      0ebe9fec
  35. 25 Oct, 2009 1 commit
    • Jeffrey Lee's avatar
      Fix broken ScrnSetup Configure plugin · 1d47a99f
      Jeffrey Lee authored
      Detail:
        read_current_mode_settings() in monitor.c now correctly parses the default Choices:Boot.PreDesk.Configure.Monitor file (The addition of the Castle license text was causing the original code to fail)
        update_monitor_displayfields() in monitor.c now behaves correctly if the current colour depth is unknown
        trap_error() in common.c/.h has been updated to allow the reporting of the file & line that caused the error, to allow errors to be tracked down more easily in the future.
      Admin:
        Tested on rev C2 beagleboard.
      
      
      Version 0.14. Tagged as 'ScrnSetup-0_14'
      1d47a99f
  36. 24 Oct, 2009 1 commit
  37. 18 Jun, 2003 1 commit