192kbps [SAMPLERATE] => 44.1khz [TITLE] => Slash - 52 Hour Plane Ride [LENGTH] => 6:14 ) */ define("PLAYNUM",1); define("BITRATE",2); define("SAMPLERATE",4); define("TITLE",8); define("FILE",16); define("CHANNELS",32); define("LENGTH",64); define("PLAYTIME",128); define("STATE",256); define("LABEL_VALUES",512); define("QUOTE_STRINGS",1024); define("TIME_SECONDS",2048); function get_xmms_info($flags) { $valid_flag = array( "p:PLAYNUM" => PLAYNUM, "b:BITRATE" => BITRATE, "s:SAMPLERATE" => SAMPLERATE, "t:TITLE" => TITLE, "f:FILE" => FILE, "c:CHANNELS" => CHANNELS, "l:LENGTH" => LENGTH, "n:PLAYTIME" => PLAYTIME, "r:STATE" => STATE, "L:LABEL_VALUES" => LABEL_VALUES, "Q:QUOTE_STRINGS" => QUOTE_STRINGS, "S:TIME_SECONDS" => TIME_SECONDS ); foreach($valid_flag as $key => $value) { $switch = explode(":",$key); if($value & $flags) { $switchset[] = $switch[0]; } } foreach($switchset as $key) { if(($key != "L") && ($key != "Q") && ($key != "S")) { if(QUOTE_STRINGS & $flags) { $pregset .= "\"(.*)\" "; } else { $pregset .= "(.*) "; } } } $panel = implode("",$switchset); $pregset = preg_replace("/\s$/","",$pregset); $qxmms = `qxmms -$panel`; preg_match("/^".$pregset."$/",$qxmms,$match); for($a = 1; $a <= count($match); $a++) { if(($switchset[$a-1] != "L") && ($switchset[$a-1] != "Q") && ($switchset[$a-1] != "S")) { foreach($valid_flag as $key => $value) { $switch = explode(":",$key); if($switchset[$a-1] == $switch[0]) { $output[$switch[1]] = $match[$a]; } } } } return $output; } $xmms = get_xmms_info(TITLE | BITRATE | SAMPLERATE | LABEL_VALUES | LENGTH | QUOTE_STRINGS); print_r($xmms); ?>