diff --git a/Moose Development/Moose/Core/Message.lua b/Moose Development/Moose/Core/Message.lua index 31669d458..1ffcb1516 100644 --- a/Moose Development/Moose/Core/Message.lua +++ b/Moose Development/Moose/Core/Message.lua @@ -505,6 +505,7 @@ function MESSAGE.SetMSRS(PathToSRS,Port,PathToCredentials,Frequency,Modulation,G if PathToCredentials then _MESSAGESRS.MSRS:SetProviderOptionsGoogle(PathToCredentials) + _MESSAGESRS.MSRS:SetProvider(MSRS.Provider.GOOGLE) end _MESSAGESRS.label = Label or MSRS.Label or "MESSAGE" diff --git a/Moose Development/Moose/Ops/ATIS.lua b/Moose Development/Moose/Ops/ATIS.lua index 0fcf939b5..d07c751f1 100644 --- a/Moose Development/Moose/Ops/ATIS.lua +++ b/Moose Development/Moose/Ops/ATIS.lua @@ -1553,9 +1553,10 @@ function ATIS:SetSRS(PathToSRS, Gender, Culture, Voice, Port, GoogleKey) self.msrs:SetLabel("ATIS") if GoogleKey then self.msrs:SetProviderOptionsGoogle(GoogleKey,GoogleKey) + self.msrs:SetProvider(MSRS.Provider.GOOGLE) end -- Pre-configured Google? - if self.msrs:GetProvider() == MSRS.Provider.GOOGLE then + if (not GoogleKey) and self.msrs:GetProvider() == MSRS.Provider.GOOGLE then voice = Voice or MSRS.poptions.gcloud.voice end self.msrs:SetVoice(voice) @@ -1571,6 +1572,20 @@ function ATIS:SetSRS(PathToSRS, Gender, Culture, Voice, Port, GoogleKey) return self end +--- Set an alternative provider to the one set in your MSRS configuration file. +-- @param #ATIS self +-- @param #string Provider The provider to use. Known providers are: `MSRS.Provider.WINDOWS` and `MSRS.Provider.GOOGLE` +-- @return #ATIS self +function ATIS:SetSRSProvider(Provider) + self:T(self.lid.."SetSRSProvider") + if self.msrs then + self.msrs:SetProvider(Provider) + else + MESSAGE:New(self.lid.."Set up SRS first before trying to change the provider!",30,"ATIS"):ToAll():ToLog() + end + return self +end + --- Set the time interval between radio queue updates. -- @param #ATIS self -- @param #number TimeInterval Interval in seconds. Default 5 sec. diff --git a/Moose Development/Moose/Sound/RadioQueue.lua b/Moose Development/Moose/Sound/RadioQueue.lua index 80ac49752..7f320cedc 100644 --- a/Moose Development/Moose/Sound/RadioQueue.lua +++ b/Moose Development/Moose/Sound/RadioQueue.lua @@ -183,8 +183,10 @@ end -- @param #number Port SRS port. Default 5002. -- @return #RADIOQUEUE self The RADIOQUEUE object. function RADIOQUEUE:SetSRS(PathToSRS, Port) - self.msrs=MSRS:New(PathToSRS, self.frequency/1000000, self.modulation) - self.msrs:SetPort(Port) + local path = PathToSRS or MSRS.path + local port = Port or MSRS.port + self.msrs=MSRS:New(path, self.frequency/1000000, self.modulation) + self.msrs:SetPort(port) return self end diff --git a/Moose Development/Moose/Sound/SRS.lua b/Moose Development/Moose/Sound/SRS.lua index 0d8a8f05b..b0ac95894 100644 --- a/Moose Development/Moose/Sound/SRS.lua +++ b/Moose Development/Moose/Sound/SRS.lua @@ -918,12 +918,16 @@ end -- @param #string Provider -- @return #MSRS self function MSRS:SetProvider(Provider) - self:F( {Provider=Provider} ) - self.provider = Provider or MSRS.Provider.WINDOWS - return self + BASE:F( {Provider=Provider} ) + if self then + self.provider = Provider or MSRS.Provider.WINDOWS + return self + else + MSRS.provider = Provider or MSRS.Provider.WINDOWS + end + return end - --- Get provider. -- @param #MSRS self -- @return #MSRS self @@ -940,7 +944,7 @@ end -- @param #string Region Region to use. -- @return #MSRS.ProviderOptions Provider optionas table. function MSRS:SetProviderOptions(Provider, CredentialsFile, AccessKey, SecretKey, Region) - self:F( {Provider, CredentialsFile, AccessKey, SecretKey, Region} ) + BASE:F( {Provider, CredentialsFile, AccessKey, SecretKey, Region} ) local option=MSRS._CreateProviderOptions(Provider, CredentialsFile, AccessKey, SecretKey, Region) if self then