예제 #1
0
        /// <inheritdoc cref="Command.ReportPhysicalAddress"/>
        /// <param name="device">The device.</param>
        /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
        public static CecMessage ReportPhysicalAddress(this CecDevice device)
        {
            if (device.PhysicalAddress == PhysicalAddress.None)
            {
                throw new InvalidOperationException("Physical address is not valid.");
            }

            return(CecMessageBuilder.ReportPhysicalAddress(device.LogicalAddress, device.DeviceType, device.PhysicalAddress));
        }
예제 #2
0
        public void CtorTest_2()
        {
            var device = new CecDevice(DeviceType.PlaybackDevice, "SomeName", 999, PhysicalAddress.Parse("2.1.0.0"), LogicalAddress.PlaybackDevice1);

            Assert.AreEqual(DeviceType.PlaybackDevice, device.DeviceType);
            Assert.AreEqual("SomeName", device.OsdName);
            Assert.AreEqual(999, device.VendorId);
            Assert.AreEqual(PhysicalAddress.Parse("2.1.0.0"), device.PhysicalAddress);
            Assert.AreEqual(LogicalAddress.PlaybackDevice1, device.LogicalAddress);
        }
예제 #3
0
        public void CtorTest_0()
        {
            var device = new CecDevice(DeviceType.PlaybackDevice, "SomeName", 999);

            Assert.AreEqual(DeviceType.PlaybackDevice, device.DeviceType);
            Assert.AreEqual("SomeName", device.OsdName);
            Assert.AreEqual(999, device.VendorId);
            Assert.AreEqual(PhysicalAddress.None, device.PhysicalAddress);
            Assert.AreEqual(LogicalAddress.Unregistered, device.LogicalAddress);
        }
예제 #4
0
        /// <inheritdoc cref="Command.ActiveSource"/>
        /// <param name="device">The device.</param>
        /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
        public static CecMessage ActiveSource(this CecDevice device)
        {
            if (device.PhysicalAddress == PhysicalAddress.None)
            {
                throw new InvalidOperationException("Physical address is not valid.");
            }

            device.IsActiveSource = true;
            return(CecMessageBuilder.ActiveSource(device.LogicalAddress, device.PhysicalAddress));
        }
예제 #5
0
 /// <inheritdoc cref="Command.MenuStatus"/>
 /// <param name="device">The device.</param>
 /// <param name="status">The menu status.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage MenuStatus(this CecDevice device, MenuState status)
 {
     return(CecMessageBuilder.MenuStatus(device.LogicalAddress, status));
 }
예제 #6
0
 /// <inheritdoc cref="Command.SetOSDName"/>
 /// <param name="device">The device.</param>
 /// <param name="destination">The destination address.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage SetOsdName(this CecDevice device, LogicalAddress destination)
 {
     return(CecMessageBuilder.SetOsdName(device.LogicalAddress, destination, device.OsdName));
 }
예제 #7
0
 /// <inheritdoc cref="Command.DeviceVendorId"/>
 /// <param name="device">The device.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage DeviceVendorId(this CecDevice device)
 {
     return(CecMessageBuilder.DeviceVendorId(device.LogicalAddress, device.VendorId));
 }
예제 #8
0
 /// <inheritdoc cref="Command.CecVersion"/>
 /// <param name="device">The device.</param>
 /// <param name="destination">The destination address.</param>
 /// <param name="version">The cec version.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage CecVersion(this CecDevice device, LogicalAddress destination, CecVersion version = Model.CecVersion.Version14)
 {
     return(CecMessageBuilder.CecVersion(device.LogicalAddress, destination, version));
 }
예제 #9
0
 /// <inheritdoc cref="Command.ReportPowerStatus"/>
 /// <param name="device">The device.</param>
 /// <param name="language">The ISO-639-2 language code.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage SetMenuLanguage(this CecDevice device, [NotNull] string language)
 {
     return(CecMessageBuilder.SetMenuLanguage(device.LogicalAddress, language));
 }
예제 #10
0
 /// <inheritdoc cref="Command.SetSystemAudioMode"/>
 /// <param name="device">The device.</param>
 /// <param name="destination">The destination address.</param>
 /// <param name="status">The system audio status.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage SetSystemAudioMode(this CecDevice device, LogicalAddress destination, SystemAudioStatus status)
 {
     return(CecMessageBuilder.SetSystemAudioMode(device.LogicalAddress, destination, status));
 }
예제 #11
0
 /// <inheritdoc cref="Command.ReportPowerStatus"/>
 /// <param name="device">The device.</param>
 /// <param name="address">The polling address.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage Polling(this CecDevice device, LogicalAddress address)
 {
     return(CecMessageBuilder.Polling(address));
 }
예제 #12
0
 /// <inheritdoc cref="Command.ReportAudioStatus"/>
 /// <param name="device">The device.</param>
 /// <param name="destination">The destination address.</param>
 /// <param name="status">The audio mute status.</param>
 /// <param name="value">The audio volume [0-127].</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage ReportAudioStatus(this CecDevice device, LogicalAddress destination, AudioMuteStatus status, int value)
 {
     return(CecMessageBuilder.ReportAudioStatus(device.LogicalAddress, destination, status, value));
 }
예제 #13
0
 /// <inheritdoc cref="Command.ReportPowerStatus"/>
 /// <param name="device">The device.</param>
 /// <param name="destination">The destination address.</param>
 /// <param name="status">The power status.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage ReportPowerStatus(this CecDevice device, LogicalAddress destination, PowerStatus status)
 {
     return(CecMessageBuilder.ReportPowerStatus(device.LogicalAddress, destination, status));
 }
예제 #14
0
 public void CtorTest_DeviceTypeMismatchThrows()
 {
     Assert.Throws <InvalidOperationException>(() => _ = new CecDevice(DeviceType.PlaybackDevice, "SomeName", 999,
                                                                       PhysicalAddress.Parse("2.1.0.0"), LogicalAddress.Tuner3));
 }
예제 #15
0
 /// <inheritdoc cref="Command.GivePhysicalAddress"/>
 /// <param name="device">The device.</param>
 /// <param name="destination">The destination address.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage GivePhysicalAddress(this CecDevice device, LogicalAddress destination)
 {
     return(CecMessageBuilder.GivePhysicalAddress(device.LogicalAddress, destination));
 }
예제 #16
0
 public void CtorTest_OSDNameEmptyThrows()
 {
     Assert.Throws <ArgumentException>(() => _ = new CecDevice(DeviceType.PlaybackDevice, "", 999,
                                                               PhysicalAddress.Parse("2.1.0.0"), LogicalAddress.Tuner3));
 }
예제 #17
0
 /// <inheritdoc cref="Command.FeatureAbort"/>
 /// <param name="device">The device.</param>
 /// <param name="destination">The destination address.</param>
 /// <param name="opCode">The command being aborted.</param>
 /// <param name="reason">The abort reason.</param>
 /// <returns>A <see cref="CecMessage"/> object representing the command.</returns>
 public static CecMessage FeatureAbort(this CecDevice device, LogicalAddress destination, Command opCode, AbortReason reason)
 {
     return(CecMessageBuilder.FeatureAbort(device.LogicalAddress, destination, opCode, reason));
 }