Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
VideoLAN
VLC-iOS
Commits
83d942d9
Commit
83d942d9
authored
Aug 10, 2013
by
Felix Paul Kühne
Browse files
Implement UPNP-based listing of local servers
parent
13c0879c
Changes
11
Hide whitespace changes
Inline
Side-by-side
AspenProject/VLCLocalNetworkListCell.h
0 → 100644
View file @
83d942d9
//
// VLCLocalNetworkListCell.h
// VLC for iOS
//
// Created by Felix Paul Kühne on 10.08.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
// Refer to the COPYING file of the official project for license.
//
#import <UIKit/UIKit.h>
@interface
VLCLocalNetworkListCell
:
UITableViewCell
@property
(
nonatomic
,
strong
)
IBOutlet
UILabel
*
titleLabel
;
@property
(
nonatomic
,
strong
)
IBOutlet
UILabel
*
folderTitleLabel
;
@property
(
nonatomic
,
strong
)
IBOutlet
UILabel
*
subtitleLabel
;
@property
(
nonatomic
,
strong
)
IBOutlet
UIImageView
*
thumbnailView
;
@property
(
nonatomic
,
readwrite
)
BOOL
isDirectory
;
@property
(
nonatomic
,
retain
)
NSString
*
title
;
@property
(
nonatomic
,
retain
)
NSString
*
subtitle
;
+
(
VLCLocalNetworkListCell
*
)
cellWithReuseIdentifier
:(
NSString
*
)
ident
;
+
(
CGFloat
)
heightOfCell
;
@end
AspenProject/VLCLocalNetworkListCell.m
0 → 100644
View file @
83d942d9
//
// VLCLocalNetworkListCell.m
// VLC for iOS
//
// Created by Felix Paul Kühne on 10.08.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
// Refer to the COPYING file of the official project for license.
//
#import "VLCLocalNetworkListCell.h"
@implementation
VLCLocalNetworkListCell
+
(
VLCLocalNetworkListCell
*
)
cellWithReuseIdentifier
:(
NSString
*
)
ident
{
NSArray
*
nibContentArray
=
[[
NSBundle
mainBundle
]
loadNibNamed
:
@"VLCLocalNetworkListCell"
owner
:
nil
options
:
nil
];
NSAssert
([
nibContentArray
count
]
==
1
,
@"meh"
);
NSAssert
([[
nibContentArray
lastObject
]
isKindOfClass
:[
VLCLocalNetworkListCell
class
]],
@"meh meh"
);
VLCLocalNetworkListCell
*
cell
=
(
VLCLocalNetworkListCell
*
)[
nibContentArray
lastObject
];
return
cell
;
}
-
(
void
)
setTitle
:(
NSString
*
)
title
{
BOOL
isDir
=
self
.
isDirectory
;
if
(
isDir
)
self
.
folderTitleLabel
.
text
=
title
;
else
self
.
titleLabel
.
text
=
title
;
self
.
titleLabel
.
hidden
=
self
.
subtitleLabel
.
hidden
=
isDir
;
self
.
folderTitleLabel
.
hidden
=
!
isDir
;
}
-
(
void
)
setSubtitle
:(
NSString
*
)
subtitle
{
self
.
subtitleLabel
.
text
=
subtitle
;
}
+
(
CGFloat
)
heightOfCell
{
if
([[
UIDevice
currentDevice
]
userInterfaceIdiom
]
==
UIUserInterfaceIdiomPad
)
return
80
.;
return
48
.;
}
@end
AspenProject/VLCLocalServerListViewController.h
0 → 100644
View file @
83d942d9
//
// VLCLocalServerListViewController.h
// VLC for iOS
//
// Created by Felix Paul Kühne on 10.08.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
// Refer to the COPYING file of the official project for license.
//
#import <UIKit/UIKit.h>
@interface
VLCLocalServerListViewController
:
UIViewController
@property
(
nonatomic
,
strong
)
UITableView
*
tableView
;
@end
AspenProject/VLCLocalServerListViewController.m
0 → 100644
View file @
83d942d9
//
// VLCLocalServerListViewController.m
// VLC for iOS
//
// Created by Felix Paul Kühne on 10.08.13.
// Copyright (c) 2013 VideoLAN. All rights reserved.
//
// Refer to the COPYING file of the official project for license.
//
#import "VLCLocalServerListViewController.h"
#import "UIBarButtonItem+Theme.h"
#import "VLCAppDelegate.h"
#import "UPnPManager.h"
#import "VLCLocalNetworkListCell.h"
@interface
VLCLocalServerListViewController
()
<
UITableViewDataSource
,
UITableViewDelegate
>
{
UIBarButtonItem
*
_backButton
;
UIBarButtonItem
*
_backToMenuButton
;
UILabel
*
_titleLabel
;
NSArray
*
_devices
;
}
@end
@implementation
VLCLocalServerListViewController
-
(
void
)
loadView
{
_tableView
=
[[
UITableView
alloc
]
initWithFrame
:[
UIScreen
mainScreen
].
bounds
style
:
UITableViewStylePlain
];
_tableView
.
backgroundColor
=
[
UIColor
colorWithWhite
:.
122
alpha
:
1
.];
_tableView
.
delegate
=
self
;
_tableView
.
dataSource
=
self
;
self
.
view
=
_tableView
;
}
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
UPnPDB
*
db
=
[[
UPnPManager
GetInstance
]
DB
];
_devices
=
[
db
rootDevices
];
//BasicUPnPDevice
[
db
addObserver
:(
UPnPDBObserver
*
)
self
];
//Optional; set User Agent
[[[
UPnPManager
GetInstance
]
SSDP
]
setUserAgentProduct
:[
NSString
stringWithFormat
:
@"VLC for iOS/%@"
,
[[
NSBundle
mainBundle
]
objectForInfoDictionaryKey
:
@"CFBundleVersion"
]]
andOS
:
@"iOS"
];
//Search for UPnP Devices
[[[
UPnPManager
GetInstance
]
SSDP
]
searchSSDP
];
_backButton
=
[
UIBarButtonItem
themedBackButtonWithTarget
:
self
andSelector
:
@selector
(
goBack
:
)];
_backToMenuButton
=
[
UIBarButtonItem
themedRevealMenuButtonWithTarget
:
self
andSelector
:
@selector
(
goBack
:
)];
self
.
navigationItem
.
leftBarButtonItem
=
_backToMenuButton
;
self
.
tableView
.
separatorColor
=
[
UIColor
colorWithWhite
:.
122
alpha
:
1
.];
self
.
view
.
backgroundColor
=
[
UIColor
colorWithWhite
:.
122
alpha
:
1
.];
_titleLabel
=
[[
UILabel
alloc
]
initWithFrame
:
CGRectMake
(
0
.
0
,
11
.
0
f
,
self
.
navigationController
.
view
.
frame
.
size
.
width
,
21
.
0
f
)];
[
_titleLabel
setFont
:[
UIFont
fontWithName
:
@"Helvetica-Bold"
size
:
18
]];
[
_titleLabel
setBackgroundColor
:[
UIColor
clearColor
]];
[
_titleLabel
setTextColor
:[
UIColor
colorWithRed
:
255
.
0
green
:
255
.
0
blue
:
255
.
0
alpha
:
1
.
0
]];
[
_titleLabel
setText
:
@"Local Servers"
];
[
_titleLabel
setTextAlignment
:
UITextAlignmentCenter
];
self
.
navigationItem
.
titleView
=
_titleLabel
;
}
-
(
IBAction
)
goBack
:(
id
)
sender
{
[[(
VLCAppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
revealController
]
toggleSidebar
:
!
[(
VLCAppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
revealController
].
sidebarShowing
duration
:
kGHRevealSidebarDefaultAnimationDuration
];
}
-
(
BOOL
)
shouldAutorotateToInterfaceOrientation
:(
UIInterfaceOrientation
)
toInterfaceOrientation
{
if
(
UI_USER_INTERFACE_IDIOM
()
==
UIUserInterfaceIdiomPhone
&&
toInterfaceOrientation
==
UIInterfaceOrientationPortraitUpsideDown
)
return
NO
;
return
YES
;
}
-
(
NSInteger
)
numberOfSectionsInTableView
:(
UITableView
*
)
tableView
{
return
1
;
}
-
(
NSInteger
)
tableView
:(
UITableView
*
)
tableView
numberOfRowsInSection
:(
NSInteger
)
section
{
return
_devices
.
count
;
}
-
(
void
)
tableView
:(
UITableView
*
)
tableView
willDisplayCell
:(
UITableViewCell
*
)
cell
forRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
cell
.
backgroundColor
=
(
indexPath
.
row
%
2
==
0
)?
[
UIColor
blackColor
]:
[
UIColor
colorWithWhite
:.
122
alpha
:
1
.];
}
-
(
UITableViewCell
*
)
tableView
:(
UITableView
*
)
tableView
cellForRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
static
NSString
*
CellIdentifier
=
@"LocalNetworkCell"
;
VLCLocalNetworkListCell
*
cell
=
(
VLCLocalNetworkListCell
*
)[
tableView
dequeueReusableCellWithIdentifier
:
CellIdentifier
];
if
(
cell
==
nil
)
cell
=
[
VLCLocalNetworkListCell
cellWithReuseIdentifier
:
CellIdentifier
];
BasicUPnPDevice
*
device
=
_devices
[
indexPath
.
row
];
[
cell
setTitle
:[
device
friendlyName
]];
if
([[
device
urn
]
isEqualToString
:
@"urn:schemas-upnp-org:device:MediaServer:1"
])
[
cell
setIsDirectory
:
YES
];
return
cell
;
}
-
(
void
)
tableView
:(
UITableView
*
)
tableView
didSelectRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
/*
BasicUPnPDevice *device = _devices[indexPath.row];
if([[device urn] isEqualToString:@"urn:schemas-upnp-org:device:MediaServer:1"]){
MediaServer1Device *server = (MediaServer1Device*)device;
FolderViewController *targetViewController = [[FolderViewController alloc] initWithMediaDevice:server andHeader:@"root" andRootId:@"0"];
[[self navigationController] pushViewController:targetViewController animated:YES];
[[PlayBack GetInstance] setServer:server];
}else if([[device urn] isEqualToString:@"urn:schemas-upnp-org:device:MediaRenderer:1"]){
[self.titleLabel setText:[device friendlyName]];
MediaRenderer1Device *render = (MediaRenderer1Device*)device;
[[PlayBack GetInstance] setRenderer:render];
}*/
}
//protocol UPnPDBObserver
-
(
void
)
UPnPDBWillUpdate
:(
UPnPDB
*
)
sender
{
APLog
(
@"UPnPDBWillUpdate %d"
,
_devices
.
count
);
}
-
(
void
)
UPnPDBUpdated
:(
UPnPDB
*
)
sender
{
APLog
(
@"UPnPDBUpdated %d"
,
_devices
.
count
);
[
self
.
tableView
performSelectorOnMainThread
:
@
selector
(
reloadData
)
withObject
:
nil
waitUntilDone
:
YES
];
}
@end
AspenProject/VLCMenuViewController.h
View file @
83d942d9
...
...
@@ -19,6 +19,7 @@
@property
(
strong
,
nonatomic
)
VLCSettingsController
*
settingsController
;
@property
(
strong
,
nonatomic
)
IBOutlet
UIButton
*
allFilesButton
;
@property
(
strong
,
nonatomic
)
IBOutlet
UIButton
*
localNetworkButton
;
@property
(
strong
,
nonatomic
)
IBOutlet
UIButton
*
aboutButton
;
@property
(
strong
,
nonatomic
)
IBOutlet
UIButton
*
openNetworkStreamButton
;
@property
(
strong
,
nonatomic
)
IBOutlet
UIButton
*
downloadFromHTTPServerButton
;
...
...
@@ -29,6 +30,7 @@
@property
(
strong
,
nonatomic
)
IBOutlet
UIButton
*
dropboxButton
;
-
(
IBAction
)
showAllFiles
:(
id
)
sender
;
-
(
IBAction
)
showLocalNetwork
:(
id
)
sender
;
-
(
IBAction
)
openAboutPanel
:(
id
)
sender
;
-
(
IBAction
)
openNetworkStream
:(
id
)
sender
;
-
(
IBAction
)
downloadFromHTTPServer
:(
id
)
sender
;
...
...
AspenProject/VLCMenuViewController.m
View file @
83d942d9
...
...
@@ -24,6 +24,7 @@
#import "VLCOpenNetworkStreamViewController.h"
#import "VLCHTTPDownloadViewController.h"
#import "VLCBugreporter.h"
#import "VLCLocalServerListViewController.h"
@interface
VLCMenuViewController
()
{
VLCHTTPDownloadViewController
*
_downloadViewController
;
...
...
@@ -94,6 +95,12 @@
[
self
_presentViewController
:[(
VLCAppDelegate
*
)[
UIApplication
sharedApplication
].
delegate
playlistViewController
]];
}
-
(
IBAction
)
showLocalNetwork
:(
id
)
sender
{
UIViewController
*
localNetworkController
=
[[
VLCLocalServerListViewController
alloc
]
init
];
[
self
_presentViewController
:
localNetworkController
];
}
-
(
IBAction
)
openAboutPanel
:(
id
)
sender
{
UIViewController
*
aboutController
=
[[
VLCAboutViewController
alloc
]
initWithNibName
:
nil
bundle
:
nil
];
...
...
NEWS
View file @
83d942d9
...
...
@@ -3,7 +3,9 @@
* Improved overall stability (#8989, #9031, #9089, #9092)
* Add support for subtitles in non-western languages (#8991)
* Improved Subtitles support with options to choose font, size, and color
* Add UPNP discovery and streaming (#8880)
* Add Bonjour announcement for the WiFi Uploader's website (#8741)
* Redesigned menu and application flow (#9045)
* Add Deinterlace option (off by default, #8813)
* Device no longer goes to sleep during media downloads (#9062)
* Improved video output on external screens (#9079)
...
...
Resources/VLCLocalNetworkListCell~ipad.xib
0 → 100644
View file @
83d942d9
<?xml version="1.0" encoding="UTF-8"?>
<archive
type=
"com.apple.InterfaceBuilder3.CocoaTouch.XIB"
version=
"8.00"
>
<data>
<int
key=
"IBDocument.SystemTarget"
>
1296
</int>
<string
key=
"IBDocument.SystemVersion"
>
12F33
</string>
<string
key=
"IBDocument.InterfaceBuilderVersion"
>
3084
</string>
<string
key=
"IBDocument.AppKitVersion"
>
1187.39
</string>
<string
key=
"IBDocument.HIToolboxVersion"
>
626.00
</string>
<object
class=
"NSMutableDictionary"
key=
"IBDocument.PluginVersions"
>
<string
key=
"NS.key.0"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
<string
key=
"NS.object.0"
>
2083
</string>
</object>
<array
key=
"IBDocument.IntegratedClassDependencies"
>
<string>
IBProxyObject
</string>
<string>
IBUIImageView
</string>
<string>
IBUILabel
</string>
<string>
IBUITableViewCell
</string>
</array>
<array
key=
"IBDocument.PluginDependencies"
>
<string>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
</array>
<object
class=
"NSMutableDictionary"
key=
"IBDocument.Metadata"
>
<string
key=
"NS.key.0"
>
PluginDependencyRecalculationVersion
</string>
<integer
value=
"1"
key=
"NS.object.0"
/>
</object>
<array
class=
"NSMutableArray"
key=
"IBDocument.RootObjects"
id=
"1000"
>
<object
class=
"IBProxyObject"
id=
"372490531"
>
<string
key=
"IBProxiedObjectIdentifier"
>
IBFilesOwner
</string>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
<object
class=
"IBProxyObject"
id=
"975951072"
>
<string
key=
"IBProxiedObjectIdentifier"
>
IBFirstResponder
</string>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
<object
class=
"IBUITableViewCell"
id=
"962619467"
>
<reference
key=
"NSNextResponder"
/>
<int
key=
"NSvFlags"
>
292
</int>
<array
class=
"NSMutableArray"
key=
"NSSubviews"
>
<object
class=
"IBUIView"
id=
"162418872"
>
<reference
key=
"NSNextResponder"
ref=
"962619467"
/>
<int
key=
"NSvFlags"
>
256
</int>
<array
class=
"NSMutableArray"
key=
"NSSubviews"
>
<object
class=
"IBUIImageView"
id=
"784253519"
>
<reference
key=
"NSNextResponder"
ref=
"162418872"
/>
<int
key=
"NSvFlags"
>
292
</int>
<string
key=
"NSFrame"
>
{{5, 8}, {64, 64}}
</string>
<reference
key=
"NSSuperview"
ref=
"162418872"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"207506414"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<bool
key=
"IBUIUserInteractionEnabled"
>
NO
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
<object
class=
"IBUILabel"
id=
"207506414"
>
<reference
key=
"NSNextResponder"
ref=
"162418872"
/>
<int
key=
"NSvFlags"
>
290
</int>
<string
key=
"NSFrame"
>
{{83, 21}, {232, 21}}
</string>
<reference
key=
"NSSuperview"
ref=
"162418872"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"1019407525"
/>
<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"
>
File Title
</string>
<object
class=
"NSColor"
key=
"IBUITextColor"
id=
"176165725"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MC42NjY2NjY2NjY3AA
</bytes>
</object>
<object
class=
"NSColor"
key=
"IBUIHighlightedColor"
id=
"654385816"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MQA
</bytes>
</object>
<int
key=
"IBUILineBreakMode"
>
0
</int>
<object
class=
"IBUIFontDescription"
key=
"IBUIFontDescription"
id=
"123705061"
>
<int
key=
"type"
>
1
</int>
<double
key=
"pointSize"
>
17
</double>
</object>
<object
class=
"NSFont"
key=
"IBUIFont"
id=
"458645332"
>
<string
key=
"NSName"
>
Helvetica
</string>
<double
key=
"NSSize"
>
17
</double>
<int
key=
"NSfFlags"
>
16
</int>
</object>
<bool
key=
"IBUIAdjustsFontSizeToFit"
>
NO
</bool>
</object>
<object
class=
"IBUILabel"
id=
"1019407525"
>
<reference
key=
"NSNextResponder"
ref=
"162418872"
/>
<int
key=
"NSvFlags"
>
290
</int>
<string
key=
"NSFrame"
>
{{83, 29}, {232, 21}}
</string>
<reference
key=
"NSSuperview"
ref=
"162418872"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"625431089"
/>
<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"
>
Folder Title
</string>
<reference
key=
"IBUITextColor"
ref=
"176165725"
/>
<reference
key=
"IBUIHighlightedColor"
ref=
"654385816"
/>
<int
key=
"IBUILineBreakMode"
>
0
</int>
<reference
key=
"IBUIFontDescription"
ref=
"123705061"
/>
<reference
key=
"IBUIFont"
ref=
"458645332"
/>
<bool
key=
"IBUIAdjustsFontSizeToFit"
>
NO
</bool>
</object>
<object
class=
"IBUILabel"
id=
"625431089"
>
<reference
key=
"NSNextResponder"
ref=
"162418872"
/>
<int
key=
"NSvFlags"
>
290
</int>
<string
key=
"NSFrame"
>
{{83, 44}, {232, 15}}
</string>
<reference
key=
"NSSuperview"
ref=
"162418872"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
/>
<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"
>
Subtitle — Subtitle
</string>
<object
class=
"NSColor"
key=
"IBUITextColor"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MC4zMzMzMzMzMzMzAA
</bytes>
</object>
<reference
key=
"IBUIHighlightedColor"
ref=
"654385816"
/>
<int
key=
"IBUIBaselineAdjustment"
>
0
</int>
<int
key=
"IBUILineBreakMode"
>
0
</int>
<object
class=
"IBUIFontDescription"
key=
"IBUIFontDescription"
>
<int
key=
"type"
>
1
</int>
<double
key=
"pointSize"
>
12
</double>
</object>
<object
class=
"NSFont"
key=
"IBUIFont"
>
<string
key=
"NSName"
>
Helvetica
</string>
<double
key=
"NSSize"
>
12
</double>
<int
key=
"NSfFlags"
>
16
</int>
</object>
<bool
key=
"IBUIAdjustsFontSizeToFit"
>
NO
</bool>
</object>
</array>
<string
key=
"NSFrameSize"
>
{320, 79}
</string>
<reference
key=
"NSSuperview"
ref=
"962619467"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"784253519"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:11
</string>
<object
class=
"NSColor"
key=
"IBUIBackgroundColor"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MCAwAA
</bytes>
</object>
<bool
key=
"IBUIOpaque"
>
NO
</bool>
<bool
key=
"IBUIClipsSubviews"
>
YES
</bool>
<int
key=
"IBUIContentMode"
>
4
</int>
<bool
key=
"IBUIMultipleTouchEnabled"
>
YES
</bool>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
</object>
</array>
<string
key=
"NSFrameSize"
>
{320, 80}
</string>
<reference
key=
"NSSuperview"
/>
<reference
key=
"NSWindow"
/>
<reference
key=
"NSNextKeyView"
ref=
"162418872"
/>
<string
key=
"NSReuseIdentifierKey"
>
_NS:9
</string>
<object
class=
"NSColor"
key=
"IBUIBackgroundColor"
>
<int
key=
"NSColorSpace"
>
3
</int>
<bytes
key=
"NSWhite"
>
MAA
</bytes>
</object>
<string
key=
"targetRuntimeIdentifier"
>
IBCocoaTouchFramework
</string>
<reference
key=
"IBUIContentView"
ref=
"162418872"
/>
<string
key=
"IBUIReuseIdentifier"
>
LocalNetworkCell
</string>
<real
value=
"76"
key=
"IBUIRowHeight"
/>
</object>
</array>
<object
class=
"IBObjectContainer"
key=
"IBDocument.Objects"
>
<array
class=
"NSMutableArray"
key=
"connectionRecords"
>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
subtitleLabel
</string>
<reference
key=
"source"
ref=
"962619467"
/>
<reference
key=
"destination"
ref=
"625431089"
/>
</object>
<int
key=
"connectionID"
>
8
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
thumbnailView
</string>
<reference
key=
"source"
ref=
"962619467"
/>
<reference
key=
"destination"
ref=
"784253519"
/>
</object>
<int
key=
"connectionID"
>
9
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
titleLabel
</string>
<reference
key=
"source"
ref=
"962619467"
/>
<reference
key=
"destination"
ref=
"207506414"
/>
</object>
<int
key=
"connectionID"
>
10
</int>
</object>
<object
class=
"IBConnectionRecord"
>
<object
class=
"IBCocoaTouchOutletConnection"
key=
"connection"
>
<string
key=
"label"
>
folderTitleLabel
</string>
<reference
key=
"source"
ref=
"962619467"
/>
<reference
key=
"destination"
ref=
"1019407525"
/>
</object>
<int
key=
"connectionID"
>
24
</int>
</object>
</array>
<object
class=
"IBMutableOrderedSet"
key=
"objectRecords"
>
<array
key=
"orderedObjects"
>
<object
class=
"IBObjectRecord"
>
<int
key=
"objectID"
>
0
</int>
<array
key=
"object"
id=
"0"
/>
<reference
key=
"children"
ref=
"1000"
/>
<nil
key=
"parent"
/>
</object>
<object
class=
"IBObjectRecord"
>
<int
key=
"objectID"
>
-1
</int>
<reference
key=
"object"
ref=
"372490531"
/>
<reference
key=
"parent"
ref=
"0"
/>
<string
key=
"objectName"
>
File's Owner
</string>
</object>
<object
class=
"IBObjectRecord"
>
<int
key=
"objectID"
>
-2
</int>
<reference
key=
"object"
ref=
"975951072"
/>
<reference
key=
"parent"
ref=
"0"
/>
</object>
<object
class=
"IBObjectRecord"
>
<int
key=
"objectID"
>
3
</int>
<reference
key=
"object"
ref=
"962619467"
/>
<array
class=
"NSMutableArray"
key=
"children"
>
<reference
ref=
"784253519"
/>
<reference
ref=
"207506414"
/>
<reference
ref=
"625431089"
/>
<reference
ref=
"1019407525"
/>
</array>
<reference
key=
"parent"
ref=
"0"
/>
</object>
<object
class=
"IBObjectRecord"
>
<int
key=
"objectID"
>
4
</int>
<reference
key=
"object"
ref=
"784253519"
/>
<reference
key=
"parent"
ref=
"962619467"
/>
</object>
<object
class=
"IBObjectRecord"
>
<int
key=
"objectID"
>
6
</int>
<reference
key=
"object"
ref=
"207506414"
/>
<reference
key=
"parent"
ref=
"962619467"
/>
</object>
<object
class=
"IBObjectRecord"
>
<int
key=
"objectID"
>
7
</int>
<reference
key=
"object"
ref=
"625431089"
/>
<reference
key=
"parent"
ref=
"962619467"
/>
</object>
<object
class=
"IBObjectRecord"
>
<int
key=
"objectID"
>
23
</int>
<reference
key=
"object"
ref=
"1019407525"
/>
<reference
key=
"parent"
ref=
"962619467"
/>
</object>
</array>
</object>
<dictionary
class=
"NSMutableDictionary"
key=
"flattenedProperties"
>
<string
key=
"-1.IBPluginDependency"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
<string
key=
"-2.CustomClassName"
>
UIResponder
</string>
<string
key=
"-2.IBPluginDependency"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
<string
key=
"23.IBPluginDependency"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
<string
key=
"3.CustomClassName"
>
VLCLocalNetworkListCell
</string>
<string
key=
"3.IBPluginDependency"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
<string
key=
"4.IBPluginDependency"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
<string
key=
"6.IBPluginDependency"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
<string
key=
"7.IBPluginDependency"
>
com.apple.InterfaceBuilder.IBCocoaTouchPlugin
</string>
</dictionary>
<dictionary
class=
"NSMutableDictionary"
key=
"unlocalizedProperties"
/>
<nil
key=
"activeLocalization"
/>
<dictionary
class=
"NSMutableDictionary"
key=
"localizations"
/>
<nil
key=
"sourceID"
/>
<int
key=
"maxID"
>
24
</int>
</object>
<object
class=
"IBClassDescriber"
key=
"IBDocument.Classes"
>
<array
class=
"NSMutableArray"
key=
"referencedPartialClassDescriptions"
>
<object
class=
"IBPartialClassDescription"
>
<string
key=
"className"
>
VLCLocalNetworkListCell
</string>
<string
key=
"superclassName"
>
UITableViewCell
</string>
<dictionary
class=
"NSMutableDictionary"
key=
"outlets"
>
<string
key=
"folderTitleLabel"
>
UILabel
</string>
<string
key=
"subtitleLabel"
>
UILabel
</string>
<string
key=
"thumbnailView"
>
UIImageView
</string>
<string
key=
"titleLabel"
>
UILabel
</string>
</dictionary>
<dictionary
class=
"NSMutableDictionary"
key=
"toOneOutletInfosByName"
>
<object
class=
"IBToOneOutletInfo"
key=
"folderTitleLabel"
>
<string
key=
"name"
>
folderTitleLabel
</string>
<string
key=
"candidateClassName"
>
UILabel
</string>
</object>
<object
class=
"IBToOneOutletInfo"
key=
"subtitleLabel"
>
<string
key=
"name"
>
subtitleLabel
</string>
<string
key=
"candidateClassName"
>
UILabel
</string>
</object>
<object
class=
"IBToOneOutletInfo"
key=
"thumbnailView"
>
<string
key=
"name"
>
thumbnailView
</string>
<string
key=
"candidateClassName"
>
UIImageView
</string>
</object>
<object
class=
"IBToOneOutletInfo"
key=
"titleLabel"
>
<string
key=
"name"
>
titleLabel
</string>
<string
key=
"candidateClassName"
>
UILabel
</string>
</object>
</dictionary>
<object
class=
"IBClassDescriptionSource"
key=
"sourceIdentifier"
>
<string
key=
"majorKey"
>
IBProjectSource
</string>