commit/StationPlaylist: 25 new changesets

  • From: commits-noreply@xxxxxxxxxxxxx
  • To: commits+int+220+6085746285340533186@xxxxxxxxxxxxxxxxxxxxx, nvda-addons-commits@xxxxxxxxxxxxx
  • Date: Wed, 05 Jun 2019 01:26:33 +0000 (UTC)

25 new commits in StationPlaylist:

https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/ccd7d177442f/
Changeset:   ccd7d177442f
Branch:      None
User:        josephsl
Date:        2019-05-16 00:01:39+00:00
Summary:     Creator and Track Tool: remove unused 'individual columns' flag 
from column content nanouncer. Re #101.

In Track Tool and Creator app modules/column content announcer, individual 
columns flag was defined but never invoked. Thus remove this.

Affected #:  2 files

diff --git a/addon/appModules/splcreator.py b/addon/appModules/splcreator.py
index 88597a2..8135042 100755
--- a/addon/appModules/splcreator.py
+++ b/addon/appModules/splcreator.py
@@ -26,7 +26,7 @@ class SPLCreatorItem(SPLTrackItem):
        # Another tweak for SPL Creator: Announce column header if given.
        # Also take care of this when specific columns are asked.
        # This also allows display order to be checked (Studio 5.10 and later).
-       def announceColumnContent(self, colNumber, header=None, 
individualColumns=False):
+       def announceColumnContent(self, colNumber, header=None):
                import sys
                if not header:
                        # #72: directly fetch on-screen column header (not the 
in-memory one) by probing column order array from the list (parent).
@@ -42,13 +42,9 @@ class SPLCreatorItem(SPLTrackItem):
                        if sys.version.startswith("3"): 
ui.message(str(_("{header}: {content}")).format(header = header, content = 
columnContent))
                        else: ui.message(unicode(_("{header}: 
{content}")).format(header = header, content = columnContent))
                else:
-                       if individualColumns:
-                               # Translators: Presented when some info is not 
defined for a track in Track Tool (example: cue not found)
-                               ui.message(_("{header} not 
found").format(header = header))
-                       else:
-                               import speech, braille
-                               speech.speakMessage(_("{header}: 
blank").format(header = header))
-                               braille.handler.message(_("{header}: 
()").format(header = header))
+                       import speech, braille
+                       speech.speakMessage(_("{header}: blank").format(header 
= header))
+                       braille.handler.message(_("{header}: ()").format(header 
= header))
 
        def indexOf(self, header):
                try:

diff --git a/addon/appModules/tracktool.py b/addon/appModules/tracktool.py
index 44d36ae..36aacac 100755
--- a/addon/appModules/tracktool.py
+++ b/addon/appModules/tracktool.py
@@ -38,7 +38,7 @@ class TrackToolItem(SPLTrackItem):
        # Tweak for Track Tool: Announce column header if given.
        # Also take care of this when specific columns are asked.
        # This also allows display order to be checked (Studio 5.10 and later).
-       def announceColumnContent(self, colNumber, header=None, 
individualColumns=False):
+       def announceColumnContent(self, colNumber, header=None):
                import sys
                if not header:
                        # #72: directly fetch on-screen column header (not the 
in-memory one) by probing column order array from the list (parent).
@@ -54,13 +54,9 @@ class TrackToolItem(SPLTrackItem):
                        if sys.version.startswith("3"): 
ui.message(str(_("{header}: {content}")).format(header = header, content = 
columnContent))
                        else: ui.message(unicode(_("{header}: 
{content}")).format(header = header, content = columnContent))
                else:
-                       if individualColumns:
-                               # Translators: Presented when some info is not 
defined for a track in Track Tool (example: cue not found)
-                               ui.message(_("{header} not 
found").format(header = header))
-                       else:
-                               import speech, braille
-                               speech.speakMessage(_("{header}: 
blank").format(header = header))
-                               braille.handler.message(_("{header}: 
()").format(header = header))
+                       import speech, braille
+                       speech.speakMessage(_("{header}: blank").format(header 
= header))
+                       braille.handler.message(_("{header}: ()").format(header 
= header))
 
        def indexOf(self, header):
                try:


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/8c619f77d732/
Changeset:   8c619f77d732
Branch:      None
User:        josephsl
Date:        2019-05-16 18:37:54+00:00
Summary:     Playlist analysis: remove playlist duration ra function. Re #101.

Originally, playlist duration was powered by raw duration, not segue. This 
meant duratoin info such as playlist analysis became out of date when a long 
playlist was loaded. Thus the segue version was introduced to provide more 
accurate duration. Since then, the raw duration function has been abandoned 
(nobody uses it). Thus remove it (finally).

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index d2a5658..da6d16d 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -1674,22 +1674,6 @@ class AppModule(appModuleHandler.AppModule):
                        obj = obj.next
                return totalDuration
 
-       # Segue version of this will be used in some places (the below is the 
raw duration).)
-       def playlistDurationRaw(self, start, end):
-               # Take care of errors such as the following.
-               if start < 0 or end > splbase.studioAPI(0, 124)-1:
-                       raise ValueError("Track range start or end position out 
of range")
-                       return
-               totalLength = 0
-               if start == end:
-                       filename = splbase.studioAPI(start, 211)
-                       totalLength = splbase.studioAPI(filename, 30)
-               else:
-                       for track in six.moves.range(start, end+1):
-                               filename = splbase.studioAPI(track, 211)
-                               totalLength+=splbase.studioAPI(filename, 30)
-               return totalLength
-
        # Playlist snapshots
        # Data to be gathered comes from a set of flags.
        # By default, playlist duration (including shortest and average), 
category summary and other statistics will be gathered.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/2ff1276c0797/
Changeset:   2ff1276c0797
Branch:      None
User:        josephsl
Date:        2019-05-18 01:50:51+00:00
Summary:     SPL track item/build description pieces: mark for deprecation and 
removal. Re #101.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 723d628..0b129a9 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -1117,6 +1117,7 @@ def triggerProfileSwitch(durationDelta=None):
 
 # Let SPL track item know if it needs to build description pieces.
 # To be renamed and used in other places in 7.0.
+# 19.06: deprecated and will be removed later in 2019.
 def _shouldBuildDescriptionPieces():
        return (not SPLConfig["ColumnAnnouncement"]["UseScreenColumnOrder"]
        and (SPLConfig["ColumnAnnouncement"]["ColumnOrder"] != 
_SPLDefaults["ColumnAnnouncement"]["ColumnOrder"]


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/2d180d140256/
Changeset:   2d180d140256
Branch:      None
User:        josephsl
Date:        2019-05-19 20:09:26+00:00
Summary:     Studio app module: minimum Studio and NVDA versions updated to 
5.20 and 2018.4, respectively.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index d2a5658..3cd7397 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -8,7 +8,7 @@
 # Additional work done by Joseph Lee and other contributors.
 # For SPL Studio Controller, focus movement, SAM Encoder support and other 
utilities, see the global plugin version of this app module.
 
-# Minimum version: SPL 5.10, NvDA 2017.4.
+# Minimum version: SPL 5.20, NvDA 2018.4.
 
 import sys
 import os


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/d4b57460e486/
Changeset:   d4b57460e486
Branch:      None
User:        josephsl
Date:        2019-05-19 22:31:03+00:00
Summary:     Merge branch 'stable'

Affected #:  1 file

diff --git a/readme.md b/readme.md
index c08e813..13e5be5 100755
--- a/readme.md
+++ b/readme.md
@@ -192,7 +192,7 @@ From studio window, you can press Alt+NVDA+0 to open the 
add-on configuration di
 
 If you are using Studio on a touchscreen computer running Windows 8 or later 
and have NVDA 2012.3 or later installed, you can perform some Studio commands 
from the touchscreen. First use three finger tap to switch to SPL mode, then 
use the touch commands listed above to perform commands.
 
-## Version 19.06
+## Version 19.06/18.09.9-LTS
 
 Version 19.06 supports SPL Studio 5.20 and later.
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/55a9af0e84c6/
Changeset:   55a9af0e84c6
Branch:      None
User:        josephsl
Date:        2019-05-19 22:31:23+00:00
Summary:     Merge branch 'master' into removeUnusedItems

Affected #:  3 files

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index da6d16d..b111dfe 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -8,7 +8,7 @@
 # Additional work done by Joseph Lee and other contributors.
 # For SPL Studio Controller, focus movement, SAM Encoder support and other 
utilities, see the global plugin version of this app module.
 
-# Minimum version: SPL 5.10, NvDA 2017.4.
+# Minimum version: SPL 5.20, NvDA 2018.4.
 
 import sys
 import os

diff --git a/buildVars.py b/buildVars.py
index 91b613f..69b0b54 100755
--- a/buildVars.py
+++ b/buildVars.py
@@ -20,7 +20,7 @@ addon_info = {
        "addon_description" : _("""Enhances support for StationPlaylist Studio.
 In addition, adds global commands for the studio from everywhere."""),
        # version
-       "addon_version" : "19.04",
+       "addon_version" : "19.06",
        # Author(s)
        "addon_author" : u"Geoff Shang, Joseph Lee and other contributors",
        # URL for the add-on documentation support

diff --git a/readme.md b/readme.md
index c08e813..13e5be5 100755
--- a/readme.md
+++ b/readme.md
@@ -192,7 +192,7 @@ From studio window, you can press Alt+NVDA+0 to open the 
add-on configuration di
 
 If you are using Studio on a touchscreen computer running Windows 8 or later 
and have NVDA 2012.3 or later installed, you can perform some Studio commands 
from the touchscreen. First use three finger tap to switch to SPL mode, then 
use the touch commands listed above to perform commands.
 
-## Version 19.06
+## Version 19.06/18.09.9-LTS
 
 Version 19.06 supports SPL Studio 5.20 and later.
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/6051b0a6421c/
Changeset:   6051b0a6421c
Branch:      None
User:        josephsl
Date:        2019-05-20 02:40:36+00:00
Summary:     ConfigUI: remove unused playlist transcript format combo box. Re 
#101.

Playlist transcripts format combo box, although a good idea at one point, 
didn't quite make it out to the public. Thus remove this commented out code 
fragment.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index 9335f4b..38a064c 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -1187,18 +1187,9 @@ class 
PlaylistTranscriptsPanel(ColumnAnnouncementsBasePanel):
                playlistTranscriptsHelper = gui.guiHelper.BoxSizerHelper(self, 
sizer=settingsSizer)
 
                from . import splmisc
-               #self.transcriptFormat = 
splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"]
                # Again manually create a new set.
                self.includedColumns = 
set(splconfig.SPLConfig["PlaylistTranscripts"]["IncludedColumns"])
                self.columnOrder = 
splconfig.SPLConfig["PlaylistTranscripts"]["ColumnOrder"]
-               #self.availableTranscriptFormats = [output[0] for output in 
splmisc.SPLPlaylistTranscriptFormats]
-               #self.availableTranscriptFormats.insert(0, "")
-
-               # Translators: the label for a setting in SPL add-on settings 
to select preferred playlist transcript format.
-               #labelText = _("&Prefered transcript format:")
-               # Translators: one of the transcript format options.
-               #self.transcriptFormatsList = 
playlistTranscriptsHelper.addLabeledControl(labelText, wx.Choice, 
choices=[_("ask me every time")]+[output[2] for output in 
splmisc.SPLPlaylistTranscriptFormats])
-               
#self.transcriptFormatsList.SetSelection(self.availableTranscriptFormats.index(splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"]))
 
                # Translators: Help text to select columns to be announced.
                labelText = _("&Select columns to be included in playlist 
transcripts\n(artist and title are always included):")
@@ -1235,7 +1226,6 @@ class 
PlaylistTranscriptsPanel(ColumnAnnouncementsBasePanel):
                playlistTranscriptsHelper.addItem(sizer.sizer)
 
        def onSave(self):
-               #splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"] 
= self.availableTranscriptFormats[self.transcriptFormatsList.GetSelection()]
                splconfig.SPLConfig["PlaylistTranscripts"]["IncludedColumns"] = 
set(self.checkedColumns.GetCheckedStrings()) | {"Artist", "Title"}
                splconfig.SPLConfig["PlaylistTranscripts"]["ColumnOrder"] = 
self.trackColumns.GetItems()
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/9a280a85eb21/
Changeset:   9a280a85eb21
Branch:      None
User:        josephsl
Date:        2019-05-20 03:45:23+00:00
Summary:     ConfUI: remove unused splmisc imports.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index 38a064c..4c43795 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -998,7 +998,6 @@ class MetadataStreamingPanel(gui.SettingsPanel):
                # Only one loop is needed as helper.addLabelControl returns the 
checkbox itself and that can be appended.
                # Add checkboxes for each stream, beginning with the DSP 
encoder.
                # #76 (18.09-LTS): completely changed to use custom check list 
box (NVDA Core issue 7491).
-               from . import splmisc
                self.checkedStreams = 
metadataSizerHelper.addLabeledControl(_("&Select the URL for metadata streaming 
upon request:"), CustomCheckListBox, choices=metadataStreamLabels)
                for stream in six.moves.range(5):
                        self.checkedStreams.Check(stream, 
check=splconfig._SPLDefaults["MetadataStreaming"]["MetadataEnabled"][stream])
@@ -1186,7 +1185,6 @@ class 
PlaylistTranscriptsPanel(ColumnAnnouncementsBasePanel):
        def makeSettings(self, settingsSizer):
                playlistTranscriptsHelper = gui.guiHelper.BoxSizerHelper(self, 
sizer=settingsSizer)
 
-               from . import splmisc
                # Again manually create a new set.
                self.includedColumns = 
set(splconfig.SPLConfig["PlaylistTranscripts"]["IncludedColumns"])
                self.columnOrder = 
splconfig.SPLConfig["PlaylistTranscripts"]["ColumnOrder"]


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/365065791668/
Changeset:   365065791668
Branch:      None
User:        josephsl
Date:        2019-05-20 03:55:20+00:00
Summary:     Readme: update NVDA compatibility statement -> compatible with 
2019.2

Affected #:  1 file

diff --git a/readme.md b/readme.md
index 13e5be5..5951c23 100755
--- a/readme.md
+++ b/readme.md
@@ -4,7 +4,7 @@
 * Download [stable version][1]
 * Download [development version][2]
 * Download [long-term support version][3] - for Studio 5.10/5.11 users
-* NVDA compatibility: 2018.4 to 2019.1
+* NVDA compatibility: 2018.4 to 2019.2
 
 This add-on package provides improved usage of StationPlaylist Studio, as well 
as providing utilities to control the Studio from anywhere.
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/60d39d37b363/
Changeset:   60d39d37b363
Branch:      None
User:        josephsl
Date:        2019-05-20 03:58:54+00:00
Summary:     Merge branch 'master' into removeUnusedItems

Affected #:  1 file

diff --git a/readme.md b/readme.md
index 13e5be5..5951c23 100755
--- a/readme.md
+++ b/readme.md
@@ -4,7 +4,7 @@
 * Download [stable version][1]
 * Download [development version][2]
 * Download [long-term support version][3] - for Studio 5.10/5.11 users
-* NVDA compatibility: 2018.4 to 2019.1
+* NVDA compatibility: 2018.4 to 2019.2
 
 This add-on package provides improved usage of StationPlaylist Studio, as well 
as providing utilities to control the Studio from anywhere.
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/8791226aa7f0/
Changeset:   8791226aa7f0
Branch:      None
User:        josephsl
Date:        2019-05-20 18:00:38+00:00
Summary:     Script category: rename to StationPlaylist.

Affected #:  2 files

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 3cd7397..75b8364 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -134,7 +134,7 @@ class SPLTrackItem(sysListView32.ListItem):
                description=_("Pressing once announces data for a track column, 
pressing twice will present column data in a browse mode window"),
                # 19.02: script decorator can take in a list of gestures, thus 
take advantage of it.
                gestures=["kb:control+nvda+%s"%(i) for i in 
six.moves.range(10)],
-               category=_("StationPlaylist Studio"))
+               category=_("StationPlaylist"))
        def script_columnExplorer(self, gesture):
                # LTS: Just in case Control+NVDA+number row command is 
pressed...
                # Due to the below formula, columns explorer will be restricted 
to number commands.
@@ -628,7 +628,7 @@ class SPLTimePicker(IAccessible):
 class AppModule(appModuleHandler.AppModule):
 
        # Translators: Script category for Station Playlist commands in input 
gestures dialog.
-       scriptCategory = _("StationPlaylist Studio")
+       scriptCategory = _("StationPlaylist")
        SPLCurVersion = appModuleHandler.AppModule.productVersion
        _focusedTrack = None
        _announceColumnOnly = None # Used only if vertical column navigation 
commands are used.

diff --git a/addon/globalPlugins/splUtils/__init__.py 
b/addon/globalPlugins/splUtils/__init__.py
index a95b677..23dcd1b 100755
--- a/addon/globalPlugins/splUtils/__init__.py
+++ b/addon/globalPlugins/splUtils/__init__.py
@@ -72,7 +72,7 @@ Function keys and number row keys with or without Shift, Alt, 
and Control keys:
 class GlobalPlugin(globalPluginHandler.GlobalPlugin):
 
        # Translators: Script category for Station Playlist commands in input 
gestures dialog.
-       scriptCategory = _("StationPlaylist Studio")
+       scriptCategory = _("StationPlaylist")
 
        def __init__(self):
                super(GlobalPlugin, self).__init__()


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/01326f0cf181/
Changeset:   01326f0cf181
Branch:      None
User:        josephsl
Date:        2019-05-20 18:05:29+00:00
Summary:     ConfUI: rename add-on settings dilaog title from 'Studio add-on 
settings' to 'StatoinPlaylist add-on settings'.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index 9335f4b..d0c855f 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -1574,8 +1574,8 @@ class ResetSettingsPanel(gui.SettingsPanel):
 _configDialogOpened = False
 
 class SPLConfigDialog(gui.MultiCategorySettingsDialog):
-       # Translators: This is the label for the StationPlaylist Studio 
configuration dialog.
-       title = _("Studio Add-on Settings")
+       # Translators: This is the label for the StationPlaylist add-on 
configuration dialog.
+       title = _("StationPlaylist Add-on Settings")
        categoryClasses=[
                BroadcastProfilesPanel,
                GeneralSettingsPanel,


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/81fad68016bd/
Changeset:   81fad68016bd
Branch:      None
User:        josephsl
Date:        2019-05-20 19:28:55+00:00
Summary:     Welcome dialog: 'StationPlaylist Studio' -> 'StationPlaylist', 
also note that this is a suite of apps.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 723d628..0c11c7b 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -1167,10 +1167,10 @@ class AudioDuckingReminder(wx.Dialog):
 class WelcomeDialog(wx.Dialog):
 
        # Translators: A message giving basic information about the add-on.
-       welcomeMessage=_("""Welcome to StationPlaylist Studio add-on for NVDA,
+       welcomeMessage=_("""Welcome to StationPlaylist add-on for NVDA,
 your companion to broadcasting with SPL Studio using NVDA screen reader.
 
-Highlights of StationPlaylist Studio add-on include:
+Highlights of StationPlaylist add-on include:
 * Layer commands for obtaining status information.
 * Various ways to examine track columns.
 * Various ways to find tracks.
@@ -1179,7 +1179,7 @@ Highlights of StationPlaylist Studio add-on include:
 * Completely free, open-source and community-driven.
 * And much more.
 
-Visit www.stationplaylist.com for details on StationPlaylist Studio.
+Visit www.stationplaylist.com for details on StationPlaylist suite of 
applications.
 Visit StationPlaylist entry on NVDA Community Add-ons page 
(addons.nvda-project.org) for more information on the add-on and to read the 
documentation.
 Want to see this dialog again? Just press Alt+NVDA+F1 while using Studio to 
return to this dialog.
 Have something to say about the add-on? Press Control+NVDA+hyphen (-) to send 
a feedback to the developer of this add-on using your default email program.
@@ -1188,7 +1188,7 @@ Thank you.""")
 
        def __init__(self, parent):
                # Translators: Title of a dialog displayed when the add-on 
starts presenting basic information, similar to NVDA's own welcome dialog.
-               super(WelcomeDialog, self).__init__(parent, title=_("Welcome to 
StationPlaylist Studio add-on"))
+               super(WelcomeDialog, self).__init__(parent, title=_("Welcome to 
StationPlaylist add-on"))
 
                mainSizer = wx.BoxSizer(wx.VERTICAL)
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/bf76b8c1afdc/
Changeset:   bf76b8c1afdc
Branch:      None
User:        josephsl
Date:        2019-05-20 19:32:08+00:00
Summary:     Studio main module: rename add-on name along iwth an explanation.

Affected #:  1 file

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 75b8364..f14a868 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -1,4 +1,4 @@
-# StationPlaylist Studio
+# StationPlaylist (formerly StationPlaylist Studio)
 # An app module and global plugin package for NVDA
 # Copyright 2011, 2013-2019, Geoff Shang, Joseph Lee and others, released 
under GPL.
 # The primary function of this appModule is to provide meaningful feedback to 
users of SplStudio
@@ -6,6 +6,7 @@
 # Version 0.01 - 7 April 2011:
 # Initial release: Jamie's focus hack plus auto-announcement of status items.
 # Additional work done by Joseph Lee and other contributors.
+# Renamed to StationPlaylist in 2019 in order to describe the scope of this 
add-on.
 # For SPL Studio Controller, focus movement, SAM Encoder support and other 
utilities, see the global plugin version of this app module.
 
 # Minimum version: SPL 5.20, NvDA 2018.4.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/0d52275dc8d0/
Changeset:   0d52275dc8d0
Branch:      None
User:        josephsl
Date:        2019-05-20 19:59:59+00:00
Summary:     Input help: 'Station Playlist Studio' -> 'StationPlaylist add-on', 
especially in Studio app module.

Affected #:  3 files

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index f14a868..131b581 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -1134,12 +1134,12 @@ class AppModule(appModuleHandler.AppModule):
        # Scripts which rely on API.
        def script_sayRemainingTime(self, gesture):
                if splbase.studioIsRunning(): 
self.announceTime(splbase.studioAPI(3, 105), offset=1)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_sayRemainingTime.__doc__=_("Announces the remaining track time.")
 
        def script_sayElapsedTime(self, gesture):
                if splbase.studioIsRunning(): 
self.announceTime(splbase.studioAPI(0, 105))
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_sayElapsedTime.__doc__=_("Announces the elapsed time for the 
currently playing track.")
 
        def script_sayBroadcasterTime(self, gesture):
@@ -1167,7 +1167,7 @@ class AppModule(appModuleHandler.AppModule):
                                ui.message("{minute} min to 
{hour}".format(minute = m, hour = h+1))
                else:
                        self.announceTime(3600-(m*60+localtime[5]), ms=False)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_sayBroadcasterTime.__doc__=_("Announces broadcaster time. If 
pressed twice, reports minutes and seconds left to top of the hour.")
 
        def script_sayCompleteTime(self, gesture):
@@ -1175,7 +1175,7 @@ class AppModule(appModuleHandler.AppModule):
                import winKernel
                # Says complete time in hours, minutes and seconds via 
kernel32's routines.
                
ui.message(winKernel.GetTimeFormat(winKernel.LOCALE_USER_DEFAULT, 0, None, 
None))
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_sayCompleteTime.__doc__=_("Announces time including seconds.")
 
        # Invoke the common alarm dialog.
@@ -1201,14 +1201,14 @@ class AppModule(appModuleHandler.AppModule):
 
        def script_setEndOfTrackTime(self, gesture):
                self.alarmDialog(1)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_setEndOfTrackTime.__doc__=_("Sets end of track alarm (default is 
5 seconds).")
 
        # Set song ramp (introduction) time between 1 and 9 seconds.
 
        def script_setSongRampTime(self, gesture):
                self.alarmDialog(2)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_setSongRampTime.__doc__=_("Sets song intro alarm (default is 5 
seconds).")
 
        # Tell NVDA to play a sound when mic was active for a long time, as 
well as contorl the alarm interval.
@@ -1216,21 +1216,21 @@ class AppModule(appModuleHandler.AppModule):
 
        def script_setMicAlarm(self, gesture):
                self.alarmDialog(3)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_setMicAlarm.__doc__=_("Sets microphone alarm (default is 5 
seconds).")
 
        # SPL Config management among others.
 
        def script_openConfigDialog(self, gesture):
                wx.CallAfter(splconfui.onConfigDialog, None)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_openConfigDialog.__doc__=_("Opens SPL Studio add-on 
configuration dialog.")
 
        def script_openWelcomeDialog(self, gesture):
                gui.mainFrame.prePopup()
                splconfig.WelcomeDialog(gui.mainFrame).Show()
                gui.mainFrame.postPopup()
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_openWelcomeDialog.__doc__=_("Opens SPL Studio add-on welcome 
dialog.")
 
        # Other commands (track finder and others)
@@ -1250,7 +1250,7 @@ class AppModule(appModuleHandler.AppModule):
                        brailleTimer = "off"
                splconfig.SPLConfig["General"]["BrailleTimer"] = brailleTimer
                splconfig.message("BrailleTimer", brailleTimer)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_setBrailleTimer.__doc__=_("Toggles between various braille timer 
settings.")
 
        # The track finder utility for find track script and other functions
@@ -1345,12 +1345,12 @@ class AppModule(appModuleHandler.AppModule):
 
        def script_findTrack(self, gesture):
                if self._trackFinderCheck(0): self.trackFinderGUI()
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_findTrack.__doc__=_("Finds a track in the track list.")
 
        def script_columnSearch(self, gesture):
                if self._trackFinderCheck(1): 
self.trackFinderGUI(columnSearch=True)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_columnSearch.__doc__=_("Finds text in columns.")
 
        # Find next and previous scripts.
@@ -1363,7 +1363,7 @@ class AppModule(appModuleHandler.AppModule):
                                if api.getForegroundObject().windowClassName == 
"TStudioForm" and startObj.role == controlTypes.ROLE_LIST:
                                        startObj = startObj.firstChild
                                self.trackFinder(self.findText[0], 
obj=startObj.next)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_findTrackNext.__doc__=_("Finds the next occurrence of the track 
with the name in the track list.")
 
        def script_findTrackPrevious(self, gesture):
@@ -1374,7 +1374,7 @@ class AppModule(appModuleHandler.AppModule):
                                if api.getForegroundObject().windowClassName == 
"TStudioForm" and startObj.role == controlTypes.ROLE_LIST:
                                        startObj = startObj.lastChild
                                self.trackFinder(self.findText[0], 
obj=startObj.previous, directionForward=False)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_findTrackPrevious.__doc__=_("Finds previous occurrence of the 
track with the name in the track list.")
 
        # Time range finder.
@@ -1391,7 +1391,7 @@ class AppModule(appModuleHandler.AppModule):
                                splmisc._findDialogOpened = True
                        except RuntimeError:
                                wx.CallAfter(splmisc._finderError)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_timeRangeFinder.__doc__=_("Locates track with duration within a 
time range")
 
        # Cart explorer
@@ -1451,7 +1451,7 @@ class AppModule(appModuleHandler.AppModule):
                        splmisc._cartEditTimestamps = None
                        # Translators: Presented when cart explorer is off.
                        ui.message(_("Exiting cart explorer"))
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_toggleCartExplorer.__doc__=_("Toggles cart explorer to learn 
cart assignments.")
 
        def script_cartExplorer(self, gesture):
@@ -1483,7 +1483,7 @@ class AppModule(appModuleHandler.AppModule):
                        libraryScanAnnounce = "off"
                splconfig.SPLConfig["General"]["LibraryScanAnnounce"] = 
libraryScanAnnounce
                splconfig.message("LibraryScanAnnounce", libraryScanAnnounce)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_setLibraryScanProgress.__doc__=_("Toggles library scan progress 
settings.")
 
        def script_startScanFromInsertTracks(self, gesture):
@@ -1598,7 +1598,7 @@ class AppModule(appModuleHandler.AppModule):
                        splconfui._metadataDialogOpened = True
                except RuntimeError:
                        wx.CallAfter(splconfig._alarmError)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_manageMetadataStreams.__doc__=_("Opens a dialog to quickly 
enable or disable metadata streaming.")
 
        # Playlist Analyzer
@@ -1930,7 +1930,7 @@ class AppModule(appModuleHandler.AppModule):
                        elif 
splconfig.SPLConfig["Advanced"]["CompatibilityLayer"] == "wineyes": 
ui.message("Window-Eyes")
                except WindowsError:
                        return
-       # Translators: Input help mode message for a layer command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a layer command in 
StationPlaylist add-on.
        script_SPLAssistantToggle.__doc__=_("The SPL Assistant layer command. 
See the add-on guide for more information on available commands.")
 
        # Status table keys
@@ -2058,7 +2058,7 @@ class AppModule(appModuleHandler.AppModule):
                        ui.message(_("Cannot find next track information"))
                finally:
                        self.finish()
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_sayNextTrackTitle.__doc__=_("Announces title of the next track 
if any")
 
        def script_sayCurrentTrackTitle(self, gesture):
@@ -2080,7 +2080,7 @@ class AppModule(appModuleHandler.AppModule):
                        ui.message(_("Cannot find current track information"))
                finally:
                        self.finish()
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_sayCurrentTrackTitle.__doc__=_("Announces title of the currently 
playing track")
 
        def script_sayTemperature(self, gesture):
@@ -2096,7 +2096,7 @@ class AppModule(appModuleHandler.AppModule):
                        ui.message(_("Weather information not found"))
                finally:
                        self.finish()
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_sayTemperature.__doc__=_("Announces temperature and weather 
information")
 
        def script_sayUpTime(self, gesture):
@@ -2153,7 +2153,7 @@ class AppModule(appModuleHandler.AppModule):
                                self._analysisMarker = None
                                # Translators: Presented when track time 
analysis is turned off.
                                ui.message(_("Playlist analysis deactivated"))
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_markTrackForAnalysis.__doc__=_("Marks focused track as start 
marker for various playlist analysis commands")
 
        def script_trackTimeAnalysis(self, gesture):
@@ -2178,7 +2178,7 @@ class AppModule(appModuleHandler.AppModule):
                        else:
                                # Translators: Presented when time analysis is 
done for a number of tracks (example output: Tracks: 3, totaling 5:00).
                                ui.message(_("Tracks: {numberOfSelectedTracks}, 
totaling {totalTime}").format(numberOfSelectedTracks = analysisRange, totalTime 
= self._ms2time(totalLength*1000)))
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_trackTimeAnalysis.__doc__=_("Announces total length of tracks 
between analysis start marker and the current track")
 
        def script_takePlaylistSnapshots(self, gesture):
@@ -2212,7 +2212,7 @@ class AppModule(appModuleHandler.AppModule):
                # Speak and braille on the first press, display a decorated 
HTML message for subsequent presses.
                self.playlistSnapshotOutput(self.playlistSnapshots(start, end), 
scriptCount)
                self.finish()
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_takePlaylistSnapshots.__doc__=_("Presents playlist snapshot 
information such as number of tracks and top artists")
 
        def script_playlistTranscripts(self, gesture):

diff --git a/addon/globalPlugins/splUtils/__init__.py 
b/addon/globalPlugins/splUtils/__init__.py
index 23dcd1b..2c4090a 100755
--- a/addon/globalPlugins/splUtils/__init__.py
+++ b/addon/globalPlugins/splUtils/__init__.py
@@ -150,13 +150,13 @@ class GlobalPlugin(globalPluginHandler.GlobalPlugin):
                                self.bindGesture("kb:control+%s"%cart, 
"cartsWithoutBorders")
                                self.bindGesture("kb:alt+%s"%cart, 
"cartsWithoutBorders")
                        self.SPLController = True
-                       # Translators: The name of a layer command set for 
Station Playlist Studio.
+                       # Translators: The name of a layer command set for 
StationPlaylist add-on.
                        # Hint: it is better to translate it as "SPL Control 
Panel."
                        ui.message(_("SPL Controller"))
                else:
                        self.script_error(gesture)
                        self.finish()
-       # Translators: Input help mode message for a layer command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a layer command in 
StationPlaylist add-on.
        script_SPLControllerPrefix.__doc__=_("SPl Controller layer command. See 
add-on guide for available commands.")
 
        # The layer commands themselves. Calls user32.SendMessage method for 
each script.

diff --git a/addon/globalPlugins/splUtils/encoders.py 
b/addon/globalPlugins/splUtils/encoders.py
index 418083f..ac61a51 100755
--- a/addon/globalPlugins/splUtils/encoders.py
+++ b/addon/globalPlugins/splUtils/encoders.py
@@ -446,7 +446,7 @@ class Encoder(IAccessible):
                        from .skipTranslation import translate
                        # Translators: Text of the dialog when another alarm 
dialog is open.
                        wx.CallAfter(gui.messageBox, _("Another encoder 
settings dialog is open."),translate("Error"),style=wx.OK | wx.ICON_ERROR)
-       # Translators: Input help mode message for a command in Station 
Playlist Studio.
+       # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_encoderSettings.__doc__=_("Shows encoder configuration dialog to 
configure various encoder settings such as stream label.")
        script_encoderSettings.category=_("Station Playlist Studio")
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/69aec0295cf7/
Changeset:   69aec0295cf7
Branch:      None
User:        josephsl
Date:        2019-05-20 20:02:00+00:00
Summary:     Script category: 'Station Playlist Studio' -> 'StationPlaylist'.

Affected #:  1 file

diff --git a/addon/globalPlugins/splUtils/encoders.py 
b/addon/globalPlugins/splUtils/encoders.py
index ac61a51..44f4f64 100755
--- a/addon/globalPlugins/splUtils/encoders.py
+++ b/addon/globalPlugins/splUtils/encoders.py
@@ -448,7 +448,7 @@ class Encoder(IAccessible):
                        wx.CallAfter(gui.messageBox, _("Another encoder 
settings dialog is open."),translate("Error"),style=wx.OK | wx.ICON_ERROR)
        # Translators: Input help mode message for a command in StationPlaylist 
add-on.
        script_encoderSettings.__doc__=_("Shows encoder configuration dialog to 
configure various encoder settings such as stream label.")
-       script_encoderSettings.category=_("Station Playlist Studio")
+       script_encoderSettings.category=_("StationPlaylist")
 
        # Announce complete time including seconds (slight change from global 
commands version).
        def script_encoderDateTime(self, gesture):
@@ -460,7 +460,7 @@ class Encoder(IAccessible):
                ui.message(text)
        # Translators: Input help mode message for report date and time command.
        script_encoderDateTime.__doc__=_("If pressed once, reports the current 
time including seconds. If pressed twice, reports the current date")
-       script_encoderDateTime.category=_("Station Playlist Studio")
+       script_encoderDateTime.category=_("StationPlaylist")
 
        # Various column announcement scripts.
        # This base class implements encoder position and stream labels.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/f6bcd0a7063d/
Changeset:   f6bcd0a7063d
Branch:      None
User:        josephsl
Date:        2019-05-20 20:03:47+00:00
Summary:     Translator comments: 'Station Playlist Studio' -> 'StationPlaylist 
Studio'.

Affected #:  1 file

diff --git a/addon/globalPlugins/splUtils/__init__.py 
b/addon/globalPlugins/splUtils/__init__.py
index 2c4090a..9a2f1ce 100755
--- a/addon/globalPlugins/splUtils/__init__.py
+++ b/addon/globalPlugins/splUtils/__init__.py
@@ -111,7 +111,7 @@ class GlobalPlugin(globalPluginHandler.GlobalPlugin):
                if not SPLHwnd: ui.message(_("SPL Studio is not running."))
                # 17.01: SetForegroundWindow function is better, as there's no 
need to traverse top-level windows and allows users to "switch" to SPL window 
if the window is minimized.
                else: 
user32.SetForegroundWindow(user32.FindWindowW(u"TStudioForm", None))
-       # Translators: Input help mode message for a command to switch to 
Station Playlist Studio from any program.
+       # Translators: Input help mode message for a command to switch to 
StationPlaylist Studio from any program.
        script_focusToSPLWindow.__doc__=_("Moves to SPL Studio window from 
other programs.")
 
        # The SPL Controller:
@@ -132,7 +132,7 @@ class GlobalPlugin(globalPluginHandler.GlobalPlugin):
                                return
                SPLWin = user32.FindWindowW(u"SPLStudio", None)
                if SPLWin == 0:
-                       # Translators: Presented when Station Playlist Studio 
is not running.
+                       # Translators: Presented when StationPlaylist Studio is 
not running.
                        ui.message(_("SPL Studio is not running."))
                        self.finish()
                        return
@@ -203,7 +203,7 @@ class GlobalPlugin(globalPluginHandler.GlobalPlugin):
 
        def script_pause(self, gesture):
                playingNow = sendMessage(SPLWin, 1024, 0, 
SPL_TrackPlaybackStatus)
-               # Translators: Presented when no track is playing in Station 
Playlist Studio.
+               # Translators: Presented when no track is playing in 
StationPlaylist Studio.
                if not playingNow: ui.message(_("There is no track playing. Try 
pausing while a track is playing."))
                elif playingNow == 3: sendMessage(SPLWin, 1024, 0, SPLPause)
                else: sendMessage(SPLWin, 1024, 1, SPLPause)
@@ -226,7 +226,7 @@ class GlobalPlugin(globalPluginHandler.GlobalPlugin):
 
        def script_remainingTime(self, gesture):
                remainingTime = sendMessage(SPLWin, 1024, 3, 
SPLCurTrackPlaybackTime)
-               # Translators: Presented when no track is playing in Station 
Playlist Studio.
+               # Translators: Presented when no track is playing in 
StationPlaylist Studio.
                if remainingTime < 0: ui.message(_("There is no track 
playing."))
                else:
                        # 7.0: Present remaining time in hh:mm:ss format for 
enhanced experience (borrowed from the app module).


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/02084ebef965/
Changeset:   02084ebef965
Branch:      None
User:        josephsl
Date:        2019-05-20 20:05:06+00:00
Summary:     Translator comments: 'Station Playlist' -> 'StationPlaylist', also 
make it clear that these are add-on commands.

Affected #:  2 files

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 131b581..80fe6bc 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -628,7 +628,7 @@ class SPLTimePicker(IAccessible):
 
 class AppModule(appModuleHandler.AppModule):
 
-       # Translators: Script category for Station Playlist commands in input 
gestures dialog.
+       # Translators: Script category for StationPlaylist add-on commands in 
input gestures dialog.
        scriptCategory = _("StationPlaylist")
        SPLCurVersion = appModuleHandler.AppModule.productVersion
        _focusedTrack = None

diff --git a/addon/globalPlugins/splUtils/__init__.py 
b/addon/globalPlugins/splUtils/__init__.py
index 9a2f1ce..2d87f7b 100755
--- a/addon/globalPlugins/splUtils/__init__.py
+++ b/addon/globalPlugins/splUtils/__init__.py
@@ -71,7 +71,7 @@ Function keys and number row keys with or without Shift, Alt, 
and Control keys:
 
 class GlobalPlugin(globalPluginHandler.GlobalPlugin):
 
-       # Translators: Script category for Station Playlist commands in input 
gestures dialog.
+       # Translators: Script category for StationPlaylist commands in input 
gestures dialog.
        scriptCategory = _("StationPlaylist")
 
        def __init__(self):


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/b4bc0e76bdb1/
Changeset:   b4bc0e76bdb1
Branch:      None
User:        josephsl
Date:        2019-05-20 20:13:29+00:00
Summary:     Install tasks: 'StationPlaylist Studio/Studio' -> 
'StationPlaylist'.

Affected #:  1 file

diff --git a/addon/installTasks.py b/addon/installTasks.py
index 7d43337..bcc3598 100755
--- a/addon/installTasks.py
+++ b/addon/installTasks.py
@@ -1,4 +1,4 @@
-# StationPlaylist Studio add-on installation tasks
+# StationPlaylist add-on installation tasks
 # Copyright 2015-2019 Joseph Lee and others, released under GPL.
 
 # Provides needed routines during add-on installation and removal.
@@ -13,9 +13,9 @@ addonHandler.initTranslation()
 def onInstall():
        # #17.12: Windows 7 SP1 or higher is required.
        if sys.getwindowsversion().build < 7601:
-               # Translators: Presented when attempting to install Studio 
add-on on unsupported Windows releases.
+               # Translators: Presented when attempting to install 
StationPlaylist add-on on unsupported Windows releases.
                gui.messageBox(_("You are using an older version of Windows. 
This add-on requires Windows 7 Service Pack 1 or later."),
-                       # Translators: Title of a dialog shown when installing 
Studio add-on on old Windows releases.
+                       # Translators: Title of a dialog shown when installing 
StationPlaylist add-on on old Windows releases.
                        _("Old Windows version"), wx.OK | wx.ICON_ERROR)
                raise RuntimeError("SPL: minimum Windows version requirement 
not met, aborting")
        import os, shutil


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/dbb0c1bad585/
Changeset:   dbb0c1bad585
Branch:      None
User:        josephsl
Date:        2019-05-20 20:13:52+00:00
Summary:     Readme: add-on rename and description edits for 19.07.

Affected #:  1 file

diff --git a/readme.md b/readme.md
index 5951c23..87e97d4 100755
--- a/readme.md
+++ b/readme.md
@@ -1,4 +1,4 @@
-# StationPlaylist Studio #
+# StationPlaylist #
 
 * Authors: Geoff Shang, Joseph Lee and other contributors
 * Download [stable version][1]
@@ -6,7 +6,7 @@
 * Download [long-term support version][3] - for Studio 5.10/5.11 users
 * NVDA compatibility: 2018.4 to 2019.2
 
-This add-on package provides improved usage of StationPlaylist Studio, as well 
as providing utilities to control the Studio from anywhere.
+This add-on package provides improved usage of StationPlaylist Studio and 
other StationPlaylist apps, as well as providing utilities to control the 
Studio from anywhere. Supported apps include Studio, Creator, Track Tool, VT 
Recorder, and Streamer.
 
 For more information about the add-on, read the [add-on guide][4]. For 
developers seeking to know how to build the add-on, see buildInstructions.txt 
located at the root of the add-on source code repository.
 
@@ -192,6 +192,10 @@ From studio window, you can press Alt+NVDA+0 to open the 
add-on configuration di
 
 If you are using Studio on a touchscreen computer running Windows 8 or later 
and have NVDA 2012.3 or later installed, you can perform some Studio commands 
from the touchscreen. First use three finger tap to switch to SPL mode, then 
use the touch commands listed above to perform commands.
 
+## Version 19.07
+
+* Renamed the add-on from "StationPlaylist Studio" to "StationPlaylist" to 
better describe apps and features supported by this add-on.
+
 ## Version 19.06/18.09.9-LTS
 
 Version 19.06 supports SPL Studio 5.20 and later.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/aa2a25f9799b/
Changeset:   aa2a25f9799b
Branch:      None
User:        josephsl
Date:        2019-05-20 20:14:42+00:00
Summary:     Add-on is hereby renamed to 'StationPlaylist'.

Affected #:  1 file

diff --git a/buildVars.py b/buildVars.py
index 69b0b54..73f2173 100755
--- a/buildVars.py
+++ b/buildVars.py
@@ -14,7 +14,7 @@ addon_info = {
        "addon_name" : "stationPlaylist",
        # Add-on summary, usually the user visible name of the addon.
        # Translators: Summary for this add-on to be shown on installation and 
add-on information.
-       "addon_summary" : _("StationPlaylist Studio"),
+       "addon_summary" : _("StationPlaylist"),
        # Add-on description
        # Translators: Long description to be shown for this add-on on add-on 
information from add-ons manager
        "addon_description" : _("""Enhances support for StationPlaylist Studio.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/238f5ba11995/
Changeset:   238f5ba11995
Branch:      None
User:        josephsl
Date:        2019-05-23 01:10:04+00:00
Summary:     Merge branch 'removeUnusedItems'

Affected #:  5 files

diff --git a/addon/appModules/splcreator.py b/addon/appModules/splcreator.py
index 88597a2..8135042 100755
--- a/addon/appModules/splcreator.py
+++ b/addon/appModules/splcreator.py
@@ -26,7 +26,7 @@ class SPLCreatorItem(SPLTrackItem):
        # Another tweak for SPL Creator: Announce column header if given.
        # Also take care of this when specific columns are asked.
        # This also allows display order to be checked (Studio 5.10 and later).
-       def announceColumnContent(self, colNumber, header=None, 
individualColumns=False):
+       def announceColumnContent(self, colNumber, header=None):
                import sys
                if not header:
                        # #72: directly fetch on-screen column header (not the 
in-memory one) by probing column order array from the list (parent).
@@ -42,13 +42,9 @@ class SPLCreatorItem(SPLTrackItem):
                        if sys.version.startswith("3"): 
ui.message(str(_("{header}: {content}")).format(header = header, content = 
columnContent))
                        else: ui.message(unicode(_("{header}: 
{content}")).format(header = header, content = columnContent))
                else:
-                       if individualColumns:
-                               # Translators: Presented when some info is not 
defined for a track in Track Tool (example: cue not found)
-                               ui.message(_("{header} not 
found").format(header = header))
-                       else:
-                               import speech, braille
-                               speech.speakMessage(_("{header}: 
blank").format(header = header))
-                               braille.handler.message(_("{header}: 
()").format(header = header))
+                       import speech, braille
+                       speech.speakMessage(_("{header}: blank").format(header 
= header))
+                       braille.handler.message(_("{header}: ()").format(header 
= header))
 
        def indexOf(self, header):
                try:

diff --git a/addon/appModules/splstudio/__init__.py 
b/addon/appModules/splstudio/__init__.py
index 80fe6bc..382a250 100755
--- a/addon/appModules/splstudio/__init__.py
+++ b/addon/appModules/splstudio/__init__.py
@@ -1675,22 +1675,6 @@ class AppModule(appModuleHandler.AppModule):
                        obj = obj.next
                return totalDuration
 
-       # Segue version of this will be used in some places (the below is the 
raw duration).)
-       def playlistDurationRaw(self, start, end):
-               # Take care of errors such as the following.
-               if start < 0 or end > splbase.studioAPI(0, 124)-1:
-                       raise ValueError("Track range start or end position out 
of range")
-                       return
-               totalLength = 0
-               if start == end:
-                       filename = splbase.studioAPI(start, 211)
-                       totalLength = splbase.studioAPI(filename, 30)
-               else:
-                       for track in six.moves.range(start, end+1):
-                               filename = splbase.studioAPI(track, 211)
-                               totalLength+=splbase.studioAPI(filename, 30)
-               return totalLength
-
        # Playlist snapshots
        # Data to be gathered comes from a set of flags.
        # By default, playlist duration (including shortest and average), 
category summary and other statistics will be gathered.

diff --git a/addon/appModules/splstudio/splconfig.py 
b/addon/appModules/splstudio/splconfig.py
index 0c11c7b..daf6e8e 100755
--- a/addon/appModules/splstudio/splconfig.py
+++ b/addon/appModules/splstudio/splconfig.py
@@ -1117,6 +1117,7 @@ def triggerProfileSwitch(durationDelta=None):
 
 # Let SPL track item know if it needs to build description pieces.
 # To be renamed and used in other places in 7.0.
+# 19.06: deprecated and will be removed later in 2019.
 def _shouldBuildDescriptionPieces():
        return (not SPLConfig["ColumnAnnouncement"]["UseScreenColumnOrder"]
        and (SPLConfig["ColumnAnnouncement"]["ColumnOrder"] != 
_SPLDefaults["ColumnAnnouncement"]["ColumnOrder"]

diff --git a/addon/appModules/splstudio/splconfui.py 
b/addon/appModules/splstudio/splconfui.py
index d0c855f..c3b09b5 100755
--- a/addon/appModules/splstudio/splconfui.py
+++ b/addon/appModules/splstudio/splconfui.py
@@ -998,7 +998,6 @@ class MetadataStreamingPanel(gui.SettingsPanel):
                # Only one loop is needed as helper.addLabelControl returns the 
checkbox itself and that can be appended.
                # Add checkboxes for each stream, beginning with the DSP 
encoder.
                # #76 (18.09-LTS): completely changed to use custom check list 
box (NVDA Core issue 7491).
-               from . import splmisc
                self.checkedStreams = 
metadataSizerHelper.addLabeledControl(_("&Select the URL for metadata streaming 
upon request:"), CustomCheckListBox, choices=metadataStreamLabels)
                for stream in six.moves.range(5):
                        self.checkedStreams.Check(stream, 
check=splconfig._SPLDefaults["MetadataStreaming"]["MetadataEnabled"][stream])
@@ -1186,19 +1185,9 @@ class 
PlaylistTranscriptsPanel(ColumnAnnouncementsBasePanel):
        def makeSettings(self, settingsSizer):
                playlistTranscriptsHelper = gui.guiHelper.BoxSizerHelper(self, 
sizer=settingsSizer)
 
-               from . import splmisc
-               #self.transcriptFormat = 
splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"]
                # Again manually create a new set.
                self.includedColumns = 
set(splconfig.SPLConfig["PlaylistTranscripts"]["IncludedColumns"])
                self.columnOrder = 
splconfig.SPLConfig["PlaylistTranscripts"]["ColumnOrder"]
-               #self.availableTranscriptFormats = [output[0] for output in 
splmisc.SPLPlaylistTranscriptFormats]
-               #self.availableTranscriptFormats.insert(0, "")
-
-               # Translators: the label for a setting in SPL add-on settings 
to select preferred playlist transcript format.
-               #labelText = _("&Prefered transcript format:")
-               # Translators: one of the transcript format options.
-               #self.transcriptFormatsList = 
playlistTranscriptsHelper.addLabeledControl(labelText, wx.Choice, 
choices=[_("ask me every time")]+[output[2] for output in 
splmisc.SPLPlaylistTranscriptFormats])
-               
#self.transcriptFormatsList.SetSelection(self.availableTranscriptFormats.index(splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"]))
 
                # Translators: Help text to select columns to be announced.
                labelText = _("&Select columns to be included in playlist 
transcripts\n(artist and title are always included):")
@@ -1235,7 +1224,6 @@ class 
PlaylistTranscriptsPanel(ColumnAnnouncementsBasePanel):
                playlistTranscriptsHelper.addItem(sizer.sizer)
 
        def onSave(self):
-               #splconfig.SPLConfig["PlaylistTranscripts"]["TranscriptFormat"] 
= self.availableTranscriptFormats[self.transcriptFormatsList.GetSelection()]
                splconfig.SPLConfig["PlaylistTranscripts"]["IncludedColumns"] = 
set(self.checkedColumns.GetCheckedStrings()) | {"Artist", "Title"}
                splconfig.SPLConfig["PlaylistTranscripts"]["ColumnOrder"] = 
self.trackColumns.GetItems()
 

diff --git a/addon/appModules/tracktool.py b/addon/appModules/tracktool.py
index 44d36ae..36aacac 100755
--- a/addon/appModules/tracktool.py
+++ b/addon/appModules/tracktool.py
@@ -38,7 +38,7 @@ class TrackToolItem(SPLTrackItem):
        # Tweak for Track Tool: Announce column header if given.
        # Also take care of this when specific columns are asked.
        # This also allows display order to be checked (Studio 5.10 and later).
-       def announceColumnContent(self, colNumber, header=None, 
individualColumns=False):
+       def announceColumnContent(self, colNumber, header=None):
                import sys
                if not header:
                        # #72: directly fetch on-screen column header (not the 
in-memory one) by probing column order array from the list (parent).
@@ -54,13 +54,9 @@ class TrackToolItem(SPLTrackItem):
                        if sys.version.startswith("3"): 
ui.message(str(_("{header}: {content}")).format(header = header, content = 
columnContent))
                        else: ui.message(unicode(_("{header}: 
{content}")).format(header = header, content = columnContent))
                else:
-                       if individualColumns:
-                               # Translators: Presented when some info is not 
defined for a track in Track Tool (example: cue not found)
-                               ui.message(_("{header} not 
found").format(header = header))
-                       else:
-                               import speech, braille
-                               speech.speakMessage(_("{header}: 
blank").format(header = header))
-                               braille.handler.message(_("{header}: 
()").format(header = header))
+                       import speech, braille
+                       speech.speakMessage(_("{header}: blank").format(header 
= header))
+                       braille.handler.message(_("{header}: ()").format(header 
= header))
 
        def indexOf(self, header):
                try:


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/4b3eb7f55aad/
Changeset:   4b3eb7f55aad
Branch:      None
User:        josephsl
Date:        2019-05-24 13:22:51+00:00
Summary:     Merge branch 'stable' of 
https://bitbucket.org/nvdaaddonteam/stationPlaylist

Affected #:  5 files

diff --git a/addon/doc/de/readme.md b/addon/doc/de/readme.md
index 84d6174..7f80ab0 100644
--- a/addon/doc/de/readme.md
+++ b/addon/doc/de/readme.md
@@ -1,8 +1,8 @@
 # StationPlaylist Studio #
 
 * Authoren: Geoff Shang, Joseph Lee und andere Entwickler
-* [stabile Version herunterladen][1]
-* [Entwicklungsversion herunterladen][2]
+* [Stabile Version herunterladen][1]
+* [Entwicklerversion herunterladen][2]
 * [LTS-Version für Studio 5.10 / 5.11 herunterladen][3]
 * NVDA-Kompatibilität: 2018.4 bis 2019.1
 
@@ -17,8 +17,8 @@ Quellcodeverzeichnis der Erweiterung auf Github.
 
 WICHTIGE HINWEISE:
 
-* Diese Erweiterung erfordert NVDA 2018.4 oder höher und StationPlaylist
-  Studio 5.11 oder höher.
+* This add-on requires NVDA 2018.4 or later and StationPlaylist Studio 5.20
+  or later.
 * Wenn Sie Windows 8 oder höher verwenden, setzen Sie die Reduzierung der
   Lautstärke anderer Audioquellen auf "nie" im Dialog Sprachausgabe im
   NVDA-Einstellungsmenü.
@@ -330,6 +330,17 @@ Studio-Befehle über den Touchscreen ausführen. Tippen Sie 
zunächst einmal
 mit drei Fingern, um in den SPL-Touchmodus zu wechseln. Verwenden Sie dann
 die oben aufgeführten Touch-Befehle, um Befehle auszuführen.
 
+## Version 19.06/18.09.9-LTS
+
+Version 19.06 supports SPL Studio 5.20 and later.
+
+* Initial support for StationPlaylist Streamer.
+* While running various Studio apps such as Track Tool and Studio, if a
+  second instance of the app is started and then exits, NVDA will no longer
+  cause Studio add-on configuration routines to produce errors and stop
+  working correctly.
+* Added labels for various options in SPL Encoder configuration dialog.
+
 ## Version 19.04/18.09.8-LTS
 
 * Various global commands such as entering SPL Controller and switching to

diff --git a/addon/doc/es/readme.md b/addon/doc/es/readme.md
index caa27bf..ce21201 100644
--- a/addon/doc/es/readme.md
+++ b/addon/doc/es/readme.md
@@ -19,7 +19,7 @@ repositorio del código fuente del complemento.
 NOTAS IMPORTANTES:
 
 * Este complemento requiere de NVDA 2018.4 o posterior y StationPlaylist
-  Studio 5.11 o posterior.
+  Studio 5.20 o posterior.
 * Si utilizas Windows 8 o posterior, para una mejor experiencia, deshabilita
   el modo atenuación de audio.
 * A partir de 2018, los [registros de cambios para versiones antiguas][5] se
@@ -327,6 +327,19 @@ realizar algunas órdenes de Studio desde la pantalla 
táctil. Primero utiliza
 un toque con tres dedos para cambiar a modo SPL, entonces utiliza las
 órdenes táctiles listadas arriba para llevar a cabo tareas.
 
+## Versión 19.06/18.09.9-LTS
+
+La versión 19.06 soporta Studio 5.20 y posteriores.
+
+* Soporte inicial para StationPlaylist Streamer.
+* Mientras se ejecutan diversas aplicaciones de Studio como la herramienta
+  de pista o el propio Studio, si se inicia una segunda instancia de la
+  aplicación y luego se cierra, NVDA ya no hará que los procedimientos de
+  configuración del complemento de Studio causen errores y dejen de
+  funcionar correctamente.
+* Se han añadido etiquetas para diversas opciones del diálogo de
+  configuración del codificador de SPL.
+
 ## Versión 19.04/18.09.8-LTS
 
 * Varios comandos globales como acceder a SPL Controller y saltar a la

diff --git a/addon/doc/fr/readme.md b/addon/doc/fr/readme.md
index d6a175d..1f1168a 100644
--- a/addon/doc/fr/readme.md
+++ b/addon/doc/fr/readme.md
@@ -17,8 +17,8 @@ référentiel de l'extension.
 
 NOTES IMPORTANTES :
 
-* Cette extension nécessite NVDA 2018.4 ou version ultérieure et
-  StationPlaylist Studio 5.11 ou version ultérieure.
+* This add-on requires NVDA 2018.4 or later and StationPlaylist Studio 5.20
+  or later.
 * Si vous utilisez Windows 8 ou ultérieur, pour une meilleure expérience,
   désactiver le Mode d'atténuation audio.
 * À partir de 2018, [les journaux des changements des anciennes versions de
@@ -333,6 +333,17 @@ un écran tactile. Tout d'abord utiliser une tape à trois 
doigts pour
 basculer en mode SPL, puis utilisez les commandes tactile énumérées
 ci-dessus pour exécuter des commandes.
 
+## Version 19.06/18.09.9-LTS
+
+Version 19.06 supports SPL Studio 5.20 and later.
+
+* Initial support for StationPlaylist Streamer.
+* While running various Studio apps such as Track Tool and Studio, if a
+  second instance of the app is started and then exits, NVDA will no longer
+  cause Studio add-on configuration routines to produce errors and stop
+  working correctly.
+* Added labels for various options in SPL Encoder configuration dialog.
+
 ## Version 19.04/18.09.8-LTS
 
 * Various global commands such as entering SPL Controller and switching to

diff --git a/addon/doc/gl/readme.md b/addon/doc/gl/readme.md
index f92fa52..5651471 100644
--- a/addon/doc/gl/readme.md
+++ b/addon/doc/gl/readme.md
@@ -19,7 +19,7 @@ repositorio do código fonte.
 NOTAS IMPORTANTES:
 
 * Este complemento require do NVDA 2018.4 ou posterior e do StationPlaylist
-  Studio 5.11 ou posterior.
+  Studio 5.20 ou posterior.
 * Se usas o Windows 8 ou posterior, para unha mellor experiencia,
   deshabilita o modo atenuación de audio.
 * A partires de 2018, os [rexistros de cambios para versións vellas][5]
@@ -320,6 +320,18 @@ realizar algunhas ordes do Studio dende a pantalla tactil. 
Primeiro usa un
 toque con tgres dedos para cambiar a modo SPL, logo usa as ordes tactiles
 listadas arriba para realizar ordes.
 
+## Versión 19.06/18.09.9-LTS
+
+A versión 19.06 soporta SPL Studio 5.20 e posterior.
+
+* Soporte inicial para StationPlaylist Streams.
+* Cando se executen varias apps do Studio como Track tool ou Studio, se se
+  inicia unha segunda instancia da app e logo se sae dela, NVDA xa non
+  causará que as rutinas de configuración do complemento Studio produzan
+  erros e deixen de traballar correctamente.
+* Engadidas etiquetas para varias opcións no diálogo de configuración de SPL
+  Encoder.
+
 ## Versión 19.04/18.09.8-LTS
 
 * Varios comandos globais como acceder a SPL Controller e saltar á xanela de

diff --git a/addon/doc/vi/readme.md b/addon/doc/vi/readme.md
index 2b865ff..cf3b28e 100644
--- a/addon/doc/vi/readme.md
+++ b/addon/doc/vi/readme.md
@@ -15,7 +15,7 @@ xem tập tin buildInstructions.txt ở thư mục gốc trong mã 
nguồn của
 
 CÁC LƯU Ý QUAN TRỌNG:
 
-* Add-on này yêu cầu NVDA 2018.4 và StationPlaylist Studio 5.11 trở lên.
+* Add-on này yêu cầu NVDA 2018.4 và StationPlaylist Studio 5.20 trở lên.
 * Nếu dùng Windows 8 trở lên, hãy tắt chế độ giảm âm thanh để có trải nghiệm
   tốt nhất.
 * Từ 2018, [bản ghi những thay đổi cho các bản phát hành cũ của add-on][5]
@@ -283,17 +283,26 @@ NVDA 2012.3 trở lên, bạn có thể thực hiện vài lệnh của 
Studio t
 cảm ứng. Trước tiên, dùng thao tác chạm ba ngón để chuyển sang chế độ SPL,
 và sử dụng các thao tác cảm ứng đã liệt kê ở trên để thực hiện các lệnh.
 
-## Version 19.04/18.09.8-LTS
-
-* Various global commands such as entering SPL Controller and switching to
-  Studio window will be turned off if NVDA is running in secure mode or as a
-  Windows Store application.
-* 19.04: in column announcements and playlist transcripts panels (add-on
-  settings), custom column inclusion/order controls will be visible up front
-  instead of having to select a button to open a dialog to configure these
-  settings.
-* In Creator, NVDA will no longer play error tones or appear to do nothing
-  when focused on certain lists.
+## Phiên bản 19.03/18.09.7-LTS
+
+Phiên bản 19.06 hỗ trợ SPL Studio 5.20 trở lên.
+
+* Bắt đầu hỗ trợ cho StationPlaylist Streamer.
+* Khi đang chạy các ứng dụng Studio như Track Tool và Studio, nếu có một ứng
+  dụng nhanh thứ hai được gọi chạy rồi tắt, NVDA sẽ không còn làm cho cấu
+  hình Studio add-on thông báo lỗi và dừng hoạt động.
+* Thêm nhãn cho nhiều tùy chọn trong hộp thoại SPL Encoder configuration.
+
+## Phiên bản 19.04/18.09.8-LTS
+
+* Nhiều lệnh toàn cục như vào bảng điều khiển SPL và chuyển đến cửa sổ
+  Studio sẽ bị tắt nếu chạy NVDA trong chế độ bảo vệ hay một ứng dụng từ
+  Windows Store.
+* 19.04: trong thông báo cột và bảng điểm danh sách phát (cài đặt add-on),
+  các điều khiển bao gồm tùy chỉnh/sắp xếp cột sẽ hiện ra luôn thay vì phải
+  bấm nút mở một hộp thoại để cấu hình các cài đặt này.
+* Trong Creator, NVDA sẽ không còn phát âm thanh báo lỗi hoặc không làm gì
+  khi focus ở một số danh sách nhất định.
 
 ## Phiên bản 19.03/18.09.7-LTS
 


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/23b65764fb31/
Changeset:   23b65764fb31
Branch:      None
User:        josephsl
Date:        2019-05-28 17:51:44+00:00
Summary:     Streamer: clean up encoder strema labels database. # #104.

Studio and Streamer are two separate apps, hence they are able to use differnet 
encoders independently, including ability to use the same typeo f encoders. 
This means encoder stream labels database will be in use, but when Streamer is 
gone, it isn't cleaned up. Thus enforce this form Streamer as well.

Affected #:  1 file

diff --git a/addon/appModules/splstreamer.py b/addon/appModules/splstreamer.py
index 0be96af..04672fb 100644
--- a/addon/appModules/splstreamer.py
+++ b/addon/appModules/splstreamer.py
@@ -5,6 +5,7 @@
 # Support for StationPlaylist Straemer
 # A standalone app used for broadcast streaming when using something other 
than Studio for broadcasting.
 
+import sys
 import appModuleHandler
 import controlTypes
 from NVDAObjects.IAccessible import IAccessible
@@ -37,6 +38,13 @@ class TEditNoLabel(IAccessible):
 
 class AppModule(appModuleHandler.AppModule):
 
+       def terminate(self):
+               super(AppModule, self).terminate()
+               # #104 (19.07/18.09.10-LTS): clean up encoder labels database 
because Studio and Streamer are separate apps.
+               if "globalPlugins.splUtils.encoders" in sys.modules:
+                       import globalPlugins.splUtils.encoders
+                       globalPlugins.splUtils.encoders.cleanup()
+
        def event_NVDAObject_init(self, obj):
                # ICQ field is incorrectly labeled as IRC.
                # After labeling it, return early so others can be labeled 
correctly.


https://bitbucket.org/nvdaaddonteam/stationplaylist/commits/784d0f4070c7/
Changeset:   784d0f4070c7
Branch:      stable
User:        josephsl
Date:        2019-06-01 16:45:46+00:00
Summary:     Readme entry on Streamer database cleanup/security. Fixes #104.

Affected #:  1 file

diff --git a/readme.md b/readme.md
index 87e97d4..7c8bbe4 100755
--- a/readme.md
+++ b/readme.md
@@ -195,6 +195,7 @@ If you are using Studio on a touchscreen computer running 
Windows 8 or later and
 ## Version 19.07
 
 * Renamed the add-on from "StationPlaylist Studio" to "StationPlaylist" to 
better describe apps and features supported by this add-on.
+* Internal security enhancements.
 
 ## Version 19.06/18.09.9-LTS

Repository URL: https://bitbucket.org/nvdaaddonteam/stationplaylist/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.

Other related posts:

  • » commit/StationPlaylist: 25 new changesets - commits-noreply