summaryrefslogtreecommitdiff
path: root/playback/player/ios/GstPlay/LibraryViewController.m
diff options
context:
space:
mode:
Diffstat (limited to 'playback/player/ios/GstPlay/LibraryViewController.m')
-rw-r--r--playback/player/ios/GstPlay/LibraryViewController.m136
1 files changed, 136 insertions, 0 deletions
diff --git a/playback/player/ios/GstPlay/LibraryViewController.m b/playback/player/ios/GstPlay/LibraryViewController.m
new file mode 100644
index 0000000..330328f
--- /dev/null
+++ b/playback/player/ios/GstPlay/LibraryViewController.m
@@ -0,0 +1,136 @@
+#import "LibraryViewController.h"
+#import "VideoViewController.h"
+#import <AssetsLibrary/AssetsLibrary.h>
+
+@interface LibraryViewController ()
+
+@end
+
+@implementation LibraryViewController
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+ [super setTitle:@"Library"];
+ [self refreshMediaItems];
+}
+
+- (IBAction)refresh:(id)sender
+{
+ [self refreshMediaItems];
+ [self.tableView reloadData];
+}
+
+static NSString *CellIdentifier = @"CellIdentifier";
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+ return 3;
+}
+
+- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
+{
+ switch (section)
+ {
+ case 0: return @"Photo library";
+ case 1: return @"iTunes file sharing";
+ default: return @"Online files";
+ }
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+ switch (section) {
+ case 0:
+ return [self->libraryEntries count];
+ case 1:
+ return [self->mediaEntries count];
+ case 2:
+ return [self->onlineEntries count];
+ default:
+ return 0;
+ }
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ // Configure Cell
+ UILabel *title = (UILabel *)[cell.contentView viewWithTag:10];
+ UILabel *subtitle = (UILabel *)[cell.contentView viewWithTag:11];
+
+ switch (indexPath.section) {
+ case 0: subtitle.text = [self->libraryEntries objectAtIndex:indexPath.item];
+ break;
+ case 1: subtitle.text = [self->mediaEntries objectAtIndex:indexPath.item];
+ break;
+ case 2: subtitle.text = [self->onlineEntries objectAtIndex:indexPath.item];
+ break;
+ default:
+ break;
+ }
+
+ NSArray *components = [subtitle.text pathComponents];
+ title.text = components.lastObject;
+
+ return cell;
+}
+
+- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
+ return NO;
+}
+
+- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
+ return NO;
+}
+
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+ if ([segue.identifier isEqualToString:@"playVideo"]) {
+ NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
+ VideoViewController *destViewController = segue.destinationViewController;
+ UITableViewCell *cell = [[self tableView] cellForRowAtIndexPath:indexPath];
+ UILabel *label = (UILabel *)[cell.contentView viewWithTag:10];
+ destViewController.title = label.text;
+ label = (UILabel *)[cell.contentView viewWithTag:11];
+ destViewController.uri = label.text;
+ }
+}
+
+- (void)refreshMediaItems {
+ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSAllDomainsMask, YES);
+ NSString *docsPath = [paths objectAtIndex:0];
+
+ /* Entries from the Photo Library */
+ NSMutableArray *entries = [[NSMutableArray alloc] init];
+ ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
+ [library enumerateGroupsWithTypes:ALAssetsGroupAll
+ usingBlock:^(ALAssetsGroup *group, BOOL *stop)
+ {
+ if (group) {
+ [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop)
+ {
+ if(result) {
+ [entries addObject:[NSString stringWithFormat:@"%@",[result valueForProperty:ALAssetPropertyAssetURL]]];
+ *stop = NO;
+
+ }
+ }];
+ } else {
+ [self.tableView reloadData];
+ }
+ }
+ failureBlock:^(NSError *error)
+ {
+ NSLog(@"ERROR");
+ }
+ ];
+ self->libraryEntries = entries;
+
+ /* Retrieve entries from iTunes file sharing */
+ entries = [[NSMutableArray alloc] init];
+ for (NSString *e in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:docsPath error:nil])
+ {
+ [entries addObject:[NSString stringWithFormat:@"file://%@/%@", docsPath, e]];
+ }
+ self->mediaEntries = entries;
+ self->onlineEntries = [NSArray arrayWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"OnlineMedia" withExtension:@"plist"]];
+}
+
+@end