<?php function addDir($item,$mpd) { $opendirs[] = $item; $count=0; while($count != count($opendirs)){ $current = $opendirs[$count]; $count++; $files = $mpd->GetDir($current); for($i=0;$i<count($files);$i++) { if($files[$i]['type']=="directory") { $opendirs[]=$files[$i]['name']; } else { $mpd->PLAdd($files[$i]['name']); } } } } switch($task) { case("remove"): if($item != null) $mpd->PLRemove($item); break; case("clear"): $mpd->PLClear(); break; case("playitem"): if($item != null){ $mpd->SkipTo($item); } break; case("addfile"): $mpd->PLAdd($item); break; case("load"): $mpd->PLLoad($item); break; case("adddir"): addDir($item,$mpd); break; case("moveup"): if($item !=0) { $mpd->Move($item,$item-1); } break; case("movedown"): if($item !=count($mpd->playlist)-1) { $mpd->Move($item,$item+1); } break; case("removeselected"): $items=$_POST['itemlist']; for($i=0;$i<count($items);$i++){ $mpd->PLRemove($items[$i]-$i); } break; case("addselected"): $items=$_POST['itemlist']; $dir=$_REQUEST['dir']; $files = $mpd->GetDir($dir); for($i=0;$i<count($items);$i++) { if($files[$items[$i]]['type']=="directory") { addDir($files[$items[$i]]['name'],$mpd); } else { $mpd->PLAdd($files[$items[$i]]['name']); } } break; case("addall"): $dir=$_REQUEST['item']; $files = $mpd->GetDir($dir); for($i=0;$i<count($files);$i++) { if($files[$i]['type']=="directory") { addDir($files[$i]['name'],$mpd); } else { $mpd->PLAdd($files[$i]['name']); } } break; } ?>