diff options
-rw-r--r-- | macosx/Controller.mm | 2 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.nib/info.nib | 3 | ||||
-rw-r--r-- | macosx/English.lproj/MainMenu.nib/keyedobjects.nib | bin | 124049 -> 124054 bytes | |||
-rw-r--r-- | macosx/QueueController.h | 10 | ||||
-rw-r--r-- | macosx/QueueController.mm | 216 |
5 files changed, 204 insertions, 27 deletions
diff --git a/macosx/Controller.mm b/macosx/Controller.mm index 12035d7e6..5ad5a854e 100644 --- a/macosx/Controller.mm +++ b/macosx/Controller.mm @@ -905,7 +905,7 @@ return registrationDictionary; if ([fVidEncoderPopUp indexOfSelectedItem] > 0 ) { /* Just use new Baseline Level 3.0 - Lets Deprecate Baseline Level 1.3*/ + Lets Deprecate Baseline Level 1.3h264_level*/ job->h264_level = 30; job->mux = HB_MUX_IPOD; /* move sanity check for iPod Encoding here */ diff --git a/macosx/English.lproj/MainMenu.nib/info.nib b/macosx/English.lproj/MainMenu.nib/info.nib index 79e22dcbb..fe3ea1c92 100644 --- a/macosx/English.lproj/MainMenu.nib/info.nib +++ b/macosx/English.lproj/MainMenu.nib/info.nib @@ -19,9 +19,8 @@ </array> <key>IBOpenObjects</key> <array> + <integer>1348</integer> <integer>29</integer> - <integer>21</integer> - <integer>1162</integer> </array> <key>IBSystem Version</key> <string>8R2218</string> diff --git a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib Binary files differindex 30456fee3..02b83790f 100644 --- a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib +++ b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib diff --git a/macosx/QueueController.h b/macosx/QueueController.h index 635adc7b8..c86ffd4ec 100644 --- a/macosx/QueueController.h +++ b/macosx/QueueController.h @@ -9,6 +9,16 @@ hb_handle_t * fHandle; IBOutlet NSScrollView * fScrollView; IBOutlet NSView * fTaskView; + + /*Display variables for each job in view*/ + NSString * jobFormat; + NSString * jobPictureDetail; + NSString * jobVideoDetail; + NSString * jobVideoCodec; + NSString * jobVideoQuality; + + NSString * jobAudioDetail; + NSString * jobAudioCodec; } - (void) SetHandle: (hb_handle_t *) handle; diff --git a/macosx/QueueController.mm b/macosx/QueueController.mm index e775bb33d..7a8f7dda9 100644 --- a/macosx/QueueController.mm +++ b/macosx/QueueController.mm @@ -11,18 +11,20 @@ { NSTextField * textField; - rect->origin.x = 10; - rect->origin.y -= 17; - rect->size.height = 17; + rect->origin.x = 0; + rect->origin.y -= 15; + rect->size.width = 700; + rect->size.height = 15; textField = [[NSTextField alloc] initWithFrame: *rect]; - [textField setEditable: NO]; [textField setSelectable: NO]; [textField setDrawsBackground: NO]; - [textField setBordered: NO]; + [textField setBordered: NO]; + [textField setFont: [NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; [textField setStringValue: string]; [fTaskView addSubview: textField]; + } - (void) removeTask: (id) sender @@ -35,19 +37,20 @@ - (void) AddButton: (NSRect *) rect tag: (int) tag { NSButton * button; - - rect->origin.x = rect->size.width - 90; + + rect->origin.x = rect->size.width - 60; rect->origin.y -= 20; - rect->size.width = 100; + rect->size.width = 60; rect->size.height = 20; + button = [[NSButton alloc] initWithFrame: *rect]; rect->size.width = rect->origin.x + 90; [button setTitle: @"Remove"]; [button setBezelStyle: NSRoundedBezelStyle]; [button setFont: [NSFont systemFontOfSize: - [NSFont systemFontSizeForControlSize: NSSmallControlSize]]]; - [[button cell] setControlSize: NSSmallControlSize]; + [NSFont systemFontSizeForControlSize: NSMiniControlSize]]]; + [[button cell] setControlSize: NSMiniControlSize]; [button setTag: tag]; [button setTarget: self]; @@ -64,7 +67,7 @@ box = [[NSBox alloc] initWithFrame: *rect]; [box setBoxType: NSBoxSeparator]; rect->origin.y -= 10; - rect->size.width += 10; + rect->size.width -= 30; [fTaskView addSubview: box]; } @@ -92,24 +95,189 @@ { j = hb_job( fHandle, i ); title = j->title; - - [self AddTextField: [NSString stringWithFormat: - @"DVD: %s", title->dvd] rect: &rect]; - [self AddTextField: [NSString stringWithFormat: - @"Title: %d", title->index] rect: &rect]; - [self AddTextField: [NSString stringWithFormat: - @"Chapters: %d to %d", j->chapter_start, j->chapter_end] - rect: &rect]; - [self AddTextField: [NSString stringWithFormat: - @"Pass: %d of %d", MAX( 1, j->pass ), MIN( 2, j->pass + 1 )] - rect: &rect]; + /* show the name of the source Note: use title->name instead of + title->dvd since name is just the chosen folder, instead of dvd which is the full path*/ [self AddTextField: [NSString stringWithFormat: - @"Destination: %s", j->file] rect: &rect]; - [self AddButton: &rect tag: i]; + @"Task: %d Source: %s Title: %d Chapters: %d to %d Pass: %d of %d",i, title->name, title->index , j->chapter_start, j->chapter_end,MAX( 1, j->pass ), MIN( 2, j->pass + 1 )] rect: &rect]; + /* Muxer settings (File Format in the gui) */ + if (j->mux == 65536 || j->mux == 131072 || j->mux == 1048576) + { + jobFormat = @"MP4"; // HB_MUX_MP4,HB_MUX_PSP,HB_MUX_IPOD + } + if (j->mux == 262144) + { + jobFormat = @"AVI"; // HB_MUX_AVI + } + if (j->mux == 524288) + { + jobFormat = @"OGM"; // HB_MUX_OGM + } + /* Video Codec settings (Encoder in the gui) */ + if (j->vcodec == 1) + { + jobVideoCodec = @"FFmpeg"; // HB_VCODEC_FFMPEG + } + if (j->vcodec == 2) + { + jobVideoCodec = @"XviD"; // HB_VCODEC_XVID + } + if (j->vcodec == 4) + { + /* Deterimine for sure how we are now setting iPod uuid atom */ + if (j->h264_level) // We are encoding for iPod + { + jobVideoCodec = @"x264 (H.264 iPod)"; // HB_VCODEC_X264 + } + else + { + jobVideoCodec = @"x264 (H.264 Main)"; // HB_VCODEC_X264 + } + } + /* Audio Codecs (Second half of Codecs in the gui) */ + if (j->acodec == 256) + { + jobAudioCodec = @"AAC"; // HB_ACODEC_FAAC + } + if (j->acodec == 512) + { + jobAudioCodec = @"MP3"; // HB_ACODEC_LAME + } + if (j->acodec == 1024) + { + jobAudioCodec = @"Vorbis"; // HB_ACODEC_VORBIS + } + if (j->acodec == 2048) + { + jobAudioCodec = @"AC3"; // HB_ACODEC_AC3 + } + /* Show Basic File info */ + if (j->chapter_markers == 1) + { + [self AddTextField: [NSString stringWithFormat: @"Format: %@ Codecs: %@ Video / %@ Audio Chapter Markers", jobFormat, jobVideoCodec, jobAudioCodec] + rect: &rect]; + } + else + { + [self AddTextField: [NSString stringWithFormat: @"Format: %@ Codecs: %@ Video / %@ Audio", jobFormat, jobVideoCodec, jobAudioCodec] + rect: &rect]; + } + + /*Picture info*/ + /*integers for picture values deinterlace, crop[4], keep_ratio, grayscale, pixel_ratio, pixel_aspect_width, pixel_aspect_height, + maxWidth, maxHeight */ + if (j->pixel_ratio == 1) + { + int titlewidth = title->width - j->crop[2] - j->crop[3]; + int displayparwidth = titlewidth * j->pixel_aspect_width / j->pixel_aspect_height; + int displayparheight = title->height - j->crop[0] - j->crop[1]; + jobPictureDetail = [NSString stringWithFormat: @"Picture: %d x %d Anamorphic", displayparwidth, displayparheight]; + } + else + { + jobPictureDetail = [NSString stringWithFormat: @"Picture: %d x %d", j->width, j->height]; + } + if (j->keep_ratio == 1) + { + jobPictureDetail = [jobPictureDetail stringByAppendingString: @" Keep Aspect Ratio"]; + } + + if (j->grayscale == 1) + { + jobPictureDetail = [jobPictureDetail stringByAppendingString: @" ,Grayscale"]; + } + + if (j->deinterlace == 1) + { + jobPictureDetail = [jobPictureDetail stringByAppendingString: @" ,Deinterlace"]; + } + /* Show Picture info */ + [self AddTextField: [NSString stringWithFormat: @"%@", jobPictureDetail]rect: &rect]; + + /* Detailed Video info */ + if (j->vquality <= 0 || j->vquality >= 1) + { + jobVideoQuality =[NSString stringWithFormat: @"%d (kbps)", j->vbitrate]; + } + else + { + NSNumber * vidQuality; + vidQuality = [NSNumber numberWithInt: j->vquality * 100]; + /* this is screwed up kind of. Needs to be formatted properly */ + if (j->crf == 1) + { + jobVideoQuality =[NSString stringWithFormat: @"%@ %% (crf)", vidQuality]; + } + else + { + jobVideoQuality =[NSString stringWithFormat: @"%@ %% (cqp)", vidQuality]; + } + } + + + jobVideoDetail = [NSString stringWithFormat:@"Video: %@ %@ FPS: %d", jobVideoCodec, jobVideoQuality, j->vrate / j->vrate_base]; + + + /* Add the video detail string to the job filed in the window */ + [self AddTextField: [NSString stringWithFormat:@"%@", jobVideoDetail] rect: &rect]; + + /* if there is an x264 option string, lets add it here*/ + /*NOTE: Due to size, lets get this in a tool tip*/ + + if (j->x264opts) + { + [self AddTextField: [NSString stringWithFormat:@"x264 Options: %@", [NSString stringWithUTF8String:j->x264opts]] rect: &rect]; + } + + /* Audio Detail abitrate arate*/ + if ([jobAudioCodec isEqualToString: @"AC3"]) + { + jobAudioDetail = [NSString stringWithFormat:@"Audio: %@ Pass-Through", jobAudioCodec]; + } + else + { + jobAudioDetail = [NSString stringWithFormat:@"Audio: %@ Bitrate:%d (kbps) Sample Rate:%d (khz)", jobAudioCodec, j->abitrate, j->arate]; + } + + /* we now get the audio mixdown info for each of the two gui audio tracks */ + /* lets do it the long way here to get a handle on things. + Hardcoded for two tracks for gui: audio_mixdowns[i] audio_mixdowns[i] */ + int ai; // counter for each audios [] , macgui only allows for two audio tracks currently + for( ai = 0; ai < 2; ai++ ) + { + if (j->audio_mixdowns[ai] == HB_AMIXDOWN_MONO) + { + jobAudioDetail = [jobAudioDetail stringByAppendingString: [NSString stringWithFormat:@" ,Track %d: Mono",ai + 1]]; + } + if (j->audio_mixdowns[ai] == HB_AMIXDOWN_STEREO) + { + jobAudioDetail = [jobAudioDetail stringByAppendingString: [NSString stringWithFormat:@" ,Track %d: Stero",ai + 1]]; + } + if (j->audio_mixdowns[ai] == HB_AMIXDOWN_DOLBY) + { + jobAudioDetail = [jobAudioDetail stringByAppendingString: [NSString stringWithFormat:@" ,Track %d: Dolby Surround",ai + 1]]; + } + if (j->audio_mixdowns[ai] == HB_AMIXDOWN_DOLBYPLII) + { + jobAudioDetail = [jobAudioDetail stringByAppendingString: [NSString stringWithFormat:@" ,Track %d: DPL2",ai + 1]]; + } + if (j->audio_mixdowns[ai] == HB_AMIXDOWN_6CH) + { + jobAudioDetail = [jobAudioDetail stringByAppendingString: [NSString stringWithFormat:@" ,Track %d: 6 Channel Discreet",ai + 1]]; + } + } + //jobAudioDetail = [jobAudioDetail stringByAppendingString: [NSString stringWithFormat:@" ,MixDown: %d",j->audio_mixdowns]]; + /* Add the Audio detail string to the job filed in the window */ + [self AddTextField: [NSString stringWithFormat:@"%@", jobAudioDetail] rect: &rect]; + + /*Destination Field */ + [self AddTextField: [NSString stringWithFormat: @"Destination: %s", j->file] rect: &rect]; + /* Show remove button */ + [self AddButton: &rect tag: i]; } [fTaskView scrollPoint: NSMakePoint(0,height)]; [fTaskView setNeedsDisplay: YES]; + } - (IBAction) ClosePanel: (id) sender |