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
6af60ea3
Commit
6af60ea3
authored
Sep 08, 2013
by
Felix Paul Kühne
Browse files
Fix file listing on some UPNP servers
parent
1f4524ca
Changes
1
Hide whitespace changes
Inline
Side-by-side
AspenProject/VLCLocalServerFolderListViewController.m
View file @
6af60ea3
...
...
@@ -32,6 +32,7 @@
/* generic data storage */
NSString
*
_listTitle
;
NSArray
*
_objectList
;
NSMutableArray
*
_mutableObjectList
;
NSUInteger
_serverType
;
/* UPNP specifics */
...
...
@@ -69,6 +70,7 @@
_listTitle
=
header
;
_UPNProotID
=
rootID
;
_serverType
=
kVLCUPNPFileServer
;
_mutableObjectList
=
[[
NSMutableArray
alloc
]
init
];
}
return
self
;
...
...
@@ -101,11 +103,11 @@
[[
_UPNPdevice
contentDirectory
]
BrowseWithObjectID
:
_UPNProotID
BrowseFlag
:
@"BrowseDirectChildren"
Filter
:
@"*"
StartingIndex
:
@"0"
RequestedCount
:
@"0"
SortCriteria
:
@"+dc:title"
OutResult
:
outResult
OutNumberReturned
:
outNumberReturned
OutTotalMatches
:
outTotalMatches
OutUpdateID
:
outUpdateID
];
[
_mutableObjectList
removeAllObjects
];
NSData
*
didl
=
[
outResult
dataUsingEncoding
:
NSUTF8StringEncoding
];
NSMutableArray
*
array
;
MediaServerBasicObjectParser
*
parser
=
[[
MediaServerBasicObjectParser
alloc
]
initWithMediaObjectArray
:
array
itemsOnly
:
NO
];
MediaServerBasicObjectParser
*
parser
=
[[
MediaServerBasicObjectParser
alloc
]
initWithMediaObjectArray
:
_mutableObjectList
itemsOnly
:
NO
];
[
parser
parseFromData
:
didl
];
_objectList
=
[
NSArray
arrayWithArray
:
array
];
}
else
if
(
_serverType
==
kVLCFTPServer
)
{
if
([
_ftpServerPath
isEqualToString
:
@"/"
])
_listTitle
=
_ftpServerAddress
;
...
...
@@ -136,6 +138,9 @@
-
(
NSInteger
)
tableView
:(
UITableView
*
)
tableView
numberOfRowsInSection
:(
NSInteger
)
section
{
if
(
_serverType
==
kVLCUPNPFileServer
)
return
_mutableObjectList
.
count
;
return
_objectList
.
count
;
}
...
...
@@ -148,9 +153,9 @@
cell
=
[
VLCLocalNetworkListCell
cellWithReuseIdentifier
:
CellIdentifier
];
if
(
_serverType
==
kVLCUPNPFileServer
)
{
MediaServer1BasicObject
*
item
=
_
o
bjectList
[
indexPath
.
row
];
MediaServer1BasicObject
*
item
=
_
mutableO
bjectList
[
indexPath
.
row
];
if
(
!
[
item
isContainer
])
{
MediaServer1ItemObject
*
mediaItem
=
_
o
bjectList
[
indexPath
.
row
];
MediaServer1ItemObject
*
mediaItem
=
_
mutableO
bjectList
[
indexPath
.
row
];
[
cell
setSubtitle
:
[
NSString
stringWithFormat
:
@"%0.2f MB"
,
(
float
)([
mediaItem
.
size
intValue
]
/
1e6
)]];
[
cell
setIsDirectory
:
NO
];
[
cell
setIcon
:[
UIImage
imageNamed
:
@"blank"
]];
...
...
@@ -186,13 +191,13 @@
-
(
void
)
tableView
:(
UITableView
*
)
tableView
didSelectRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
if
(
_serverType
==
kVLCUPNPFileServer
)
{
MediaServer1BasicObject
*
item
=
_
o
bjectList
[
indexPath
.
row
];
MediaServer1BasicObject
*
item
=
_
mutableO
bjectList
[
indexPath
.
row
];
if
([
item
isContainer
])
{
MediaServer1ContainerObject
*
container
=
_
o
bjectList
[
indexPath
.
row
];
MediaServer1ContainerObject
*
container
=
_
mutableO
bjectList
[
indexPath
.
row
];
VLCLocalServerFolderListViewController
*
targetViewController
=
[[
VLCLocalServerFolderListViewController
alloc
]
initWithUPNPDevice
:
_UPNPdevice
header
:[
container
title
]
andRootID
:
[
container
objectID
]];
[[
self
navigationController
]
pushViewController
:
targetViewController
animated
:
YES
];
}
else
{
MediaServer1ItemObject
*
item
=
_
o
bjectList
[
indexPath
.
row
];
MediaServer1ItemObject
*
item
=
_
mutableO
bjectList
[
indexPath
.
row
];
MediaServer1ItemRes
*
resource
=
nil
;
NSEnumerator
*
e
=
[[
item
resources
]
objectEnumerator
];
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment