浏览代码

web intf: displaying the media duration of the local files.

Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
Pierre SAGASPE 11 年之前
父节点
当前提交
707a9227a3
共有 1 个文件被更改,包括 30 次插入12 次删除
  1. 30 12
      Sources/VLCHTTPConnection.m

+ 30 - 12
Sources/VLCHTTPConnection.m

@@ -170,22 +170,25 @@
         }
 
         NSMutableArray *mediaInHtml = [[NSMutableArray alloc] initWithCapacity:allMedia.count];
+        NSString *duration;
 
         for (NSManagedObject *mo in allMedia) {
-            if ([mo isKindOfClass:[MLFile class]])
+            if ([mo isKindOfClass:[MLFile class]]) {
+                duration = [self timeFormatted:[[(MLFile *)mo duration] integerValue]];
                 [mediaInHtml addObject:[NSString stringWithFormat:
                                         @"<div style=\"background-image:url('thumbnail/%@.png')\"> \
                                         <a href=\"%@\" class=\"inner\"> \
                                         <div class=\"down icon\"></div> \
                                         <div class=\"infos\"> \
                                         <span class=\"first-line\">%@</span> \
-                                        <span class=\"second-line\">12:34:56 - 123MB</span> \
+                                        <span class=\"second-line\">%@ - 123MB</span> \
                                         </div> \
                                         </a> \
                                         </div>",
                                         mo.objectID.URIRepresentation,
                                         [[(MLFile *)mo url] stringByReplacingOccurrencesOfString:@"file://"withString:@""],
-                                        [(MLFile *)mo title]]];
+                                        [(MLFile *)mo title], duration]];
+            }
             else if ([mo isKindOfClass:[MLShow class]]) {
                 NSArray *episodes = [(MLShow *)mo sortedEpisodes];
                 [mediaInHtml addObject:[NSString stringWithFormat:
@@ -200,14 +203,15 @@
                                         <div class=\"content\">",
                                         mo.objectID.URIRepresentation,
                                         [(MLShow *)mo name]]];
-                for (MLShowEpisode *showEp in episodes)
+                for (MLShowEpisode *showEp in episodes) {
+                    duration = [self timeFormatted:[[(MLFile *)[[showEp files] anyObject] duration] integerValue]];
                     [mediaInHtml addObject:[NSString stringWithFormat:
                                             @"<div style=\"background-image:url('thumbnail/%@.png')\"> \
                                             <a href=\"%@\" class=\"inner\"> \
                                             <div class=\"down icon\"></div> \
                                             <div class=\"infos\"> \
                                             <span class=\"first-line\">S%@E%@ - %@</span> \
-                                            <span class=\"second-line\">12:34:56 - 123MB</span> \
+                                            <span class=\"second-line\">%@ - 123MB</span> \
                                             </div> \
                                             </a> \
                                             </div>",
@@ -215,7 +219,8 @@
                                             [[(MLFile *)[[showEp files] anyObject] url] stringByReplacingOccurrencesOfString:@"file://"withString:@""],
                                             showEp.seasonNumber,
                                             showEp.episodeNumber,
-                                            showEp.name]];
+                                            showEp.name, duration]];
+                }
                 [mediaInHtml addObject:@"</div></div>"];
             } else if ([mo isKindOfClass:[MLLabel class]]) {
                 NSArray *folderItems = [(MLLabel *)mo sortedFolderItems];
@@ -231,20 +236,22 @@
                                         <div class=\"content\">",
                                         mo.objectID.URIRepresentation,
                                         [(MLLabel *)mo name]]];
-                for (MLFile *file in folderItems)
+                for (MLFile *file in folderItems) {
+                    duration = [self timeFormatted:[[file duration] integerValue]];
                     [mediaInHtml addObject:[NSString stringWithFormat:
                                             @"<div style=\"background-image:url('thumbnail/%@.png')\"> \
                                             <a href=\"%@\" class=\"inner\"> \
                                             <div class=\"down icon\"></div> \
                                             <div class=\"infos\"> \
                                             <span class=\"first-line\">%@</span> \
-                                            <span class=\"second-line\">12:34:56 - 123MB</span> \
+                                            <span class=\"second-line\">%@ - 123MB</span> \
                                             </div> \
                                             </a> \
                                             </div>",
                                             file.objectID.URIRepresentation,
                                             [[file url] stringByReplacingOccurrencesOfString:@"file://"withString:@""],
-                                            file.title]];
+                                            file.title, duration]];
+                }
                 [mediaInHtml addObject:@"</div></div>"];
             } else if ([mo isKindOfClass:[MLAlbum class]]) {
                 NSArray *albumTracks = [(MLAlbum *)mo sortedTracks];
@@ -260,20 +267,22 @@
                                         <div class=\"content\">",
                                         mo.objectID.URIRepresentation,
                                         [(MLAlbum *)mo name]]];
-                for (MLAlbumTrack *track in albumTracks)
+                for (MLAlbumTrack *track in albumTracks) {
+                    duration = [self timeFormatted:[[(MLFile *)[[track files] anyObject] duration] integerValue]];
                     [mediaInHtml addObject:[NSString stringWithFormat:
                                             @"<div style=\"background-image:url('thumbnail/%@.png')\"> \
                                             <a href=\"%@\" class=\"inner\"> \
                                             <div class=\"down icon\"></div> \
                                             <div class=\"infos\"> \
                                             <span class=\"first-line\">%@</span> \
-                                            <span class=\"second-line\">12:34:56 - 123MB</span> \
+                                            <span class=\"second-line\">%@ - 123MB</span> \
                                             </div> \
                                             </a> \
                                             </div>",
                                             track.objectID.URIRepresentation,
                                             [[(MLFile *)[[track files] anyObject] url] stringByReplacingOccurrencesOfString:@"file://"withString:@""],
-                                            track.title]];
+                                            track.title, duration]];
+                }
                 [mediaInHtml addObject:@"</div></div>"];
             }
         }
@@ -400,4 +409,13 @@
     return [super shouldDie];
 }
 
+- (NSString *)timeFormatted:(int)mSeconds
+{
+    mSeconds = (int)(mSeconds / 1000);
+    int seconds = (int)(mSeconds % 60);
+    int minutes = (int)((mSeconds / 60) % 60);
+    int hours = (int)(mSeconds / 3600);
+    return [NSString stringWithFormat:@"%02d:%02d:%02d",hours, minutes, seconds];
+}
+
 @end