VLCMovieViewController.m 2.97 KB
Newer Older
Felix Paul Kühne's avatar
Felix Paul Kühne committed
1
//
2
//  VLCMovieViewController.m
Felix Paul Kühne's avatar
Felix Paul Kühne committed
3 4 5 6 7 8
//  AspenProject
//
//  Created by Felix Paul Kühne on 27.02.13.
//  Copyright (c) 2013 VideoLAN. All rights reserved.
//

9
#import "VLCMovieViewController.h"
Felix Paul Kühne's avatar
Felix Paul Kühne committed
10

11
@interface VLCMovieViewController ()
Felix Paul Kühne's avatar
Felix Paul Kühne committed
12 13 14
@property (strong, nonatomic) UIPopoverController *masterPopoverController;
@end

15
@implementation VLCMovieViewController
16
@synthesize movieView=_movieView;
Felix Paul Kühne's avatar
Felix Paul Kühne committed
17 18 19

- (void)dealloc
{
20
    [_mediaItem release];
Felix Paul Kühne's avatar
Felix Paul Kühne committed
21 22 23 24
    [_masterPopoverController release];
    [super dealloc];
}

25
#pragma mark - Managing the media item
Felix Paul Kühne's avatar
Felix Paul Kühne committed
26

27
- (void)setMediaItem:(id)newMediaItem
Felix Paul Kühne's avatar
Felix Paul Kühne committed
28
{
29 30 31
    if (_mediaItem != newMediaItem) {
        [_mediaItem release];
        _mediaItem = [newMediaItem retain];
Felix Paul Kühne's avatar
Felix Paul Kühne committed
32 33 34 35
    }

    if (self.masterPopoverController != nil) {
        [self.masterPopoverController dismissPopoverAnimated:YES];
36
    }
Felix Paul Kühne's avatar
Felix Paul Kühne committed
37 38
}

39
- (void)viewDidLoad
Felix Paul Kühne's avatar
Felix Paul Kühne committed
40
{
41 42 43 44 45 46 47 48
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    [super viewDidLoad];
    _mediaPlayer = [[VLCMediaPlayer alloc] init];
    [_mediaPlayer setDelegate:self];
    [_mediaPlayer setDrawable:self.movieView];
}
Felix Paul Kühne's avatar
Felix Paul Kühne committed
49

50 51 52
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
53 54
    if (self.mediaItem) {
        self.title = [self.mediaItem title];
55 56 57 58 59 60 61

        [_mediaPlayer setMedia:[VLCMedia mediaWithURL:[NSURL URLWithString:self.mediaItem.url]]];
        if (self.mediaItem.lastPosition && [self.mediaItem.lastPosition floatValue] < 0.99)
            [_mediaPlayer setPosition:[self.mediaItem.lastPosition floatValue]];
        [_mediaPlayer play];

        [UIApplication sharedApplication].idleTimerDisabled = YES;
Felix Paul Kühne's avatar
Felix Paul Kühne committed
62 63 64
    }
}

65
- (void)viewWillDisappear:(BOOL)animated
Felix Paul Kühne's avatar
Felix Paul Kühne committed
66
{
67 68 69
    [_mediaPlayer pause];
    [UIApplication sharedApplication].idleTimerDisabled = NO;
    [super viewWillDisappear:animated];
Felix Paul Kühne's avatar
Felix Paul Kühne committed
70 71 72 73 74 75 76 77 78 79 80 81
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
82
        self.title = @"Video Playback";
Felix Paul Kühne's avatar
Felix Paul Kühne committed
83 84 85
    }
    return self;
}
86

Felix Paul Kühne's avatar
Felix Paul Kühne committed
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
#pragma mark - Split view

- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController
{
    barButtonItem.title = NSLocalizedString(@"Master", @"Master");
    [self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
    self.masterPopoverController = popoverController;
}

- (void)splitViewController:(UISplitViewController *)splitController willShowViewController:(UIViewController *)viewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
    // Called when the view is shown again in the split view, invalidating the button and popover controller.
    [self.navigationItem setLeftBarButtonItem:nil animated:YES];
    self.masterPopoverController = nil;
}

@end