X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FCecSharpTester%2FCecSharpClient.cs;h=8f6c576c1bb4c0f2ab151d4408f9a2d9c0e3fae3;hb=d749efb2d01817c0a8ad8b32a1b9861c5a78c83d;hp=3d8ec32c4588ae593750f7a463f21944a072f67e;hpb=32fe963d1e884cbe0016ca880212111a1ba94e42;p=deb_libcec.git diff --git a/src/CecSharpTester/CecSharpClient.cs b/src/CecSharpTester/CecSharpClient.cs index 3d8ec32..8f6c576 100644 --- a/src/CecSharpTester/CecSharpClient.cs +++ b/src/CecSharpTester/CecSharpClient.cs @@ -32,12 +32,11 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Text; namespace CecSharpClient { - class CecSharpClient + class CecSharpClient : CecCallbackMethods { public CecSharpClient() { @@ -50,6 +49,47 @@ namespace CecSharpClient Console.WriteLine("CEC Parser created - libcec version " + Lib.GetLibVersionMajor() + "." + Lib.GetLibVersionMinor()); } + public override int ReceiveCommand(CecCommand command) + { + return 1; + } + + public override int ReceiveKeypress(CecKeypress key) + { + return 1; + } + + public override int ReceiveLogMessage(CecLogMessage message) + { + if (((int)message.Level & LogLevel) == (int)message.Level) + { + string strLevel = ""; + switch (message.Level) + { + case CecLogLevel.Error: + strLevel = "ERROR: "; + break; + case CecLogLevel.Warning: + strLevel = "WARNING: "; + break; + case CecLogLevel.Notice: + strLevel = "NOTICE: "; + break; + case CecLogLevel.Traffic: + strLevel = "TRAFFIC: "; + break; + case CecLogLevel.Debug: + strLevel = "DEBUG: "; + break; + default: + break; + } + string strLog = string.Format("{0} {1,16} {2}", strLevel, message.Time, message.Message); + Console.WriteLine(strLog); + } + return 1; + } + void FlushLog() { CecLogMessage message = Lib.GetNextLogMessage(); @@ -154,17 +194,15 @@ namespace CecSharpClient public void MainLoop() { - Lib.PowerOnDevices(CecLogicalAddress.Tv); - FlushLog(); + Lib.EnableCallbacks(this); + Lib.PowerOnDevices(CecLogicalAddress.Tv); Lib.SetActiveSource(CecDeviceType.PlaybackDevice); - FlushLog(); bool bContinue = true; string command; while (bContinue) { - FlushLog(); Console.WriteLine("waiting for input"); command = Console.ReadLine(); @@ -283,11 +321,9 @@ namespace CecSharpClient { Console.WriteLine("closing the connection"); Lib.Close(); - FlushLog(); Console.WriteLine("opening a new connection"); Connect(10000); - FlushLog(); Console.WriteLine("setting active source"); Lib.SetActiveSource(CecDeviceType.PlaybackDevice); @@ -297,7 +333,7 @@ namespace CecSharpClient Console.WriteLine("CEC bus information"); Console.WriteLine("==================="); CecLogicalAddresses addresses = Lib.GetActiveDevices(); - for (int iPtr = 0; iPtr < addresses.Addresses.Count(); iPtr++) + for (int iPtr = 0; iPtr < addresses.Addresses.Length; iPtr++) { CecLogicalAddress address = (CecLogicalAddress)iPtr; if (!addresses.IsSet(address)) @@ -346,7 +382,6 @@ namespace CecSharpClient { Console.WriteLine("Could not open a connection to the CEC adapter"); } - p.FlushLog(); } private int LogLevel;