public void SetDefaultEndPoint(string deviceId, EDataFlow flow, IEnumerable <ERole> roles, uint processId)
        {
            Trace.WriteLine($"ExtendedPolicyClient SetDefaultEndPoint {deviceId} [{flow}] {processId}");
            try
            {
                var stringPtrDeviceId = IntPtr.Zero;

                if (!string.IsNullOrWhiteSpace(deviceId))
                {
                    var str = GenerateDeviceId(deviceId, flow);
                    ComBase.WindowsCreateString(str, (uint)str.Length, out stringPtrDeviceId);
                }

                foreach (var eRole in roles)
                {
                    PolicyConfig.SetPersistedDefaultAudioEndpoint(processId, flow, eRole, stringPtrDeviceId);
                }
            }
            catch (COMException e) when((e.ErrorCode & ErrorConst.COM_ERROR_MASK) == ErrorConst.COM_ERROR_NOT_FOUND)
            {
                throw new DeviceNotFoundException($"Can't set default as {deviceId}", e, deviceId);
            }
            catch (Exception ex)
            {
                Trace.WriteLine($"{ex}");
            }
        }
Пример #2
0
        public static IAudioPolicyConfigFactory Create()
        {
            var iid = typeof(IAudioPolicyConfigFactory).GUID;

            ComBase.RoGetActivationFactory("Windows.Media.Internal.AudioPolicyConfig", ref iid, out object factory);
            return((IAudioPolicyConfigFactory)factory);
        }
        public static IAudioPolicyConfigFactory Create()
        {
            var iid = GuidGenerator.CreateIID(typeof(IAudioPolicyConfigFactory));

            using var name = HSTRING.FromString("Windows.Media.Internal.AudioPolicyConfig");
            ComBase.RoGetActivationFactory(name, ref iid, out object factory);
            return(factory.As <IAudioPolicyConfigFactory>());
        }
Пример #4
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="x">x偏移</param>
        /// <param name="y">y偏移</param>
        /// <param name="globalGUIManager">全局对象</param>
        /// <param name="comBase">绑定的串口</param>
        public ComCanvas(double x, double y, GlobalGUIManager globalGUIManager, ComBase comBase) : base(x, y, globalGUIManager)
        {
            Width      = 30;
            Height     = 10;
            Background = Brushes.DimGray;

            Children.Add(GetCircleByOffset(0));
            Children.Add(GetCircleByOffset(-PointMargin));
            Children.Add(GetCircleByOffset(PointMargin));

            DragCanvas.MouseMoveAction += Update;

            this.ComBase = comBase;
        }
Пример #5
0
        public void SetDefaultEndPoint(string deviceId, EDataFlow flow, IEnumerable <Role> roles, uint processId)
        {
            Trace.WriteLine($"ExtendedPolicyClient SetDefaultEndPoint {deviceId} [{flow}] {processId}");
            try
            {
                var stringPtrDeviceId = IntPtr.Zero;

                if (!string.IsNullOrWhiteSpace(deviceId))
                {
                    var str = GenerateDeviceId(deviceId, flow);
                    ComBase.WindowsCreateString(str, (uint)str.Length, out stringPtrDeviceId);
                }

                foreach (var eRole in roles)
                {
                    PolicyConfig.SetPersistedDefaultAudioEndpoint(processId, flow, eRole, stringPtrDeviceId);
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine($"{ex}");
            }
        }
Пример #6
0
 /// <summary>
 /// Build a minimal row from a class (key fields only)
 /// </summary>
 public static void BuildMinimalRow(ref DataRow row, Com entity)
 {
     ComBase.BuildMinimalRow(ref row, entity);
 }
Пример #7
0
 public ComLED()
 {
     com = new LedVirCom(this);
 }