Swift Media Player
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

76 lines
1.9 KiB

//
// Created by Marco Schmickler on 29.06.15.
// Copyright (c) 2015 Marco Schmickler. All rights reserved.
//
import Foundation
class ItemModel {
var items = [MediaItem]()
var itemsMap = Dictionary<String, MediaItem>()
func addItem(_ item: MediaItem) {
if item.path == "" {
item.index = items.count
items.append(item)
return
}
let path = item.encodedDir!
var folder = itemsMap[path]
if folder == nil {
folder = MediaItem(name: item.path, path: item.path, root: item.root, type: ItemType.FOLDER)
folder!.loaded = true
folder!.local = item.local
itemsMap[path] = folder!
items.append(folder!)
}
item.index = folder!.children.count
folder!.children.append(item)
item.parent = folder
if (item.isVideo()) {
item.parent?.type = ItemType.VIDEOFOLDER
}
}
func removeAll() {
items.removeAll()
itemsMap.removeAll()
}
func sortItems(selectedItem: MediaItem, children: [MediaItem]) {
for f in children {
addItem(f)
}
selectedItem.children = items
selectedItem.loaded = false
if selectedItem.path.contains("*") {
selectedItem.loaded = true
} else
{
var all: [MediaItem]?
for f in selectedItem.children {
print(f.path)
if f.type == ItemType.FOLDER && f.path == "" {
all = f.children
break
}
}
if all != nil {
selectedItem.children = all!
selectedItem.loaded = false
for f in all! {
f.loaded = false
f.parent = selectedItem
}
}
}
}
}