Plugin Directory

Changeset 226506


Ignore:
Timestamp:
04/08/2010 05:03:28 PM (16 years ago)
Author:
ryanlath
Message:
 
Location:
zina/trunk
Files:
2 added
18 edited

Legend:

Unmodified
Added
Removed
  • zina/trunk/zina.php

    r145926 r226506  
    44Plugin URI: http://pancake.org/zina
    55Description: Zina is a graphical interface to your MP3 collection, a personal jukebox, an MP3 streamer.
    6 Version: 2.0b14
     6Version: 2.0b15
    77Author: Ryan Lathouwers
    88Author URI: http://www.pancake.org
  • zina/trunk/zina/batch.php

    r146465 r226506  
    118118function _zbatch_page() {
    119119  $batch =& zbatch_get();
    120 
     120  //
    121121  // Retrieve the current state of batch from db.
    122122  if (isset($_REQUEST['id']) && $data = zdbq_single("SELECT batch FROM {batch} WHERE bid = %d AND token = '%s'", $_REQUEST['id'], zina_token('get', $_REQUEST['id']))) {
  • zina/trunk/zina/common.php

    r145926 r226506  
    450450    if ($a['mtime'] == $b['mtime']) return 0;
    451451    return ($a['mtime'] > $b['mtime']) ? -1 : 1;
     452}
     453
     454function zsort_trackno($a, $b) {
     455    if ($a['info']->track == $b['info']->track) return 0;
     456    return ((int)$a['info']->track < (int)$b['info']->track) ? -1 : 1;
    452457}
    453458
     
    659664
    660665function zxml_encode($x) {
    661     return htmlspecialchars(zdecode_entities($x), ENT_QUOTES);
     666    #TODO????
     667    return htmlspecialchars(zdecode_entities($x));
     668    #return htmlspecialchars(zdecode_entities($x), ENT_QUOTES);
    662669}
    663670
  • zina/trunk/zina/extras/extras_lyr_chartlyrics.php

    r145926 r226506  
    77#$lyrics = zina_extras_lyr_chartlyrics('New Order', 'Love Vigilantes');
    88#$lyrics = zina_extras_lyr_chartlyrics('Kinks, The', 'Fancy');
     9#$lyrics = zina_extras_lyr_chartlyrics('Modern Lovers', 'Dance with Me');
    910#function zt($x, $y) {return $x.$y;}
     11#function zina_debug($x){print_r($x);}
    1012#print_r($lyrics);
     13
     14function zina_socket_get($url_in, $timeout = 2) {
     15    $url = parse_url($url_in);
     16    $socket_timeout = $timeout;
     17
     18    $as_socket = @fsockopen($url['host'], 80, $errno, $errstr, $socket_timeout);
     19
     20    if (!$as_socket) {
     21        zina_debug('chartlyrics: cannot open socket ('.$url['host'].'): '.$errstr);
     22        return false;
     23    }
     24
     25    $action = "GET ".$url['path'];
     26    if (isset($url['query'])) $action .= '?'.$url['query'];
     27
     28    fwrite($as_socket, $action." HTTP/1.1\r\n");
     29    fwrite($as_socket, "Host: ".$url['host']."\r\n");
     30    fwrite($as_socket, "Connection: Close\r\n\r\n");
     31
     32    stream_set_blocking($as_socket, FALSE);
     33    stream_set_timeout($as_socket,$timeout);
     34    $info = stream_get_meta_data($as_socket);
     35
     36    $buffer = '';
     37    while ((!feof($as_socket)) && (!$info['timed_out'])) {
     38        $buffer .= fread($as_socket, 4096);
     39        $info = stream_get_meta_data($as_socket);
     40    }
     41    fclose($as_socket);
     42
     43    if ($info['timed_out']) {
     44        zina_debug('chartlyrics: connection timed out ('.$url['host'].'): '.$errstr);
     45        return false;
     46    }
     47    return $buffer;
     48}
    1149
    1250function zina_extras_lyr_chartlyrics($artist, $song) {
     
    1553        $artist = trim(implode(' ', array_reverse($arr)));
    1654    }
    17     $url = 'http://api.chartlyrics.com/apiv1.asmx/SearchLyric?artist='.rawurlencode($artist).'&song='.urlencode($song);
    18     if ($xml = @simplexml_load_file($url)) {
     55    $buffer = zina_socket_get('http://api.chartlyrics.com/apiv1.asmx/SearchLyric?artist='.rawurlencode($artist).'&song='.urlencode($song));
     56    if (!$buffer) return false;
     57
     58    $response = preg_split("/\r\n\r\n/", $buffer, 2);
     59
     60    $code = substr($response[0],0, 15);
     61    if ($code != 'HTTP/1.1 200 OK' || !isset($response[1])) {
     62        zina_debug('chartlyric: invalid response ('.$code.')');
     63        return false;
     64    }
     65
     66    if ($xml = simplexml_load_string($response[1])) {
    1967        if (isset($xml->SearchLyricResult->LyricId)) {
    20             if ($xml2 = @simplexml_load_file('http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId='.$xml->SearchLyricResult->LyricId.'&lyricCheckSum='.$xml->SearchLyricResult->LyricChecksum)) {
    21                 if (isset($xml2->Lyric)) {
    22                     $source = '<a href="http://www.chartlyrics.com.org" class="zina_lyr_source">chartlyrics.com</a>';
    23                     $result['output'] = strip_tags((string)$xml2->Lyric,'<br>');
    24                     $result['source'] = zt('Lyrics provided by !url', array('!url'=>$source));
    25                     return $result;
     68            foreach($xml->SearchLyricResult as $res) {
     69                if (stristr($res->Artist, $artist) && stristr($res->Song, $song)) {
     70                    $buff2 = zina_socket_get('http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId='.$res->LyricId.'&lyricCheckSum='.$res->LyricChecksum);
     71                    $resp2 = preg_split("/\r\n\r\n/", $buff2, 2);
     72
     73                    # todo: weak
     74                    if (substr($resp2[0],0, 15) != 'HTTP/1.1 200 OK' || !isset($resp2[1])) {
     75                        zina_debug('chartlyrics: invalid response (2nd connect)');
     76                        return false;
     77                    }
     78
     79                    if (preg_match('/<Lyric>(.*?)<\/Lyric>/si', $resp2[1], $matches)) {
     80                        $source = '<a href="http://www.chartlyrics.com.org" class="zina_lyr_source">chartlyrics.com</a>';
     81                        $result['output'] = strip_tags(trim($matches[1]),'<br>');
     82                        $result['source'] = zt('Lyrics provided by !url', array('!url'=>$source));
     83                        return $result;
     84                    }
    2685                }
    2786            }
    2887        }
    2988    }
     89
    3090    return false;
    3191}
  • zina/trunk/zina/extras/extras_lyr_leoslyrics.php

    r145926 r226506  
    77#$lyrics = zina_extras_lyr_leoslyrics('New Order', 'Love Vigilantes');
    88#print_r($lyrics);
     9#function zina_debug($x){print_r($x);}
    910
    1011function zina_extras_lyr_leoslyrics($artist, $song) {
    11 //  //
     12    /*
     13    $url = parse_url('http://api.leoslyrics.com/api_search.php?auth=duane&artist='.rawurlencode($artist).'&songtitle='.rawurlencode($song));
     14    print_r($url);
    1215
    13     if ($xml = simplexml_load_file('http://api.leoslyrics.com/api_search.php?auth=duane&artist='.rawurlencode($artist).'&songtitle='.rawurlencode($song))) {
     16    $socket_timeout = 2;
     17    $as_socket = @fsockopen($url['host'], 80, $errno, $errstr, $socket_timeout);
     18
     19    if (!$as_socket) {
     20        echo "NO SOCKET!!!<br/>\n";
     21        zina_debug('cannot open socket ('.$url['host'].'): '.$errstr);
     22        return false;
     23    }
     24
     25    $action = "GET ".$url['path'];
     26    if (isset($url['query'])) $action .= '?'.$url['query'];
     27   
     28    fwrite($as_socket, $action." HTTP/1.1\r\n");
     29    fwrite($as_socket, "Host: ".$url['host']."\r\n");
     30     */
     31    #fwrite($as_socket, "Accept: */*\r\n\r\n");
     32/*
     33    $buffer = '';
     34    while(!feof($as_socket)) {
     35        $buffer .= fread($as_socket, 4096);
     36    }
     37    fclose($as_socket);
     38
     39    return false;
     40     */
     41    if (($xml = @simplexml_load_file('http://api.leoslyrics.com/api_search.php?auth=duane&artist='.rawurlencode($artist).'&songtitle='.rawurlencode($song))) !== FALSE) {
    1442        if (isset($xml->response) && $xml->response == 'SUCCESS') {
    1543            $attr = $xml->searchResults->result->attributes();
    1644            if ($attr['exactMatch'] == 'true') {
    17                 if ($xml2 = simplexml_load_file('http://api.leoslyrics.com/api_lyrics.php?auth=duane&hid='.$attr['hid'])) {
     45                if ($xml2 = @simplexml_load_file('http://api.leoslyrics.com/api_lyrics.php?auth=duane&hid='.$attr['hid'])) {
    1846                    if (isset($xml2->response) && $xml2->response == 'SUCCESS') {
    1947                        $source = '<a href="http://leoslyrics.com" class="zina_lyr_source">leoslyrics.com</a>';
  • zina/trunk/zina/extras/extras_lyr_lyricwiki.php

    r145926 r226506  
    11<?php
    22/*
    3  * lyricwiki.org
     3 * lyrics.wikia.com
    44 */
    55#$lyrics = zina_extras_lyr_lyricwiki('New Order', 'Love Vigilantes');
    66#$lyrics = zina_extras_lyr_lyricwiki('Kinks, The', 'Fancy');
     7#$lyrics = zina_extras_lyr_lyricwiki('Modern Lovers', 'Dance with Me');
     8
    79#function zxml_encode($x) { return utf8_encode($x); }
    810#function zt($x, $y) {return $x.$y;}
     
    1012
    1113function zina_extras_lyr_lyricwiki($artist, $song) {
    12     $url = parse_url('http://lyricwiki.org/server.php');
     14    $url = parse_url('http://lyrics.wikia.com/server.php');
    1315   
    1416    $soap = '<?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:LyricWiki" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><mns:getSongResult xmlns:mns="urn:LyricWiki" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><artist xsi:type="xsd:string">'.
     
    3840        if (preg_match('/<url.*?>(.*?)<\/url/is', $buffer, $matches)) {
    3941            if ($page = file_get_contents($matches[1])) {
    40                 if (preg_match('/<div class=[\'"]lyricbox.*?>(.*?)<p><!--/is', $page, $lyrics)) {
     42                if (preg_match('/<div class=[\'"]lyricbox.*?>(.*?)<!--/is', $page, $lyrics)) {
    4143                    $source = '<a href="http://lyricwiki.org" class="zina_lyr_source">lyricwiki.org</a>';
    42                     print_r($lyrics[1]);
    43                     $result['output'] = str_replace(array('<br />','<br>', '<br/>'), "\n", strip_tags($lyrics[1],'<br>'));
     44                    $lyric = preg_replace('/^.*?<\/div>/i','', $lyrics[1]);
     45                    $lyric = html_entity_decode(strip_tags($lyric,'<br>'));
     46                    $result['output'] = str_replace(array('<br />','<br>', '<br/>'), "\n", $lyric);
    4447                    $result['source'] = zt('Lyrics provided by !url', array('!url'=>$source));
    4548                    return $result;
     
    4851        }
    4952    }
    50     /*
    51     if (preg_match('/<lyrics.*?>(.*?)<\/lyrics/is', $buffer, $matches) && $matches[1] != 'Not found') {
    52         $result['output'] = nl2br($matches[1]);
    53         $source = '<a href="http://lyricwiki.org" class="zina_lyr_source">lyricwiki.org</a>';
    54         $result['source'] = zt('Lyrics provided by !url', array('!url'=>$source));
    55         return $result;
    56     }
    57      */
    5853    return false;
    5954}
  • zina/trunk/zina/extras/scrobbler.class.php

    r104241 r226506  
    237237
    238238        fwrite($as_socket, $query_str."\r\n\r\n");
    239        
     239        #TODO: test
     240        stream_set_timeout($as_socket, $this->submit_socket_timeout);
     241        $info = stream_get_meta_data($as_socket);
     242
    240243        $buffer = '';
    241         while(!feof($as_socket)) {
    242             $buffer .= fread($as_socket, 8192);
     244        while(!feof($as_socket) && !$info['timed_out']) {
     245            $buffer .= fread($as_socket, 4096);
     246            $info = stream_get_meta_data($as_socket);
    243247        }
    244248        fclose($as_socket);
  • zina/trunk/zina/index.php

    r145926 r226506  
    1212 * License: GNU GPL2 <http://www.gnu.org/copyleft/gpl.html>
    1313 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
    14 define('ZINA_VERSION', '2.0b14');
     14define('ZINA_VERSION', '2.0b15');
    1515
    1616#TODO:
     
    5656        $badpath = true;
    5757    }
     58
    5859    if (!$badpath && strstr($imgsrc,'..')) {
    5960        $badpath = true;
     
    109110        }
    110111        if ($file_not_found) {
    111         #XXX:QQQ   
    112112            $tmp_path = utf8_decode($path);
    113113            $tmp_cur_dir = $zc['mp3_dir']. (!empty($tmp_path) ? '/'.$tmp_path : '');
     
    282282                    }
    283283                } elseif ($m == 3) {
    284                     #TODO:XXX combine 3 & 4... combine 1,3&4?
     284                    #TODO: combine 3 & 4... combine 1,3&4?
    285285                    if ($zc['database']) {
    286286                        $runtime = time();
    287                         #XXX
    288287                        #TODO: make sure dirs & file assoc are up to date???
    289288                        $operations = array();
     
    572571        return zina_not_found();
    573572
    574     } elseif (in_array($level, array(3,5,6,7,8,10,11,12,16,17,25,53,54,56,57))) {
     573    } elseif (in_array($level, array(3,5,6,7,8,10,11,12,16,17,25,53,54,56,57,66))) {
    575574        # STREAM FUNCTIONS
    576575
     
    811810            Case 57 : # 3rd party lyrics
    812811                if ($zc['song_extras'] && in_array($m, $zc['song_es_exts'])) {
     812                    @session_write_close();
    813813                    if ($zc['zinamp'] && $playlist == 'zinamp') {
    814814                        $content = zina_content_blurb($zina, $path, array('type'=>$m, 'return'=>true, 'item'=>null));
     
    825825                       
    826826                        $opts = explode(',', $zc['third_lyr_order']);
    827                        
    828827                        $output = '';
    829828
    830829                        if (!empty($info['artist']) && !empty($info['title'])) {
    831 
    832830                            foreach($opts as $source) {
    833831                                if (!in_array($source, $lyr_opts)) continue;
     
    843841                                    if (isset($result['source'])) $output .= ztheme('extras_source', $result['source']);
    844842                                    break;
    845                                 } else {
    846                                     #if ($zc['debug'])
    847843                                }
    848844                            }
     
    854850                }
    855851                break;
     852               
     853            Case 66 :
     854                if ($zc['zinamp'] && $zc['lastfm']) {
     855                    zina_zinamp_start($path);
     856                }
     857                break;
     858
    856859        }
    857860        exit;
     
    875878                        if (zina_check_password($_POST['un'], $_POST['up'])) {
    876879                            $_SESSION['za-'.ZINA_VERSION] = true;
    877                             if ($zc['session']) {
     880                            if ($zc['session']) { // standalone only
    878881                                $sess_id = zina_token_sess('1');
    879882                                setcookie('ZINA_SESSION', $sess_id, time() + (60*60*$zc['session_lifetime']), '/');
     
    10411044
    10421045                if (is_file($zc['cur_dir']) && $zc['rss'] && basename($path) == $zc['rss_file']) {
    1043                     #XXX QQQ
    1044                     #zina_set_header('Content-Type: application/xml');
    1045                     #zina_send_file($zc['cur_dir']);
    1046                    
    10471046                    $output = file_get_contents($zc['cur_dir']);
    10481047                    $output = utf8_decode($output);
     
    17181717        } elseif ($zc['files_sort'] == 3) {
    17191718            usort($dir['files'],'zsort_date_desc');
     1719        } elseif ($zc['files_sort'] == 4) {
     1720            usort($dir['files'],'zsort_trackno');
    17201721        }
    17211722
     
    19811982            if (isset($_SESSION['z_sp'])) {
    19821983                $sp_perc = round(strlen($_SESSION['z_sp']) / $zc['sp_len'] * 100, 1);
    1983                 $songs = unserialize(utf8_decode($_SESSION['z_sp']));
     1984                $songs = unserialize_utf8($_SESSION['z_sp']);
    19841985            } else {
    19851986                $sp_perc = 0;
     
    19911992            $songs = zunserialize_alt(file_get_contents($filename));
    19921993        }
     1994        #XXX:QQQ -> Make this like search, or with ID3 tags opt at least??? XXX:QQQ
     1995        #USE:? function zina_content_search_list(&$results, $checkbox, $opts = array(), $extras = array()) {
    19931996
    19941997        if (sizeof($songs) > 0) {
     
    21812184                if (!file_exists($text_file)) {
    21822185                    $text = zina_content_rss($path);
    2183                     #XXX QQQ
    21842186                    $text = utf8_decode($text);
    21852187                }
     
    23512353
    23522354        if ($zc['database']) {
    2353             #XXXzina_set_message('trying to update...');
    23542355            $result = zdb_update_other($songs, 'rss', $path);
    2355         } else {
    2356             #XXXzina_set_message('trying to update...but no db???');
    2357         }
    2358         #XXX
     2356        }
    23592357        $songs = utf8_encode($songs);
    23602358    } elseif ($m == 6) {
     
    25012499            if (isset($result['thumbnail_url'])) $output .= ' | <a href="'.$result['image_url'].'">'.zt('View Original').'</a>';
    25022500            $output .= ' | <a href="'.$save_url.'" onclick="zinaSaveImage(\''.$save_url.'\',\''.$class.'\'); return false;">'.zt('Save this image').'</a></div>';
    2503             #$output .= ' | <a href="javascript:void 0;" onclick="zinaSaveImage(\''.$save_url.'\',\''.$class.'\'); return false;">'.zt('Save this image').'</a></div>';
    2504             #XXX:QQQ
    2505             #$output .= ' | <a href="javascript:zinaSaveImage(\''.$save_url.'\',\''.$class.'\');">'.zt('Save this image').'</a></div>';
    25062501            echo $output;
    25072502        } else {
     
    25442539        $other = unserialize(zdbq_single("SELECT other FROM {dirs} WHERE path = '%s'", $path));
    25452540        if (isset($other['rss']) && !empty($other['rss'])) {
    2546             #XXX QQQ
    25472541            return $other['rss'];
    25482542        }
     
    25562550    $zina = array();
    25572551    zina_content_breadcrumb($zina, $path, null);
    2558     #XXX:QQQ
    25592552    $rss['title'] = $zina['title'];
    25602553    $rss['lang_code'] = $zc['lang'];
     
    26272620    } else {
    26282621        $dir_write = true;
    2629         #XXX
    26302622        $js2 = 'function zinaDeleteImage(url, imgclass){'.
    26312623            'if (confirm("'.zt('Delete this image?').'")){'.
     
    34033395            if (isset($files[$path])) {
    34043396                $db_filepath = zcheck_utf8($path);
     3397                $db_filepath = utf8_encode($path);;
     3398               
    34053399                if (isset($db_files[$db_filepath])) {
    34063400                    $file = array_merge($file, $db_files[$db_filepath]);
     
    34243418                            $file['mtime'] = $mtime;
    34253419                        }
    3426                         /*
    3427                         if (!isset($file['mtime']) || $file['mtime'] != $mtime) {
    3428                             # stale db info, get from id3/file
    3429                             unset($file['info']);
    3430                             unset($file['genre']);
    3431                             unset($file['id3_info']);
    3432                             $extras = null;
    3433                             $file['mtime'] = $mtime;
    3434                             $dir['regen'] = true;
    3435                         }
    3436                          */
    34373420                    }
    34383421                    $file['new'] = ($zc['new_highlight'] && $now - $file['mtime'] < $diff);
     
    38173800
    38183801    if ($zc['zinamp'] && $zc['lastfm']) {
    3819         $now = time();
    3820         $_SESSION['zinamp_track'][$path] = $now;
    3821         if (sizeof($_SESSION['zinamp_track']) > 2) {
    3822             foreach($_SESSION['zinamp_track'] as $track => $time) {
    3823                 if ($now > $time + (60*60*1)) {
    3824                     unset($_SESSION['zinamp_track'][$track]);
    3825                 }
    3826             }
    3827         }
     3802        zina_zinamp_start($path);
     3803
    38283804        $output .= xml_field('complete_url', zurl($path,'l=56',null,true).'&n=');
     3805        $output .= xml_field('start_url', zurl($path,'l=66',null,true));
    38293806    }
    38303807    $result['path'] = $path;
     
    38423819
    38433820    $output .= "<info>\n<![CDATA[".ztheme('zinamp_song_info',$result)."]]>\n</info>";
     3821
    38443822    return $output.'</track>';
     3823}
     3824
     3825function zina_zinamp_start($path) {
     3826    $now = time();
     3827
     3828    $_SESSION['zinamp_track'][$path] = $now;
     3829    if (sizeof($_SESSION['zinamp_track']) > 2) {
     3830        foreach($_SESSION['zinamp_track'] as $track => $time) {
     3831            if ($now > $time + (60*60*1)) {
     3832                unset($_SESSION['zinamp_track'][$track]);
     3833            }
     3834        }
     3835    }
    38453836}
    38463837
     
    39263917            $meta .= xml_field('link', zurl($file,'l=54',NULL,TRUE));
    39273918            $meta .= xml_field('meta', 'audio');
    3928             #XXX
    3929             /*
    3930             if ($zc['zinamp']) { #XXX && $count < $zc['stream_extinf_limit'] + 1)
    3931                 $img_path = dirname($file);
    3932                 $img = zina_get_dir_item($zc['mp3_dir'].'/'.$img_path,'/\.('.$zc['ext_graphic'].')$/i');
    3933                 #todo: make 'sub' configable?
    3934                 $img_url = zina_get_image_url($img_path, $img, 'sub', true);
    3935                 $meta .= xml_field('image', $img_url);
    3936                 $meta .= xml_field('image_url', zurl($img_path, null, null, true));
    3937             }
    3938              */
    39393919            return '<track><location>'.$url.'</location>'.$meta.'</track>'."\n";
    39403920        }
     
    43424322        if ($zc['pos_kill']) exec($zc['pos_kill_cmd']);
    43434323        $pos_cmd = str_replace('%TEMPFILENAME%', $tmpfname, $zc['pos_cmd']);
    4344         if ($zc['pos_hack']) session_write_close();
     4324        @session_write_close();
    43454325        exec($pos_cmd);
    43464326        #sleep(2);
     
    44474427    if($zc['session_pls'] && $playlist == 'zina_session_playlist') {
    44484428        if (isset($_SESSION['z_sp'])) {
    4449             $songs = zunserialize_alt($_SESSION['z_sp']);
     4429            $songs = unserialize_utf8($_SESSION['z_sp']);
    44504430        }
    44514431    } else {
     
    46064586
    46074587        if ($count < $least) {
    4608             $limit -= $count;
     4588            $limit = $least - $count;
    46094589            $floor++;
    46104590        }
     
    47004680    zina_set_header('Content-Disposition: inline; filename="'.$filename.'"');
    47014681
     4682    @session_write_close();
    47024683    if ($passthru) {
    47034684        if (!$cache) {
     
    47844765        if ($resample) {
    47854766            @set_time_limit(0);
     4767            @session_write_close();
    47864768            $opts = str_replace('%FILE%', '"'.$file.'"', $zc['encoders'][$ext]['opts']);
    47874769            $begin = time();
     
    48374819                    unset($_SESSION['zinamp_track'][$path]);
    48384820                }
     4821            } else {
     4822                zina_debug(zt('scrobbler session not set: @path', array('@path'=>$path)), 'error');
    48394823            }
    48404824        }
     
    48554839function zina_send_file($file) {
    48564840    @set_time_limit(0);
     4841    @session_write_close();
    48574842    $fp = @fopen($file, 'rb');
    48584843    if ($fp !== false) {
     
    48674852            echo fread($fp, 8192);
    48684853            flush();
    4869             #XXX
    4870             #usleep(20000);
     4854            #usleep(20000); # XXX
    48714855            if (connection_status() != 0) break;
    48724856        }
     
    49594943        } else { # new/additions
    49604944            if ($type == 'a' && isset($_SESSION['z_sp'])) {
    4961                 $existing = utf8_decode($_SESSION['z_sp']);
     4945                $existing = unserialize_utf8($_SESSION['z_sp']);
    49624946                $content = serialize(array_merge($existing, $files));
    49634947            }
     
    58835867        2 => zt('By Date'),
    58845868        3 => zt('By Date Descending'),
     5869        4 => zt('ID3 Track Number'),
    58855870    );
    58865871}
     
    58905875    #TODO: get from directory... extras/extras_'.$m.'_*
    58915876    #$opts = array('lyricwiki', 'lyricsfly');
    5892     return array('leoslyrics', 'lyricwiki', 'chartlyrics');
     5877    return array('lyricwiki', 'chartlyrics', 'lyricsmania');
    58935878}
    58945879
     
    62576242            'pos' => array(
    62586243                'pos' => array('type'=>'radio', 'opts'=>'zina_get_opt_tf', 'def'=>0, 'v'=>array('tf')),
    6259                 'pos_hack' => array('type'=>'radio', 'opts'=>'zina_get_opt_tf', 'def'=>0, 'v'=>array('tf')),
    62606244                'pos_cmd' => array('type'=>'textfield', 'def'=>'bgrun.exe C:\Progra~1\Winamp\winamp.exe %TEMPFILENAME%.m3u >NUL',
    62616245                    'v'=>array('if'=>array('pos'=>'req'))),
  • zina/trunk/zina/lang/de.php

    r67912 r226506  
    11<?php
    2 # German translation by: Philipp Bock
    3 # original code page: "iso-8859-1";
    4 $language = 'German';
     2/*
     3 *
     4 *
     5 * These are most of the translation strings currently in Zina.
     6 * Save this file to LANGCODE.php and modify it.
     7 * Format: 'english words' => 'your translation'
     8 *
     9 * You do not have to do them all (just delete the lines you do not do).
     10 * If you are making a new translation or completing an older one, move the file to the "lang" directory.
     11 * If languages.txt file exists in your cache directory, delete it.
     12 * Or a copy in your theme folder will override the default language file.
     13 * English users can change wording/phrasings this way.
     14 *
     15 * Test it out.
     16 *
     17 * If you would like it to be included in Zina, please email it: to: <[email protected]>
     18 */
     19
     20$language = "German";
    521
    622$lang['de'] = array(
    7     'Artists' => 'Interpret',
    8     'Albums' => 'Alben',
    9     'Songs' => 'Titel',
    10     'Song' => 'Titel',
    11     'See Also' => '&Auml;hnliche Alben',
    12     'Add To' => 'Hinzuf&uuml;gen',
    13     'Delete' => 'L&ouml;schen',
    14     'Download' => 'Herunterladen',
    15     'Home' => 'Zina-Startseite',
    16     'More' => 'Weitere',
    17     'Play' => 'Anh&ouml;ren',
    18     'Play Low Fidelity' => 'Abspielen in geringerer Qualit&auml;t',
    19     'Playlists' => 'Wiedergabeliste',
    20     'Playlist' => 'Wiedergabelisten',
     23    'Bad path: @path' => 'Ung&uuml;ltiger Pfad: @path',
     24    'Path does not exist: @path' => 'Pfad existiert nicht: @path',
     25    'Cannot read override file.' => 'Datei nicht &uuml;berschreibbar.',
     26    'Settings updated.' => 'Einstellungen aktualisiert',
     27    'Your settings were not saved!' => 'Ihre Einstellungen wurden nicht gespeichert!',
     28    'Regenerating directory and file caches.' => 'Erneuere Verzeichnis und Datei Caches',
     29    'Caches generated successfully.' => 'Caches erfolgreich generiert.',
     30    'Cache generated successfully.' => 'Cache erfolgreich generiert.',
     31    'Regenerating genre caches.' => 'Erneuere Musikrichtungs Cache.',
     32    'Genre cache generated successfully.' => 'Musikruchtungs Cache erfolgreich erneuert.',
     33    'Invalid option' => 'Ung&uuml;ltige Option',
     34    'Database cleaned.' => 'Datenbank aufger&auml;umt.',
     35    'Images cache files deleted.' => 'Gecachte Bilddateien wurden gel&ouml;scht.',
     36    'Compressed cache files deleted.' => 'Komprimierte Cache Dateien gel&ouml;scht',
     37    'Test it out.' => 'Probiere es aus.',
     38    'Language' => 'Sprachauswahl',
     39    'Nothing Found' => 'Nichts gefunden',
     40    'Genre deleted.' => 'Musikrichtung gel&ouml;scht.',
     41    'Could not delete file.' => 'Kann Datei nicht l&ouml;schen.',
     42    'Deleted: @file' => 'Gel&ouml;scht: @file',
     43    'Failed' => 'Fehlgeschlagen',
     44    'Image Saved: @src -> @dest' => 'Bilddatei gespeichert Saved: @src -> @dest',
     45    'Deleted' => 'gel&ouml;scht',
     46    'Thank you' => 'Danke',
     47    'No @type found.' => 'Kein @type gefunden',
     48    'Username and/or password are incorrect.' => 'Benutzername und/oder Passwort sind falsch.',
     49    'Added to playlist' => 'Zur Playlist hinzugef&uuml;gt',
     50    'Logged out succesfully.' => 'Erfolgreich ausgeloggt.',
     51    'Genres' => 'Musikrichtungen',
     52    'Search Results' => 'Suchergebnisse',
     53    'Search type not found in index.' => 'Suchtyp nicht im Index gefunden.',
     54    'Search term must be longer than @num characters' => 'Der Suchbegriff muss l&auml;nger als @num Zeichen lang sein',
    2155    'Login' => 'Anmelden',
    22     'Search Results' => 'Suchergebnisse',
    23     'Not Found' => 'Nicht gefunden',
    24     'View/Edit Playlist' => 'Wiedergabeliste ansehen/bearbeiten',
    25     'Session Playlist' => 'Derzeitige Wiedergabeliste',
    26     'Sorry, there are no playlists.' => 'Leider keine Wiedergabelisten vorhanden.',
     56    'Username' => 'Benutzername',
     57    'Password' => 'Passwort',
    2758    'New Playlist' => 'Neue Wiedergabeliste',
    2859    'Playlist Name' => 'Name der Wiedergabeliste',
    2960    'Submit' => 'Speichern',
    30     'Random' => 'Zuf&auml;lliges Abspielen von',
    31     'Username' => 'Benutzername',
    32     'Password' => 'Passwort',
     61    'Rename' => 'Umbenennen',
     62    'Cannot rename playlist.' => 'Wiedergabeliste momentan nicht umbenennbar.',
     63    'Playlist' => 'Wiedergabelisten',
     64    'Settings' => 'Eigenschaften',
     65    'Help / Support Information' => 'Hilfe / Support Informationen',
     66    'Clean up database' => 'Datenbank aufr&auml;umen',
     67    'All' => 'Alle',
     68    'Remove' => 'Entfernen',
     69    'Ignore' => 'Ignorieren',
     70    'View/Edit Playlist' => 'Wiedergabeliste ansehen/bearbeiten',
     71    '@title Playlist' => '@title Wiedergabeliste',
     72    'This playlist is empty.' => 'Diese Wiedergabeliste ist leer.',
     73    'Playlists' => 'Wiedergabelisten',
     74    'Session Playlist' => 'Derzeitige Wiedergabeliste',
     75    '@file does not exist.' => '@file existiert nicht.',
     76    'Updated.' => 'Aktualisiert.',
     77    'Could not write file.' => 'Kann Datei nicht schreiben.',
    3378    'Error' => 'Fehler',
    34     'Custom' => 'Eigene',
     79    'View Original' => 'Original ansehen',
     80    'Save this image' => 'Dieses Bild abspeichern',
     81    'Not found: ' => 'Nicht gefunden: ',
     82    'Delete this image?' => 'Dieses Bild l&ouml;schen?',
     83    'Delete' => 'L&ouml;schen',
     84    'Loading...' => 'Laden...',
     85    'FOR REFERENCE ONLY: NOT ALL THESE OPTIONS MAKE SENSE' => 'NUR F&Uuml;R REFERENZZWECKE: NICHT ALLE EINSTELLUNGEN SIND SINNVOLL',
    3586    'Update' => 'aktualisieren',
    36     'Rename' => 'Umbenennen',
    37     'All' => 'Alle',
    38     'Selected' => 'Ausgew&auml;hlte',
     87    'Install the database' => 'Datenbank installieren',
     88    'This could take a while.' => 'Das kann eine Weile dauern.',
     89    'Are your sure you want to do this?' => 'M&ouml;chten Sie das wirklich jetzt machen?',
     90    'Database Update: ' => 'Datenbankaktualisierung',
     91    'Regenerate Genre Cache' => 'Musikrichtungscache erneuern',
     92    'Update search index' => 'Aktualisiere Suchindex',
     93    'Should only be necessary after upgrading your database or if files are changed and their timestamps are not modified for some reason.' => '',
     94    'This will find entries in the database that no longer exist in the filesystem and give you an opportunity to delete, ignore or update them.' => '',
     95    'Regenerate Statistics' => 'Erneuere Statistiken',
     96    'Find Missing Images/Artwork' => 'Suche fehlendes Artwork',
     97    'Delete cached images files' => 'L&ouml;sche gecachte Bilddateien',
     98    'Administrative Functions' => 'Administrative Funktionen',
     99    'Most regenerative functions will be run automatically if your CMSes cron functionality is setup, or if the cron.php file in the zina directory is run regularly.' => '',
     100    'No playlist selected.' => 'Keine Playlist gew&auml;hlt.',
     101    'Nothing to delete.' => 'Nichts zum L&ouml;schen.',
     102    'Nothing to add to playlist.' => 'Kann nichts zur Playlist hinzuf&uuml;gen.',
     103    'Nothing to view.' => 'Nichts zum Anzeigen.',
     104    'At least one song must be selected.' => 'Mindestens ein Song muss gew&auml;hlt sein.',
     105    'Could not read directory' => 'Konnte Verzeichnis nicht lesen',
     106    'Edit @extra' => 'Bearbeite @extra',
     107    'Statistics' => 'Statistiken',
     108    'No genres found.' => 'Keine Musikrichtungen gefunden.',
     109    'Unknown' => 'Unbekannt',
     110    'Could not read directory: @dir' => 'Konnte Verzeichnis nicht lesen: @dir',
     111    'Unknown: @code' => 'Unbekannt: @code',
     112    'English' => 'Englisch',
     113    'Title' => 'Titel',
     114    'File Date' => 'Dateidatum',
     115    'Genre' => 'Musikrichtung',
     116    'Rating' => 'Bewertung',
     117    'Type' => 'Typ',
     118    'Votes' => 'Stimmen',
     119    'Year' => 'Jahr',
     120    'Ascending' => 'Austeigend',
     121    'Descending' => 'Absteigend',
     122    'Zina Error: Could not open image file' => 'Zine Fehler: Kann Bilddatei nicht &ouml;ffnen',
     123    'Artists' => 'Interpret',
    39124    'None' => 'Keine',
    40     'Artist/Title' => 'Interpret/K&uuml;nstler',
    41     'Cannot rename playlist.' => 'Wiedergabeliste momentan nicht umbenennbar.',
    42     'Check' => 'Markieren',
    43     'Login Incorrect.' => 'Anmelden fehlgeschlagen!',
    44     'Log out' => 'Ausloggen',
    45     'Edit' => 'Bearbeiten',
    46     'Settings' => 'Eigenschaften',
    47     'At least one song must be selected.' => 'Mindestens ein Song muss gew&auml;hlt sein.',
    48     'No playlist selected.' => 'Keine Playlist gew&auml;hlt.',
    49     'Nothing to add to playlist.' => 'Kann nichts zur Playlist hinzuf&uuml;gen.',
    50     'Play Recursively' => 'rekursiv spielen',
    51     'Play Recursively Random' => 'zuf&auml;llig-rekursiv spielen',
    52     'Genres' => 'Musikrichtungen',
    53     'End' => 'Ende',
    54     'Regenerate Cache' => 'Cache erneuern',
    55     'Regenerate Genre Cache' => 'Musikrichtungscache erneuern',
    56     'Use .M3U playlists' => '.m3u-Playlists verwenden',
    57     'Use .ASX playlists' => '.asx-Playlists verwenden',
     125    'External' => 'Externe',
     126    'Internal PHP Zip Library' => 'Interne PHP Zip Bibliothek',
     127    'Play' => 'Anh&ouml;ren',
     128    'Alphabetically' => 'Alphabetisch',
     129    'Alphabetically Descending' => 'Alphabetisch absteigend',
     130    'By Date' => 'Nach Datum',
     131    'By Date Descending' => 'Nach Datum absteigend',
     132    'Full Page' => 'Ganze Seite',
    58133    'True' => 'An',
    59134    'False' => 'Aus',
     135    'GD not detected' => 'GD nicht gefunden',
     136    'Logout' => 'Abmelden',
     137    'Edit Text' => 'Text bearbeiten',
     138    'Edit Podcast' => 'Podcast bearbeiten',
     139    'Update database' => 'Datenbank aktualisieren',
     140    'Edit images' => 'Bilder bearbeiten',
     141    'Rate' => 'Bewerten',
     142    'Share' => 'Teilen',
     143    'Other' => 'Andere',
     144    'New' => 'Neu',
     145    'First' => 'Erste',
     146    'Previous' => 'Vorherige',
     147    'Next' => 'N&auml;chste',
     148    'Last' => 'Letzte',
     149    'Sort Ascending' => 'Aufsteigend sortieren',
     150    'Sort Descending' => 'Absteigend sortieren',
     151    'Sort' => 'Sortieren',
     152    'Date' => 'Datum',
     153    'Albums' => 'Alben',
     154    'See Also' => '&auml;hnliche Alben',
     155    'Play Low Fidelity' => 'Abspielen in geringerer Qualit&auml;t',
     156    'Download' => 'Herunterladen',
     157    'Play recursively' => 'Rekursiv wiedergeben',
     158    'Play recursively random' => 'Rekursiv/zuf&auml;llig wiedergeben',
     159    'Edit' => 'Bearbeiten',
     160    'More' => 'Weitere',
     161    'Remove Vote' => 'Stimme entfernen',
     162    'vote' => 'Stimme',
     163    'votes' => 'Stimmen',
     164    'Directories with no image:' => 'Verzeichnisse ohne Bild',
     165    'Close' => 'Schließen',
     166    'Current Images' => 'Aktuelle Bilder',
     167    'Remote Images' => 'Entfernte Bilder',
     168    'Subscribe' => 'Aboniere',
     169    'View Playlists' => 'Wiedergabelisten ansehen',
     170    'Songs' => 'Titel',
     171    'Edit Genre' => 'Musikrichtung bearbeiten',
     172    'Update Playlist' => 'Playlist aktualisieren',
     173    'Check' => 'Markieren',
     174    'Update custom playlist' => 'Eigene Playlist aktualisieren',
     175    'Create custom playlist' => 'Eigene Playlist erstellen',
     176    'Play random' => 'Spiele zuf&auml;llig',
     177    'Selected' => 'Ausgew&auml;hlte',
     178    'Play custom playlist' => 'Spiele eigene Playlist',
     179    'Download custom files' => 'Downloade eigene Dateien',
     180    'Play @title' => 'Spiele @title',
     181    'Search' => 'Suche',
     182    'Add a genre' => 'Eine Musikrichtung hinzuf&uuml;gen',
     183    'Add To' => 'Hinzuf&uuml;gen',
    60184    'Top' => 'Seitenanfang',
    61     'FOR REFERENCE ONLY: NOT ALL THESE OPTIONS MAKE SENSE' => 'NUR F&Uuml;R REFERENZZWECKE: NICHT ALLE EINSTELLUNGEN SIND SINNVOLL',
    62     'This will regenerate the cache.' => 'Cache wird erneuert.',
    63     'It could take a while.' => 'Dies kann eine Weile dauern.',
    64     'Are your sure you want to do this?' => 'M&ouml;chten Sie das wirklich jetzt machen?',
    65     'This will regenerate the GENRE cache.' => 'Musikrichtungscache wird erneuert.',
    66 'Music Directory (full path)<br>(Windows use forward slash, e.g. F:/music)' => 'Musikverzeichnis (kompletter Pfad)<br>(Windows benutzt den Schr&auml;gstrich, z.B. F:/_zina)',
    67 'Zina Files Directory (full path)<br>(Windows use forward slash, e.g. F:/_zina)' => 'Zina-Dateiverzeichnis (absoluter Pfad)<br>(Windows benutzt den Schr&auml;gstrich, z.B. F:/_zina)',
    68 'Zina Files Directory (relative path)' => 'Zina-Dateiverzeichnis (relativer Pfad)',
    69 'Language' => 'Sprachauswahl',
    70 'Override language character set' => 'Anderen Zeichensatz angeben',
    71 'Theme' => 'Erscheinungsbild',
    72 'Embedded' => 'Zina eingebunden',
    73 'Post/PHPnuke logged in users only' => 'Post/PHPnuke nur f&uuml;r angemeldete Benutzer',
    74 'Zina width' => 'Breite f&uuml;r alle Seiten',
    75 'Title of Main Directory' => '&Uuml;berschrift des Hauptverzeichnisses',
    76 'Show option to "play"' => '&bdquo;Anh&ouml;ren&ldquo; anzeigen',
    77 'Show option to "play selected"' => '&bdquo;Markierte anh&ouml;ren&rdquo; anzeigen',
    78 'Show option to "play recursive"' => '&bdquo;Rekursiv anh&ouml;ren&rdquo; anzeigen',
    79 'Show option to "play recursive random"' => '&bdquo;Zuf&auml;llig-rekursiv abspielen&rdquo; anzeigen',
    80 'Show navigation' => 'Navigation anzeigen',
    81 'Show search form' => 'Suche aktivieren',
    82 'Show download icon' => 'Download-Symbol anzeigen',
    83 'Show AMG search box' => 'AMG-Suche aktivieren',
    84 'Genre functionality' => 'Musikrichtung-Funktion',
    85 'Playlist functionality (other options depend on this)' => 'Wiedergabeliste-Funktion (Andere Optionen h&auml;ngen hiervon ab)',
    86 'Allow user to have session playlist' => 'Benutzern Wiedergabeliste erlauben',
    87 'Show an option to use .asx files instead (WMP)' => '.asx- statt .wmp-Dateine benutzen',
    88 'Only return .asx files (WMP).  Requires previous set to true' => 'Nur .asx-(WMP-)Dateien zur&uuml;ckgeben. Dazu muss vorherige Option auf &bdquo;an&rdquo; gesetzt werden',
    89 'Max length of session playlist' => 'Maximale L&auml;nge der Wiedergabeliste',
    90 'Show play random option' => '&bdquo;Zuf&auml;lliges abspielen von&rdquo; aktivieren',
    91 'Default random selected' => 'Standardauswahl',
    92 'Random Number Options' => 'Angabe der Auswahlm&ouml;glichkeiten (Durch Kommata getrennt)',
    93 'Default random number "selected"' => 'Standardeintrag von &bdquo;Zuf&auml;lliges abspielen von&rdquo;',
    94 'Have random play use custom playlists' => '&bdquo;Zuf&auml;lliges Abspielen von&rdquo; auch von eigenen Widergabelisten?',
    95 'Use Main Cache (for custom playlists, faster random playlists, genres)' => 'Cache benutzen (Cache-Verzeichnis muss Schreibrechte f&uuml;r den Web-Server haben)',
    96 'Main Cache life (in days)' => 'Cachelebensdauer (in Tagen)',
    97 'Script timeout (in seconds)' => 'Skripttimeout (in Sekunden)',
    98 'Extensions of graphic files' => 'Dateityp der Bilddateien (Dateisuffixe durch | getrennt, kein Punkt)',
    99 'Use local paths when running Zina locally' => 'Lokale Pfade benutzen, wenn Zina lokal verwendet wird',
    100 'Remove white space between HTML tags' => 'Entfernen von Whitespaces zwischen HTML-tags?',
    101 'Administrator user name' => 'Benutzername des Admininistrators',
    102 'If running on local machine, user is admin' => 'Wenn Zina auf einem lokalen Rechner l&auml;uft, ist der Benutzer automatisch Admin',
    103 'If remote IP is found in this string, remote user is admin' => 'Wenn von dieser IP-Adresse zugegriffen wird, ist der Benutzer automatisch Admin',
    104 'Append Apache user:password to playlist urls' => 'F&uuml;r Apache-Webserver: Einf&uuml;gen von &bdquo;user:password&rdquo; in Wiedergabelisten-URLs',
    105 'Stream internally' => 'Interner Stream',
    106 'Add #EXTINF Artist - Title info to playlists' => 'Hinzuf&uuml;gen von #EXTINF-(Interpret - Titel)-Info in Wiedergabelisten',
    107 'Name of blurb file for directories' => 'Name der Textdatei, die in Verzeichnissen angezeigt werden soll',
    108 'If multiple directory images, let clicking on image rotate through them' => 'Durch Anklicken eines Bildes das n&auml;chste Bild im selben Verzeichnis anzeigen (falls vorhanden)',
    109 'Show album year (based on ID3 tag)' => 'Zeige Jahr des Albums (basierend auf ID3-Tags)',
    110 'Show album genre (based on ID3 tag)' => 'Zeige Genre des Albums (basierend auf ID3-Tags)',
    111 'Show genre on a artist page by looking at an album genre (based on ID3 tag)' => 'Anzeigen des Genres in einer K&uuml;nstler-/Interpreten-Seite aufgrund der Musikrichtung des Albums (basierend auf ID3-Tags)',
    112 'Dirs with this prefix are not displayed' => 'Verzeichnisse mit diesem Vorzeichen werden nicht angezeigt',
    113 'Regex that cleans up sub-directory names' => 'Regul&auml;rer Audruck, der bestimmte Zeichen in Unterverzeichnissen &bdquo;bereinigt&rdquo;',
    114 'String to search for in directory title' => 'Nach angegebenen Zeichen suchen (innerhalb von Verzeichnissen)',
    115 'String to replace' => '...und durch dieses Zeichen ersetzen (Leerzeichen m&ouml;glich)',
    116 'Show a "missing directory" image' => 'Anzeigen, wenn kein Bild im Verzeichnis vorhanden ist?',
    117 'Ignore string at beginning of directory name for sorting purposes' => 'Zeichen, die beim Sortieren nicht ber&uuml;cksichtigt werden sollen, aktivieren',
    118 'String to ignore' => 'Angabe des Zeichens/der Zeichen (durch | getrennt)',
    119 'Name of file that makes a directory a "category"' => 'Name der Datei, die aus einem Verzeichnis eine &bdquo;Kategorie&rdquo; macht',
    120 'Category Width' => 'Breite',
    121 'Number of columns on a "category" page' => 'Anzahl der Spalten in einer Kategorie-Seite',
    122 'Length of text to truncate after' => 'Maximale L&auml;nge des Textes, nach dem &bdquo;...&rdquo; angezeigt wird',
    123 'Split category page into different pages' => 'Aufteilen in verschiedene Seiten',
    124 'Number of items per split page (prettier if a multiple of category colums)' => 'Anzahl der Eintr&auml;ge pro Seite (sieht besser aus, wenn sehr viele Spalten angeziegt werden sollen)',
    125 'Display sub-directory listing' => 'Anzeige von Unterverzeichnissen',
    126 'Title of sub-directory listing' => 'Name der Unterverzeichnisse',
    127 'Truncate long sub-directory names' => 'Abk&uuml;rzen von langen Unterverzeichnisnamen (ab Zeichen)',
    128 'Display sub-directory images' => 'Bilder in Unterverzeichnissen anzeigen',
    129 'Center sub-directory images' => 'Zentrieren von Bildern in Unterverzeichnissen',
    130 'Number of columns for sub-directory images' => 'Anzahl der Spalten von Bildern in Unterverzeichnissen',
    131 'Display sub-dir name below sub-dir image' => 'Anzeige des Unterverzeichnisnamens unterhalb des jeweiligen Bildes',
    132 'Show a "missing sub-dir" image' => 'Anzeige eines fehlenden Bildes in einem Unterverzeichnis',
    133 'Highlight new files and directories' => 'Neue Dateien und Verzeichnisse zus&auml;tzlich kennzeichnen',
    134 'Highlight within how many days?' => 'Anzeigedauer (in Tagen)',
    135 'Use theme image' => 'Symbol angezeigen',
    136 'Prefixed string' => 'Textangabe vor der Datei/Verzeichnis',
    137 'Suffixed string' => 'Textangabe nach der Datei/Verzeichnis',
    138 'Alternate/Related Directories' => 'Alternative/Verwandte Verzeichnisse',
    139 'Display Alternate/Related Directories Images' => 'Anzeige von Bildern in Alternativen/Verwandten Verzeichnissen',
    140 'Filename that contains list' => 'Dateiname der die Eintr&auml;ge beinhaltet',
    141 'Text heading' => '&Uuml;berschrift',
    142 'Get filesize, length, kpbs, time from mp3 files?' => 'Sollen Spieldauer (MM:SS), kbps, Frequenz und Dateigr&ouml;&szlig;e von mp3-Dateien angezeigt werden?',
    143 'Get mp3 info faster (slightly less accurate)' => 'Schnelleres Errechnen der mp3-Information (weniger genau)',
    144 'Use ID3v1/2 song titles (if they exist)' => 'Verwenden von ID3v1/2-Liedtiteln (falls vorhanden)',
    145 'If no ID3 tags, this regex cleans up song titles' => 'Ist kein ID3-Tag vorhanden, wird durch diesen regul&auml;ren Ausdruck der Liedtitel &bdquo;bereinigt&rdquo;',
    146 'String to search for in song title' => 'Zeichen, nach dem im Liedtitel gesucht werden soll',
    147 'String to replace' => '...und durch dieses Zeichen ersetzt wird',
    148 'Check for song blurb (named same as mp3, but with .txt instead)' => 'Zus&auml;tzliche Informationen unterhalb des Liedtitels? (Gleicher Dateiname wie mp3-Datei, als Suffix aber .txt)',
    149 'Display "Artist - Title" as song title (needs ID3 tags)' => 'Anzeigen von &bdquo;Interpret - Titel&rdquo; als Liedtitel (ID3-Tag muss daf&uuml;r vorhanden sein)',
    150 'Name of file to make a directory list as "Artist - Title"' => 'Name der Datei, um aus einem Verzeichnis die Anzeige "Interpret - Titel" zu machen',
    151 'Look for "fake" songs' => 'Suche nach Platzhalter f&uuml;r Lieder',
    152 'Fake file extension' => 'Dateisuffix, um Platzhalter f&uuml;r Lieder zu definieren',
    153 'Look for "remote" songs' => 'Nach &bdquo;entfernten&rdquo; Liedern suchen',
    154 'Remote file extension' => 'Dateisuffix f&uuml;r &bdquo;entfernte&rdquo; Lieder',
    155 'Look for second (lower quality) mp3 with following suffix' => 'Suchen einer zweiten mp3-Datei (geringere Qualit&auml;t) mit folgender Dateiendung',
    156 'Suffix for lo-fi mp3 name[suffix].ext; e.g. "song.lofi.mp3"' => 'Dateiendung f&uuml;r Lo-Fi-mp3-Dateien Name_der_Datei.[suffix].ext; bsp. "lied.lofi.mp3"',
    157 'Lofi Lookahead: Try only if resample is false, Lofi is true and not all directories have lofi files' => 'Lo-Fi nur wenn kein Resapmpling aktiviert ist, Lo-Fi &bdquo;an&rdquo; und nicht alle Unterverzeichnisse Lo-Fi-Dateien haben',
    158 'Resample' => 'Resampling',
    159 'Encoding program' => 'Programm zum Enkodieren',
    160 'Input resize types (supported by YOUR configuration)' => 'Bildtyp(en), deren Gr&ouml;&szlig;e angpasst werden soll (von Ihrer Konfiguration abh&auml;ngig)',
    161 'Output resize type (supported by YOUR configuration)' => 'Bildtyp nach Gr&ouml;&szlig;enanpassung (von Ihrer Konfiguration abh&auml;ngig)',
    162 'JPEG quality (1=worst/100=best)' => 'JPEG-Qualit&auml;t (1 (schlecht) - 100 (sehr gut))',
    163 'Directory images' => 'Verzeichnisbilder',
    164 'Directory scale to width (pixels)' => 'Angabe der Gr&ouml;&szlig;e der Bilder in Verzeichnissen (in Pixel)',
    165 'JPEG quality (1=worst/100=best)' => 'JPEG-Qualit&auml;t (1 (schlecht) - 100 (sehr gut))',
    166 'Subdirectory images' => 'Unterverzeichnisbilder',
    167 'Subdir scale to width (pixels)' => 'Angabe der Gr&ouml;&szlig;e der Bilder in Unterverzeichnissen (in Pixel)',
    168 'Only rescale if orig width > rescale width' => 'Nur dann Gr&ouml;&szlig;e anpassen, wenn Originalbreite gr&ouml;&szlig;er als neue Breite ist',
    169 'Write directory title on missing image' => 'Angabe des Verzeichnisses bei fehlendem Bild',
    170 'Directory text color (RGB)' => 'Textfarbe des Verzeichnisses (RGB)',
    171 'Write subdir title on missing image' => 'Angabe des Unterverzeichnisse bei fehlendem Bild',
    172 'Subdir text color (RGB)' => 'Farbe des Unterverzeichnisses (RGB)',
    173 'Wrap long text at this character' => 'Wortumbruch bei xx-Zeichen',
    174 'Full path to TrueType font' => 'Vollst&auml;ndiger Pfad zu einer TrueType-Schriftart',
    175 'Font Size' => 'Schriftgr&ouml;&szlig;e',
    176 'Download selected songs as compressed file' => 'Download von ausgew&auml;hlten Dateien als eine komprimierte Datei',
    177 'Compression via internal PHP zlib module' => 'Komprimierung mit internem PHP Zlib Modul',
    178 'Compression program (full path)' => 'Vollst&auml;ndiger Pfad zum Komprimierungsprogramm',
    179 'Compressed file extension' => 'Dateisuffix der komprimierten Datei',
    180 'Compression program options' => 'Parameter f&uuml;r Komprimierungsprogramm',
    181 'Compressed file mime-type' => 'Komprimierter Datei-MIME-Typ',
    182 'Play on server' => 'Vom Server abspielen',
    183 'mpg123 hack (try if using and having problems)' => 'MPG123-Umgehung (wenn Probleme auftreten, bitte versuchen)',
    184 'Play on server command' => 'Befehlsfolge, um auf dem Server abzuspielen',
    185 'Kill (necessary on linux/unix systems)' => 'Kill (Notwendig auf Linux/Unix Systemen)',
    186 'Kill command' => 'Kill-Anweisung',
    187 'Other media types' => 'Andere Mediendateien',
    188 'Media types' => 'Mediendateien',
    189 'Media playlists' => 'Arten von Wiedergabelisten',
    190 'Time based functionality' => 'Funktionen zeitabh&auml;ngig steuern',
    191 'Time based options' => 'Parameter',
    192 'Old Password' => 'Altes Passwort',
    193 'New Password' => 'Neues Passwort',
    194 'Confirm Password' => 'Passwort best&auml;tigen',
    195 'Look for Other Non-Music Media Types' => 'Andere Medientypen ber&uuml;cksichtigen',
    196 'Other Non-Music Media Types' => 'Andere Medientypen',
    197 'Allow Download' => 'Download erlauben',
    198 'Section Heading' => '&Uuml;berschrift',
    199 
     185    'Random' => 'Zuf&auml;lliges Abspielen von',
     186    'No results' => 'Keine Ergebnisse',
     187    'Missing Title' => 'Fehlender Titel',
     188    'No tracks found in playlist' => 'Keine Titel in Wiedergabeliste gefunden',
     189    'Error opening' => 'Fehler beim &ouml;ffnen',
     190    'Nothing to play' => 'Nichts zum Wiedergeben',
     191    'Seek' => 'Suchen',
     192    'Volume' => 'Lautst&auml;rke',
     193    'File not found' => 'Datei nicht gefunden',
     194    'Summary' => 'Zusammenfassung',
     195    'Last Year' => 'Letztes Jahr',
     196    'Last 30 days' => 'Letzter Monat',
     197    'Last 7 days' => 'Letzte Woche',
     198    'Last 24 hours' => 'Die letzten 24 Stunden',
     199    'Timezone' => 'Zeitzone',
     200    'Music Directory' => 'Musikverzeichnis',
     201    'Zina Files Directory (full path)<br>(Windows use forward slash, e.g. F:/_zina)' => 'Zina-Dateiverzeichnis (absoluter Pfad)<br>(Windows benutzt den Schr&auml;gstrich, z.B. F:/_zina)',
     202    'Theme' => 'Erscheinungsbild',
     203    'Show amg.com search box' => 'Zeige amg.com Suchbox',
     204    'Title of Main Directory' => '&Uuml;berschrift des Hauptverzeichnisses',
     205    'Show option to "play selected"' => '&bdquo;Markierte anh&ouml;ren&rdquo; anzeigen',
     206    'Show option to "play recursive"' => '&bdquo;Rekursiv anh&ouml;ren&rdquo; anzeigen',
     207    'Show option to "play recursive random"' => '&bdquo;Zuf&auml;llig-rekursiv abspielen&rdquo; anzeigen',
     208    'Show search form' => 'Suche aktivieren',
     209    'Allow downloads' => 'Erlaube Downloads',
     210    'Sort files' => 'Sortiere Dateien',
     211    'Genre functionality' => 'Musikrichtung-Funktion',
     212    'Show genre images' => 'Zeige Musikrichtungsbilder',
     213    'Limit genre names to' => 'Begrenze Musikrichtungsbilder auf',
     214    'Allow user to have session playlist' => 'Benutzern Wiedergabeliste erlauben',
     215    'Max length of session playlist' => 'Maximale L&auml;nge der Wiedergabeliste',
     216    'Show play random option' => '&bdquo;Zuf&auml;lliges abspielen von&rdquo; aktivieren',
     217    'Random Number Options' => 'Angabe der Auswahlm&ouml;glichkeiten (Durch Kommata getrennt)',
     218    'Default random number "selected"' => 'Standardeintrag von &bdquo;Zuf&auml;lliges abspielen von&rdquo;',
     219    'Have random play use custom playlists' => '&bdquo;Zuf&auml;lliges Abspielen von&rdquo; auch von eigenen Widergabelisten?',
     220    'Script timeout (in seconds)' => 'Skripttimeout (in Sekunden)',
     221    'Use local paths when running Zina locally' => 'Lokale Pfade benutzen, wenn Zina lokal verwendet wird',
     222    'Administrator user name' => 'Benutzername des Admininistrators',
     223    'If running on local machine, user is admin' => 'Wenn Zina auf einem lokalen Rechner l&auml;uft, ist der Benutzer automatisch Admin',
     224    'If remote IP is found in this string, remote user is admin' => 'Wenn von dieser IP-Adresse zugegriffen wird, ist der Benutzer automatisch Admin',
     225    'Append Apache user:password to playlist urls' => 'F&uuml;r Apache-Webserver: Einf&uuml;gen von &bdquo;user:password&rdquo; in Wiedergabelisten-URLs',
     226    'Stream internally' => 'Interner Stream',
     227    'Dirs with this prefix are not displayed' => 'Verzeichnisse mit diesem Vorzeichen werden nicht angezeigt',
     228    'Ignore string at beginning of directory name for sorting purposes' => 'Zeichen, die beim Sortieren nicht ber&uuml;cksichtigt werden sollen, aktivieren',
     229    'String to ignore' => 'Angabe des Zeichens/der Zeichen (durch | getrennt)',
     230    'Name of file that makes a directory a "category"' => 'Name der Datei, die aus einem Verzeichnis eine &bdquo;Kategorie&rdquo; macht',
     231    'Number of columns on a "category" page' => 'Anzahl der Spalten in einer Kategorie-Seite',
     232    'Show images' => 'Zeige Bilder',
     233    'Display sub-directory listing' => 'Anzeige von Unterverzeichnissen',
     234    'Display sub-directory images' => 'Bilder in Unterverzeichnissen anzeigen',
     235    'Number of columns' => 'Anazhl der Spalten',
     236    'Highlight new files and directories' => 'Neue Dateien und Verzeichnisse zus&auml;tzlich kennzeichnen',
     237    'Alternate/Related Directories' => 'Alternative/Verwandte Verzeichnisse',
     238    'Filename that contains list' => 'Dateiname der die Eintr&auml;ge beinhaltet',
     239    'Get mp3 info faster (slightly less accurate)' => 'Schnelleres Errechnen der mp3-Information (weniger genau)',
     240    'Use ID3v1/2 song titles (if they exist)' => 'Verwenden von ID3v1/2-Liedtiteln (falls vorhanden)',
     241    'Name of file to make a directory list as "Artist - Title"' => 'Name der Datei, um aus einem Verzeichnis die Anzeige "Interpret - Titel" zu machen',
     242    'Remote file extension' => 'Dateisuffix f&uuml;r &bdquo;entfernte&rdquo; Lieder',
     243    'Look for second (lower quality) mp3 with following suffix' => 'Suchen einer zweiten mp3-Datei (geringere Qualit&auml;t) mit folgender Dateiendung',
     244    'Suffix for lo-fi mp3 name[suffix].ext; e.g. "song.lofi.mp3"' => 'Dateiendung f&uuml;r Lo-Fi-mp3-Dateien Name_der_Datei.[suffix].ext; bsp. "lied.lofi.mp3"',
     245    'Encoding program' => 'Programm zum Enkodieren',
     246    'Directory images' => 'Verzeichnisbilder',
     247    'Write directory title on missing image' => 'Angabe des Verzeichnisses bei fehlendem Bild',
     248    'Search font size' => 'Suche Schriftgr&ouml;ße',
     249    'Download selected songs as compressed file' => 'Download von ausgew&auml;hlten Dateien als eine komprimierte Datei',
     250    'Compression program (full path)' => 'Vollst&auml;ndiger Pfad zum Komprimierungsprogramm',
     251    'Compressed file extension' => 'Dateisuffix der komprimierten Datei',
     252    'Compression program options' => 'Parameter f&uuml;r Komprimierungsprogramm',
     253    'Compressed file mime-type' => 'Komprimierter Datei-MIME-Typ',
     254    'Play on server' => 'Vom Server abspielen',
     255    'mpg123 hack (try if using and having problems)' => 'MPG123-Umgehung (wenn Probleme auftreten, bitte versuchen)',
     256    'Play on server command' => 'Befehlsfolge, um auf dem Server abzuspielen',
     257    'Kill (necessary on linux/unix systems)' => 'Kill (Notwendig auf Linux/Unix Systemen)',
     258    'Kill command' => 'Kill-Anweisung',
     259    'Other media types' => 'Andere Mediendateien',
     260    'Media types' => 'Mediendateien',
     261    'Time based functionality' => 'Funktionen zeitabh&auml;ngig steuern',
     262    'Time based options' => 'Parameter',
     263    'Old Password' => 'Altes Passwort',
     264    'New Password' => 'Neues Passwort',
     265    'Confirm Password' => 'Passwort best&auml;tigen',
     266    'Look for Other Non-Music Media Types' => 'Andere Medientypen ber&uuml;cksichtigen',
     267    'Other Non-Music Media Types' => 'Andere Medientypen',
     268    'Allow Download' => 'Download erlauben',
     269    'Database type' => 'Datenbanktyp',
     270    'Database hostname' => 'Datenbank Host',
     271    'Database name' => 'Datenbankname',
     272    'Database user' => 'Datenbank Benutzer',
     273    'Database user password' => 'Datenbank Passwort',
     274    'Database table prefix' => 'Datenbank Pr&auml;fix',
     275    'Gather statistics' => 'Sammele Statistiken',
     276    'Last.fm username' => 'Last.fm Benutzername',
     277    'Last.fm password' => 'Last.fm Passwort',
     278    'Twitter username' => 'Twitter Benutzername',
     279    'Twitter password' => 'Twitter Passwort',
     280    'Clean URLs' => 'Saubere URLs',
     281    'Generate a sitemap' => 'Sitemap generieren',
     282    'Cache Sitemap file' => 'Sitemap cachen',
     283    'Stay logged in for' => 'Angemeldet bleiben f&uuml;r',
     284    'Configuration' => 'Konfiguration',
     285    'Database' => 'Datenbank',
     286    'Directory as Category' => 'Verzeichnis als Kategorie',
     287    'Music Files' => 'Musik Dateien',
     288    'Advanced' => 'Erweitert',
     289    'Authentication' => 'Authentifizierung',
     290    'Play on Server' => 'Auf der Server wiedergeben',
     291    'Media Types' => 'Medien Typen',
     292    'An example' => 'Ein Beispiel'
    200293);
    201294?>
  • zina/trunk/zina/mp3.class.php

    r145926 r226506  
    4848
    4949        $v2h = $this->getV2Header($fh);
     50        $this->track = 0;
    5051
    5152        if (!empty($v2h) && !($v2h->major_ver < 2)) {
     
    120121
    121122        if ($genre) $this->getGenre();
     123        #$this->track = (int)$this->track;
    122124        return $this->tag;
    123125    }
  • zina/trunk/zina/theme.php

    r145926 r226506  
    18871887        '<meta http-equiv="Content-Type" content="text/html; charset='.$zina['charset'].'" />'.
    18881888        '<link rel="shortcut icon" href="'.$theme_path.'/zina.ico" type="image/x-icon" />'.
    1889         $zina['head_js'].'<style>body{margin:0;padding:0;}</style></head><body onload="setTimeout(\'window.document.zinamp.addPlaylist(window.opener.zinamp_playlist)\',500);">'.$zina['content'].'</body></html>';
     1889        $zina['head_js'].'<style>body{margin:0;padding:0;}</style></head><body onload="zinampFocus();setTimeout(\'window.document.zinamp.addPlaylist(window.opener.zinamp_playlist);\',500);">'.$zina['content'].'</body></html>';
    18901890
    18911891}
     
    19611961        ;
    19621962    #);
     1963    zina_set_js('inline', 'function zinampFocus(){document.getElementById("zinamp").focus();}');
    19631964    zina_set_js('inline', 'function zinampUrl(url){if(window.opener){window.opener.location=url;}else{self.location=url;}stop;}');
    19641965
  • zina/trunk/zina/zinamp/skins/Silver/skin.xml

    r104241 r226506  
    99    <object label="background" image="../Silver/images/background_medium.png" />
    1010
    11     <object label="previousButton" shape="circle" x="13" y="72" width="23" height="23" alpha="1" />
    12     <object label="previousButtonPressed" image="../Silver/images/previousButtonPressed.png" x="12" y="71" />
     11    <object label="prevButton" shape="circle" x="13" y="72" width="23" height="23" alpha="1" />
     12    <object label="prevButtonPressed" image="../Silver/images/previousButtonPressed.png" x="12" y="71" />
    1313    <object label="playButton" shape="circle" x="38" y="72" width="23" height="23" alpha="1" />
    1414    <object label="playButtonPressed" image="../Silver/images/playPressed.png" x="37" y="71" />
  • zina/trunk/zina/zinamp/skins/SilverAll/skin.xml

    r104241 r226506  
    99    <object label="background" image="../Silver/images/background_medium.png" />
    1010
    11     <object label="previousButton" shape="circle" x="13" y="72" width="23" height="23" alpha="1" />
    12     <object label="previousButtonPressed" image="../Silver/images/previousButtonPressed.png" x="12" y="71" />
    13     <object label="playButton" shape="circle" x="38" y="72" width="23" height="23" alpha="1" />
     11    <object label="playButton" shape="circle" x="38" y="72" width="23" height="23" alpha="0" />
     12    <object label="playButtonOn" shape="circle" x="38" y="72" width="23" height="23" alpha="0" />
    1413    <object label="playButtonPressed" image="../Silver/images/playPressed.png" x="37" y="71" />
    15     <object label="pauseButton" shape="circle" x="63" y="72" width="23" height="23" alpha="1" />
     14    <object label="pauseButton" shape="circle" x="63" y="72" width="23" height="23" alpha="0" />
     15    <object label="pauseButtonOn" image="../Silver/images/pauseButtonPressed.png" x="62" y="71" />
    1616    <object label="pauseButtonPressed" image="../Silver/images/pauseButtonPressed.png" x="62" y="71" />
    17     <object label="stopButton" shape="circle" x="88" y="72" width="23" height="23" alpha="1" />
     17    <object label="stopButton" shape="circle" x="88" y="72" width="23" height="23" alpha="0" />
    1818    <object label="stopButtonPressed" image="../Silver/images/stopButtonPressed.png" x="87" y="71" />
    19     <object label="nextButton" shape="circle" x="113" y="72" width="23" height="23" alpha="1" />
     19    <object label="prevButton" shape="circle" x="13" y="72" width="23" height="23" alpha="0" />
     20    <object label="prevButtonPressed" image="../Silver/images/previousButtonPressed.png" x="12" y="71" />
     21    <object label="nextButton" shape="circle" x="113" y="72" width="23" height="23" alpha="0" />
    2022    <object label="nextButtonPressed" image="../Silver/images/nextButtonPressed.png" x="112" y="71" />
     23
     24    <object label="shuffleButton"   x="146" y="72" width="29" height="22" alpha="0" hoverMessage="Shuffle" />
     25    <object label="shuffleButtonOn" image="../Silver/images/shuffleOn.png" x="146" y="72" hoverMessage="Shuffle" />
     26    <object label="shuffleButtonPressed" image="../Silver/images/shufflePressed.png" x="146" y="72" />
     27
     28    <object label="repeatButton" x="179" y="72" width="29" height="22" alpha="0" hoverMessage="Repeat" />
     29    <object label="repeatButtonOn" image="../Silver/images/repeatOn.png" x="179" y="72" hoverMessage="Repeat" />
     30    <object label="repeatButtonPressed" image="../Silver/images/repeatPressed.png" x="179" y="72" />
     31
     32    <object label="playlistButton" x="222" y="46" width="20" height="11" alpha="0" />
     33    <object label="playlistButtonOn" image="../Silver/images/playlistOn_medium.png" x="222" y="46" />
     34    <object label="playlistButtonPressed" image="../Silver/images/playlistPressed.png" x="222" y="46" />
    2135
    2236    <object label="trackDisplay" x="9" y="8" width="238" height="14" size="12" color="000000" font="Arial" />
     
    2842    <object label="mono" image="../Silver/images/mono.png" x="223" y="31" width="20" height="5" />
    2943
     44    <object label="loveButton"   image="../Silver/images/love_medium.png" x="212" y="72" hoverMessage="Love this track" />
     45    <object label="loveButtonOn" image="../Silver/images/love_medium_selected.png" x="212" y="72" hoverMessage="Love this track" />
     46
     47    <object label="panSlider" x="180" y="49" width="34" height="4" />
     48    <object label="panHandle" image="../Silver/images/volumeHandle_medium.png" x="180" y="47" width="7" height="7" hoverMessage="Balance"/>
     49
     50    <object label="volumeSlider" x="109" y="49" width="62" height="4" />
     51    <object label="volumeHandle" image="../Silver/images/volumeHandle_medium.png" x="109" y="47" width="7" height="7" hoverMessage="Volume"/>
     52
    3053    <object label="loadBar" image="../Silver/images/loadBar_medium.png" x="9" y="61" width="236" height="4" />
    3154
    3255    <object label="timeSlider" x="9" y="61" width="236" height="6" color="666666"/> 
    3356    <object label="timeHandle" image="../Silver/images/timeHandle.png" x="9" y="60" width="28" height="6" /> 
    34 
    35     <object label="volumeSlider" x="109" y="49" width="62" height="4" />
    36     <object label="volumeHandle" image="../Silver/images/volumeHandle_medium.png" x="109" y="47" width="7" height="7" hoverMessage="Volume"/>
    37 
    38     <object label="panSlider" x="180" y="49" width="34" height="4" />
    39     <object label="panHandle" image="../Silver/images/volumeHandle_medium.png" x="180" y="47" width="7" height="7" hoverMessage="Balance"/>
    40 
    41     <object label="shuffleButton"   x="146" y="72" width="29" height="22" alpha="1" hoverMessage="Shuffle" />
    42     <object label="shuffleButtonOn" image="../Silver/images/shuffleOn.png" x="146" y="72" hoverMessage="Shuffle" />
    43     <object label="shuffleButtonPressed" image="../Silver/images/shufflePressed.png" x="146" y="72" />
    44 
    45     <object label="repeatButton" x="179" y="72" width="29" height="22" alpha="1" hoverMessage="Repeat" />
    46     <object label="repeatButtonOn" image="../Silver/images/repeatOn.png" x="179" y="72" hoverMessage="Repeat" />
    47     <object label="repeatButtonPressed" image="../Silver/images/repeatPressed.png" x="179" y="72" />
    48 
    49     <object label="playlistButton" x="222" y="46" width="20" height="11" alpha="1" />
    50     <object label="playlistButtonOn" image="../Silver/images/playlistOn_medium.png" x="222" y="46" />
    51     <object label="playlistButtonPressed" image="../Silver/images/playlistPressed.png" x="222" y="46" />
    52 
    53     <object label="loveButton"   image="../Silver/images/love_medium.png" x="212" y="72" />
    54     <object label="loveButtonOn" image="../Silver/images/love_medium_selected.png" x="212" y="72" />
    5557       
    5658    <object label="songInfoBackground" x="0" y="100" width="254" height="100" image="../Silver/images/song_info.png" />
     
    6062    <object label="playlistBackground" image="../Silver/images/playlist.png" x="0" y="200" width="254" height="170" />
    6163    <object label="playlistDisplay" x="5" y="205" width="237" height="160" color="000000" selectedColor="1D5CB1" selectedBgColor="1D5CB1" selectedBgTxtColor="ffffff" font="Verdana" size="10" />
    62     <object label="playlistSlider" x="242" y="205" width="7" height="160" color="CCCCCC" alpha="1" /> 
     64
     65    <object label="playlistSlider" x="242" y="205" width="7" height="160" color="CCCCCC" alpha="0" /> 
    6366    <object label="playlistHandle" image="../Silver/images/playlistHandle.png" x="242" y="205" width="7" height="18" /> 
    6467
    6568    <object label="lyricsBackground" image="../Silver/images/playlist.png" x="0" y="370" width="254" height="170" />
    6669    <object label="lyricsDisplay" x="5" y="375" width="237" height="158" color="000000" selectedColor="1D5CB1" selectedBgColor="1D5CB1" selectedBgTxtColor="ffffff" font="Verdana" size="10" />
    67     <object label="lyricsSlider" x="242" y="375" width="7" height="160" color="CCCCCC" alpha="1" /> 
     70    <object label="lyricsSlider" x="242" y="375" width="7" height="160" color="CCCCCC" alpha="0" /> 
    6871    <object label="lyricsHandle" image="../Silver/images/playlistHandle.png" x="242" y="375" width="7" height="18" /> 
    69 
    7072</objects>
    7173</skin>
  • zina/trunk/zina/zinamp/skins/SilverSmall/skin.xml

    r104241 r226506  
    77    <object label="background" image="../Silver/images/background.png" />
    88
    9     <object label="previousButton" shape="circle" x="5" y="4" width="20" height="20" alpha="1" />
     9    <object label="prevButton" shape="circle" x="5" y="4" width="20" height="20" alpha="1" />
    1010    <object label="playpauseButton" shape="circle" x="29" y="4" width="20" height="20" alpha="1" />
    1111    <object label="playpauseButtonOn" image="../Silver/images/playpauseButton.png" x="29" y="4" width="20" height="20" />
  • zina/trunk/zina/zinamp/skins/WinampClassic/skin.xml

    r102460 r226506  
    1818        <object label="stopButtonPressed" image="images/stopPressed.png" x="84" y="88" width="22" height="17" />
    1919       
    20         <object label="previousButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" />
    21         <object label="previousButtonPressed" image="images/previousPressed.png" x="15" y="88" width="22" height="17" />
     20        <object label="prevButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" />
     21        <object label="prevButtonPressed" image="images/previousPressed.png" x="15" y="88" width="22" height="17" />
    2222   
    2323        <object label="nextButton" x="108" y="88" width="22" height="17" alpha="0" hoverMessage="Forward" /> 
  • zina/trunk/zina/zinamp/skins/WinampClassicAll/skin.xml

    r102460 r226506  
    1717        <object label="stopButton" x="84" y="88" width="22" height="17" alpha="0" hoverMessage="Stop" />
    1818        <object label="stopButtonPressed" image="../WinampClassic/images/stopPressed.png" x="84" y="88" width="22" height="17" />
    19        
    20         <object label="previousButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" />
    21         <object label="previousButtonPressed" image="../WinampClassic/images/previousPressed.png" x="15" y="88" width="22" height="17" />
    22    
     19        <object label="prevButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" />
     20        <object label="prevButtonPressed" image="../WinampClassic/images/previousPressed.png" x="15" y="88" width="22" height="17" />
    2321        <object label="nextButton" x="108" y="88" width="22" height="17" alpha="0" hoverMessage="Forward" /> 
    2422        <object label="nextButtonPressed" image="../WinampClassic/images/nextPressed.png" x="108" y="88" width="22" height="17" /> 
     
    4139        <object label="bitrate" text="=1" x="110" y="38" width="19" height="10" size="9" align="right" font="Geneva, sans-serif" color="00E200" />
    4240        <object label="frequency" text="1" x="155" y="38" width="13" height="10" size="9" align="right" font="Geneva, sans-serif" color="00E200" />
    43 
     41        <object label="stereo" image="../WinampClassic/images/stereo.png" x="239" y="41" width="28" height="13" />
    4442        <object label="mono" image="../WinampClassic/images/mono.png" x="214" y="41" width="25" height="12" />
    45         <object label="stereo" image="../WinampClassic/images/stereo.png" x="239" y="41" width="28" height="13" />
    4643
    4744        <object label="loveButton" image="../WinampClassic/images/heart.png" x="246" y="56" hoverMessage="Love this track" />
     
    6865        <object label="playlistSlider" x="261" y="248" width="6" height="148" color="CCCCCC" alpha="1" /> 
    6966        <object label="playlistHandle" image="../WinampClassic/images/playlistHandle.png" x="260" y="248" width="8" height="18" /> 
    70         <object label="scrollUpButton" x="260" y="395" width="8" height="6" alpha="1"/>
    71         <object label="scrollDownButton" x="260" y="401" width="8" height="6" alpha="1"/>
    7267
    7368        <object label="lyricsBackground" image="../WinampClassic/images/playlist.png" x="0" y="416" width="275" height="178" />
     
    7570        <object label="lyricsSlider" x="261" y="426" width="6" height="149" color="CCCCCC" alpha="1" /> 
    7671        <object label="lyricsHandle" image="../WinampClassic/images/playlistHandle.png" x="260" y="426" width="8" height="18" /> 
     72
     73        <object label="scrollUpButton" x="260" y="395" width="8" height="6" alpha="1"/>
     74        <object label="scrollDownButton" x="260" y="401" width="8" height="6" alpha="1"/>
    7775</objects>
    7876</skin>
  • zina/trunk/zina/zinamp/skins/WinampClassicSmall/skin.xml

    r102460 r226506  
    1616        <object label="stopButtonPressed" image="../WinampClassic/images/stopPressed.png" x="84" y="88" width="22" height="17" />
    1717       
    18         <object label="previousButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" />
    19         <object label="previousButtonPressed" image="../WinampClassic/images/previousPressed.png" x="15" y="88" width="22" height="17" />
     18        <object label="prevButton" x="15" y="88" width="22" height="17" alpha="0" hoverMessage="Previous" />
     19        <object label="prevButtonPressed" image="../WinampClassic/images/previousPressed.png" x="15" y="88" width="22" height="17" />
    2020   
    2121        <object label="nextButton" x="108" y="88" width="22" height="17" alpha="0" hoverMessage="Forward" /> 
Note: See TracChangeset for help on using the changeset viewer.