AutoRecorder: Record in batches of 30 minutes.
Restarts recording at roundstarts, if recording for longer then 30 minutes.
This commit is contained in:
		
							parent
							
								
									8b8d9abd4c
								
							
						
					
					
						commit
						a592567ca7
					
				| @ -10,9 +10,12 @@ ConVar g_hTimeStop; | |||||||
| ConVar g_hFinishMap; | ConVar g_hFinishMap; | ||||||
| ConVar g_hDemoPath; | ConVar g_hDemoPath; | ||||||
| 
 | 
 | ||||||
|  | bool g_bRestartRecording = false; | ||||||
| bool g_bIsRecording = false; | bool g_bIsRecording = false; | ||||||
| bool g_bIsManual = false; | bool g_bIsManual = false; | ||||||
| 
 | 
 | ||||||
|  | int g_iRestartRecording; | ||||||
|  | 
 | ||||||
| // Default: o=rx,g=rx,u=rwx | 755 | // Default: o=rx,g=rx,u=rwx | 755 | ||||||
| #define DIRECTORY_PERMISSIONS (FPERM_O_READ|FPERM_O_EXEC | FPERM_G_READ|FPERM_G_EXEC | FPERM_U_READ|FPERM_U_WRITE|FPERM_U_EXEC) | #define DIRECTORY_PERMISSIONS (FPERM_O_READ|FPERM_O_EXEC | FPERM_G_READ|FPERM_G_EXEC | FPERM_U_READ|FPERM_U_WRITE|FPERM_U_EXEC) | ||||||
| 
 | 
 | ||||||
| @ -40,6 +43,8 @@ public void OnPluginStart() | |||||||
| 	RegAdminCmd("sm_record", Command_Record, ADMFLAG_KICK, "Starts a SourceTV demo"); | 	RegAdminCmd("sm_record", Command_Record, ADMFLAG_KICK, "Starts a SourceTV demo"); | ||||||
| 	RegAdminCmd("sm_stoprecord", Command_StopRecord, ADMFLAG_KICK, "Stops the current SourceTV demo"); | 	RegAdminCmd("sm_stoprecord", Command_StopRecord, ADMFLAG_KICK, "Stops the current SourceTV demo"); | ||||||
| 
 | 
 | ||||||
|  | 	HookEvent("round_start", OnRoundStart); | ||||||
|  | 
 | ||||||
| 	g_hTvEnabled = FindConVar("tv_enable"); | 	g_hTvEnabled = FindConVar("tv_enable"); | ||||||
| 
 | 
 | ||||||
| 	static char sPath[PLATFORM_MAX_PATH]; | 	static char sPath[PLATFORM_MAX_PATH]; | ||||||
| @ -60,6 +65,15 @@ public void OnPluginStart() | |||||||
| 	CheckStatus(); | 	CheckStatus(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) | ||||||
|  | { | ||||||
|  | 	if(g_bRestartRecording && g_iRestartRecording <= GetTime()) | ||||||
|  | 	{ | ||||||
|  | 		StopRecord(); | ||||||
|  | 		CheckStatus(); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| public void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue) | public void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue) | ||||||
| { | { | ||||||
| 	if(convar == g_hDemoPath) | 	if(convar == g_hDemoPath) | ||||||
| @ -77,6 +91,9 @@ public void OnMapEnd() | |||||||
| 	{ | 	{ | ||||||
| 		StopRecord(); | 		StopRecord(); | ||||||
| 		g_bIsManual = false; | 		g_bIsManual = false; | ||||||
|  | 
 | ||||||
|  | 		g_bRestartRecording = false; | ||||||
|  | 		g_iRestartRecording = -1; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -191,6 +208,9 @@ void StartRecord() | |||||||
| 		g_bIsRecording = true; | 		g_bIsRecording = true; | ||||||
| 
 | 
 | ||||||
| 		LogMessage("Recording to auto-%s-%s.dem", sTime, sMap); | 		LogMessage("Recording to auto-%s-%s.dem", sTime, sMap); | ||||||
|  | 
 | ||||||
|  | 		g_bRestartRecording = true; | ||||||
|  | 		g_iRestartRecording = GetTime() + 1800; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -200,5 +220,8 @@ void StopRecord() | |||||||
| 	{ | 	{ | ||||||
| 		ServerCommand("tv_stoprecord"); | 		ServerCommand("tv_stoprecord"); | ||||||
| 		g_bIsRecording = false; | 		g_bIsRecording = false; | ||||||
|  | 
 | ||||||
|  | 		g_bRestartRecording = false; | ||||||
|  | 		g_iRestartRecording = -1; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user