{
return nil;
}
+
+ /* replace bundled app icon with one which is 32/64-bit savvy */
+#if defined( __LP64__ )
+ fApplicationIcon = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForImageResource:@"HandBrake-64.icns"]];
+#else
+ fApplicationIcon = [[NSImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForImageResource:@"HandBrake.icns"]];
+#endif
+ if( fApplicationIcon != nil )
+ [NSApp setApplicationIconImage:fApplicationIcon];
[HBPreferencesController registerUserDefaults];
fHandle = NULL;
[fQueueController release];
[fPreviewController release];
[fPictureController release];
-
+ [fApplicationIcon release];
+
hb_close(&fHandle);
hb_close(&fQueueEncodeLibhb);
}
**********************************************************************/
- (void) UpdateDockIcon: (float) progress
{
- NSImage * icon;
NSData * tiff;
NSBitmapImageRep * bmp;
uint32_t * pen;
int row_start, row_end;
int i, j;
- /* Get application original icon */
- icon = [NSImage imageNamed: @"NSApplicationIcon"];
-
if( progress < 0.0 || progress > 1.0 )
{
- [NSApp setApplicationIconImage: icon];
+ [NSApp setApplicationIconImage: fApplicationIcon];
return;
}
/* Get it in a raw bitmap form */
- tiff = [icon TIFFRepresentationUsingCompression:
+ tiff = [fApplicationIcon TIFFRepresentationUsingCompression:
NSTIFFCompressionNone factor: 1.0];
bmp = [NSBitmapImageRep imageRepWithData: tiff];
/* Now update the dock icon */
tiff = [bmp TIFFRepresentationUsingCompression:
NSTIFFCompressionNone factor: 1.0];
- icon = [[NSImage alloc] initWithData: tiff];
+ NSImage* icon = [[NSImage alloc] initWithData: tiff];
[NSApp setApplicationIconImage: icon];
[icon release];
}
if( checkScanCount > currentScanCount )
{
currentScanCount = checkScanCount;
- [self writeToActivityLog:"currentScanCount received from fQueueEncodeLibhb"];
}
//hb_state_t s;
case HB_STATE_WORKING:
{
NSMutableString * string;
+ NSString * pass_desc;
/* Update text field */
- string = [NSMutableString stringWithFormat: NSLocalizedString( @"Encoding: pass %d of %d, %.2f %%", @"" ), p.job_cur, p.job_count, 100.0 * p.progress];
+ if (p.job_cur == 1 && p.job_count > 1)
+ {
+ if ([[QueueFileArray objectAtIndex:currentQueueEncodeIndex] objectForKey:@"SubtitleList"] && [[[[[QueueFileArray objectAtIndex:currentQueueEncodeIndex]objectForKey:@"SubtitleList"] objectAtIndex:0] objectForKey:@"subtitleSourceTrackNum"] intValue] == 1)
+ {
+ pass_desc = @"(subtitle scan)";
+ }
+ else
+ {
+ pass_desc = @"";
+ }
+ }
+ else
+ {
+ pass_desc = @"";
+ }
+
+ string = [NSMutableString stringWithFormat: NSLocalizedString( @"Encoding: pass %d %@ of %d, %.2f %%", @"" ), p.job_cur, pass_desc, p.job_count, 100.0 * p.progress];
if( p.seconds > -1 )
{
}
}
+- (IBAction)showAboutPanel:(id)sender
+{
+ NSMutableDictionary* d = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
+ fApplicationIcon, @"ApplicationIcon",
+ nil ];
+ [NSApp orderFrontStandardAboutPanelWithOptions:d];
+ [d release];
+}
+
/* Here we open the title selection sheet where we can specify an exact title to be scanned */
- (IBAction) showSourceTitleScanPanel: (id) sender
{
path = [detector devicePath];
[self writeToActivityLog: "trying to open a physical dvd at: %s", [scanPath UTF8String]];
-#ifdef __LP64__
+#if defined( __LP64__ )
/* If we are 64 bit, we cannot read encrypted dvd's as vlc is 32 bit only */
cancelScanDecrypt = 1;
[self writeToActivityLog: "64 bit mode cannot read dvd's, scan cancelled"];
*/
if (subtitle > 0)
{
- hb_subtitle_t * subt;
- hb_subtitle_config_t sub_config;
-
- subt = (hb_subtitle_t *)hb_list_item(title->list_subtitle, subtitle);
- sub_config = subt->config;
-
/* if i is 0, then we are in the first item of the subtitles which we need to
* check for the "Foreign Audio Search" which would be subtitleSourceTrackNum of 1
* bearing in mind that for all tracks subtitleSourceTrackNum of 0 is None.
/* NOTE: Currently foreign language search is borked for preview.
* Commented out but left in for initial commit. */
- /*
+
[self writeToActivityLog: "Foreign Language Search: %d", 1];
job->indepth_scan = 1;
{
job->select_subtitle_config.dest = hb_subtitle_config_s::PASSTHRUSUB;
}
+ else
+ {
+ job->select_subtitle_config.dest = hb_subtitle_config_s::RENDERSUB;
+ }
job->select_subtitle_config.force = force;
job->select_subtitle_config.default_track = def;
}
- */
+
}
else
/* We are setting a source subtitle so access the source subtitle info */
hb_subtitle_t * subt;
- hb_subtitle_config_t sub_config;
subt = (hb_subtitle_t *)hb_list_item(title->list_subtitle, subtitle);
- sub_config = subt->config;
if (subt != NULL)
{
[self writeToActivityLog: "Setting Subtitle: %s", subt];
+
+ hb_subtitle_config_t sub_config = subt->config;
if (!burned && job->mux == HB_MUX_MKV &&
subt->format == hb_subtitle_s::PICTURESUB)
*/
if (subtitle > 0)
{
- hb_subtitle_t * subt;
- hb_subtitle_config_t sub_config;
-
- subt = (hb_subtitle_t *)hb_list_item(title->list_subtitle, subtitle);
- sub_config = subt->config;
-
/* if i is 0, then we are in the first item of the subtitles which we need to
* check for the "Foreign Audio Search" which would be subtitleSourceTrackNum of 1
* bearing in mind that for all tracks subtitleSourceTrackNum of 0 is None.
{
job->select_subtitle_config.dest = hb_subtitle_config_s::PASSTHRUSUB;
}
+ else
+ {
+ job->select_subtitle_config.dest = hb_subtitle_config_s::RENDERSUB;
+ }
job->select_subtitle_config.force = force;
job->select_subtitle_config.default_track = def;
/* We are setting a source subtitle so access the source subtitle info */
hb_subtitle_t * subt;
- hb_subtitle_config_t sub_config;
subt = (hb_subtitle_t *)hb_list_item(title->list_subtitle, subtitle);
- sub_config = subt->config;
if (subt != NULL)
{
[self writeToActivityLog: "Setting Subtitle: %s", subt];
+
+ hb_subtitle_config_t sub_config = subt->config;
if (!burned && job->mux == HB_MUX_MKV &&
subt->format == hb_subtitle_s::PICTURESUB)
}
else
{
- [fVidQualitySlider setFloatValue:([fVidQualitySlider maxValue] - [fVidQualitySlider minValue]) - [[chosenPreset objectForKey:@"VideoQualitySlider"] floatValue]];
+ /* Since theora's qp value goes up from left to right, we can just set the slider float value */
+ if ([[fVidEncoderPopUp selectedItem] tag] == HB_VCODEC_THEORA)
+ {
+ [fVidQualitySlider setFloatValue:[[chosenPreset objectForKey:@"VideoQualitySlider"] floatValue]];
+ }
+ else
+ {
+ /* since ffmpeg and x264 use an "inverted" slider (lower qp/rf values indicate a higher quality) we invert the value on the slider */
+ [fVidQualitySlider setFloatValue:([fVidQualitySlider maxValue] + [fVidQualitySlider minValue]) - [[chosenPreset objectForKey:@"VideoQualitySlider"] floatValue]];
+ }
}
[self videoMatrixChanged:nil];
[preset setObject:[NSMutableArray arrayWithArray: audioListArray] forKey:@"AudioList"];
-
+ /* Temporarily remove subtitles from creating a new preset as it has to be converted over to use the new
+ * subititle array code. */
/* Subtitles*/
- [preset setObject:[fSubPopUp titleOfSelectedItem] forKey:@"Subtitles"];
+ //[preset setObject:[fSubPopUp titleOfSelectedItem] forKey:@"Subtitles"];
/* Forced Subtitles */
- [preset setObject:[NSNumber numberWithInt:[fSubForcedCheck state]] forKey:@"SubtitlesForced"];
+ //[preset setObject:[NSNumber numberWithInt:[fSubForcedCheck state]] forKey:@"SubtitlesForced"];
}
[preset autorelease];
return preset;