소스 검색

Add speed pourcent time to downloadView

Signed-off-by: Felix Paul Kühne <fkuehne@videolan.org>
Pierre SAGASPE 11 년 전
부모
커밋
5c9377c580

+ 3 - 0
AspenProject/VLCDownloadViewController.h

@@ -19,6 +19,9 @@
 @property (nonatomic, strong) IBOutlet UIButton *cancelButton;
 @property (nonatomic, strong) IBOutlet UIButton *cancelButton;
 @property (nonatomic, strong) IBOutlet UILabel *currentDownloadLabel;
 @property (nonatomic, strong) IBOutlet UILabel *currentDownloadLabel;
 @property (nonatomic, strong) IBOutlet UIActivityIndicatorView *activityIndicator;
 @property (nonatomic, strong) IBOutlet UIActivityIndicatorView *activityIndicator;
+@property (weak, nonatomic) IBOutlet UILabel *progressPourcent;
+@property (weak, nonatomic) IBOutlet UILabel *speedRate;
+@property (weak, nonatomic) IBOutlet UILabel *timeDL;
 
 
 - (IBAction)downloadAction:(id)sender;
 - (IBAction)downloadAction:(id)sender;
 - (IBAction)cancelDownload:(id)sender;
 - (IBAction)cancelDownload:(id)sender;

+ 41 - 1
AspenProject/VLCDownloadViewController.m

@@ -26,6 +26,8 @@
     NSUInteger _currentDownloadType;
     NSUInteger _currentDownloadType;
     NSString *_humanReadableFilename;
     NSString *_humanReadableFilename;
     NSString *_MediaFilename;
     NSString *_MediaFilename;
+    NSTimeInterval _startDL;
+
 
 
     VLCHTTPFileDownloader *_httpDownloader;
     VLCHTTPFileDownloader *_httpDownloader;
 
 
@@ -186,9 +188,17 @@
     [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
     [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
     self.currentDownloadLabel.text = _humanReadableFilename;
     self.currentDownloadLabel.text = _humanReadableFilename;
     self.progressView.progress = 0.;
     self.progressView.progress = 0.;
+    [self.progressPourcent setText:@"0%%"];
+    [self.speedRate setText:@"0 Kb/s"];
+    [self.timeDL setText:@"00:00:00"];
     self.currentDownloadLabel.hidden = NO;
     self.currentDownloadLabel.hidden = NO;
     self.progressView.hidden = NO;
     self.progressView.hidden = NO;
     self.cancelButton.hidden = NO;
     self.cancelButton.hidden = NO;
+    [self.progressPourcent setHidden:NO];
+    [self.speedRate setHidden:NO];
+    [self.timeDL setHidden:NO];
+    _startDL = [NSDate timeIntervalSinceReferenceDate];
+
     APLog(@"download started");
     APLog(@"download started");
 }
 }
 
 
@@ -198,6 +208,9 @@
     self.currentDownloadLabel.hidden = YES;
     self.currentDownloadLabel.hidden = YES;
     self.progressView.hidden = YES;
     self.progressView.hidden = YES;
     self.cancelButton.hidden = YES;
     self.cancelButton.hidden = YES;
+    [self.progressPourcent setHidden:YES];
+    [self.speedRate setHidden:YES];
+    [self.timeDL setHidden:YES];
     _currentDownloadType = 0;
     _currentDownloadType = 0;
     APLog(@"download ended");
     APLog(@"download ended");
 
 
@@ -210,11 +223,38 @@
     [alert show];
     [alert show];
 }
 }
 
 
-- (void)progressUpdatedTo:(CGFloat)percentage
+- (void)progressUpdatedTo:(CGFloat)percentage receivedDataSize:(CGFloat)receivedDataSize  expectedDownloadSize:(CGFloat)expectedDownloadSize
 {
 {
+    [self.progressPourcent setText:[NSString stringWithFormat:@"%.1f%%", percentage*100]];
+    [self.timeDL setText:[self calculateRemainingTime:receivedDataSize expectedDownloadSize:expectedDownloadSize]];
+    [self.speedRate setText:[self calculateSpeedString:receivedDataSize]];
+
     [self.progressView setProgress:percentage animated:YES];
     [self.progressView setProgress:percentage animated:YES];
 }
 }
 
 
+- (NSString*)calculateRemainingTime:(CGFloat)receivedDataSize  expectedDownloadSize:(CGFloat)expectedDownloadSize
+{
+    CGFloat speed = receivedDataSize / ([NSDate timeIntervalSinceReferenceDate] - _startDL);
+
+    CGFloat RemainingInSeconds = (expectedDownloadSize - receivedDataSize)/speed;
+
+    NSDate *date = [NSDate dateWithTimeIntervalSince1970:RemainingInSeconds];
+    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
+    [formatter setDateFormat:@"HH:mm:ss"];
+    [formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
+
+    NSString  *remaingTime = [formatter stringFromDate:date];
+    return remaingTime;
+}
+
+- (NSString*)calculateSpeedString:(CGFloat)receivedDataSize
+{
+    CGFloat speed = receivedDataSize / ([NSDate timeIntervalSinceReferenceDate] - _startDL);
+    NSString *string = [NSByteCountFormatter stringFromByteCount:speed countStyle:NSByteCountFormatterCountStyleDecimal];
+    string = [string stringByAppendingString:@"/s"];
+    return string;
+}
+
 #pragma mark - ftp networking
 #pragma mark - ftp networking
 
 
 - (void)_downloadFTPFile:(NSURL *)URLToFile
 - (void)_downloadFTPFile:(NSURL *)URLToFile

+ 1 - 1
AspenProject/VLCHTTPFileDownloader.h

@@ -15,7 +15,7 @@
 
 
 @optional
 @optional
 - (void)downloadFailedWithErrorDescription:(NSString *)description;
 - (void)downloadFailedWithErrorDescription:(NSString *)description;
-- (void)progressUpdatedTo:(CGFloat)percentage;
+- (void)progressUpdatedTo:(CGFloat)percentage receivedDataSize:(CGFloat)receivedDataSize  expectedDownloadSize:(CGFloat)expectedDownloadSize;
 
 
 @end
 @end
 
 

+ 3 - 3
AspenProject/VLCHTTPFileDownloader.m

@@ -99,9 +99,9 @@
         [fileHandle seekToEndOfFile];
         [fileHandle seekToEndOfFile];
         [fileHandle writeData:data];
         [fileHandle writeData:data];
 
 
-        _receivedDataSize = _receivedDataSize + data.length;
-        if ([self.delegate respondsToSelector:@selector(progressUpdatedTo:)])
-            [self.delegate progressUpdatedTo: (float)_receivedDataSize / (float)_expectedDownloadSize];
+        _receivedDataSize = _receivedDataSize + [data length];
+        if ([self.delegate respondsToSelector:@selector(progressUpdatedTo:receivedDataSize:expectedDownloadSize:)])
+            [self.delegate progressUpdatedTo: (float)_receivedDataSize / (float)_expectedDownloadSize receivedDataSize:_receivedDataSize expectedDownloadSize:_expectedDownloadSize];
     }
     }
     @catch (NSException * e) {
     @catch (NSException * e) {
         APLog(@"exception when writing to file %@", _filePath);
         APLog(@"exception when writing to file %@", _filePath);

+ 3 - 1
AspenProject/VLCLocalServerListViewController.m

@@ -77,6 +77,8 @@
     _netServiceBrowser = [[NSNetServiceBrowser alloc] init];
     _netServiceBrowser = [[NSNetServiceBrowser alloc] init];
     _netServiceBrowser.delegate = self;
     _netServiceBrowser.delegate = self;
 
 
+    [self performSelectorInBackground:@selector(_startUPNPDiscovery) withObject:nil];
+
     // Active le Pull down to refresh
     // Active le Pull down to refresh
     refreshControl = [[UIRefreshControl alloc] init];
     refreshControl = [[UIRefreshControl alloc] init];
 
 
@@ -96,7 +98,7 @@
 {
 {
     [super viewWillAppear:animated];
     [super viewWillAppear:animated];
     [self _triggerNetServiceBrowser];
     [self _triggerNetServiceBrowser];
-    [self performSelectorInBackground:@selector(_startUPNPDiscovery) withObject:nil];
+    //[self performSelectorInBackground:@selector(_startUPNPDiscovery) withObject:nil];
 }
 }
 
 
 - (void)_triggerNetServiceBrowser
 - (void)_triggerNetServiceBrowser

+ 237 - 22
Resources/VLCDownloadViewController.xib

@@ -50,6 +50,7 @@
 								<int key="NSvFlags">290</int>
 								<int key="NSvFlags">290</int>
 								<string key="NSFrameSize">{320, 101}</string>
 								<string key="NSFrameSize">{320, 101}</string>
 								<reference key="NSSuperview" ref="234033301"/>
 								<reference key="NSSuperview" ref="234033301"/>
+								<reference key="NSWindow"/>
 								<reference key="NSNextKeyView" ref="205664075"/>
 								<reference key="NSNextKeyView" ref="205664075"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIUserInteractionEnabled">NO</bool>
 								<bool key="IBUIUserInteractionEnabled">NO</bool>
@@ -64,6 +65,7 @@
 								<int key="NSvFlags">290</int>
 								<int key="NSvFlags">290</int>
 								<string key="NSFrame">{{10, 15}, {195, 30}}</string>
 								<string key="NSFrame">{{10, 15}, {195, 30}}</string>
 								<reference key="NSSuperview" ref="234033301"/>
 								<reference key="NSSuperview" ref="234033301"/>
+								<reference key="NSWindow"/>
 								<reference key="NSNextKeyView" ref="325478617"/>
 								<reference key="NSNextKeyView" ref="325478617"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIOpaque">NO</bool>
 								<bool key="IBUIOpaque">NO</bool>
@@ -106,6 +108,7 @@
 								<int key="NSvFlags">289</int>
 								<int key="NSvFlags">289</int>
 								<string key="NSFrame">{{213, 11}, {97, 39}}</string>
 								<string key="NSFrame">{{213, 11}, {97, 39}}</string>
 								<reference key="NSSuperview" ref="234033301"/>
 								<reference key="NSSuperview" ref="234033301"/>
+								<reference key="NSWindow"/>
 								<reference key="NSNextKeyView" ref="1066205493"/>
 								<reference key="NSNextKeyView" ref="1066205493"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIOpaque">NO</bool>
 								<bool key="IBUIOpaque">NO</bool>
@@ -144,6 +147,7 @@
 								<int key="NSvFlags">274</int>
 								<int key="NSvFlags">274</int>
 								<string key="NSFrame">{{10, 49}, {300, 50}}</string>
 								<string key="NSFrame">{{10, 49}, {300, 50}}</string>
 								<reference key="NSSuperview" ref="234033301"/>
 								<reference key="NSSuperview" ref="234033301"/>
+								<reference key="NSWindow"/>
 								<reference key="NSNextKeyView" ref="209774297"/>
 								<reference key="NSNextKeyView" ref="209774297"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIOpaque">NO</bool>
 								<bool key="IBUIOpaque">NO</bool>
@@ -168,6 +172,7 @@
 						</array>
 						</array>
 						<string key="NSFrameSize">{320, 101}</string>
 						<string key="NSFrameSize">{320, 101}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<reference key="NSSuperview" ref="191373211"/>
+						<reference key="NSWindow"/>
 						<reference key="NSNextKeyView" ref="433654949"/>
 						<reference key="NSNextKeyView" ref="433654949"/>
 						<string key="NSReuseIdentifierKey">_NS:9</string>
 						<string key="NSReuseIdentifierKey">_NS:9</string>
 						<object class="NSColor" key="IBUIBackgroundColor" id="130677336">
 						<object class="NSColor" key="IBUIBackgroundColor" id="130677336">
@@ -187,8 +192,9 @@
 							<object class="IBUIImageView" id="1005679980">
 							<object class="IBUIImageView" id="1005679980">
 								<reference key="NSNextResponder" ref="1066205493"/>
 								<reference key="NSNextResponder" ref="1066205493"/>
 								<int key="NSvFlags">290</int>
 								<int key="NSvFlags">290</int>
-								<string key="NSFrameSize">{320, 60}</string>
+								<string key="NSFrame">{{0, -15}, {320, 105}}</string>
 								<reference key="NSSuperview" ref="1066205493"/>
 								<reference key="NSSuperview" ref="1066205493"/>
+								<reference key="NSWindow"/>
 								<reference key="NSNextKeyView" ref="761747136"/>
 								<reference key="NSNextKeyView" ref="761747136"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIUserInteractionEnabled">NO</bool>
 								<bool key="IBUIUserInteractionEnabled">NO</bool>
@@ -198,8 +204,9 @@
 							<object class="IBUILabel" id="761747136">
 							<object class="IBUILabel" id="761747136">
 								<reference key="NSNextResponder" ref="1066205493"/>
 								<reference key="NSNextResponder" ref="1066205493"/>
 								<int key="NSvFlags">-2147483358</int>
 								<int key="NSvFlags">-2147483358</int>
-								<string key="NSFrame">{{11, 9}, {280, 21}}</string>
+								<string key="NSFrame">{{11, 9}, {280, 17}}</string>
 								<reference key="NSSuperview" ref="1066205493"/>
 								<reference key="NSSuperview" ref="1066205493"/>
+								<reference key="NSWindow"/>
 								<reference key="NSNextKeyView" ref="250280512"/>
 								<reference key="NSNextKeyView" ref="250280512"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIOpaque">NO</bool>
 								<bool key="IBUIOpaque">NO</bool>
@@ -214,23 +221,17 @@
 								</object>
 								</object>
 								<nil key="IBUIHighlightedColor"/>
 								<nil key="IBUIHighlightedColor"/>
 								<int key="IBUIBaselineAdjustment">0</int>
 								<int key="IBUIBaselineAdjustment">0</int>
-								<object class="IBUIFontDescription" key="IBUIFontDescription">
-									<int key="type">1</int>
-									<double key="pointSize">17</double>
-								</object>
-								<object class="NSFont" key="IBUIFont">
-									<string key="NSName">Helvetica</string>
-									<double key="NSSize">17</double>
-									<int key="NSfFlags">16</int>
-								</object>
+								<reference key="IBUIFontDescription" ref="328285726"/>
+								<reference key="IBUIFont" ref="825639518"/>
 								<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
 								<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
 							</object>
 							</object>
 							<object class="IBUIProgressView" id="802027691">
 							<object class="IBUIProgressView" id="802027691">
 								<reference key="NSNextResponder" ref="1066205493"/>
 								<reference key="NSNextResponder" ref="1066205493"/>
 								<int key="NSvFlags">-2147483358</int>
 								<int key="NSvFlags">-2147483358</int>
-								<string key="NSFrame">{{11, 38}, {299, 9}}</string>
+								<string key="NSFrame">{{11, 63}, {299, 9}}</string>
 								<reference key="NSSuperview" ref="1066205493"/>
 								<reference key="NSSuperview" ref="1066205493"/>
-								<reference key="NSNextKeyView" ref="385572310"/>
+								<reference key="NSWindow"/>
+								<reference key="NSNextKeyView" ref="831264216"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIOpaque">NO</bool>
 								<bool key="IBUIOpaque">NO</bool>
 								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -241,7 +242,8 @@
 								<int key="NSvFlags">-2147483359</int>
 								<int key="NSvFlags">-2147483359</int>
 								<string key="NSFrame">{{283, 5}, {29, 31}}</string>
 								<string key="NSFrame">{{283, 5}, {29, 31}}</string>
 								<reference key="NSSuperview" ref="1066205493"/>
 								<reference key="NSSuperview" ref="1066205493"/>
-								<reference key="NSNextKeyView" ref="802027691"/>
+								<reference key="NSWindow"/>
+								<reference key="NSNextKeyView" ref="114365069"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIOpaque">NO</bool>
 								<bool key="IBUIOpaque">NO</bool>
 								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
@@ -263,18 +265,91 @@
 							<object class="IBUIActivityIndicatorView" id="385572310">
 							<object class="IBUIActivityIndicatorView" id="385572310">
 								<reference key="NSNextResponder" ref="1066205493"/>
 								<reference key="NSNextResponder" ref="1066205493"/>
 								<int key="NSvFlags">-2147483355</int>
 								<int key="NSvFlags">-2147483355</int>
-								<string key="NSFrame">{{142, 11}, {37, 37}}</string>
+								<string key="NSFrame">{{142, 26}, {37, 37}}</string>
 								<reference key="NSSuperview" ref="1066205493"/>
 								<reference key="NSSuperview" ref="1066205493"/>
-								<reference key="NSNextKeyView" ref="831264216"/>
+								<reference key="NSWindow"/>
+								<reference key="NSNextKeyView" ref="797274929"/>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<string key="NSReuseIdentifierKey">_NS:9</string>
 								<bool key="IBUIOpaque">NO</bool>
 								<bool key="IBUIOpaque">NO</bool>
 								<bool key="IBUIUserInteractionEnabled">NO</bool>
 								<bool key="IBUIUserInteractionEnabled">NO</bool>
 								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
 								<int key="IBUIStyle">0</int>
 								<int key="IBUIStyle">0</int>
 							</object>
 							</object>
+							<object class="IBUILabel" id="114365069">
+								<reference key="NSNextResponder" ref="1066205493"/>
+								<int key="NSvFlags">290</int>
+								<string key="NSFrame">{{11, 40}, {95, 15}}</string>
+								<reference key="NSSuperview" ref="1066205493"/>
+								<reference key="NSWindow"/>
+								<reference key="NSNextKeyView" ref="385572310"/>
+								<string key="NSReuseIdentifierKey">_NS:9</string>
+								<bool key="IBUIOpaque">NO</bool>
+								<bool key="IBUIClipsSubviews">YES</bool>
+								<int key="IBUIContentMode">7</int>
+								<bool key="IBUIUserInteractionEnabled">NO</bool>
+								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+								<string key="IBUIText">0 Kb/s</string>
+								<object class="NSColor" key="IBUITextColor" id="539451">
+									<int key="NSColorSpace">6</int>
+									<string key="NSCatalogName">System</string>
+									<string key="NSColorName">selectedInactiveColor</string>
+									<reference key="NSColor" ref="130677336"/>
+								</object>
+								<nil key="IBUIHighlightedColor"/>
+								<int key="IBUIBaselineAdjustment">0</int>
+								<int key="IBUITextAlignment">1</int>
+								<reference key="IBUIFontDescription" ref="328285726"/>
+								<reference key="IBUIFont" ref="825639518"/>
+								<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
+							</object>
+							<object class="IBUILabel" id="402231619">
+								<reference key="NSNextResponder" ref="1066205493"/>
+								<int key="NSvFlags">290</int>
+								<string key="NSFrame">{{234, 40}, {66, 15}}</string>
+								<reference key="NSSuperview" ref="1066205493"/>
+								<reference key="NSWindow"/>
+								<reference key="NSNextKeyView" ref="802027691"/>
+								<string key="NSReuseIdentifierKey">_NS:9</string>
+								<bool key="IBUIOpaque">NO</bool>
+								<bool key="IBUIClipsSubviews">YES</bool>
+								<int key="IBUIContentMode">7</int>
+								<bool key="IBUIUserInteractionEnabled">NO</bool>
+								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+								<string key="IBUIText">00:00:00</string>
+								<reference key="IBUITextColor" ref="539451"/>
+								<nil key="IBUIHighlightedColor"/>
+								<int key="IBUIBaselineAdjustment">0</int>
+								<int key="IBUITextAlignment">1</int>
+								<reference key="IBUIFontDescription" ref="328285726"/>
+								<reference key="IBUIFont" ref="825639518"/>
+								<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
+							</object>
+							<object class="IBUILabel" id="797274929">
+								<reference key="NSNextResponder" ref="1066205493"/>
+								<int key="NSvFlags">290</int>
+								<string key="NSFrame">{{132, 40}, {56, 15}}</string>
+								<reference key="NSSuperview" ref="1066205493"/>
+								<reference key="NSWindow"/>
+								<reference key="NSNextKeyView" ref="402231619"/>
+								<string key="NSReuseIdentifierKey">_NS:9</string>
+								<bool key="IBUIOpaque">NO</bool>
+								<bool key="IBUIClipsSubviews">YES</bool>
+								<int key="IBUIContentMode">7</int>
+								<bool key="IBUIUserInteractionEnabled">NO</bool>
+								<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+								<string key="IBUIText">0%</string>
+								<reference key="IBUITextColor" ref="539451"/>
+								<nil key="IBUIHighlightedColor"/>
+								<int key="IBUIBaselineAdjustment">0</int>
+								<int key="IBUITextAlignment">1</int>
+								<reference key="IBUIFontDescription" ref="328285726"/>
+								<reference key="IBUIFont" ref="825639518"/>
+								<bool key="IBUIAdjustsFontSizeToFit">NO</bool>
+							</object>
 						</array>
 						</array>
-						<string key="NSFrame">{{0, 105}, {320, 60}}</string>
+						<string key="NSFrame">{{0, 105}, {320, 90}}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<reference key="NSSuperview" ref="191373211"/>
+						<reference key="NSWindow"/>
 						<reference key="NSNextKeyView" ref="1005679980"/>
 						<reference key="NSNextKeyView" ref="1005679980"/>
 						<string key="NSReuseIdentifierKey">_NS:9</string>
 						<string key="NSReuseIdentifierKey">_NS:9</string>
 						<reference key="IBUIBackgroundColor" ref="130677336"/>
 						<reference key="IBUIBackgroundColor" ref="130677336"/>
@@ -284,8 +359,10 @@
 					<object class="IBUITableView" id="831264216">
 					<object class="IBUITableView" id="831264216">
 						<reference key="NSNextResponder" ref="191373211"/>
 						<reference key="NSNextResponder" ref="191373211"/>
 						<int key="NSvFlags">274</int>
 						<int key="NSvFlags">274</int>
-						<string key="NSFrame">{{0, 168}, {320, 215}}</string>
+						<string key="NSFrame">{{0, 203}, {320, 180}}</string>
 						<reference key="NSSuperview" ref="191373211"/>
 						<reference key="NSSuperview" ref="191373211"/>
+						<reference key="NSWindow"/>
+						<reference key="NSNextKeyView"/>
 						<string key="NSReuseIdentifierKey">_NS:9</string>
 						<string key="NSReuseIdentifierKey">_NS:9</string>
 						<object class="NSColor" key="IBUIBackgroundColor">
 						<object class="NSColor" key="IBUIBackgroundColor">
 							<int key="NSColorSpace">3</int>
 							<int key="NSColorSpace">3</int>
@@ -311,6 +388,7 @@
 				</array>
 				</array>
 				<string key="NSFrameSize">{320, 383}</string>
 				<string key="NSFrameSize">{320, 383}</string>
 				<reference key="NSSuperview"/>
 				<reference key="NSSuperview"/>
+				<reference key="NSWindow"/>
 				<reference key="NSNextKeyView" ref="234033301"/>
 				<reference key="NSNextKeyView" ref="234033301"/>
 				<object class="NSColor" key="IBUIBackgroundColor">
 				<object class="NSColor" key="IBUIBackgroundColor">
 					<int key="NSColorSpace">3</int>
 					<int key="NSColorSpace">3</int>
@@ -396,6 +474,30 @@
 				</object>
 				</object>
 				<object class="IBConnectionRecord">
 				<object class="IBConnectionRecord">
 					<object class="IBCocoaTouchOutletConnection" key="connection">
 					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">progressPourcent</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="797274929"/>
+					</object>
+					<int key="connectionID">100</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">speedRate</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="114365069"/>
+					</object>
+					<int key="connectionID">101</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
+						<string key="label">timeDL</string>
+						<reference key="source" ref="372490531"/>
+						<reference key="destination" ref="402231619"/>
+					</object>
+					<int key="connectionID">102</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBCocoaTouchOutletConnection" key="connection">
 						<string key="label">dataSource</string>
 						<string key="label">dataSource</string>
 						<reference key="source" ref="831264216"/>
 						<reference key="source" ref="831264216"/>
 						<reference key="destination" ref="372490531"/>
 						<reference key="destination" ref="372490531"/>
@@ -495,9 +597,12 @@
 						<array class="NSMutableArray" key="children">
 						<array class="NSMutableArray" key="children">
 							<reference ref="1005679980"/>
 							<reference ref="1005679980"/>
 							<reference ref="761747136"/>
 							<reference ref="761747136"/>
-							<reference ref="802027691"/>
 							<reference ref="250280512"/>
 							<reference ref="250280512"/>
+							<reference ref="402231619"/>
+							<reference ref="802027691"/>
 							<reference ref="385572310"/>
 							<reference ref="385572310"/>
+							<reference ref="114365069"/>
+							<reference ref="797274929"/>
 						</array>
 						</array>
 						<reference key="parent" ref="191373211"/>
 						<reference key="parent" ref="191373211"/>
 					</object>
 					</object>
@@ -531,10 +636,25 @@
 						<reference key="object" ref="325478617"/>
 						<reference key="object" ref="325478617"/>
 						<reference key="parent" ref="234033301"/>
 						<reference key="parent" ref="234033301"/>
 					</object>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">97</int>
+						<reference key="object" ref="114365069"/>
+						<reference key="parent" ref="1066205493"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">98</int>
+						<reference key="object" ref="402231619"/>
+						<reference key="parent" ref="1066205493"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">99</int>
+						<reference key="object" ref="797274929"/>
+						<reference key="parent" ref="1066205493"/>
+					</object>
 				</array>
 				</array>
 			</object>
 			</object>
 			<dictionary class="NSMutableDictionary" key="flattenedProperties">
 			<dictionary class="NSMutableDictionary" key="flattenedProperties">
-				<string key="-1.CustomClassName">VLCHTTPDownloadViewController</string>
+				<string key="-1.CustomClassName">VLCDownloadViewController</string>
 				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				<string key="-2.CustomClassName">UIResponder</string>
 				<string key="-2.CustomClassName">UIResponder</string>
 				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
@@ -552,14 +672,109 @@
 				<string key="86.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				<string key="86.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				<string key="91.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				<string key="91.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				<string key="95.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 				<string key="95.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+				<string key="97.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+				<string key="98.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+				<string key="99.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
 			</dictionary>
 			</dictionary>
 			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
 			<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
 			<nil key="activeLocalization"/>
 			<nil key="activeLocalization"/>
 			<dictionary class="NSMutableDictionary" key="localizations"/>
 			<dictionary class="NSMutableDictionary" key="localizations"/>
 			<nil key="sourceID"/>
 			<nil key="sourceID"/>
-			<int key="maxID">96</int>
+			<int key="maxID">102</int>
+		</object>
+		<object class="IBClassDescriber" key="IBDocument.Classes">
+			<array class="NSMutableArray" key="referencedPartialClassDescriptions">
+				<object class="IBPartialClassDescription">
+					<string key="className">VLCDownloadViewController</string>
+					<string key="superclassName">UIViewController</string>
+					<dictionary class="NSMutableDictionary" key="actions">
+						<string key="cancelDownload:">id</string>
+						<string key="downloadAction:">id</string>
+					</dictionary>
+					<dictionary class="NSMutableDictionary" key="actionInfosByName">
+						<object class="IBActionInfo" key="cancelDownload:">
+							<string key="name">cancelDownload:</string>
+							<string key="candidateClassName">id</string>
+						</object>
+						<object class="IBActionInfo" key="downloadAction:">
+							<string key="name">downloadAction:</string>
+							<string key="candidateClassName">id</string>
+						</object>
+					</dictionary>
+					<dictionary class="NSMutableDictionary" key="outlets">
+						<string key="activityIndicator">UIActivityIndicatorView</string>
+						<string key="cancelButton">UIButton</string>
+						<string key="currentDownloadLabel">UILabel</string>
+						<string key="downloadButton">UIButton</string>
+						<string key="downloadsTable">UITableView</string>
+						<string key="progressPourcent">UILabel</string>
+						<string key="progressView">UIProgressView</string>
+						<string key="speedRate">UILabel</string>
+						<string key="timeDL">UILabel</string>
+						<string key="urlField">UITextField</string>
+						<string key="whatToDownloadHelpLabel">UILabel</string>
+					</dictionary>
+					<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<object class="IBToOneOutletInfo" key="activityIndicator">
+							<string key="name">activityIndicator</string>
+							<string key="candidateClassName">UIActivityIndicatorView</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="cancelButton">
+							<string key="name">cancelButton</string>
+							<string key="candidateClassName">UIButton</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="currentDownloadLabel">
+							<string key="name">currentDownloadLabel</string>
+							<string key="candidateClassName">UILabel</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="downloadButton">
+							<string key="name">downloadButton</string>
+							<string key="candidateClassName">UIButton</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="downloadsTable">
+							<string key="name">downloadsTable</string>
+							<string key="candidateClassName">UITableView</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="progressPourcent">
+							<string key="name">progressPourcent</string>
+							<string key="candidateClassName">UILabel</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="progressView">
+							<string key="name">progressView</string>
+							<string key="candidateClassName">UIProgressView</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="speedRate">
+							<string key="name">speedRate</string>
+							<string key="candidateClassName">UILabel</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="timeDL">
+							<string key="name">timeDL</string>
+							<string key="candidateClassName">UILabel</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="urlField">
+							<string key="name">urlField</string>
+							<string key="candidateClassName">UITextField</string>
+						</object>
+						<object class="IBToOneOutletInfo" key="whatToDownloadHelpLabel">
+							<string key="name">whatToDownloadHelpLabel</string>
+							<string key="candidateClassName">UILabel</string>
+						</object>
+					</dictionary>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">./Classes/VLCDownloadViewController.h</string>
+					</object>
+				</object>
+				<object class="IBPartialClassDescription">
+					<string key="className">VLCMenuButton</string>
+					<string key="superclassName">UIButton</string>
+					<object class="IBClassDescriptionSource" key="sourceIdentifier">
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">./Classes/VLCMenuButton.h</string>
+					</object>
+				</object>
+			</array>
 		</object>
 		</object>
-		<object class="IBClassDescriber" key="IBDocument.Classes"/>
 		<int key="IBDocument.localizationMode">0</int>
 		<int key="IBDocument.localizationMode">0</int>
 		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
 		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
 		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">