*/
@property (nonatomic, readwrite) int logLevel;
+/**
+ * Set whether system sleep will be disable or not during a scan/encode
+ * Enabled by default.
+ */
+@property (nonatomic, readwrite) BOOL automaticallyPreventSleep;
+
+/**
+ * Manually prevent system sleep if automaticallyPreventSleep is set to NO.
+ */
+- (void)preventSleep;
+
+/**
+ * Manually allow system sleep if automaticallyPreventSleep is set to NO.
+ */
+- (void)allowSleep;
+
/**
* State formatter.
*/
hb_log_level_set(_hb_handle, logLevel);
}
+- (void)preventSleep
+{
+ NSAssert(!self.automaticallyPreventSleep, @"[HBCore preventSleep:] called with automaticallyPreventSleep enabled.");
+ hb_system_sleep_prevent(_hb_handle);
+}
+
+- (void)allowSleep
+{
+ NSAssert(!self.automaticallyPreventSleep, @"[HBCore allowSleep:] called with automaticallyPreventSleep enabled.");
+ hb_system_sleep_allow(_hb_handle);
+}
+
+- (void)preventAutoSleep
+{
+ if (self.automaticallyPreventSleep)
+ {
+ hb_system_sleep_prevent(_hb_handle);
+ }
+}
+
+- (void)allowAutoSleep
+{
+ if (self.automaticallyPreventSleep)
+ {
+ hb_system_sleep_allow(_hb_handle);
+ }
+}
+
#pragma mark - Scan
- (BOOL)canScan:(NSURL *)url error:(NSError * __autoreleasing *)error
[HBUtilities writeToActivityLog:"%s scanning titles with a duration of %d seconds or more", self.name.UTF8String, seconds];
}
- hb_system_sleep_prevent(_hb_handle);
+ [self preventAutoSleep];
hb_scan(_hb_handle, path.fileSystemRepresentation,
(int)index, (int)previewsNum,
// Free the job
hb_job_close(&hb_job);
- hb_system_sleep_prevent(_hb_handle);
+ [self preventAutoSleep];
+
hb_start(_hb_handle);
// Start the timer to handle libhb state changes
- (void)pause
{
hb_pause(_hb_handle);
- hb_system_sleep_allow(_hb_handle);
self.state = HBStatePaused;
+ [self allowAutoSleep];
}
- (void)resume
{
hb_resume(_hb_handle);
- hb_system_sleep_prevent(_hb_handle);
self.state = HBStateWorking;
+ [self preventAutoSleep];
}
#pragma mark - State updates
// Set the state to idle, because the update timer won't fire again.
self.state = HBStateIdle;
+
// Reallow system sleep.
- hb_system_sleep_allow(_hb_handle);
+ [self allowAutoSleep];
// Call the completion block and clean ups the handlers
self.progressHandler = nil;