summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsr55 <[email protected]>2013-01-27 21:14:27 +0000
committersr55 <[email protected]>2013-01-27 21:14:27 +0000
commit5a8c109bc6899e20562f0010fa180579848c6a7d (patch)
tree01f427572dba45d28f3388342002861c77b72a36
parente40171b47fcf64b27ca3ec3b61e412f3354ba05c (diff)
Only show the warning about copy proteciton once.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5210 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--macosx/Controller.m65
1 files changed, 13 insertions, 52 deletions
diff --git a/macosx/Controller.m b/macosx/Controller.m
index 401c6c3d3..735172963 100644
--- a/macosx/Controller.m
+++ b/macosx/Controller.m
@@ -1884,7 +1884,6 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
{
/* use a bool to determine whether or not we can decrypt using vlc */
BOOL cancelScanDecrypt = 0;
- BOOL vlcFound = 0;
NSString *path = scanPath;
HBDVDDetector *detector = [HBDVDDetector detectorForPath:path];
@@ -1913,16 +1912,23 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
path = [detector devicePath];
[self writeToActivityLog: "trying to open a physical dvd at: %s", [scanPath UTF8String]];
- /* lets check for vlc here to make sure we have a dylib available to use for decrypting */
+
+ NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
+ NSInteger suppressWarning = [prefs integerForKey:@"suppresslibdvdcss"];
+
+ /* Notify the user that we don't support removal of copy proteciton. */
void *dvdcss = dlopen("libdvdcss.2.dylib", RTLD_LAZY);
- if (dvdcss == NULL)
+ if (dvdcss == NULL && suppressWarning != 1)
{
+ /* Only show the user this warning once. They may be using a solution we don't know about. Notifying them each time is annoying. */
+ [prefs setInteger:1 forKey:@"suppresslibdvdcss"];
+
/*compatible vlc not found, so we set the bool to cancel scanning to 1 */
cancelScanDecrypt = 1;
[self writeToActivityLog: "libdvdcss.2.dylib not found for decrypting physical dvd"];
int status;
- status = NSRunAlertPanel(@"HandBrake could not find a compatible version of libdvdcss (32-bit libdvdcss is not compatible with 64-bit HandBrake and vice-versa).",
- @"Please download and install libdvdcss.pkg if you wish to read encrypted DVDs.", @"Get libdvdcss.pkg", @"Cancel Scan", @"Attempt Scan Anyway");
+ status = NSRunAlertPanel(@"Please note that HandBrake does not support the removal of copy-protection from DVD Discs. You can if you wish install libdvdcss or any other 3rd party software for this function.",
+ @"Videolan.org provides libdvdcss if you are not currently using another solution.", @"Get libdvdcss.pkg", @"Cancel Scan", @"Attempt Scan Anyway");
[NSApp requestUserAttention:NSCriticalRequest];
if (status == NSAlertDefaultReturn)
@@ -1933,13 +1939,13 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
else if (status == NSAlertAlternateReturn)
{
/* User chose to cancel the scan */
- [self writeToActivityLog: "cannot open physical dvd, scan cancelled"];
+ [self writeToActivityLog: "Cannot open physical dvd, scan cancelled"];
}
else
{
/* User chose to override our warning and scan the physical dvd anyway, at their own peril. on an encrypted dvd this produces massive log files and fails */
cancelScanDecrypt = 0;
- [self writeToActivityLog: "user overrode dvdcss warning - trying to open physical dvd without decryption"];
+ [self writeToActivityLog: "User overrode copy-proteciton warning - trying to open physical dvd without decryption"];
}
}
@@ -1947,7 +1953,6 @@ static NSString * ChooseSourceIdentifier = @"Choose Source It
{
/* VLC was found in /Applications so all is well, we can carry on using vlc's libdvdcss.dylib for decrypting if needed */
[self writeToActivityLog: "libdvdcss.2.dylib found for decrypting physical dvd"];
- vlcFound = 1;
dlclose(dvdcss);
}
}
@@ -2792,50 +2797,6 @@ fWorkingCount = 0;
*/
NSString *path = scanPath;
HBDVDDetector *detector = [HBDVDDetector detectorForPath:path];
-
- if( [detector isVideoDVD] )
- {
- // The chosen path was actually on a DVD, so use the raw block
- // device path instead.
- path = [detector devicePath];
- [self writeToActivityLog: "trying to open a physical dvd at: %s", [scanPath UTF8String]];
-
- /* lets check for vlc here to make sure we have a dylib available to use for decrypting */
- void *dvdcss = dlopen("libdvdcss.2.dylib", RTLD_LAZY);
- if (dvdcss == NULL)
- {
- /*vlc not found in /Applications so we set the bool to cancel scanning to 1 */
- cancelScanDecrypt = 1;
- [self writeToActivityLog: "VLC app not found for decrypting physical dvd"];
- int status;
- status = NSRunAlertPanel(@"HandBrake could not find VLC.",@"Please download and install VLC media player in your /Applications folder if you wish to read encrypted DVDs.", @"Get VLC", @"Cancel Scan", @"Attempt Scan Anyway");
- [NSApp requestUserAttention:NSCriticalRequest];
-
- if (status == NSAlertDefaultReturn)
- {
- /* User chose to go download vlc (as they rightfully should) so we send them to the vlc site */
- [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.videolan.org/"]];
- }
- else if (status == NSAlertAlternateReturn)
- {
- /* User chose to cancel the scan */
- [self writeToActivityLog: "cannot open physical dvd , scan cancelled"];
- }
- else
- {
- /* User chose to override our warning and scan the physical dvd anyway, at their own peril. on an encrypted dvd this produces massive log files and fails */
- cancelScanDecrypt = 0;
- [self writeToActivityLog: "user overrode vlc warning -trying to open physical dvd without decryption"];
- }
-
- }
- else
- {
- /* VLC was found in /Applications so all is well, we can carry on using vlc's libdvdcss.dylib for decrypting if needed */
- dlclose(dvdcss);
- [self writeToActivityLog: "VLC app found for decrypting physical dvd"];
- }
- }
if (cancelScanDecrypt == 0)
{