Add "Remote Audio Capture" option #383

This commit is contained in:
bllkrkmz
2019-04-17 14:27:46 +03:00
parent ce71fe2b06
commit ad756617dd
22 changed files with 129 additions and 10 deletions

View File

@@ -277,6 +277,13 @@ namespace mRemoteNG.Config.Serializers.Csv
connectionRecord.RedirectSound = value;
}
if (headers.Contains("RedirectAudioCapture"))
{
bool value;
if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectAudioCapture")], out value))
connectionRecord.RedirectAudioCapture = value;
}
if (headers.Contains("RedirectKeys"))
{
bool value;

View File

@@ -56,10 +56,10 @@ namespace mRemoteNG.Config.Serializers.Csv
if (_saveFilter.SaveDomain)
sb.Append("Domain;");
sb.Append(
"Hostname;Protocol;PuttySession;Port;ConnectToConsole;UseCredSsp;RenderingEngine;ICAEncryptionStrength;RDPAuthenticationLevel;LoadBalanceInfo;Colors;Resolution;AutomaticResize;DisplayWallpaper;DisplayThemes;EnableFontSmoothing;EnableDesktopComposition;CacheBitmaps;RedirectDiskDrives;RedirectPorts;RedirectPrinters;RedirectClipboard;RedirectSmartCards;RedirectSound;RedirectKeys;PreExtApp;PostExtApp;MacAddress;UserField;ExtApp;Favorite;VNCCompression;VNCEncoding;VNCAuthMode;VNCProxyType;VNCProxyIP;VNCProxyPort;VNCProxyUsername;VNCProxyPassword;VNCColors;VNCSmartSizeMode;VNCViewOnly;RDGatewayUsageMethod;RDGatewayHostname;RDGatewayUseConnectionCredentials;RDGatewayUsername;RDGatewayPassword;RDGatewayDomain;");
"Hostname;Protocol;PuttySession;Port;ConnectToConsole;UseCredSsp;RenderingEngine;ICAEncryptionStrength;RDPAuthenticationLevel;LoadBalanceInfo;Colors;Resolution;AutomaticResize;DisplayWallpaper;DisplayThemes;EnableFontSmoothing;EnableDesktopComposition;CacheBitmaps;RedirectDiskDrives;RedirectPorts;RedirectPrinters;RedirectClipboard;RedirectSmartCards;RedirectSound;RedirectKeys;PreExtApp;PostExtApp;MacAddress;UserField;ExtApp;Favorite;VNCCompression;VNCEncoding;VNCAuthMode;VNCProxyType;VNCProxyIP;VNCProxyPort;VNCProxyUsername;VNCProxyPassword;VNCColors;VNCSmartSizeMode;VNCViewOnly;RDGatewayUsageMethod;RDGatewayHostname;RDGatewayUseConnectionCredentials;RDGatewayUsername;RDGatewayPassword;RDGatewayDomain;RedirectAudioCapture;");
if (_saveFilter.SaveInheritance)
sb.Append(
"InheritCacheBitmaps;InheritColors;InheritDescription;InheritDisplayThemes;InheritDisplayWallpaper;InheritEnableFontSmoothing;InheritEnableDesktopComposition;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;InheritProtocol;InheritPuttySession;InheritRedirectDiskDrives;InheritRedirectKeys;InheritRedirectPorts;InheritRedirectPrinters;InheritRedirectClipboard;InheritRedirectSmartCards;InheritRedirectSound;InheritResolution;InheritAutomaticResize;InheritUseConsoleSession;InheritUseCredSsp;InheritRenderingEngine;InheritUsername;InheritICAEncryptionStrength;InheritRDPAuthenticationLevel;InheritLoadBalanceInfo;InheritPreExtApp;InheritPostExtApp;InheritMacAddress;InheritUserField;InheritFavorite;InheritExtApp;InheritVNCCompression;InheritVNCEncoding;InheritVNCAuthMode;InheritVNCProxyType;InheritVNCProxyIP;InheritVNCProxyPort;InheritVNCProxyUsername;InheritVNCProxyPassword;InheritVNCColors;InheritVNCSmartSizeMode;InheritVNCViewOnly;InheritRDGatewayUsageMethod;InheritRDGatewayHostname;InheritRDGatewayUseConnectionCredentials;InheritRDGatewayUsername;InheritRDGatewayPassword;InheritRDGatewayDomain;InheritRDPAlertIdleTimeout;InheritRDPMinutesToIdleTimeout;InheritSoundQuality");
"InheritCacheBitmaps;InheritColors;InheritDescription;InheritDisplayThemes;InheritDisplayWallpaper;InheritEnableFontSmoothing;InheritEnableDesktopComposition;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;InheritProtocol;InheritPuttySession;InheritRedirectDiskDrives;InheritRedirectKeys;InheritRedirectPorts;InheritRedirectPrinters;InheritRedirectClipboard;InheritRedirectSmartCards;InheritRedirectSound;InheritResolution;InheritAutomaticResize;InheritUseConsoleSession;InheritUseCredSsp;InheritRenderingEngine;InheritUsername;InheritICAEncryptionStrength;InheritRDPAuthenticationLevel;InheritLoadBalanceInfo;InheritPreExtApp;InheritPostExtApp;InheritMacAddress;InheritUserField;InheritFavorite;InheritExtApp;InheritVNCCompression;InheritVNCEncoding;InheritVNCAuthMode;InheritVNCProxyType;InheritVNCProxyIP;InheritVNCProxyPort;InheritVNCProxyUsername;InheritVNCProxyPassword;InheritVNCColors;InheritVNCSmartSizeMode;InheritVNCViewOnly;InheritRDGatewayUsageMethod;InheritRDGatewayHostname;InheritRDGatewayUseConnectionCredentials;InheritRDGatewayUsername;InheritRDGatewayPassword;InheritRDGatewayDomain;InheritRDPAlertIdleTimeout;InheritRDPMinutesToIdleTimeout;InheritSoundQuality;InheritRedirectAudioCapture;");
}
private void SerializeNodesRecursive(ConnectionInfo node, StringBuilder sb)
@@ -147,7 +147,8 @@ namespace mRemoteNG.Config.Serializers.Csv
.Append(FormatForCsv(con.RDGatewayUseConnectionCredentials))
.Append(FormatForCsv(con.RDGatewayUsername))
.Append(FormatForCsv(con.RDGatewayPassword))
.Append(FormatForCsv(con.RDGatewayDomain));
.Append(FormatForCsv(con.RDGatewayDomain))
.Append(FormatForCsv(con.RedirectAudioCapture));
if (!_saveFilter.SaveInheritance)
@@ -208,7 +209,8 @@ namespace mRemoteNG.Config.Serializers.Csv
.Append(FormatForCsv(con.Inheritance.RDGatewayDomain))
.Append(FormatForCsv(con.Inheritance.RDPAlertIdleTimeout))
.Append(FormatForCsv(con.Inheritance.RDPMinutesToIdleTimeout))
.Append(FormatForCsv(con.Inheritance.SoundQuality));
.Append(FormatForCsv(con.Inheritance.SoundQuality))
.Append(FormatForCsv(con.Inheritance.RedirectAudioCapture));
}
private string FormatForCsv(object value)

View File

@@ -125,6 +125,8 @@ namespace mRemoteNG.Config.Serializers.MsSql
(RdpProtocol.RDPSounds)Enum.Parse(typeof(RdpProtocol.RDPSounds), (string)dataRow["RedirectSound"]);
connectionInfo.SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality),
(string)dataRow["SoundQuality"]);
connectionInfo.RedirectAudioCapture = (bool)dataRow["RedirectAudioCapture"];
connectionInfo.RedirectKeys = (bool)dataRow["RedirectKeys"];
connectionInfo.PreExtApp = (string)dataRow["PreExtApp"];
connectionInfo.PostExtApp = (string)dataRow["PostExtApp"];

View File

@@ -252,6 +252,7 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["RedirectSmartCards"] = connectionInfo.RedirectSmartCards;
dataRow["RedirectSound"] = connectionInfo.RedirectSound;
dataRow["SoundQuality"] = connectionInfo.SoundQuality;
dataRow["RedirectAudioCapture"] = connectionInfo.RedirectAudioCapture;
dataRow["RedirectKeys"] = connectionInfo.RedirectKeys;
dataRow["Connected"] =
false; // TODO: this column can eventually be removed. we now save this property locally

View File

@@ -103,6 +103,7 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.RedirectSmartCards.ToString().ToLowerInvariant()));
element.Add(new XAttribute("RedirectSound", connectionInfo.RedirectSound.ToString()));
element.Add(new XAttribute("SoundQuality", connectionInfo.SoundQuality.ToString()));
element.Add(new XAttribute("RedirectAudioCapture", connectionInfo.RedirectAudioCapture.ToString()));
element.Add(new XAttribute("RedirectKeys", connectionInfo.RedirectKeys.ToString().ToLowerInvariant()));
element.Add(new XAttribute("Connected",
(connectionInfo.OpenConnections.Count > 0).ToString().ToLowerInvariant()));
@@ -301,6 +302,7 @@ namespace mRemoteNG.Config.Serializers.Xml
element.Add(new XAttribute("InheritRedirectSmartCards", falseString));
element.Add(new XAttribute("InheritRedirectSound", falseString));
element.Add(new XAttribute("InheritSoundQuality", falseString));
element.Add(new XAttribute("InheritRedirectAudioCapture", falseString));
element.Add(new XAttribute("InheritResolution", falseString));
element.Add(new XAttribute("InheritAutomaticResize", falseString));
element.Add(new XAttribute("InheritUseConsoleSession", falseString));

View File

@@ -107,6 +107,7 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.RedirectSmartCards.ToString().ToLowerInvariant()));
element.Add(new XAttribute("RedirectSound", connectionInfo.RedirectSound.ToString()));
element.Add(new XAttribute("SoundQuality", connectionInfo.SoundQuality.ToString()));
element.Add(new XAttribute("RedirectAudioCapture", connectionInfo.RedirectAudioCapture.ToString()));
element.Add(new XAttribute("RedirectKeys", connectionInfo.RedirectKeys.ToString().ToLowerInvariant()));
element.Add(new XAttribute("Connected",
(connectionInfo.OpenConnections.Count > 0).ToString().ToLowerInvariant()));
@@ -311,6 +312,7 @@ namespace mRemoteNG.Config.Serializers.Xml
element.Add(new XAttribute("InheritRedirectSmartCards", falseString));
element.Add(new XAttribute("InheritRedirectSound", falseString));
element.Add(new XAttribute("InheritSoundQuality", falseString));
element.Add(new XAttribute("InheritRedirectAudioCapture", falseString));
element.Add(new XAttribute("InheritResolution", falseString));
element.Add(new XAttribute("InheritAutomaticResize", falseString));
element.Add(new XAttribute("InheritUseConsoleSession", falseString));

View File

@@ -321,6 +321,7 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.Colors = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPColors>("Colors");
connectionInfo.Resolution = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPResolutions>("Resolution");
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSounds>("RedirectSound");
connectionInfo.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture");
}
else
{
@@ -346,6 +347,7 @@ namespace mRemoteNG.Config.Serializers.Xml
}
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSounds>("RedirectSound");
connectionInfo.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture");
}
if (_confVersion >= 1.3)
@@ -368,6 +370,7 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.Inheritance.RedirectSmartCards =
xmlnode.GetAttributeAsBool("InheritRedirectSmartCards");
connectionInfo.Inheritance.RedirectSound = xmlnode.GetAttributeAsBool("InheritRedirectSound");
connectionInfo.Inheritance.RedirectAudioCapture = xmlnode.GetAttributeAsBool("RedirectAudioCapture");
connectionInfo.Inheritance.Resolution = xmlnode.GetAttributeAsBool("InheritResolution");
connectionInfo.Inheritance.UseConsoleSession =
xmlnode.GetAttributeAsBool("InheritUseConsoleSession");

View File

@@ -128,6 +128,9 @@ namespace mRemoteNG.Config.Serializers
break;
}
break;
case "redirectaudiocapture":
connectionInfo.RedirectAudioCapture = value == "1";
break;
case "loadbalanceinfo":
connectionInfo.LoadBalanceInfo = value;
break;

View File

@@ -63,6 +63,7 @@ namespace mRemoteNG.Connection
private bool _redirectSmartCards;
private RdpProtocol.RDPSounds _redirectSound;
private RdpProtocol.RDPSoundQuality _soundQuality;
private bool _redirectAudioCapture;
private string _preExtApp;
private string _postExtApp;
@@ -482,6 +483,7 @@ namespace mRemoteNG.Connection
set { SetField(ref _redirectClipboard, value, "RedirectClipboard"); }
}
[LocalizedAttributes.LocalizedCategory("strCategoryRedirect", 6),
LocalizedAttributes.LocalizedDisplayName("strPropertyNameRedirectPorts"),
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRedirectPorts"),
@@ -522,6 +524,16 @@ namespace mRemoteNG.Connection
set => SetField(ref _soundQuality, value, "SoundQuality");
}
[LocalizedAttributes.LocalizedCategory("strCategoryRedirect", 6),
LocalizedAttributes.LocalizedDisplayName("strPropertyNameRedirectAudioCapture"),
LocalizedAttributes.LocalizedDescription("strPropertyDescriptionRedirectAudioCapture"),
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
public bool RedirectAudioCapture
{
get { return GetPropertyValue("RedirectAudioCapture", _redirectAudioCapture); }
set { SetField(ref _redirectAudioCapture, value, "RedirectAudioCapture"); }
}
#endregion
#region Misc

View File

@@ -353,6 +353,7 @@ namespace mRemoteNG.Connection
Settings.Default.ConDefaultRedirectSound);
SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality),
Settings.Default.ConDefaultSoundQuality);
RedirectAudioCapture = Settings.Default.ConDefaultRedirectAudioCapture;
}
private void SetMiscDefaults()

View File

@@ -293,6 +293,12 @@ namespace mRemoteNG.Connection
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
public bool SoundQuality { get; set; }
[LocalizedAttributes.LocalizedCategory("strCategoryRedirect", 7),
LocalizedAttributes.LocalizedDisplayNameInheritAttribute("strPropertyNameRedirectAudioCapture"),
LocalizedAttributes.LocalizedDescriptionInheritAttribute("strPropertyDescriptionRedirectAudioCapture"),
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
public bool RedirectAudioCapture { get; set; }
#endregion
#region Misc

View File

@@ -1,4 +1,4 @@
using AxWFICALib;
using AxWFICALib;
using mRemoteNG.App;
using mRemoteNG.Connection.Protocol.RDP;
using mRemoteNG.Messages;

View File

@@ -151,7 +151,7 @@ namespace mRemoteNG.Connection.Protocol.RDP
_rdpClient.AdvancedSettings2.keepAliveInterval = 60000; //in milliseconds (10,000 = 10 seconds)
_rdpClient.AdvancedSettings5.AuthenticationLevel = 0;
_rdpClient.AdvancedSettings2.EncryptionEnabled = 1;
_rdpClient.AdvancedSettings2.overallConnectionTimeout = Settings.Default.ConRDPOverallConnectionTimeout;
_rdpClient.AdvancedSettings2.BitmapPeristence = Convert.ToInt32(_connectionInfo.CacheBitmaps);
@@ -635,6 +635,7 @@ namespace mRemoteNG.Connection.Protocol.RDP
_rdpClient.AdvancedSettings2.RedirectSmartCards = _connectionInfo.RedirectSmartCards;
_rdpClient.SecuredSettings2.AudioRedirectionMode = (int)_connectionInfo.RedirectSound;
_rdpClient.AdvancedSettings.DisableRdpdr = _connectionInfo.RedirectClipboard ? 0 : 1;
_rdpClient.AdvancedSettings8.AudioCaptureRedirectionMode = _connectionInfo.RedirectAudioCapture;
}
catch (Exception ex)
{
@@ -860,7 +861,6 @@ namespace mRemoteNG.Connection.Protocol.RDP
High = 2
}
private enum RDPPerformanceFlags
{
[Description("strRDPDisableWallpaper")]

View File

@@ -611,6 +611,18 @@ namespace mRemoteNG {
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ConDefaultRedirectAudioCapture {
get {
return ((bool)(this["ConDefaultRedirectAudioCapture"]));
}
set {
this["ConDefaultRedirectAudioCapture"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("2")]
@@ -1031,6 +1043,18 @@ namespace mRemoteNG {
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool InhDefaultRedirectAudioCapture {
get {
return ((bool)(this["InhDefaultRedirectAudioCapture"]));
}
set {
this["InhDefaultRedirectAudioCapture"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
@@ -2818,8 +2842,8 @@ namespace mRemoteNG {
this["InhDefaultFavorite"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("mssql")]
public string SQLServerType {

View File

@@ -148,6 +148,9 @@
</Setting>
<Setting Name="ConDefaultRedirectSound" Type="System.String" Scope="User">
<Value Profile="(Default)">DoNotPlay</Value>
</Setting>
<Setting Name="ConDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="MaxPuttyWaitTime" Type="System.Int32" Scope="User">
<Value Profile="(Default)">2</Value>
@@ -253,6 +256,9 @@
</Setting>
<Setting Name="InhDefaultRedirectSound" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="InhDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="InhDefaultResolution" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>

View File

@@ -49,6 +49,7 @@ CREATE TABLE [dbo].[tblCons] (
[RedirectSmartCards] [bit] NOT NULL ,
[RedirectSound] [varchar] (64) NOT NULL ,
[SoundQuality] [varchar] (20) NOT NULL,
[RedirectAudioCapture] [bit] NOT NULL,
[RedirectKeys] [bit] NOT NULL ,
[Connected] [bit] NOT NULL ,
[PreExtApp] [varchar] (256) NULL ,
@@ -94,6 +95,7 @@ CREATE TABLE [dbo].[tblCons] (
[InheritRedirectSmartCards] [bit] NOT NULL ,
[InheritRedirectSound] [bit] NOT NULL ,
[InheritSoundQuality] [bit] NOT NULL,
[InheritRedirectAudioCapture] [bit] NOT NULL,
[InheritResolution] [bit] NOT NULL ,
[InheritUseConsoleSession] [bit] NOT NULL ,
[InheritUseCredSsp] [bit] NOT NULL ,

View File

@@ -54,8 +54,9 @@ CREATE TABLE `tblCons` (
`RedirectPorts` tinyint(1) NOT NULL,
`RedirectPrinters` tinyint(1) NOT NULL,
`RedirectSmartCards` tinyint(1) NOT NULL,
`RedirectSound` varchar(64) NOT NULL,
`RedirectSound` varchar(64) NOT NULL,
`SoundQuality` varchar(20) NOT NULL,
`RedirectAudioCapture` tinyint(1) NOT NULL,
`RedirectKeys` tinyint(1) NOT NULL,
`Connected` tinyint(1) NOT NULL,
`PreExtApp` varchar(256) DEFAULT NULL,
@@ -101,6 +102,7 @@ CREATE TABLE `tblCons` (
`InheritRedirectSmartCards` tinyint(1) NOT NULL,
`InheritRedirectSound` tinyint(1) NOT NULL,
`InheritSoundQuality` tinyint(1) NOT NULL,
`InheritRedirectAudioCapture` tinyint(1) NOT NULL,
`InheritResolution` tinyint(1) NOT NULL,
`InheritUseConsoleSession` tinyint(1) NOT NULL,
`InheritUseCredSsp` tinyint(1) NOT NULL,

View File

@@ -4992,6 +4992,15 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Select how remote sound should be redirected..
/// </summary>
internal static string strPropertyDescriptionRedirectAudioCapture {
get {
return ResourceManager.GetString("strPropertyDescriptionRedirectAudioCapture", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Select whether clipboard should be shared..
/// </summary>
@@ -5514,6 +5523,15 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Audio Capture.
/// </summary>
internal static string strPropertyNameRedirectAudioCapture {
get {
return ResourceManager.GetString("strPropertyNameRedirectAudioCapture", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Clipboard.
/// </summary>

View File

@@ -1480,6 +1480,9 @@ If you run into such an error, please create a new connection file!</value>
</data>
<data name="strPropertyDescriptionRedirectSounds" xml:space="preserve">
<value>Select how remote sound should be redirected.</value>
</data>
<data name="strPropertyDescriptionRedirectAudioCapture" xml:space="preserve">
<value>Select how remote sound should be redirected.</value>
</data>
<data name="strPropertyDescriptionRenderingEngine" xml:space="preserve">
<value>Select one of the available rendering engines that will be used to display HTML.</value>
@@ -1642,6 +1645,9 @@ If you run into such an error, please create a new connection file!</value>
</data>
<data name="strPropertyNameRedirectSounds" xml:space="preserve">
<value>Sounds</value>
</data>
<data name="strPropertyNameRedirectAudioCapture" xml:space="preserve">
<value>Audio Capture</value>
</data>
<data name="strPropertyNameRenderingEngine" xml:space="preserve">
<value>Rendering Engine</value>

View File

@@ -69,6 +69,7 @@
<xs:attribute name="RedirectSmartCards" type="xs:boolean" use="required" />
<xs:attribute name="RedirectSound" type="xs:string" use="required" />
<xs:attribute name="SoundQuality" type="xs:string" use="required" />
<xs:attribute name="RedirectAudioCapture" type="xs:boolean" use="required" />
<xs:attribute name="RedirectKeys" type="xs:boolean" use="required" />
<xs:attribute name="Connected" type="xs:boolean" use="required" />
<xs:attribute name="PreExtApp" type="xs:string" use="required" />
@@ -117,6 +118,7 @@
<xs:attribute name="InheritRedirectSmartCards" type="xs:boolean" use="optional" />
<xs:attribute name="InheritRedirectSound" type="xs:boolean" use="optional" />
<xs:attribute name="InheritSoundQuality" type="xs:boolean" use="optional" />
<xs:attribute name="InheritRedirectAudioCapture" type="xs:boolean" use="optional" />
<xs:attribute name="InheritResolution" type="xs:boolean" use="optional" />
<xs:attribute name="InheritAutomaticResize" type="xs:boolean" use="optional" />
<xs:attribute name="InheritUseConsoleSession" type="xs:boolean" use="optional" />

View File

@@ -836,6 +836,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
@@ -949,6 +950,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
@@ -997,6 +999,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
@@ -1042,6 +1045,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
@@ -1088,6 +1092,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
@@ -1135,6 +1140,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
@@ -1182,6 +1188,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
@@ -1230,6 +1237,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
strHide.Add("UseConsoleSession");
@@ -1272,6 +1280,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("AutomaticResize");
strHide.Add("UseConsoleSession");
@@ -1315,6 +1324,7 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectClipboard");
strHide.Add("RedirectSmartCards");
strHide.Add("RedirectSound");
strHide.Add("RedirectAudioCapture");
strHide.Add("RenderingEngine");
strHide.Add("Resolution");
strHide.Add("AutomaticResize");
@@ -1377,6 +1387,8 @@ namespace mRemoteNG.UI.Window
strHide.Add("RedirectSmartCards");
if (conI.Inheritance.RedirectSound)
strHide.Add("RedirectSound");
if (conI.Inheritance.RedirectAudioCapture)
strHide.Add("RedirectAudioCapture");
if (conI.Inheritance.Resolution)
strHide.Add("Resolution");
if (conI.Inheritance.AutomaticResize)

View File

@@ -195,6 +195,9 @@
<setting name="ConDefaultRedirectSound" serializeAs="String">
<value>DoNotPlay</value>
</setting>
<setting name="ConDefaultRedirectAudioCapture" serializeAs="String">
<value>False</value>
</setting>
<setting name="MaxPuttyWaitTime" serializeAs="String">
<value>2</value>
</setting>
@@ -300,6 +303,9 @@
<setting name="InhDefaultRedirectSound" serializeAs="String">
<value>False</value>
</setting>
<setting name="InhDefaultRedirectAudioCapture" serializeAs="String">
<value>False</value>
</setting>
<setting name="InhDefaultResolution" serializeAs="String">
<value>False</value>
</setting>