mirror of
https://github.com/9ParsonsB/Pulsar.git
synced 2025-07-02 08:53:42 -04:00
Export version fixes (#83)
* Add file association for .eop, prompt for install dir * Handle .eop or .aip file passed as arg. * VS2022 version bump * Filter neutron stars and black holes from fast spinning criteria. * Adjustments for new "high value" check * Refactor herald cache * Fix element order and namespaces for voice moods. * Add explicit .Stop() between audio player calls. * Use nullsafe member access instead of skipping * Don't queue up a title that's already queued. * Improve body ordinal handling for explorer speech titles. * Escape strings being inserted into xml * Handle flip-flopping JSON type * Converter for flip-flopping property type * Use the converter * Escape characters *before* we wrap it in xml. * Give Eahlstan his clear button. :D * Exclude all stars from fast rotation check. * Close outstanding popup notifications on exit. * TO DONE * [Herald] Suppress duplicate notification titles for spoken notifications If you have notifications from multiple plugins producing notifications with the same title in quick succession (ie. "Body A 1 e" from both Explorer and BioInsights), the title on successive notifications will not be spoken again to save the breath of our friendly Azure speakers. * Doc update * Remove unintended member hiding * Fix export errors when exporting BioInsights data, cleanup Discovered a couple issues with exporting BioInsights data resulting from using two different types of objects in the data grid; improved error handling as well. Also cleaned up some old-style read all code. * Add read-all on launch setting * Updated framework xml * Improve high-value body description text Co-authored-by: Fred Kuipers <mr.fredk@gmail.com>
This commit is contained in:
@ -212,7 +212,7 @@ namespace Observatory.Explorer
|
||||
bodyAffix = string.Empty;
|
||||
}
|
||||
|
||||
string bodyLabel = scanEvent.PlanetClass == "Barycentre" ? "Barycentre" : "Body";
|
||||
string bodyLabel = System.Security.SecurityElement.Escape(scanEvent.PlanetClass == "Barycentre" ? "Barycentre" : "Body");
|
||||
|
||||
string spokenAffix;
|
||||
|
||||
@ -222,13 +222,13 @@ namespace Observatory.Explorer
|
||||
{
|
||||
int ringIndex = bodyAffix.Length - 6;
|
||||
spokenAffix =
|
||||
"<say-as interpret-as=\"spell-out\">" + bodyAffix.Substring(0, ringIndex) +
|
||||
"</say-as><break strength=\"weak\"/><say-as interpret-as=\"spell-out\">" +
|
||||
bodyAffix.Substring(ringIndex, 1) + "</say-as>" + bodyAffix.Substring(ringIndex + 1, bodyAffix.Length - (ringIndex + 1));
|
||||
"<say-as interpret-as=\"spell-out\">" + bodyAffix[..ringIndex]
|
||||
+ "</say-as><break strength=\"weak\"/>" + SplitOrdinalForSsml(bodyAffix.Substring(ringIndex, 1))
|
||||
+ bodyAffix[(ringIndex + 1)..];
|
||||
}
|
||||
else
|
||||
{
|
||||
spokenAffix = "<say-as interpret-as=\"spell-out\">" + bodyAffix + "</say-as>";
|
||||
spokenAffix = SplitOrdinalForSsml(bodyAffix);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -248,5 +248,18 @@ namespace Observatory.Explorer
|
||||
}
|
||||
}
|
||||
|
||||
private static string SplitOrdinalForSsml(string ordinalString)
|
||||
{
|
||||
var ordinalSegments = ordinalString.Split(' ');
|
||||
StringBuilder affix = new();
|
||||
foreach (var ordinalSegment in ordinalSegments)
|
||||
{
|
||||
if (ordinalSegment.All(Char.IsDigit))
|
||||
affix.Append(" " + ordinalSegment);
|
||||
else
|
||||
affix.Append("<say-as interpret-as=\"spell-out\">" + ordinalSegment + "</say-as>");
|
||||
}
|
||||
return affix.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user