Преглед изворни кода

mac-virtualcam: Check result of finished extension installation

Adds a switch to distinguish between the possible results that could
occur. While we expect to received RequestCompleted for our camera
extension (RequestWillCompleteAfterReboot is usually more of a network
extension thing), we can't be sure that this always is what we receive
unless we check it.
gxalpha пре 2 година
родитељ
комит
e85b257562

+ 1 - 0
plugins/mac-virtualcam/src/obs-plugin/data/locale/en-US.ini

@@ -4,5 +4,6 @@ Error.SystemExtension.CameraUnavailable="Could not find virtual camera.\n\nPleas
 Error.SystemExtension.CameraNotStarted="Unable to start virtual camera.\n\nPlease try again."
 Error.SystemExtension.InstallationError="An error has occured while installing the virtual camera:"
 Error.SystemExtension.WrongLocation="OBS cannot install the virtual camera if it's not in \"/Applications\". Please move OBS to the \"/Applications\" directory."
+Error.SystemExtension.CompleteAfterReboot="The installation of the virtual camera will complete after a system reboot."
 Error.DAL.NotInstalled="The virtual camera could not be installed or updated.\n\nPlease try again and enter the name and password of an administrator when prompted."
 Error.DAL.NotUninstalled="Could not remove the legacy virtual camera.\n\nPlease try again and enter the name and password of an administrator when prompted."

+ 11 - 2
plugins/mac-virtualcam/src/obs-plugin/plugin-main.mm

@@ -96,8 +96,17 @@ struct virtualcam_data {
 
 - (void)request:(nonnull OSSystemExtensionRequest *)request didFinishWithResult:(OSSystemExtensionRequestResult)result
 {
-    self.installed = YES;
-    blog(LOG_INFO, "macOS Camera Extension activated successfully.");
+    switch (result) {
+        case OSSystemExtensionRequestCompleted:
+            self.installed = YES;
+            blog(LOG_INFO, "macOS Camera Extension activated successfully.");
+            break;
+        case OSSystemExtensionRequestWillCompleteAfterReboot:
+            self.lastErrorMessage =
+                [NSString stringWithUTF8String:obs_module_text("Error.SystemExtension.CompleteAfterReboot")];
+            blog(LOG_INFO, "macOS Camera Extension will activate after reboot.");
+            break;
+    }
 }
 
 - (void)requestNeedsUserApproval:(nonnull OSSystemExtensionRequest *)request