Simplify/clarify option names in Instant Record menu

Issue #302 resolved
prl created an issue

This originates from a user suggestion on the forum, with some changes I suggested and were agreed on.

The text in {} is the condition that controls whether the entries appear in the menu. {Fixed} entries appear in all menus.

  • {Fixed}
  • Add recording (stop after current event) -> Record event remainder ->> Record rest of event
  • Add recording (indefinitely) -> Record indefinitely
  • Add recording (enter recording duration) -> Record duration
  • Add recording (enter recording endtime) -> Record until time

  • {Instant recording running}

  • Change recording (duration) ->> Change instant recording duration
  • Change recording (endtime) ->> Change instant recording end
  • Stop recording ->> Stop instant recording

  • {Timer recording running}

  • Stop timer recording ->> Stop timer recording

  • {Timeshift enabled}

  • Timeshift save recording (stop after current event) -> Record current timeshift event
  • Timeshift save recording (Select event) -> Record selected timeshift event

  • {Fixed}

  • Do not record ->> Exit (in menu)/Disable (in setup)

Comments (16)

  1. Peter Urbanec
    • removed issue_update

    The issue was updated with the following change(s):

    • This issue's description has been changed
  2. Peter Urbanec
    • removed issue_update

    The issue was updated with the following change(s):

    • This issue's description has been changed
  3. Peter Urbanec

    Fix issue #302-2: Combine end time and duration popups for instant record menu

    The code allows for buttons to be assigned to increment/decrement the hours and minutes of the Time and Duration fields. However, consensus counld not be reached about which buttons to use, so the functions have bee disabled by commenting out the relevant code.

    In keymap.xml:

    Add a context to support increment/decrement keys in TimeDateDurationInput. Currently commented out.

    In config.py:

    [config]

    Add definitions for KEY_PAGEUP, KEY_PAGEDOWN keys for new/modified classes.

    [ConfigDateTime]

    Allow for a second increment value, base time, callback on select/deslelect of the config item and enable/disable constraint that the value is >= base time.

    Allow objects to use functions other than localtime() & mktime() for conversions between Unix time and a time_struct.

    Add KEY_PREV, KEY_NEXT as keys that increment/decrement using the second increment value.

    Add controllable limiting of the value to be >= tthe base time.

    Allow formatstring to be a callable that returns a conversion of the time as well as to be a string

    Add methods for conversion between the object's value and value - base time.

    [ClockTime]

    Mixin class to allow a ConfigDateTime object to display as and interact with the user as a ConfigClockTime. The class is designed to make use of the base time in its containing ConfigDateTime

    [ConfigClockTime]

    ConfigDateTime with a ClockTime mixin to allow time entry.

    [ConfigDuration]

    New class derived from ConfigDateTime that displays and interacts with value - base time as a duration. Normally prevents durations < 0, but displays negative durations if negative durations (i.e. value < time base) if the limiting of value is disabled.

    [ConfigClockDuration]

    ConfigDuration with a ClockTime mixin to allow time entry.

    In TimeDateInput.py:

    [TimeDateInputBase]

    Abstract common parts of TimeDateInput and new class TimeDateDurationInput into TimeDateInputBase.

    Reverse the order of ConfigListScreen and Screen so that ConfigListScreen methods over-ride Screen methods. In particular

    Add symbolic names for the "save" masks.

    [TimeDateInput]

    In TimeDateInput.createConfig() change the incorrect creation of the default conf_time as a tuple to be just the plain object (remove trailing comma).

    [TimeDateDurationInput]

    New class extending TimeDateInput to allow the definition of a date/time/duration screen.

    Also adds the ability to put descriptive text into the Config items inside a TimeDateDurationInput object.

    In order to properly handle changing the base time limit on the config items, TimeDateDurationInput.getTimestamp() returns a Config object instead of an integer to capture changes to the Config item's value after getTimestamp() is called.

    In InfoBarGenerics.py:

    [InfoBarInstantRecord]

    Remove redundant "or False" from "(logical expression) or False" construct.

    Use new TimeDateDurationInput instead of TimeDateInput to enter end time or duration instead of only end time for "Record until given time" and "Change instant recording end time". The corresponding "duration" menu entries remain with their previous UI, and will be removed in a later "menu simplification" checkin.

    In InfoBarInstantRecord.setEndTime() add keyword argument "new" to distinguish whether the call is to set the length of a recording or to modify it. This is currently only used to modify the description of the Duration config item, but it will be used in future checkins to change the behaviour of the popup on exit: to continue recording with the original time if it was modifying the end time (instead of stopping the timer, and to delete the recording as well as the timer if the call was to set the end time.

    In InfoBarInstantRecord.TimeDateInputClosed() adapt to the new interface to TimeDateDurationInput.close()

    Dependencies:

    Requires modifications in the corresponding branches in the easy-skin-aus-hd and skin-full-metal-wizard repositories.

    → <<cset 4162751cf8f8>>

  4. Peter Urbanec

    Fix issue #302-2: reduce the size of instant recording menu

    [InfoBarGenerics]

    Reduce the instant recording menu length by removing some entries, combining others and adding one new entry.

    Record the rest of the current event (removed) Record indefinitely (removed) Record for given duration (combined as Set recording duration...) Record until given time (

    Record current timeshift event (removed) Record selected timeshift event (renamed to Select an event to save...)

    Change instant recording duration (combined as Stop or change ... Change instant recording end time ( Stop instant recording (

    Cancel timeshift save (added)

    Do nothing (removed)

    Change "RIGHT/LEFT" text in config item descriptions to be consistently "LEFT/RIGHT".

    Remove redundant in-code import of TimerEditList.

    [TimerEdit]

    Added new class TimerStopChangeList to support new combined "Stop or change active recording...".

    [Timeshift]

    Modify InfoBarTimeshift.saveTimeshiftEventPopup() so that the currently active timeshift buffer is selected when the ChoiceBox opens, so that "Select an event to save...", OK saves the timeshift buffer currently being viewed.

    [TimerEdit, InfoBarGenerics, Timeshift]

    Add skin_name= named parameters to ChoiceBoxes that lack them.

    → <<cset 7d25ba9fe652>>

  5. Peter Urbanec

    Fix issue #302-2: add function to read recording metafiles

    [Timeshift]

    Add function readMetafile() to read the first 5 lines of a recording's .meta file and use it to replace (mostly) duplicate code.

    → <<cset 4498ffba816d>>

  6. Peter Urbanec

    Fix issue #302-2: warn user if repeated instant record actions are made

    [InfoBarGenerics]

    Add code to check whether a recording is already running on the current service when an instant recording is started, and ask what the user wants to do.

    Link into the new code in Timeshift to check whether the current or a prior timeshift event has already been saved.

    [Timeshift]

    Add code to check whether a prior timeshift event has already been saved if it is saved again, and ask what the user wants to do.

    Add code to check whether the timeshift buffer for the program currently being broadcast is already being marked to be saved and ask what the user wants to do.

    → <<cset ac62d0f19d1d>>

  7. Peter Urbanec

    Fix issue #302-2: clean up recording if Set recording duration is cancelled

    [InfoBarGenerics]

    If "Create instant recording..." is selected, but the time setting popup is cancelled, the timer will be stopped and the short recording that was created while the popup was displayed will be deleted.

    Unqueue "A recording has been started ..." popup when time setting is cancelled, so that the user doesn't get the popup if the recording is cancelled & deleted.

    [RecordTimer]

    Add a unique id to the "A recording has been started ..." popup so that it can be cancelled or overridden.

    → <<cset 26a18c1f0093>>

  8. Peter Urbanec

    Fix issue #302-2: user-settable default instant recording length

    [InfoBarGenerics, RecordingConfig] and setup.xml

    Allow the user to set the default recording length for Create instant recording...

    → <<cset a056bf99e8c1>>

  9. Peter Urbanec

    Fix issue #302-2: PEP-8 cleanup [RecordingConfig, config, TimeDateInput, TimerEdit]

    [pep8] ignore=W191,E302,E501

    [TimeDateInput]

    Also change instances of 86400 to 24 * 60 * 60 for clarity.

    → <<cset 4b55b1a1b043>>

  10. Peter Urbanec

    Fix issue #302-3: Fixed fallback duration for "padded event" instant recording

    If the user chooses "padded event" for the default duration of an instant recording and no event information is available, make the default recording duration 120 min instead of a 24-hour "indefinite" recording.

    Also modify the "recording started" popup so that it shows the fallback time instead of "padded event" if the fallback time is used.

    → <<cset ef37d3e7dd7b>>

  11. Peter Urbanec

    Fix issue #302-3: Use servicename as fallback for instant recording name

    Use servicename as fallback for instant recording name when the event name is not available.

    → <<cset d65fa0dacf77>>

  12. Peter Urbanec

    Fix issue #302-3: Tidy up instant recording default time text

    Change the UI strings for the instant recording default time strings to "padded event", "5 minutes", "10 minutes" ... (from "5", "10", ...).

    Change the setup.xml text for the setting correspondingly.

    Add information about the 120 min fallback for "padded event" to the setup.xml text.

    → <<cset e6737b71f0f3>>

  13. Log in to comment