Show
Ignore:
Timestamp:
02/23/10 22:36:05 (2 years ago)
Author:
gbooker
Message:

Added Zoom, and it's overlay along with some simpler methods for determining bounds.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/PlayerFramework/CommonMediaPlayer/Media Players/DVD Framework/CMPDVDPlayerController.m

    r1163 r1166  
    145145        [audioOverlay release]; 
    146146        [chapterOverlay release]; 
     147        [zoomOverlay release]; 
    147148        [playheadOverlay release]; 
    148149        [blurredMenu release]; 
     
    344345        BOOL closeAudio = (audioOverlay != nil); 
    345346        BOOL closeChapter = (chapterOverlay != nil); 
     347        BOOL closeZoom = (zoomOverlay != nil); 
    346348        BOOL closePlayhead = (playheadOverlay != nil); 
    347349         
     
    358360                        closeChapter = NO; 
    359361                        closePlayhead = NO; 
     362                        break; 
     363                case CMPDVDPlayerControllerOverlayModeZoom: 
     364                        closeZoom = NO; 
    360365                        break; 
    361366                default: 
     
    371376        if(closeChapter) 
    372377                closeAndNilOverlay(windowCreation, &chapterOverlay, fadeTime); 
     378        if(closeZoom) 
     379                closeAndNilOverlay(windowCreation, &zoomOverlay, fadeTime); 
    373380        if(closePlayhead) 
    374381                closeAndNilOverlay(windowCreation, &playheadOverlay, fadeTime); 
     
    414421} 
    415422 
     423- (NSString *)chapterString 
     424{ 
     425        return [NSString stringWithFormat:@"Chapter %d/%d", [player currentChapter], [player chapters]]; 
     426} 
     427 
    416428- (void)showChapterMode 
    417429{ 
     
    421433        if(!chapterOverlay) 
    422434                chapterOverlay = [[windowCreation addTextOverlayInPosition:CMPDVDOverlayUpperLeft] retain]; 
    423         [chapterOverlay setText:[NSString stringWithFormat:@"Chapter %d/%d", [player currentChapter], [player chapters]]]; 
     435        [chapterOverlay setText:[self chapterString]]; 
    424436        [chapterOverlay displayWithFadeTime:0.25]; 
    425437        [self showPlayheadOverlay]; 
     438         
     439        [self resetOverlayTimerTo:10]; 
     440} 
     441 
     442- (NSString *)zoomModeString 
     443{ 
     444        switch ([player zoomLevel]) { 
     445                case CMPDVDZoomLetterBoxInFullFrame: 
     446                        return @"Zoom: 4/3x"; 
     447                case CMPDVDZoom2x: 
     448                        return @"Zoom: 2x"; 
     449        } 
     450        return @"Zoom: None"; 
     451} 
     452 
     453- (void)showZoomMode 
     454{ 
     455        overlayMode = CMPDVDPlayerControllerOverlayModeZoom; 
     456        [self overlayModeChangedWithFade:0]; 
     457         
     458        if(!zoomOverlay) 
     459                zoomOverlay = [[windowCreation addTextOverlayInPosition:CMPDVDOverlayUpperRight] retain]; 
     460        [zoomOverlay setText:[self zoomModeString]]; 
     461        [zoomOverlay displayWithFadeTime:0.25]; 
    426462         
    427463        [self resetOverlayTimerTo:10]; 
     
    515551                        { 
    516552                                [player nextChapter]; 
    517                                 [chapterOverlay setText:[NSString stringWithFormat:@"Chapter %d/%d", [player currentChapter], [player chapters]]]; 
     553                                [chapterOverlay setText:[self chapterString]]; 
     554                                [self resetOverlayTimerTo:10]; 
     555                        } 
     556                        else if(overlayMode == CMPDVDPlayerControllerOverlayModeZoom) 
     557                        { 
     558                                [player setZoomLevel:([player zoomLevel] + 1) % CMPDVDZoomLevelCount]; 
     559                                [zoomOverlay setText:[self zoomModeString]]; 
    518560                                [self resetOverlayTimerTo:10]; 
    519561                        } 
     
    538580                        { 
    539581                                [player previousChapter]; 
    540                                 [chapterOverlay setText:[NSString stringWithFormat:@"Chapter %d/%d", [player currentChapter], [player chapters]]]; 
     582                                [chapterOverlay setText:[self chapterString]]; 
    541583                                [self resetOverlayTimerTo:10]; 
    542584                        } 
     585                        else if(overlayMode == CMPDVDPlayerControllerOverlayModeZoom) 
     586                                ; 
    543587                        else if(playingInSomeForm) 
    544588                                [player decrementScanRate]; 
     
    556600                                [self showSubAndAudioMode]; 
    557601                        else if(overlayMode == CMPDVDPlayerControllerOverlayModeSubAndAudio) 
     602                                [self showZoomMode]; 
     603                        else if(overlayMode == CMPDVDPlayerControllerOverlayModeZoom) 
    558604                                overlayMode = CMPDVDPlayerControllerOverlayModeStatus; 
    559605                        else if(overlayMode == CMPDVDPlayerControllerOverlayModeChapters) 
     
    572618                        else if(overlayMode == CMPDVDPlayerControllerOverlayModeSubAndAudio) 
    573619                                overlayMode = CMPDVDPlayerControllerOverlayModeStatus; 
     620                        else if(overlayMode == CMPDVDPlayerControllerOverlayModeZoom) 
     621                                [self showSubAndAudioMode]; 
    574622                        else if(overlayMode == CMPDVDPlayerControllerOverlayModeChapters) 
    575623                                overlayMode = CMPDVDPlayerControllerOverlayModeStatus;