diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 5/LibraryViewController.h b/gst-sdk/tutorials/xcode iOS/Tutorial 5/LibraryViewController.h index db18bfaf2c..6950b19842 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 5/LibraryViewController.h +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 5/LibraryViewController.h @@ -2,6 +2,7 @@ @interface LibraryViewController : UITableViewController { + NSArray *libraryEntries; NSArray *mediaEntries; NSArray *onlineEntries; } diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 5/LibraryViewController.m b/gst-sdk/tutorials/xcode iOS/Tutorial 5/LibraryViewController.m index e0ec124205..f1aead5648 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 5/LibraryViewController.m +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 5/LibraryViewController.m @@ -1,5 +1,6 @@ #import "LibraryViewController.h" #import "VideoViewController.h" +#import @interface LibraryViewController () @@ -23,14 +24,15 @@ static NSString *CellIdentifier = @"CellIdentifier"; - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 2; + return 3; } - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { switch (section) { - case 0: return @"Local files (iTunes file sharing)"; + case 0: return @"Photo library"; + case 1: return @"iTunes file sharing"; default: return @"Online files"; } } @@ -38,8 +40,10 @@ static NSString *CellIdentifier = @"CellIdentifier"; - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { switch (section) { case 0: - return [self->mediaEntries count]; + return [self->libraryEntries count]; case 1: + return [self->mediaEntries count]; + case 2: return [self->onlineEntries count]; default: return 0; @@ -52,13 +56,15 @@ static NSString *CellIdentifier = @"CellIdentifier"; UILabel *title = (UILabel *)[cell.contentView viewWithTag:10]; UILabel *subtitle = (UILabel *)[cell.contentView viewWithTag:11]; - if(indexPath.section == 0) - { - subtitle.text = [NSString stringWithFormat:@"file://%@", - [self->mediaEntries objectAtIndex:indexPath.item], nil]; - } else if (indexPath.section == 1) - { - subtitle.text = [self->onlineEntries objectAtIndex:indexPath.item]; + 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]; @@ -91,13 +97,41 @@ static NSString *CellIdentifier = @"CellIdentifier"; 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:@"%@/%@",docsPath, e]]; + [entries addObject:[NSString stringWithFormat:@"file://%@/%@", docsPath, e]]; } self->mediaEntries = entries; + /* Hardcoded list of Online media files */ entries = [[NSMutableArray alloc] init]; // Big Buck Bunny diff --git a/gst-sdk/tutorials/xcode iOS/Tutorial 5/gst_ios_init.c b/gst-sdk/tutorials/xcode iOS/Tutorial 5/gst_ios_init.c index e60564a570..ce2dd36b29 100644 --- a/gst-sdk/tutorials/xcode iOS/Tutorial 5/gst_ios_init.c +++ b/gst-sdk/tutorials/xcode iOS/Tutorial 5/gst_ios_init.c @@ -138,6 +138,9 @@ GST_PLUGIN_STATIC_DECLARE(eglglessink); #if defined(GST_IOS_PLUGIN_APPLEMEDIA_NONPUBLIC) || defined(GST_IOS_PLUGINS_SYS) GST_PLUGIN_STATIC_DECLARE(applemedia_nonpublic); #endif +#if defined(GST_IOS_PLUGIN_APPLEMEDIA) || defined(GST_IOS_PLUGINS_SYS) +GST_PLUGIN_STATIC_DECLARE(applemedia); +#endif #if defined(GST_IOS_PLUGIN_LIBVISUAL) || defined(GST_IOS_PLUGINS_VIS) GST_PLUGIN_STATIC_DECLARE(libvisual); #endif @@ -639,6 +642,9 @@ gst_ios_init (void) #if defined(GST_IOS_PLUGIN_APPLEMEDIA_NONPUBLIC) || defined(GST_IOS_PLUGINS_SYS) GST_PLUGIN_STATIC_REGISTER(applemedia_nonpublic); #endif +#if defined(GST_IOS_PLUGIN_APPLEMEDIA) || defined(GST_IOS_PLUGINS_SYS) + GST_PLUGIN_STATIC_REGISTER(applemedia); +#endif #if defined(GST_IOS_PLUGIN_LIBVISUAL) || defined(GST_IOS_PLUGINS_VIS) GST_PLUGIN_STATIC_REGISTER(libvisual); #endif