namespace CecSharpClient
{
- class CecSharpClient
+ class CecSharpClient : CecCallbackMethods
{
public 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();
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();
{
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);
{
Console.WriteLine("Could not open a connection to the CEC adapter");
}
- p.FlushLog();
}
private int LogLevel;