@@ -331,6 +331,8 @@ VOID WINAPI SvcMain(DWORD dwArgc, LPTSTR* lpszArgv)
331331
332332 SvcReportEvent (EVENTLOG_INFORMATION_TYPE , L" The service has started." );
333333
334+ DispatchSystemPowerEvent (SYSTEM_EVENT_BOOT );
335+
334336 // Wait until service stops
335337 WaitForSingleObject (ghSvcStopEvent, INFINITE );
336338
@@ -504,7 +506,6 @@ DWORD SvcCtrlHandler(DWORD dwCtrl, DWORD dwEventType, LPVOID lpEventData, LPVOI
504506 DispatchSystemPowerEvent (SYSTEM_EVENT_UNSURE );
505507 }
506508
507- // copy paste from the STOP event below
508509 ReportSvcStatus (SERVICE_STOP_PENDING , NO_ERROR , 20000 );
509510
510511 do
@@ -720,31 +721,36 @@ void InitDeviceSessions()
720721
721722 SESSIONPARAMETERS params;
722723
724+ // DEVICEID
723725 params.DeviceId = item.key ();
724726 s << params.DeviceId << " , " ;
727+ // NAME
725728 if (item.value ()[" Name" ].is_string ())
726729 params.Name = item.value ()[" Name" ].get <string>();
727- s << params.Name << " , with IP " ;
728-
730+ s << params.Name ;
731+ // IP
732+ s << " , with IP " ;
729733 if (item.value ()[" IP" ].is_string ())
730734 params.IP = item.value ()[" IP" ].get <string>();
731735 s << params.IP << " initiated (" ;
732-
736+ // ENABLED
733737 if (item.value ()[" Enabled" ].is_boolean ())
734738 params.Enabled = item.value ()[" Enabled" ].get <bool >();
735739 s << " Enabled:" << (params.Enabled ?" yes" :" no" ) << " , " ;
736-
740+ // SUBNET AND WOL TYPE
737741 if (item.value ()[" Subnet" ].is_string ())
738742 params.Subnet = item.value ()[" Subnet" ].get <string>();
739743 if (item.value ()[" WOL" ].is_number ())
740744 params.WOLtype = item.value ()[" WOL" ].get <int >();
741745 s << " WOL:" << params.WOLtype << " , " ;
742746 if (params.WOLtype == WOL_SUBNETBROADCAST && params.Subnet != " " )
743747 s << " SubnetMask:" << params.Subnet << " , " ;
748+ // PAIRING KEY
744749 if (item.value ()[" SessionKey" ].is_string ())
745750 params.SessionKey = item.value ()[" SessionKey" ].get <string>();
746- s << " Pairing key:" << (params.SessionKey ==" " ? " n/a" : params.SessionKey ) << " , MAC: " ;
747-
751+ s << " PairingKey:" << (params.SessionKey == " " ? " n/a" : params.SessionKey );
752+ // MAC
753+ s << " , MAC: " ;
748754 j = item.value ()[" MAC" ];
749755 if (!j.empty () && j.size () > 0 )
750756 {
@@ -756,22 +762,33 @@ void InitDeviceSessions()
756762 }
757763 else
758764 s << " n/a" ;
759- s << " , HDMI input control:" ;
765+ // POWER OFF HDMI INPUT VERIFICATION
766+ s << " , VerifyHdmiInput:" ;
760767 if (item.value ()[" HDMIinputcontrol" ].is_boolean ())
761768 params.HDMIinputcontrol = item.value ()[" HDMIinputcontrol" ].get <bool >();
762-
763769 if (item.value ()[" OnlyTurnOffIfCurrentHDMIInputNumberIs" ].is_number ())
764770 params.OnlyTurnOffIfCurrentHDMIInputNumberIs = item.value ()[" OnlyTurnOffIfCurrentHDMIInputNumberIs" ].get <int >();
765771 if (params.HDMIinputcontrol ) {
766772 s << params.OnlyTurnOffIfCurrentHDMIInputNumberIs ;
767773 }
768774 else
769775 s << " off" ;
770- s << " , Blank when idle:" ;
771-
776+ // SET HDMI INPUT ON BOOT/RESUME
777+ s << " , SetHdmiInput:" ;
778+ if (item.value ()[" SetHDMIInputOnResume" ].is_boolean ())
779+ params.SetHDMIInputOnResume = item.value ()[" SetHDMIInputOnResume" ].get <bool >();
780+ if (item.value ()[" SetHDMIInputOnResumeToNumber" ].is_number ())
781+ params.SetHDMIInputOnResumeToNumber = item.value ()[" SetHDMIInputOnResumeToNumber" ].get <int >();
782+ if (params.SetHDMIInputOnResume )
783+ {
784+ s << params.SetHDMIInputOnResumeToNumber ;
785+ }
786+ else
787+ s << " off" ;
788+ // SCREEN BLANKING ON USER IDLE
789+ s << " , BlankOnIdle:" ;
772790 params.BlankWhenIdle = Prefs.BlankWhenIdle ;
773791 params.BlankScreenWhenIdleDelay = Prefs.BlankScreenWhenIdleDelay ;
774-
775792 if (params.BlankWhenIdle ) {
776793 s << " on(" ;
777794 s << params.BlankScreenWhenIdleDelay ;
@@ -1014,6 +1031,14 @@ void IPCThread(void)
10141031 param1 = APP_CMDLINE_SCREENON ;
10151032 else if (param == " -screenoff" )
10161033 param1 = APP_CMDLINE_SCREENOFF ;
1034+ else if (param == " -sethdmi1" )
1035+ param1 = APP_CMDLINE_SETHDMI1 ;
1036+ else if (param == " -sethdmi2" )
1037+ param1 = APP_CMDLINE_SETHDMI2 ;
1038+ else if (param == " -sethdmi3" )
1039+ param1 = APP_CMDLINE_SETHDMI3 ;
1040+ else if (param == " -sethdmi4" )
1041+ param1 = APP_CMDLINE_SETHDMI4 ;
10171042 else if (param1 > 0 )
10181043 {
10191044 if (param1 == APP_IPC_DAEMON )
@@ -1096,6 +1121,34 @@ void IPCThread(void)
10961121 device.Stop ();
10971122
10981123 }
1124+ else if (param1 == APP_CMDLINE_SETHDMI1 && (id == param || name == param))
1125+ {
1126+ string w = " IPC, set HDMI input 1:" ;
1127+ w += param;
1128+ Log (w);
1129+ device.SystemEvent (SYSTEM_EVENT_FORCESETHDMI , 1 );
1130+ }
1131+ else if (param1 == APP_CMDLINE_SETHDMI2 && (id == param || name == param))
1132+ {
1133+ string w = " IPC, set HDMI input 2:" ;
1134+ w += param;
1135+ Log (w);
1136+ device.SystemEvent (SYSTEM_EVENT_FORCESETHDMI , 2 );
1137+ }
1138+ else if (param1 == APP_CMDLINE_SETHDMI1 && (id == param || name == param))
1139+ {
1140+ string w = " IPC, set HDMI input 3:" ;
1141+ w += param;
1142+ Log (w);
1143+ device.SystemEvent (SYSTEM_EVENT_FORCESETHDMI , 3 );
1144+ }
1145+ else if (param1 == APP_CMDLINE_SETHDMI1 && (id == param || name == param))
1146+ {
1147+ string w = " IPC, set HDMI input 4:" ;
1148+ w += param;
1149+ Log (w);
1150+ device.SystemEvent (SYSTEM_EVENT_FORCESETHDMI , 4 );
1151+ }
10991152 }
11001153 }
11011154
0 commit comments