#endif\r
\r
#include "defines.h"\r
+\r
+#ifdef HANDLE_VT_SWITCHING\r
+#include <signal.h>\r
+#include <sys/ioctl.h>\r
+#include <linux/vt.h>\r
+#endif\r
#include "log.h"\r
#include "timers.h"\r
#include "vdr.h"\r
Wol* wol;\r
Sleeptimer* sleeptimer;\r
\r
+#ifdef HANDLE_VT_SWITCHING\r
+int fdtty;\r
+struct vt_mode old_vtmode;\r
+#endif\r
+\r
// Linux MVP main function and sighandler\r
#ifndef WIN32\r
int main(int argc, char** argv)\r
\r
logger->log("Core", Log::INFO, "Signal handlers set up successfully");\r
\r
+#ifdef HANDLE_VT_SWITCHING\r
+ if ((fdtty = open("/dev/tty", O_WRONLY),0) == -1) {\r
+ logger->log("Core", Log::EMERG, "Could not open /dev/tty. Please change permissions");\r
+ } else {\r
+ int free_vt;\r
+ if (ioctl(fdtty,VT_OPENQRY,&free_vt)==-1 || free_vt==-1){\r
+ logger->log("Core", Log::EMERG, "Could not retrieve free virtual console, please change permissions");\r
+ } else {\r
+ ioctl(fdtty,VT_ACTIVATE,free_vt);\r
+ ioctl(fdtty,VT_WAITACTIVE,free_vt);\r
+ ioctl(fdtty, VT_LOCKSWITCH, 1);\r
+ }\r
+ }\r
+\r
+#endif\r
\r
// Init modules ----------------------------------------------------------------------------------------------------\r
int success;\r
delete sleeptimer;\r
logger->log("Core", Log::NOTICE, "Sleeptimer module shut down");\r
}\r
+#ifdef HANDLE_VT_SWITCHING\r
+ ioctl(fdtty, VT_UNLOCKSWITCH, 1);\r
+ close(fdtty);\r
+#endif\r
\r
if (logger)\r
{\r