diff options
author | theuni <theuni-nospam-@xbmc.org> | 2012-02-26 15:00:08 -0500 |
---|---|---|
committer | theuni <theuni-nospam-@xbmc.org> | 2012-02-26 15:00:08 -0500 |
commit | 831626e96a4ec5c8dbc9917d5b1e0804aabf2c59 (patch) | |
tree | f44b0c2f77b8c13f2f49062b4a2ac29988f46894 | |
parent | 1fef727af39c0c6e5264ee14fe4c78f8567f035e (diff) | |
parent | f0e48a66966833d29dd3b9393d6f85759f2768bf (diff) |
Merge remote-tracking branch 'origin/master' into Eden
135 files changed, 2201 insertions, 1148 deletions
diff --git a/addons/repository.xbmc.org/addon.xml b/addons/repository.xbmc.org/addon.xml index 1b663504b9..cf047d39ab 100644 --- a/addons/repository.xbmc.org/addon.xml +++ b/addons/repository.xbmc.org/addon.xml @@ -1,13 +1,16 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <addon id="repository.xbmc.org" name="XBMC.org Add-ons" - version="2.0.1" + version="2.0.3" provider-name="Team XBMC"> + <requires> + <import addon="xbmc.addon" version="11.0"/> + </requires> <extension point="xbmc.addon.repository" name="Official XBMC.org Add-on Repository"> - <info compressed="true">http://mirrors.xbmc.org/addons/eden-pre/addons.xml</info> - <checksum>http://mirrors.xbmc.org/addons/eden-pre/addons.xml.md5</checksum> - <datadir zip="true">http://mirrors.xbmc.org/addons/eden-pre</datadir> + <info compressed="true">http://mirrors.xbmc.org/addons/eden/addons.xml</info> + <checksum>http://mirrors.xbmc.org/addons/eden/addons.xml.md5</checksum> + <datadir zip="true">http://mirrors.xbmc.org/addons/eden</datadir> <hashes>true</hashes> </extension> <extension point="xbmc.addon.metadata"> diff --git a/addons/skin.confluence/language/Korean/strings.xml b/addons/skin.confluence/language/Korean/strings.xml index 2595bd0199..b0c3f4385a 100644 --- a/addons/skin.confluence/language/Korean/strings.xml +++ b/addons/skin.confluence/language/Korean/strings.xml @@ -108,7 +108,7 @@ <string id="31300">현재 온도</string> <string id="31301">마지막 업데이트</string> <string id="31302">메뉴</string> - <string id="31303"></string> + <string id="31303">날씨 정보 제공</string> <string id="31304">사진</string> <string id="31305">디스크 미디어 감지되지 않음</string> <string id="31306">꺼내기</string> diff --git a/addons/skin.touched b/addons/skin.touched -Subproject 9b6fcdbb095bc84cdf84c1fd01ff719e972cbaa +Subproject 91cebaf2b59bff2486e5f22acb063a4c6a17d4f diff --git a/addons/weather.wunderground/addon.xml b/addons/weather.wunderground/addon.xml index ee79a9f304..06e5deb593 100644 --- a/addons/weather.wunderground/addon.xml +++ b/addons/weather.wunderground/addon.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<addon id="weather.wunderground" name="Weather Underground" version="0.0.4" provider-name="Team XBMC"> +<addon id="weather.wunderground" name="Weather Underground" version="0.0.5" provider-name="Team XBMC"> <requires> <import addon="xbmc.python" version="2.0"/> <import addon="script.module.simplejson" version="2.0.10"/> diff --git a/addons/weather.wunderground/changelog.txt b/addons/weather.wunderground/changelog.txt index d4ce40b10f..62596ec82e 100644 --- a/addons/weather.wunderground/changelog.txt +++ b/addons/weather.wunderground/changelog.txt @@ -1,3 +1,8 @@ +v0.0.5 +- add geoip support +- fetch 7 day forecast +- workaround: when user switches weather addon, xbmc may call the script with a location id that has not been setup. try to fallback to id 1 in this case. + v0.0.4 - don't fetch weather when no locations are set up - fix incrementing values on each weather refresh when no locations are set up diff --git a/addons/weather.wunderground/default.py b/addons/weather.wunderground/default.py index c00e6d3ac6..86d07c70a0 100644 --- a/addons/weather.wunderground/default.py +++ b/addons/weather.wunderground/default.py @@ -28,8 +28,10 @@ from utilities import * LOCATION_URL = 'http://autocomplete.wunderground.com/aq?query=%s&format=JSON' WEATHER_URL = 'http://api.wunderground.com/api/%s/conditions/forecast7day/hourly%s.json' +GEOIP_URL = 'http://api.wunderground.com/api/%s/geolookup/q/autoip.json' A_I_K = 'NDEzNjBkMjFkZjFhMzczNg==' WEATHER_WINDOW = xbmcgui.Window(12600) +MAXDAYS = 6 socket.setdefaulttimeout(10) @@ -82,6 +84,16 @@ def location(string): locid.append(locationid) return loc, locid +def geoip(): + data = fetch(GEOIP_URL % aik[::-1]) + if data != '' and data.has_key('location'): + location = data['location']['l'] + __addon__.setSetting('Location1', data['location']['city']) + __addon__.setSetting('Location1id', location) + else: + location = '' + return location + def forecast(city): data = fetch(WEATHER_URL % (aik[::-1], city)) if data != '': @@ -108,7 +120,7 @@ def properties(query): set_property('Day%i.Outlook' % count, item['conditions']) set_property('Day%i.OutlookIcon' % count, '%s.png' % weathercode) set_property('Day%i.FanartCode' % count, weathercode) - if count == 3: + if count == MAXDAYS: break if sys.argv[1].startswith('Location'): @@ -129,9 +141,12 @@ if sys.argv[1].startswith('Location'): else: location = __addon__.getSetting('Location%sid' % sys.argv[1]) aik = base64.b64decode(A_I_K) + if (location == '') and (sys.argv[1] != '1'): + location = __addon__.getSetting('Location1id') + if location == '': + location = geoip() if not location == '': forecast(location) - refresh_locations() else: # workaround to fix incrementing values on each weather refresh when no locations are set up: set_property('Current.Condition' , 'N/A') @@ -144,14 +159,13 @@ else: set_property('Current.DewPoint' , '0') set_property('Current.OutlookIcon' , 'na.png') set_property('Current.FanartCode' , 'na') - for count in range (0, 3): + for count in range (0, MAXDAYS): set_property('Day%i.Title' % count, 'N/A') set_property('Day%i.HighTemp' % count, '0') set_property('Day%i.LowTemp' % count, '0') set_property('Day%i.Outlook' % count, 'N/A') set_property('Day%i.OutlookIcon' % count, 'na.png') set_property('Day%i.FanartCode' % count, 'na') - # workaround to stop xbmc from running the script in a loop when no locations are set up: - set_property('Locations', '1') +refresh_locations() set_property('WeatherProvider', 'Weather Underground') diff --git a/addons/weather.wunderground/resources/language/Dutch/strings.xml b/addons/weather.wunderground/resources/language/Dutch/strings.xml new file mode 100644 index 0000000000..ad380a7fd7 --- /dev/null +++ b/addons/weather.wunderground/resources/language/Dutch/strings.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<strings> + <string id="30101">Plaatsen Instellen</string> + <string id="30111">Wijzig plaats 1</string> + <string id="30112">Wijzig plaats 2</string> + <string id="30113">Wijzig plaats 3</string> +</strings> diff --git a/addons/webinterface.default/addon.xml b/addons/webinterface.default/addon.xml index a81b2b8791..6ec7e7295e 100644 --- a/addons/webinterface.default/addon.xml +++ b/addons/webinterface.default/addon.xml @@ -6,7 +6,7 @@ provider-name="Team XBMC"> <requires> <import addon="xbmc.gui" version="3.00"/> - <import addon="xbmc.json" version="2.00"/> + <import addon="xbmc.json" version="4.00"/> </requires> <extension point="xbmc.gui.webinterface"/> diff --git a/addons/xbmc.addon/addon.xml b/addons/xbmc.addon/addon.xml index ac9a69a3f9..ce7f05ac5b 100644 --- a/addons/xbmc.addon/addon.xml +++ b/addons/xbmc.addon/addon.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<addon id="xbmc.addon" version="1.0" provider-name="Team XBMC"> +<addon id="xbmc.addon" version="11.0" provider-name="Team XBMC"> <requires> <import addon="xbmc.core" version="0.1"/> </requires> diff --git a/addons/xbmc.gui/addon.xml b/addons/xbmc.gui/addon.xml index 8907583e30..cdc1fc0a05 100644 --- a/addons/xbmc.gui/addon.xml +++ b/addons/xbmc.gui/addon.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <addon id="xbmc.gui" version="3.00" provider-name="Team XBMC"> - <backwards-compatibility abi="2.1"/> <requires> <import addon="xbmc.core" version="0.1"/> </requires> diff --git a/addons/xbmc.json/addon.xml b/addons/xbmc.json/addon.xml index 5632135ae4..fb561191d1 100644 --- a/addons/xbmc.json/addon.xml +++ b/addons/xbmc.json/addon.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<addon id="xbmc.json" version="2.0" provider-name="Team XBMC"> +<addon id="xbmc.json" version="4.0" provider-name="Team XBMC"> <requires> <import addon="xbmc.core" version="0.1"/> </requires> diff --git a/language/Chinese (Simple)/strings.xml b/language/Chinese (Simple)/strings.xml index 6627bfdea6..bc74e24472 100644 --- a/language/Chinese (Simple)/strings.xml +++ b/language/Chinese (Simple)/strings.xml @@ -1768,7 +1768,7 @@ <string id="20326">这个操作会重新校准%s的配置</string> <string id="20327">还原为初时配置</string> <string id="20328">选择指定位置</string> - + <string id="20329">电影在以片名命名的单独目录中</string> <string id="20330">以文件夹名来查找</string> <string id="20331">文件</string> <string id="20332">用文件夹名或文件名进行查找?</string> @@ -1858,7 +1858,7 @@ <string id="20416">最初发表</string> <string id="20417">编剧</string> <string id="20418"></string> - <string id="20419">文件视图显示媒体标识信息</string> + <string id="20419">用资料库标题替换文件名</string> <string id="20420">从不</string> <string id="20421">如果只有一季</string> @@ -1898,6 +1898,7 @@ <string id="20455">听众</string> <string id="20456">设置影片集同人画</string> <string id="20457">影片集</string> + <string id="20458">电影按影片集分组</string> <!-- up to 21329 is reserved for the video db !! !--> <string id="21330">显示隐藏文件和目录</string> @@ -2005,6 +2006,8 @@ <string id="21451">需要访问互联网。</string> <string id="21452">获取更多...</string> <string id="21453">根文件系统</string> + <string id="21454">缓存满</string> + <string id="21455">缓存在达到连续播放所需数量之前已满</string> <string id="21460">字幕位置</string> <string id="21461">固定</string> @@ -2325,6 +2328,8 @@ <string id="33102">事件服务器</string> <string id="33103">远程通信服务器</string> + <string id="33200">检测到新的连接</string> + <!-- translators: no need to add these to your language files --> <string id="34000">Lame</string> <string id="34001">Vorbis</string> @@ -2349,6 +2354,14 @@ <string id="34201">未找到下一播放项目</string> <string id="34202">未找到上一播放项目</string> + <string id="34300">启动 zeroconf 失败</string> + <string id="34301">Apple 的 Bonjour 服务是否已安装?更多信息见日志记录。</string> + + <string id="34400">视频渲染</string> + <string id="34401">视频滤镜/缩放器初始化失败,使用双线性缩放</string> + <string id="34402">音频设备初始化失败</string> + <string id="34403">检查你的音频设置</string> + <string id="35000">外部设备</string> <string id="35001">通用 HID 设备</string> diff --git a/language/Dutch/strings.xml b/language/Dutch/strings.xml index e118f588a6..0d5f642b18 100644 --- a/language/Dutch/strings.xml +++ b/language/Dutch/strings.xml @@ -877,8 +877,11 @@ <string id="10020">Scripts</string> <string id="10021">Webbrowser</string> + <string id="10025">Video's</string> <string id="10028">Video/Afspeellijst</string> + <string id="10029">Aanmeld scherm</string> <string id="10034">Instellingen - Profielen</string> + <string id="10040">Addon verkenner</string> <string id="10100">Ja/Nee</string> <string id="10101">Voortgang</string> @@ -1648,10 +1651,10 @@ <string id="20109">- Verschalen </string> <string id="20110">UPnP-client</string> <string id="20111">Automatisch starten</string> - <string id="20112">Vorige login: %s</string> + <string id="20112">Vorige aanmelding: %s</string> <string id="20113">Nog nooit ingelogd</string> <string id="20114">Profiel %i / %i</string> - <string id="20115">Gebruikerslogin / Selecteer een profiel</string> + <string id="20115">Gebruikersaanmelding / Selecteer een profiel</string> <string id="20116">Inlogscherm vergrendelen</string> <string id="20117">Ongeldige vergrendelcode.</string> <string id="20118">Dit vereist een actieve hoofdvergrendeling.</string> @@ -1742,7 +1745,7 @@ <string id="20252">Glazen vullen (video's)</string> <string id="20253">WebDAV-server (HTTP)</string> <string id="20254">WebDAV-server (HTTPS)</string> - <string id="20255">Eerste login, profiel bijwerken</string> + <string id="20255">Eerste aanmelding, profiel bijwerken</string> <string id="20256">HTS tvheadend client</string> <string id="20257">VDR streamdev client</string> <string id="20258">MythTV client</string> @@ -1772,7 +1775,7 @@ <string id="20326">Dit zet de kalibratiewaarden voor %s</string> <string id="20327">terug naar de standaardwaarden.</string> <string id="20328">een locatie om naar te kopiëren</string> - + <string id="20329">Films staan in aparte folders die overeenkomen met de film titel</string> <string id="20330">Gebruik mapnamen bij zoeken</string> <string id="20331">Bestand</string> <string id="20332">Ook in bestands- of mapnamen zoeken?</string> @@ -1862,7 +1865,7 @@ <string id="20416">Eerst uitgez.</string> <string id="20417">Schrijver</string> <string id="20418"></string> - <string id="20419">Laat metadata zien in bestandslayout</string> + <string id="20419">Vervang bestandsnamen met bibliotheek titels</string> <string id="20420">Nooit</string> <string id="20421">Alleen indien één seizoen</string> @@ -1902,6 +1905,7 @@ <string id="20455">Luisteraars</string> <string id="20456">Kies filmset fanart</string> <string id="20457">Filmsets</string> + <string id="20458">Groepeer films in sets</string> <!-- up to 21329 is reserved for the video db !! !--> <string id="21330">Verborgen bestanden en mappen weergeven</string> @@ -1971,7 +1975,7 @@ <string id="21414">Standaard tv-serie scraper</string> <string id="21415">Standaard muziekvideo scraper</string> <string id="21416">Alternatieven toestaan op basis van originele scraper taal</string> - <string id="21417">- Instellingen schermbeveiliging</string> + <string id="21417">- Instellingen</string> <string id="21418">Meertalig</string> <string id="21419">Geen scrapers beschikbaar</string> <string id="21420">Waarde gelijk aan</string> @@ -2009,6 +2013,9 @@ <string id="21452">Add-ons installeren</string> <string id="21453">Rootbestandsysteem</string> + <string id="21454">Cache is vol</string> + <string id="21455">Cache is vol voordat benodigde hoeveelheid is bereikt voor continu afspelen</string> + <string id="21460">Plaats van de ondertitels</string> <string id="21461">Vast</string> <string id="21462">Onderaan video</string> @@ -2326,6 +2333,8 @@ <string id="33102">Event Server</string> <string id="33103">Remote communication server</string> + <string id="33200">Detecteer nieuwe verbinding</string> + <!-- translators: no need to add these to your language files --> <string id="34000">Lame</string> <string id="34001">Vorbis</string> @@ -2349,7 +2358,15 @@ <string id="34201">Kan volgende item niet vinden om af te spelen</string> <string id="34202">Kan vorige item niet vinden om af te spelen</string> - + + <string id="34300">Niet gelukt om zeroconf te starten</string> + <string id="34301">Is Apple's Bonjour Service geinstalleerd? Zie log voor meer info.</string> + <string id="34400">Video Rendering</string> + <string id="34401">Niet gelukt om video filters/scalers initialiseren, terugvallen naar bilinear scaling</string> + <string id="34402"></string> + <string id="34402">Niet gelukt om audio apparaat te initialiseren</string> + <string id="34403">Controleer je audio-instellingen</string> + <string id="35000">Randapparatuur</string> <string id="35001">Generiek HID apparaat</string> @@ -2386,4 +2403,4 @@ <string id="36016">Verbonden</string> <!-- max. 13 characters --> <string id="36017">Adapter gevonden, maar libcec is niet beschikbaar</string> <string id="36018">Gebruik de taalinstelling van de TV</string> -</strings>
\ No newline at end of file +</strings> diff --git a/language/English/strings.xml b/language/English/strings.xml index 323b45aa61..ca2ac4dbba 100644 --- a/language/English/strings.xml +++ b/language/English/strings.xml @@ -874,9 +874,11 @@ <string id="10019">Settings - Appearance</string> <string id="10020">Scripts</string> <string id="10021">Web Browser</string> - + <string id="10025">Videos</string> <string id="10028">Videos/Playlist</string> + <string id="10029">Login screen</string> <string id="10034">Settings - Profiles</string> + <string id="10040">Addon browser</string> <string id="10100">Yes/No dialog</string> <string id="10101">Progress dialog</string> diff --git a/language/French/strings.xml b/language/French/strings.xml index 20a403c1ee..b9075ae062 100644 --- a/language/French/strings.xml +++ b/language/French/strings.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<!--$Revision$--> +<!--Based on English 0ee1ef09238e4d913cf6c47fa18138c3654cd33e (08.02.2012)--> <strings> <string id="0">Programmes</string> <string id="1">Images</string> @@ -11,7 +11,7 @@ <string id="7">Fichiers</string> <string id="8">Météo</string> <string id="9">Xbmc media center</string> - + <string id="11">Lundi</string> <string id="12">Mardi</string> <string id="13">Mercredi</string> @@ -19,7 +19,7 @@ <string id="15">Vendredi</string> <string id="16">Samedi</string> <string id="17">Dimanche</string> - + <string id="21">Janvier</string> <string id="22">Février</string> <string id="23">Mars</string> @@ -32,7 +32,7 @@ <string id="30">Octobre</string> <string id="31">Novembre</string> <string id="32">Décembre</string> - + <string id="41">Lun</string> <string id="42">Mar</string> <string id="43">Mer</string> @@ -40,7 +40,7 @@ <string id="45">Ven</string> <string id="46">Sam</string> <string id="47">Dim</string> - + <string id="51">Jan</string> <string id="52">Fev</string> <string id="53">Mar</string> @@ -53,7 +53,7 @@ <string id="60">Oct</string> <string id="61">Nov</string> <string id="62">Dec</string> - + <string id="71">N</string> <string id="72">NNE</string> <string id="73">NE</string> @@ -71,7 +71,7 @@ <string id="85">NO</string> <string id="86">NNO</string> <string id="87">VAR</string> - + <string id="98">Vue : Auto</string> <string id="99">Vue : Auto Grand</string> <string id="100">Vue : Icônes</string> @@ -88,7 +88,7 @@ <string id="111">Raccourcis</string> <string id="112">PAUSE</string> <string id="113">Echec Mise-à-jour</string> - <string id="114">Echec Installation</string> + <string id="114">Echec Installation</string> <string id="115">Copier</string> <string id="116">Déplacer</string> <string id="117">Effacer</string> @@ -144,13 +144,13 @@ <string id="169">Résolution</string> <string id="170">Ajuster le taux de rafraîchissement sur la vidéo</string> - + <string id="172">Version du</string> <string id="173">Affichage 4:3</string> - + <string id="175">Sonorités</string> <string id="176">Styles</string> - + <string id="179">Chanson</string> <string id="180">Durée</string> <string id="181">Sélectionner un album</string> @@ -172,10 +172,10 @@ <string id="197">Demande d'info sur %s</string> <string id="198">Chargement des détails du film</string> <string id="199">Interface Web</string> - + <string id="202">Critiques</string> <string id="203">Intrigue</string> - + <string id="205">Votes</string> <string id="206">Casting</string> <string id="207">Résumé</string> @@ -193,7 +193,7 @@ <string id="221">Le réseau n'est pas connecté</string> <string id="222">Annuler</string> <string id="224">Vitesse</string> - + <string id="225">Hauteur de l'image</string> <string id="226">Afficher la mire...</string> <string id="227">Rechercher le nom des pistes CD Audio sur freedb.org</string> @@ -215,7 +215,7 @@ <string id="243">Taux de rafraîchissement</string> <string id="244">Plein écran</string> <string id="245">Sizing : (%i,%i)->(%i,%i) (Zoom x%2.2f) AR :%2.2f :1 (Pixels : %2.2f :1)</string> - + <string id="247">Scripts</string> <string id="248">Langue</string> <string id="249">Musique</string> @@ -380,7 +380,7 @@ <string id="418">Min.</string> <string id="419">Max.</string> <string id="420">HDMI</string> - + <string id="422">Supprimer les infos album</string> <string id="423">Supprimer les infos CD</string> <string id="424">Valider</string> @@ -394,7 +394,7 @@ <string id="432">Retirer le film de la médiathèque</string> <string id="433">Êtes-vous sûr(e) de retirer '%s' ?</string> <string id="434">%s à %i %s</string> <!--From <wind dir.> at <speed> <unit>--> - + <string id="437">Disque amovible</string> <string id="438">Ouverture du fichier</string> <string id="439">Cache</string> @@ -438,7 +438,7 @@ <string id="480">Apparence</string> <string id="481">Options Audio</string> <string id="482">À propos de XBMC</string> - + <string id="485">Supprimer l'album</string> <string id="486">Répéter</string> <string id="487">Répéter une fois</string> @@ -466,7 +466,7 @@ <string id="513">Accueil</string> <string id="514">Configuration manuelle</string> <string id="515">Genre</string> - + <string id="517">Albums récemment joués</string> <string id="518">Lancer</string> <string id="519">Lancer en...</string> @@ -499,7 +499,7 @@ <string id="546">Passthrough vers le périphérique de sortie</string> <string id="547">Pas de biographie pour cet artiste</string> <string id="548">Dé-multiplexer l'audio multi-canal en stéréo</string> - + <string id="550">Trier par : %s</string> <string id="551">Nom</string> <string id="552">Date</string> @@ -525,8 +525,9 @@ <string id="572">Studio</string> <string id="573">Chemin</string> <string id="574">Pays</string> - <string id="575">En cours</string> - + <string id="575">En cours</string> + <string id="576">Nombre de Lectures</string> + <string id="580">Direction du tri</string> <string id="581">Méthode du tri</string> <string id="582">Mode de vue</string> @@ -545,22 +546,22 @@ <string id="595">Répéter : Non</string> <string id="596">Répéter : Une fois</string> <string id="597">Répéter : Tous</string> - + <string id="600">Importer le CD</string> <string id="601">Moyenne</string> <string id="602">Standard</string> <string id="603">Excellente</string> <string id="604">Débit constant</string> <string id="605">Importation en cours...</string> - + <string id="607">Destination :</string> <string id="608">Impossible d'importer le CD ou la piste</string> <string id="609">Le chemin CDDA d'importation n'est pas défini.</string> <string id="610">Importer une piste audio</string> <string id="611">Entrer le numéro</string> <string id="612">Bits/Sample</string> - <string id="613">Fréquence d'échantillonage</string> - + <string id="613">Fréquence d'échantillonage</string> + <string id="620">CDs audio</string> <string id="621">Encodeur</string> <string id="622">Qualité</string> @@ -598,26 +599,26 @@ <string id="657">Recherche d'un dossier</string> <string id="658">Information de la chanson</string> <string id="659">Etirement non-linéaire</string> - + <string id="660">Volume d'amplification</string> <string id="661">Choisissez le dossier d'exportation</string> <string id="662">Ce fichier n'est plus disponible.</string> <string id="663">Souhaitez-vous le supprimer de la médiathèque ?</string> <string id="664">Rechercher un script</string> <string id="665">Niveau de compression</string> - + <string id="700">Nettoyage de la médiathèque</string> <string id="701">Suppression des anciens morceaux de la médiathèque</string> <string id="702">Ce dossier a déjà été scanné</string> <string id="705">Réseau</string> <string id="706">- Serveur</string> - + <string id="708">Utiliser un serveur proxy HTTP pour accéder à internet</string> - + <string id="711">Protocole Internet (IP)</string> <string id="712">Port spécifié invalide. Doit être compris entre 1 et 65535.</string> <string id="713">Proxy HTTP</string> - + <string id="715">- Attribution</string> <string id="716">Automatique (DHCP)</string> <string id="717">Manuelle (Statique)</string> @@ -655,12 +656,12 @@ <string id="749">Retourner l'image</string> <string id="750">Êtes-vous sûr(e) ?</string> <string id="751">Supprimer la source</string> - + <string id="754">Ajouter un lien programme</string> <string id="755">Éditer le chemin du programme</string> <string id="756">Éditer le nom du programme</string> <string id="757">Éditer la profondeur du chemin</string> - + <string id="759">Vue : Grande liste</string> <string id="760">Jaune</string> <string id="761">Blanc</string> @@ -692,7 +693,7 @@ <string id="787">Interface désactivée</string> <string id="788">L'interface réseau a été désactivée avec succès.</string> <string id="789">Nom réseau sans fil (ESSID)</string> - + <string id="791">Autoriser le contrôle de XBMC par des programmes locaux</string> <string id="792">Port</string> <string id="793">Port série</string> @@ -701,11 +702,11 @@ <string id="796">Délai répétition continue (ms)</string> <string id="797">Nombre maximum de clients</string> <string id="798">Accès Internet</string> - + <string id="850">Numéro de port invalide</string> <string id="851">Port valide compris entre 1-65535</string> <string id="852">Port valide compris entre 1024-65535</string> - + <string id="998">Ajouter une source musicale...</string> <string id="999">Ajouter une source vidéo...</string> <string id="1000">- Prévisualiser</string> @@ -713,7 +714,7 @@ <string id="1002">XBMC ne peut pas se connecter au chemin réseau.</string> <string id="1003">Vérifiez votre chemin ou votre installation réseau.</string> <string id="1004">Désirez-vous tout de même l'ajouter ?</string> - + <string id="1006">Adresse IP</string> <string id="1007">Ajouter un chemin réseau</string> <string id="1008">Protocole</string> @@ -760,15 +761,15 @@ <string id="1049">Paramètres du Script</string> <string id="1050">Singles</string> <string id="1051">Entrez l'adresse web</string> - + <string id="1200">Client SMB</string> <string id="1202">Groupe de travail</string> <string id="1203">Utilisateur par défaut</string> <string id="1204">Mot de passe par défaut</string> - + <string id="1207">Serveur WINS</string> <string id="1208">Monter les partages SMB</string> - + <string id="1210">Supprimer</string> <string id="1211">Musique</string> <string id="1212">Vidéo</string> @@ -797,20 +798,20 @@ <string id="1250">Auto-détection</string> <string id="1251">Auto-détection du système</string> <string id="1252">Pseudo</string> - + <string id="1254">Demander pour se connecter</string> <string id="1255">Envoyer les Mot de Passe et Nom d'Utilisateur FTP</string> <string id="1256">Temps de réponse (ping)</string> <string id="1257">Souhaitez-vous vous connecter à l'auto-détection du système ?</string> - + <string id="1260">Annoncer ces services à d'autres systèmes via Zéroconf</string> <string id="1270">Autoriser XBMC à recevoir du contenu AirPlay</string> <string id="1271">Nom du dispositif</string> <string id="1272">- Protection par mot de passe</string> - + <string id="1300">Personnaliser le périphérique audio</string> <string id="1301">Personnaliser le périphérique passthrough</string> - + <string id="1396">Dérivant</string> <string id="1397">et</string> <string id="1398">gelant</string> @@ -838,7 +839,7 @@ <string id="1420">Modéré</string> <string id="1421">Très Fort</string> <string id="1422">Venteux</string> - <string id="1423">Brouillard</string> + <string id="1423">Brouillard</string> <!-- strings through to 1450 reserved for weather translation --> @@ -846,12 +847,12 @@ <!-- strings through to 1470 reserved for power-saving --> <string id="2050">Durée</string> - + <string id="2100">Échec du script ! : %s</string> <string id="2101">Nouvelle version requise - Voir le log</string> - + <string id="4501">Activer LCD/VFD</string> - + <string id="10000">Accueil</string> <string id="10001">Programmes</string> <string id="10002">Images</string> @@ -874,19 +875,21 @@ <string id="10019">Paramètres - Apparence</string> <string id="10020">Scripts</string> <string id="10021">Navigateur</string> - + <string id="10025">Vidéos</string> <string id="10028">Vidéos/Playliste</string> + <string id="10029">Écran de connexion</string> <string id="10034">Paramètres - Profils</string> - + <string id="10040">Gestionnaire d'add-ons</string> + <string id="10100">Dialogues Oui/Non</string> <string id="10101">Dialogues Progression</string> - + <string id="10210">Recherche de sous-titres...</string> <string id="10211">Recherche de sous-titres mis en cache...</string> <string id="10212">Finalisation</string> <string id="10213">Mise en cache</string> <string id="10214">Ouverture du flux</string> - + <string id="10500">Musique/Playliste</string> <string id="10501">Musique/Fichiers</string> <string id="10502">Musique/Médiathèque</string> @@ -899,14 +902,14 @@ <string id="10509">Jeux en réseau</string> <string id="10510">Extensions</string> <string id="10511">Infos Système</string> - + <string id="10516">Musique - Médiath.</string> <string id="10517">Musique - Lecture en cours</string> - + <string id="10522">Vidéos - Lecture en cours</string> <string id="10523">Infos Album</string> <string id="10524">Infos Film</string> - + <string id="12000">Choisir un dialogue</string> <string id="12001">Musique/info</string> <string id="12002">Dialogues OK</string> @@ -914,7 +917,7 @@ <string id="12004">Scripts/Info</string> <string id="12005">Vidéo plein écran</string> <string id="12006">Visualisation audio</string> - + <string id="12008">Dialogue empiler fichiers</string> <string id="12009">Reconstruire l'index...</string> <string id="12010">Revenir à l'écran musique</string> @@ -922,7 +925,7 @@ <string id="12021">Reprendre depuis le début</string> <string id="12022">Reprendre à partir de %s</string> - + <string id="12310">0</string> <string id="12311">1</string> <string id="12312">2</string> @@ -977,19 +980,19 @@ <string id="12384">Horloge 24 Heures</string> <string id="12385">Jour/Mois</string> <string id="12386">Mois/Jour</string> - + <string id="12390">Système démarré depuis</string> <string id="12391">minutes</string> <string id="12392">heures</string> <string id="12393">jours</string> <string id="12394">Temps de fonctionnement total</string> <string id="12395">Niveau de batterie</string> - + <string id="12600">Météo</string> - + <string id="12900">Écran de veille</string> <string id="12901">Réglages plein écran</string> - + <string id="13000">Système</string> <string id="13001">Ralentissement immédiat du DD</string> <string id="13002">Vidéo seulement</string> @@ -1006,14 +1009,14 @@ <string id="13014">Minimiser</string> <string id="13015">Action du bouton Power</string> <string id="13016">Arrêt du système</string> - + <string id="13020">Une autre session est en cours, peut être en ssh ?</string> <string id="13021">Disque dur externe monté</string> <string id="13022">Déconnexion non sécurisée du périphérique</string> <string id="13023">Périphérique déconnecté avec succès</string> <string id="13024">Manette connectée</string> <string id="13025">Manette déconnectée</string> - + <string id="13050">Batterie faible</string> <string id="13100">Filtre de scintillement</string> @@ -1026,12 +1029,12 @@ <string id="13109">Tester & appliquer la résolution</string> <string id="13110">Appliquer cette résolution ?</string> <string id="13111">Voulez-vous garder cette résolution ?</string> - + <string id="13112">Upscaling Haute Qualité</string> <string id="13113">Désactivé</string> <string id="13114">Activé pour contenu SD</string> <string id="13115">Toujours activé</string> - + <string id="13116">Méthode d'Upscaling</string> <string id="13117">Bicubique</string> <string id="13118">Lanczos</string> @@ -1039,31 +1042,31 @@ <string id="13120">VDPAU</string> <string id="13121">VDPAU niveau Upscaling HQ</string> <string id="13122">VDPAU niveau Studio conversion des couleurs</string> - + <string id="13130">Vider les autres écrans</string> <string id="13131">Désactivé</string> <string id="13132">Activer Blanking</string> - + <string id="13140">Connexions actives détectées !</string> <string id="13141">Si vous continuez vous ne serez plus en mesure de</string> <string id="13142"> contrôler XBMC. Etes-vous sur d'arréter le serveur ?</string> - + <string id="13144">Changer le mode Apple Remote ?</string> <string id="13145">Si vous utilisez actuellement la télécommande Apple pour contrôler</string> <string id="13146">XBMC, le changement de ce paramètre peut affecter la capacité</string> <string id="13147">à contrôler celui-ci. Effectuer la modification ?</string> - + <string id="13159">Masque de sous-réseau</string> <string id="13160">Passerelle</string> <string id="13161">DNS Primaire</string> <string id="13162">Échec lors de l'initialisation</string> - + <string id="13170">Jamais</string> <string id="13171">Immédiatement</string> <string id="13172">Après %i secs</string> <string id="13173">HDD Installé le :</string> <string id="13174">HDD Nb. de cycles marche/arrêt complets :</string> - + <string id="13200">Profils</string> <string id="13201">Supprimer le profil '%s' ?</string> <string id="13204">Dernier profil chargé</string> @@ -1076,16 +1079,16 @@ <string id="13212">Annulé avec %im%is restantes</string> <string id="13213">%2.0fm</string> <!--minutes (left from countdown)--> <string id="13214">%2.0fs</string> <!--seconds (left from countdown)--> - + <string id="13249">Recherche de sous-titres dans les RARs</string> <string id="13250">Recherche d'un sous-titre...</string> <string id="13251">Déplacer</string> <string id="13252">Déplacer ici</string> <string id="13253">Annuler le déplacement</string> - + <string id="13270">Matériel :</string> <string id="13271">Utilisation CPU :</string> - + <string id="13274">Connecté, mais aucun DNS disponible.</string> <string id="13275">Disque Dur</string> <string id="13276">DVD-ROM</string> @@ -1094,7 +1097,7 @@ <string id="13279">Réseau</string> <string id="13280">Vidéo</string> <string id="13281">Matériel</string> - + <string id="13283">Système d'exploitation :</string> <string id="13284">Vitesse du CPU :</string> @@ -1228,7 +1231,7 @@ <string id="13430">Activer l'accélération matérielle (OpenMax)</string> <string id="13431">Pixel Shaders</string> <string id="13432">Autoriser l'accélération matérielle (VideoToolbox)</string> - + <string id="13500">Méthode de synchro. A/V</string> <string id="13501">Horloge audio</string> <string id="13502">Horloge vidéo (Drop/Dupe audio)</string> @@ -1245,20 +1248,20 @@ <string id="13551">Off</string> <string id="13552">%.1f Seconde</string> <string id="13553">%.1f Secondes</string> - + <string id="13600">Télécommande Apple</string> - + <string id="13602">Permettre le démarrage de XBMC par la télécommande</string> <string id="13603">Temps de délai de séquence</string> - + <string id="13610">Désactivé</string> <string id="13611">Standard</string> <string id="13612">Télécommande universelle</string> <string id="13613">Télécommande multiple (Harmony)</string> - + <string id="13620">Erreur Apple Remote.</string> <string id="13621">Le support de la télécommande Apple ne peut être activé.</string> - + <string id="14000">Empiler</string> <string id="14001">Dépiler</string> <string id="14003">Téléchargement de la playliste...</string> @@ -1266,7 +1269,7 @@ <string id="14005">Scan de la liste des flux...</string> <string id="14006">Échec du téléchargement de la liste des flux</string> <string id="14007">Échec du téléchargement de la playliste</string> - + <string id="14009">Répertoire des jeux</string> <string id="14010">Basculement des vignettes basées sur</string> <string id="14011">Activer le basculement</string> @@ -1293,12 +1296,12 @@ <string id="14034">Cache DVD - DVDRom</string> <string id="14035">- Réseau Local</string> <string id="14036">Services</string> - + <string id="14038">Les paramètres réseau ont été changés</string> <string id="14039">Vous venez de modifier les paramètres réseau.</string> <string id="14040">Redémarrer XBMC pour appliquer les changements ?</string> <string id="14041">Limiter la bande passante de la connexion Internet</string> - + <string id="14043">- Eteindre pendant la lecture</string> <string id="14044">%i min</string> <string id="14045">%i sec</string> @@ -1310,7 +1313,7 @@ <string id="14051">Format de l'heure</string> <string id="14052">Format de la date</string> <string id="14053">Filtres Interface</string> - + <string id="14055">Utiliser le scan en tâche de fond</string> <string id="14056">Stopper le scan</string> <string id="14057">Impossible d'afficher les infos lors du scan</string> @@ -1328,7 +1331,7 @@ <string id="14069">Voulez-vous appliquer cette configuration ?</string> <string id="14070">Appliquer les changements maintenant</string> <string id="14071">Permettre de renommer et supprimer</string> - + <string id="14074">Définir le fuseau horaire</string> <string id="14075">Ajuster l'horloge pour l'observation auto. de l'heure d'été</string> <string id="14076">Ajouter aux favoris</string> @@ -1351,27 +1354,27 @@ <string id="14093">Sécurité</string> <string id="14094">Périphériques</string> <string id="14095">Gestion de l'énergie</string> - + <string id="15015">Supprimer</string> <string id="15016">Jeux</string> - + <string id="15019">Ajouter</string> - + <string id="15052">Mot de passe</string> - + <string id="15100">Médiathèque</string> <string id="15101">Base de données</string> <string id="15102">* Tous les albums</string> <string id="15103">* Tous les artistes</string> <string id="15104">* Toutes les chansons</string> <string id="15105">* Tous les genres</string> - + <string id="15107">Mise en cache...</string> <string id="15108">Sons de navigation</string> <string id="15109">Skin par défaut</string> <string id="15111">- Thème</string> <string id="15112">Thème par défaut</string> - + <string id="15200">Last.fm</string> <string id="15201">Soumettre les chansons à Last.fm</string> <string id="15202">Nom d'utilisateur Last.fm</string> @@ -1394,7 +1397,7 @@ <string id="15219">Mot de passe Libre.fm</string> <string id="15220">Libre.fm</string> <string id="15221">Soumettre un titre</string> - + <string id="15250">Soumettre la radio Last.fm à Last.fm</string> <string id="15251">Connexion à Last.fm...</string> <string id="15252">Sélection de la station...</string> @@ -1444,21 +1447,21 @@ <string id="15296">Réhabiliter</string> <string id="15297">Voulez-vous supprimer ce morceau de vos coups de coeur ?</string> <string id="15298">Voulez-vous réhabiliter ce morceau ?</string> - + <string id="15300">Chemin non trouvé ou invalide</string> <string id="15301">Impossible de se connecter au serveur</string> <string id="15302">Serveur non trouvé</string> <string id="15303">Groupe de travail non trouvé</string> - + <string id="15310">Ouverture des sources multi-chemin</string> <string id="15311">Chemin :</string> - + <string id="16000">Général</string> - + <string id="16002">Recherche internet</string> <string id="16003">Lecteur</string> <string id="16004">Jouer les médias depuis le disque</string> - + <string id="16008">Saisissez le nouveau titre</string> <string id="16009">Saisissez le nom du film</string> <string id="16010">Saisissez le nom du profil</string> @@ -1493,14 +1496,14 @@ <string id="16039">Off</string> <string id="16040">Auto</string> <string id="16041">On</string> - + <string id="16100">Toutes les vidéos</string> <string id="16101">Non vues</string> <string id="16102">Vues</string> <string id="16103">Marquer comme vue</string> <string id="16104">Marquer comme non vue</string> <string id="16105">Éditer le titre</string> - + <string id="16200">Opération annulée</string> <string id="16201">La copie a échouée</string> <string id="16202">Un ou plusieurs fichiers n’ont pas été copiés</string> @@ -1508,7 +1511,7 @@ <string id="16204">Un ou plusieurs fichiers n’ont pas été déplacés</string> <string id="16205">La suppression a échoué</string> <string id="16206">Un ou plusieurs fichiers n’ont pas été supprimés</string> - + <string id="16300">Méthode de mise à l'échelle</string> <string id="16301">La plus proche</string> <string id="16302">Bilinéaire</string> @@ -1536,26 +1539,26 @@ <string id="16324">Software Blend</string> <string id="16400">Post-processing Vidéo</string> - + <string id="17500">Afficher le temps avant la mise en veille</string> <string id="17997">%i Mo</string> <string id="17998">%i heures</string> <string id="17999">%i jours</string> - + <string id="19000">Changer de canal</string> - + <string id="20000">Dossier des enregistrements musique</string> <string id="20001">Utiliser un lecteur DVD externe</string> <string id="20002">Lecteur DVD externe</string> <string id="20003">Dossier des trainers</string> <string id="20004">Dossier des captures d'écran</string> - + <string id="20006">Dossier des playlistes</string> <string id="20007">Enregistrements</string> <string id="20008">Captures d'écran</string> <string id="20009">Utiliser XBMC</string> - + <string id="20011">Playlistes musicales</string> <string id="20012">Playlistes vidéo</string> <string id="20013">Voulez-vous lancer le jeu ?</string> @@ -1565,14 +1568,14 @@ <string id="20017">Locale</string> <string id="20018">Aucune</string> <string id="20019">Choisir une vignette</string> - + <!-- string id 20022 will always be set to an empty string (LocalizeStrings.cpp)--> <string id="20022"></string> <string id="20023">Conflit</string> <string id="20024">Scanner les nouveaux</string> <string id="20025">Tout scanner</string> <string id="20026">Région</string> - + <!-- string id's 20027 thru 20034 are reserved for temperature strings (LocalizeStrings.cpp)--> <string id="20037">Sommaire</string> @@ -1594,7 +1597,7 @@ <string id="20053">Vous quittez le mode Admin.</string> <string id="20054">Vous entrez en mode Admin.</string> <string id="20055">Vignette Allmusic.com</string> - + <string id="20057">Supprimer la vignette</string> <string id="20058">Ajouter un profil...</string> <string id="20059">Infos pour tous les albums</string> @@ -1729,14 +1732,14 @@ <string id="20190">Personnaliser</string> <string id="20191">Activer le mode debug</string> <string id="20192">Télécharger les infos supplémentaires lors des mises à jour</string> - <string id="20193">Service d'informations par défaut - Album</string> + <string id="20193">Service d'informations par défaut - Album</string> <string id="20194">Service d'informations par défaut - Artiste</string> <string id="20195">Changer le scraper</string> <string id="20196">Exporter la médiathèque musicale</string> <string id="20197">Importer une médiathèque musicale</string> <string id="20198">Aucun artiste trouvé !</string> <string id="20199">Échec du téléchargement des infos Artiste</string> - + <!-- string id's 20200 thru 20211 are reserved for speedstrings (LocalizeStrings.cpp)--> <string id="20250">C'est Party ! (vidéos)</string> @@ -1751,13 +1754,13 @@ <string id="20259">Network Filesystem (NFS)</string> <string id="20260">Secure Shell (SSH/SFTP)</string> <string id="20261">Apple File Protocol (AFP)</string> - + <string id="20300">Dossier Server Web (HTTP)</string> <string id="20301">Dossier Server Web (HTTPS)</string> <string id="20302">Impossible d'écrire dans le dossier</string> <string id="20303">Voulez-vous passer et continuer ?</string> <string id="20304">Flux RSS</string> - + <string id="20307">DNS secondaire</string> <string id="20308">Serveur DHCP</string> <string id="20309">Créer un nouveau dossier</string> @@ -1774,7 +1777,7 @@ <string id="20326">Ceci remettra à zéro les valeurs de calibrage pour %s</string> <string id="20327">aux valeurs par défaut.</string> <string id="20328">Parcourir pour une destination</string> - + <string id="20329">Chaque film dans un dossier séparé, libellé avec son titre</string> <string id="20330">Consultation avec les noms des dossiers</string> <string id="20331">Fichier</string> <string id="20332">Utiliser le nom des dossiers ou fichiers pour la consultation ?</string> @@ -1849,7 +1852,7 @@ <string id="20401">Jouer le clip</string> <string id="20402">Télécharger les vignettes d'acteurs lors de l'ajout à la médiathèque</string> <string id="20403">Définir la vignette Acteur</string> - + <string id="20405">Supprimer le signet d'épisode</string> <string id="20406">Créer un signet d'épisode</string> <string id="20407">Paramètres du scraper</string> @@ -1880,7 +1883,7 @@ <string id="20431">Écraser les anciens fichiers ?</string> <string id="20432">Exclure le chemin de la MAJ médiathèque</string> <string id="20433">Extraire les vignettes et les informations vidéo</string> - <string id="20434">Groupes</string> + <string id="20434">Sagas</string> <string id="20435">Définir une vignette de saga</string> <string id="20436">Exporter les vignettes acteur</string> <string id="20437">Choisir un fanart</string> @@ -1901,13 +1904,14 @@ <string id="20452">épisode</string> <string id="20453">épisodes</string> <string id="20454">Auditeur</string> - <string id="20455">Auditeurs</string> + <string id="20455">Auditeurs</string> <string id="20456">Choisir le Fanart de la saga</string> <string id="20457">Saga</string> + <string id="20458">Grouper les films en saga</string> <!-- up to 21329 is reserved for the video db !! !--> <string id="21330">Afficher les dossiers et les fichiers cachés</string> - + <string id="21331">Client TuxBox</string> <string id="21332">AVERTISSEMENT : le dispositif TuxBox est en mode d'enregistrement !</string> <string id="21333">Le flux sera arrêté !</string> @@ -1919,7 +1923,7 @@ <string id="21359">Ajouter un partage média...</string> <string id="21360">Partager les médiathèques vidéos et musique via l'UPnP</string> - + <string id="21364">Éditer le partage média</string> <string id="21365">Effacer le partage média</string> <string id="21366">Dossier de sous-titres</string> @@ -2010,6 +2014,8 @@ <string id="21451">Connexion Internet requise.</string> <string id="21452">Plus...</string> <string id="21453">Racine</string> + <string id="21454">Cache plein</string> + <string id="21455">Cache rempli mais insuffisant pour une lecture continue</string> <string id="21460">Emplacement du sous-titre</string> <string id="21461">Fixe</string> @@ -2017,7 +2023,7 @@ <string id="21463">Sous la vidéo</string> <string id="21464">En haut de la vidéo</string> <string id="21465">Au-dessus de la vidéo</string> - + <string id="21800">Nom du fichier</string> <string id="21801">Répertoire du fichier</string> <string id="21802">Taille du fichier</string> @@ -2027,7 +2033,7 @@ <string id="21806">Commentaire</string> <string id="21807">Couleur/N&B</string> <string id="21808">Traitement JPEG</string> - + <string id="21820">Date/Heure</string> <string id="21821">Description</string> <string id="21822">Marque de l'appareil</string> @@ -2052,7 +2058,7 @@ <string id="21841">Longitude GPS</string> <string id="21842">Altitude GPS</string> <string id="21843">Orientation</string> - + <string id="21860">Catégories supplémentaires</string> <string id="21861">Mots-clés</string> <string id="21862">Légende</string> @@ -2094,14 +2100,14 @@ <string id="21898">Années actives</string> <string id="21899">Label(s)</string> <string id="21900">Naissance/Création</string> - + <!-- strings 21900 thru 21999 reserved for slideshow info --> <string id="22000">Actualiser la médiathèque au démarrage</string> <string id="22001">Masquer l'avancement lors de la màj de la mediathèque</string> <string id="22002">- Suffixe DNS</string> - - <string id="22003">%2.3fs</string> + + <string id="22003">%2.3fs</string> <string id="22004">Retarder de : %2.3fs</string> <string id="22005">Avancer de : %2.3fs</string> <string id="22006">Décalage sous-titres</string> @@ -2123,7 +2129,7 @@ <string id="22022">Afficher les fichiers vidéo dans les listes</string> <string id="22023">Vendor DirectX :</string> <string id="22024">Version Direct3D :</string> - + <!-- strings 22030 thru 22060 reserved for karaoke --> <string id="22030">Police</string> <string id="22031">- Taille</string> @@ -2145,26 +2151,26 @@ <string id="22081">Afficher Infos</string> <string id="22082">Plus...</string> <string id="22083">Tout jouer</string> - + <string id="23049">Teletext non disponible</string> <string id="23050">Activer le télétexte</string> <string id="23051">Partie %i</string> <string id="23052">%i octets mis en cache</string> <string id="23053">Arrêt en cours</string> <string id="23054">Lecture en cours</string> - + <!-- strings 23100 thru 23150 reserved for external player --> <string id="23100">Lecteur externe actif</string> <string id="23101">Cliquez sur OK pour arrêter le lecteur</string> - + <string id="23104">Cliquez sur OK lorsque la lecture est terminée</string> - + <!-- strings 24000 thru 24299 reserved for the Add-ons framework --> <string id="24000">Add-on</string> <string id="24001">Add-ons</string> <string id="24002">Options Add-on</string> <string id="24003">Infos Add-on</string> - + <string id="24005">Sources media</string> <string id="24007">Infos Film</string> <string id="24008">Ecran de veille</string> @@ -2178,7 +2184,7 @@ <string id="24016">Infos album</string> <string id="24017">Infos artiste</string> <string id="24018">Services</string> - + <string id="24020">Configurer</string> <string id="24021">Désactiver</string> <string id="24022">Activer</string> @@ -2221,35 +2227,37 @@ <string id="24067">Téléchargements en cours</string> <string id="24068">Mise-à-jour disponible</string> <string id="24069">Mise-à-jour</string> - + <string id="24070">L'Add-on n'a pu être chargé.</string> <string id="24071">Une erreur inconnue rencontrée.</string> <string id="24072">Paramètres obligatoires</string> <string id="24073">Connexion impossible</string> <string id="24074">Redémarrage requis</string> <string id="24075">Désactiver</string> + <string id="24076">Add-on requis</string> <string id="24080">Tenter la reconnexion ?</string> <string id="24089">Redémarrage de l'Add-on</string> <string id="24090">Verrouiller le gestionnaire d'Add-on</string> - + <string id="24094">(actuel)</string> <string id="24095">(sur liste noire)</string> <string id="24096">Le dépot indique cet add-on comme inutilisable.</string> <string id="24097">Voulez-vous le désactiver sur votre système ?</string> <string id="24098">Cassé</string> <string id="24099">Voulez-vous basculer vers ce thème ?</string> + <string id="24100">Pour utiliser cette fonctionnalité, vous devez télécharger un Add-on :</string> + <string id="24101">Voulez-vous télécharger cet Add-on ?</string> <string id="25000">Notifications</string> - + <!-- strings 29800 thru 29998 reserved strings used only in the default Project Mayhem III skin and not c++ code --> <string id="29800">Médiathèque</string> <string id="29801">Clavier QWERTY</string> <string id="29802">Passthrough Audio en cours</string> - + <!-- strings 30000 thru 30999 reserved for plugins and plugin settings --> <!-- strings 31000 thru 31999 reserved for skins --> <!-- strings 32000 thru 32999 reserved for scripts --> <!-- strings 33000 thru 33999 reserved for common strings used in Add-ons --> - <string id="30011">Chercher la durée</string> <string id="33001">Qualité du trailer</string> <string id="33002">Flux</string> <string id="33003">Télécharger</string> @@ -2260,6 +2268,7 @@ <string id="33008">Enregistrement en cours</string> <string id="33009">Copie en cours</string> <string id="33010">Définir le répertoire de téléchargement</string> + <string id="33011">Durée de la recherche</string> <string id="33012">Court</string> <string id="33013">Long</string> <string id="33014">Utiliser le lecteur DVD au lieu du lecteur habituel</string> @@ -2321,12 +2330,14 @@ <string id="33081">Ce fichier est empilé, sélectionnez la partie que vous souhaitez lire.</string> <string id="33082">Chemin du script</string> <string id="33083">Activer le bouton de script personnalisé</string> - + <string id="33100">Echec du lancement</string> <string id="33101">Serveur Web</string> <string id="33102">Serveur d'évènement</string> <string id="33103">Communication à distance avec le serveur</string> + <string id="33200">Nouvelle connexion détectée</string> + <!-- translators : no need to add these to your language files --> <string id="34000">Lame</string> <string id="34001">Vorbis</string> @@ -2334,7 +2345,7 @@ <string id="34003">DXVA2</string> <string id="34004">VAAPI</string> <string id="34005">Flac</string> - + <string id="34100">Configuration des Haut-Parleurs</string> <string id="34101">2.0</string> <string id="34102">2.1</string> @@ -2350,7 +2361,15 @@ <string id="34201">Aucun média à suivre</string> <string id="34202">Aucun média précédent</string> - + + <string id="34300">Échec du démarrage zeroconf</string> + <string id="34301">Est-ce que le service d'Apple Bonjour est installé ? Consultez le log pour plus d'infos.</string> + + <string id="34400">Rendu Vidéo</string> + <string id="34401">Échec du filtre/redimensionnement vidéo, utilisation du redimensionnement bilinéaire à la place</string> + <string id="34402">Échec d'initialisation du périphérique audio</string> + <string id="34403">Vérifiez vos paramètres audio</string> + <string id="35000">Périphériques</string> <string id="35001">Périphérique HID générique</string> @@ -2367,7 +2386,7 @@ <string id="35502">Nom</string> <string id="35503">Vendor</string> <string id="35504">ID du produit</string> - + <string id="36000">Adaptateur CEC Pulse-Eight</string> <string id="36001">Nyxboard Pulse-Eight</string> <string id="36002">Basculer le contrôle côté clavier</string> @@ -2386,5 +2405,5 @@ <string id="36015">Numéro de port HDMI</string> <string id="36016">Connecté</string> <!-- max. 13 characters --> <string id="36017">Adaptateur trouvé, mais libcec indisponible</string> - <string id="36018">Utiliser le paramètre de langage de la TV.</string> + <string id="36018">Utiliser le paramètre de langage de la TV.</string> </strings> diff --git a/language/German/strings.xml b/language/German/strings.xml index 36aa789569..94b203e9fc 100644 --- a/language/German/strings.xml +++ b/language/German/strings.xml @@ -883,7 +883,9 @@ <string id="10021">Webbrowser</string> <string id="10028">Videos/Playlisten</string> + <string id="10029">Anmeldebildschirm</string> <string id="10034">Einstellungen->Profile</string> + <string id="10040">Addon-Browser</string> <string id="10100">Ja/Nein Dialog</string> <string id="10101">Fortschrittsanzeige</string> @@ -1802,6 +1804,7 @@ <string id="20326">Dies setzt den Kalibrierwert für %s</string> <string id="20327">auf den Standardwert zurück</string> <string id="20328">Nach einem Speicherort durchsuchen...</string> + <string id="20329">Filme sind in seperaten Ordnern, welche Filmtitel entsprechen</string> <string id="20330">Ordnernamen für Anfragen verwenden</string> <string id="20331">Dateinamen</string> @@ -1892,7 +1895,7 @@ <string id="20416">Erstausstrahlung</string> <string id="20417">Autor</string> <string id="20418"></string> - <string id="20419">Metadaten im Datei-Modus anzeigen</string> + <string id="20419">Ersetze Dateinamen durch Datenbankeinträge</string> <string id="20420">Nie</string> <string id="20421">Nur bei einer Staffel</string> @@ -1931,6 +1934,7 @@ <string id="20456">Filmset Fanart setzen</string> <string id="20457">Zusammenstellung</string> + <string id="20458">Gruppiere Filme nach Zusammenstellungen</string> <string id="21330">Versteckte Ordner und Dateien anzeigen</string> <string id="21331">TuxBox Client</string> diff --git a/language/Greek/strings.xml b/language/Greek/strings.xml index 6aa05bd9f7..b3346270a7 100644 --- a/language/Greek/strings.xml +++ b/language/Greek/strings.xml @@ -1,10 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<!--Language file translated with Team XBMC Translator--> -<!--Translator: Ydatografida--> -<!--Email: ydatografida@gmail.com--> -<!--Date of translation: 12/25/2011--> -<!--$Revision$--> -<!--Based on english strings version 1E+42--> +<!--$Revision$--> <!--Translator: Ydatografida / Email: ydatografida@gmail.com / Date of translation: 12/25/2011 / Last update (by CutSickAss): 14/02/2012 / Based on english strings version 1E+42--> <strings> <string id="0">Εφαρμογές</string> <string id="1">Φωτογραφίες</string> @@ -16,6 +11,7 @@ <string id="7">Διαχείριση αρχείων</string> <string id="8">Καιρός</string> <string id="9">xbmc media center</string> + <string id="11">Δευτέρα</string> <string id="12">Τρίτη</string> <string id="13">Τετάρτη</string> @@ -23,6 +19,7 @@ <string id="15">Παρασκευή</string> <string id="16">Σάββατο</string> <string id="17">Κυριακή</string> + <string id="21">Ιανουαρίου</string> <string id="22">Φεβρουαρίου</string> <string id="23">Μαρτίου</string> @@ -35,6 +32,7 @@ <string id="30">Οκτωβρίου</string> <string id="31">Νοεμβρίου</string> <string id="32">Δεκεμβρίου</string> + <string id="41">Δευ</string> <string id="42">Τρι</string> <string id="43">Τετ</string> @@ -42,6 +40,7 @@ <string id="45">Παρ</string> <string id="46">Σαβ</string> <string id="47">Κυρ</string> + <string id="51">Ιαν</string> <string id="52">Φεβ</string> <string id="53">Μαρ</string> @@ -54,6 +53,7 @@ <string id="60">Οκτ</string> <string id="61">Νοε</string> <string id="62">Δεκ</string> + <string id="71">Β</string> <string id="72">ΒΒΑ</string> <string id="73">ΒΑ</string> @@ -71,6 +71,7 @@ <string id="85">ΒΔ</string> <string id="86">ΒΒΔ</string> <string id="87">ΔΙΑΦ</string> + <string id="98">Προβολή: Αυτόματη</string> <string id="99">Προβολή: Εικόνες</string> <string id="100">Προβολή: Εικονίδια</string> @@ -140,12 +141,16 @@ <string id="164">Δεν υπάρχει δίσκος</string> <string id="165">Υπάρχει δίσκος</string> <string id="166">Κέλυφος</string> + <string id="169">Ανάλυση</string> <string id="170">Προσαρμογή του ρυθμού ανανέωσης</string> + <string id="172">Ημερομηνία κυκλοφορίας</string> <string id="173">Προβολή των βίντεο με αναλογία 4:3 ως</string> + <string id="175">Διάθεση</string> <string id="176">Στυλ</string> + <string id="179">Τραγούδι</string> <string id="180">Διάρκεια</string> <string id="181">Επιλογή άλμπουμ</string> @@ -167,8 +172,10 @@ <string id="197">Αναζήτηση πληροφοριών %s</string> <string id="198">Φόρτωση πληροφοριών ταινίας</string> <string id="199">Διεπαφή ιστού</string> + <string id="202">Σύνθημα</string> <string id="203">Περίληψη πλοκής</string> + <string id="205">Ψήφοι</string> <string id="206">Ρόλοι και ηθοποιοί</string> <string id="207">Πλοκή</string> @@ -181,7 +188,7 @@ <string id="216">Ποσοστό μεγέθυνσης</string> <string id="217">Λόγος εικονοστοιχείων</string> <string id="218">Μονάδα DVD</string> - <string id="219">Παρακαλώ, εισάγετε δίσκο</string> + <string id="219">Παρακαλώ εισάγετε δίσκο</string> <string id="220">Απομακρυσμένος κοινόχρηστος πόρος</string> <string id="221">Το δίκτυο είναι αποσυνδεμένο</string> <string id="222">Άκυρο</string> @@ -206,7 +213,8 @@ <string id="242">Σε παράθυρο</string> <string id="243">Ανανέωση βαθμολογίας</string> <string id="244">Πλήρης οθόνη</string> - <string id="245">Μέγεθος: (%i,%i)->(%i,%i) (Εστίαση x%2.2f) AR:%2.2f:1 (Εινονοστοιχεία: %2.2f:1) (ΚΜετατόπιση: %2.2f)</string> + <string id="245">Μέγεθος: (%i,%i)->(%i,%i) (Εστίαση x%2.2f) AR:%2.2f:1 (Εικονοστοιχεία: %2.2f:1) (ΚΜετατόπιση: %2.2f)</string> + <string id="247">Scripts</string> <string id="248">Γλώσσα</string> <string id="249">Μουσική</string> @@ -237,7 +245,7 @@ <string id="274">Θέση υποτίτλων</string> <string id="275">Ρύθμιση λόγου εικονοστοιχείων</string> <string id="276">Μετακινήστε το βέλος για να αλλάξετε το μέγεθος του ορατού πλαισίου</string> - <string id="277">Μετακινήστε την μπάρα για να αλλάξει η θέση των υποτίτλων</string> + <string id="277">Μετακινήστε τη μπάρα για να αλλάξει η θέση των υποτίτλων</string> <string id="278">Αλλάξτε το σχήμα ώστε να είναι τέλειο τετράγωνο</string> <string id="279">Αδυναμία φόρτωσης των ρυθμίσεων</string> <string id="280">Χρησιμοποίηση προεπιλεγμένων ρυθμίσεων</string> @@ -245,6 +253,7 @@ <string id="282">Βρέθηκαν %i αντικείμενα</string> <string id="283">Αποτελέσματα αναζήτησης</string> <string id="284">Δεν βρέθηκαν αποτελέσματα</string> + <string id="287">Υπότιτλοι</string> <string id="288">Γραμματοσειρά</string> <string id="289">- Μέγεθος</string> @@ -256,14 +265,15 @@ <string id="296">Απαλοιφή</string> <string id="297">Καθυστέρηση ήχου</string> <string id="298">Σελιδοδείκτες</string> - <string id="299">- Δέκτης ικανός για αναπαραγωγή AAC </string> + <string id="299">- Δέκτης ικανός για αναπαραγωγή AAC</string> <string id="300">- Δέκτης ικανός για αναπαραγωγή MP1</string> - <string id="301">- Δέκτης ικανός για αναπαραγωγή MP2 </string> + <string id="301">- Δέκτης ικανός για αναπαραγωγή MP2</string> <string id="302">- Δέκτης ικανός για αναπαραγωγή MP3</string> <string id="303">Καθυστέρηση</string> <string id="304">Γλώσσα</string> <string id="305">Ενεργό/ή</string> <string id="306">Μη-διαστρωματωμένο</string> + <string id="312">(0=αυτόματα)</string> <string id="313">Εκκαθάριση βάσης δεδομένων</string> <string id="314">Προετοιμασία...</string> @@ -356,6 +366,7 @@ <string id="404">Άνεμος</string> <string id="405">Σημείο δρόσου</string> <string id="406">Υγρασία</string> + <string id="409">Προεπιλεγμένα</string> <string id="410">Πρόσβαση στο Weather.com</string> <string id="411">Πληροφορίες καιρού:</string> @@ -368,6 +379,7 @@ <string id="418">Ελαχ.</string> <string id="419">Μεγ.</string> <string id="420">HDMI</string> + <string id="422">Διαγραφή πληροφοριών άλμπουμ</string> <string id="423">Διαγραφή πληροφοριών CD</string> <string id="424">Επιλογή</string> @@ -380,7 +392,8 @@ <string id="431">Δεν υπάρχει ελεύθερη λανθάνουσα μνήμη</string> <string id="432">Διαγραφή ταινίας από τη συλλογή</string> <string id="433">Να διαγραφεί '%s';</string> - <string id="434">Από %s με ένταση %i %s</string> + <string id="434">Από %s με ένταση %i %s</string> <!--From <wind dir.> at <speed> <unit>--> + <string id="437">Αφαιρούμενος δίσκος</string> <string id="438">Άνοιγμα αρχείου</string> <string id="439">Λανθάνουσα μνήμη</string> @@ -391,7 +404,7 @@ <string id="444">Βίντεο</string> <string id="445">Ήχος</string> <string id="446">DVD</string> - <string id="447">Αυτόματη εκκίνηση πολυμέσων </string> + <string id="447">Αυτόματη εκκίνηση πολυμέσων</string> <string id="448">LCD</string> <string id="449">Ενεργό/ή</string> <string id="450">Στήλες</string> @@ -419,11 +432,12 @@ <string id="475">Μουσική μόνο</string> <string id="476">Μουσική & βίντεο</string> <string id="477">Αδυναμία φόρτωσης της λίστας αναπαραγωγής</string> - <string id="478">Aπεικόνισεις οθόνης (OSD)</string> + <string id="478">Aπεικονίσεις οθόνης (OSD)</string> <string id="479">Κέλυφος & γλώσσα</string> <string id="480">Εξατομίκευση</string> <string id="481">Ιδιότητες ήχου</string> <string id="482">Περί XBMC</string> + <string id="485">Διαγραφή άλμπουμ</string> <string id="486">Επανάληψη</string> <string id="487">Επανάληψη του ιδίου</string> @@ -442,7 +456,7 @@ <string id="501">Αναζήτηση για ονόματα άλμπουμ...</string> <string id="502">Άνοιγμα</string> <string id="503">Απασχολημένο</string> - <string id="504">Κενός </string> + <string id="504">Κενός</string> <string id="505">Φόρτωση πληροφοριών πολυμέσων...</string> <string id="507">Ταξιν: Χρήση</string> <string id="510">Ενεργοποίηση απεικονίσεων</string> @@ -451,9 +465,11 @@ <string id="513">Αρχική οθόνη</string> <string id="514">Χειροκίνητες ρυθμίσεις</string> <string id="515">Είδος</string> + <string id="517">Πρόσφατα εκτελεσθέντα άλμπουμ</string> <string id="518">Εκκίνηση</string> <string id="519">Εκκίνηση σε...</string> + <string id="521">Συλλογές</string> <string id="522">Απομάκρυνση πηγής</string> <string id="523">Εναλλαγή πολυμέσων</string> @@ -482,6 +498,7 @@ <string id="546">Συσκευή εξόδου διέλευσης</string> <string id="547">Δεν υπάρχει βιογραφία γι΄ αυτόν τον καλλιτέχνη</string> <string id="548">Υποβιβασμός πολυκάναλου ήχου σε στερεοφωνικό</string> + <string id="550">Κατάταξη: %s</string> <string id="551">Όνομα</string> <string id="552">Ημερομηνία</string> @@ -509,6 +526,7 @@ <string id="574">Χώρα</string> <string id="575">Σε εξέλιξη</string> <string id="576">Αριθμός αναπαραγωγών</string> + <string id="580">Σειρά ταξινόμησης</string> <string id="581">Κριτήρια ταξινόμησης</string> <string id="582">Λειτουργία Προβολής</string> @@ -527,12 +545,14 @@ <string id="595">Επανάληψη: Όχι</string> <string id="596">Επανάληψη: Μία φορά</string> <string id="597">Επανάληψη: Όλων</string> + <string id="600">Εγγραφή CD ήχου</string> <string id="601">Μεσαία</string> <string id="602">Κανονική</string> <string id="603">Ακραία</string> <string id="604">Σταθερός ρυθμός</string> <string id="605">Εγγραφή...</string> + <string id="607">Προς:</string> <string id="608">Αδυναμία εγγραφής CD ή κομματιού</string> <string id="609">Δεν ορίσθηκε διαδρομή εξαγωγής CDDA.</string> @@ -540,6 +560,7 @@ <string id="611">Εισαγωγή αριθμού</string> <string id="612">Bits/Sample</string> <string id="613">Συχνότητα δειγματοληψίας</string> + <string id="620">CDs ήχου</string> <string id="621">Κωδικοποιητής</string> <string id="622">Ποιότητα</string> @@ -577,35 +598,43 @@ <string id="657">Αναζήτηση φακέλου</string> <string id="658">Πληροφορίες τραγουδιού</string> <string id="659">Μη γραμμική παραμόρφωση</string> + <string id="660">Ενίσχυση έντασης</string> <string id="661">Επιλογή φακέλου εξαγωγής</string> <string id="662">Αυτό το αρχείο δεν είναι πλέον διαθέσιμο.</string> <string id="663">Να αφαιρεθεί από τη συλλογή;</string> <string id="664">Αναζήτηση Script</string> <string id="665">Επίπεδο συμπίεσης</string> + <string id="700">Εκκαθάριση συλλογής</string> <string id="701">Απομάκρυνση παλαιών τραγουδιών από τη συλλογή</string> <string id="702">Η διαδρομή έχει σαρωθεί προηγούμενος</string> <string id="705">Δίκτυο</string> <string id="706">- Διακομιστής</string> + <string id="708">Χρήση ενός διαμεσολαβητή HTTP για πρόσβαση στο internet</string> + <string id="711">Πρωτόκολλο Internet (IP)</string> <string id="712">Προσδιορίσατε λάθος θύρα. Η τιμή κυμαίνεται μεταξύ 1 και 65535.</string> <string id="713">Διαμεσολαβητής HTTP</string> + <string id="715">- Εκχώρηση</string> <string id="716">Αυτόματη (DHCP)</string> <string id="717">Χειροκίνητη (Στατική)</string> + <string id="719">- Διεύθυνση IP</string> <string id="720">- Μάσκα δικτύου</string> <string id="721">- Προεπιλεγμένη πύλη</string> - <string id="722">- Διακομιστή DNS</string> + <string id="722">- Διακομιστής DNS</string> <string id="723">Αποθήκευση & επανεκκίνηση</string> <string id="724">Προσδιορίστηκε εσφαλμένη διεύθυνση. Η τιμή πρέπει να έχει τη μορφή AAA.BBB.CCC.DDD</string> <string id="725">με τιμές μεταξύ 0 και 255.</string> <string id="726">Οι αλλαγές δεν αποθηκεύτηκαν. Συνέχιση χωρίς αποθήκευση;</string> <string id="727">Διακομιστής Ιστού</string> <string id="728">Διακομιστής FTP</string> + <string id="730">- Θύρα</string> + <string id="732">Αποθήκευση & εφαρμογή</string> <string id="733">- Κωδικός πρόσβασης</string> <string id="734">Χωρίς κωδικό πρόσβασης</string> @@ -626,10 +655,12 @@ <string id="749">Kατοπτρική εικόνα</string> <string id="750">Είστε σίγουρος;</string> <string id="751">Απομάκρυνση πηγής</string> + <string id="754">Προσθήκη συνδέσμου εφαρμογής</string> <string id="755">Επεξεργασία διαδρομής εφαρμογής</string> <string id="756">Επεξεργασία ονόματος εφαρμογής</string> <string id="757">Επεξεργασία βάθους διαδρομής</string> + <string id="759">Προβολή: Μεγάλη λίστα</string> <string id="760">Κίτρινο</string> <string id="761">Λευκό</string> @@ -639,7 +670,10 @@ <string id="765">Κυανό</string> <string id="766">Ανοικτό γκρι</string> <string id="767">Γκρι</string> + <!-- strings 768 and 769 reserved for more subtitle colors --> + <string id="770">Σφάλμα %i: ο κοινόχρηστος πόρος δεν είναι διαθέσιμος</string> + <string id="772">Έξοδος ήχου</string> <string id="773">Αναζήτηση</string> <string id="774">Φάκελος παρουσίασης διαφανειών</string> @@ -658,6 +692,7 @@ <string id="787">Απενεργοποίηση Διασύνδεσης</string> <string id="788">Η Διασύνδεση δικτύου απενεργοποιήθηκε επιτυχώς.</string> <string id="789">Όνομα ασύρματου δικτύου (ESSID)</string> + <string id="791">Έγκριση σε προγράμματα απομακρυσμένου ελέγχου να ελέγξουν το XBMC</string> <string id="792">Θύρα</string> <string id="793">Εύρος θύρας</string> @@ -666,9 +701,11 @@ <string id="796">Συνεχής καθυστέρηση (ms)</string> <string id="797">Μέγιστος αριθμός πελατών</string> <string id="798">Πρόσβαση στο internet</string> + <string id="850">Εισαγωγή μη έγκυρου εύρους τιμών θύρας</string> <string id="851">Το έγκυρο εύρος τιμών θύρας είναι 1-65535</string> <string id="852">Το έγκυρο εύρος τιμών θύρας είναι 1024-65535</string> + <string id="998">Προσθήκη Μουσικής...</string> <string id="999">Προσθήκη Βίντεο...</string> <string id="1000">- Προεπισκόπηση</string> @@ -676,6 +713,7 @@ <string id="1002">Το ΧΒMC είναι ανίκανο να συνδεθεί στο δίκτυο.</string> <string id="1003">Αυτό μπορεί να συμβαίνει διότι το δίκτυο δεν είναι συνδεμένο.</string> <string id="1004">Θέλετε οπωσδήποτε να το προσθέσετε;</string> + <string id="1006">Διεύθυνση IP</string> <string id="1007">Προσθήκη τοποθεσίας δικτύου</string> <string id="1008">Πρωτόκολλο</string> @@ -722,18 +760,21 @@ <string id="1049">Ρυθμίσεις script</string> <string id="1050">Μεμονωμένα</string> <string id="1051">Εισαγωγή διεύθυνσης</string> + <string id="1200">Πελάτης SMB</string> <string id="1202">Ομάδα Εργασίας</string> <string id="1203">Προεπιλεγμένο όνομα χρήστη</string> <string id="1204">Προεπιλεγμένος κωδικός πρόσβασης</string> - <string id="1207">WINS διακομιστής </string> + + <string id="1207">WINS διακομιστής</string> <string id="1208">Προσάρτηση κοινόχρηστων SMB</string> + <string id="1210">Απομάκρυνση</string> <string id="1211">Μουσική</string> <string id="1212">Βίντεο</string> <string id="1213">Φωτογραφίες</string> <string id="1214">Αρχεία</string> - <string id="1215">Μουσική & βίντεο</string> + <string id="1215">Μουσική & βίντεο </string> <string id="1216">Μουσική & εικόνες</string> <string id="1217">Μουσική & αρχεία</string> <string id="1218">Βίντεο & εικόνες</string> @@ -752,16 +793,24 @@ <string id="1233">Εφαρμογές & βίντεο & μουσική</string> <string id="1234">Εφαρμογές & εικόνες & μουσική</string> <string id="1235">Εφαρμογές & εικόνες & βίντεο</string> + <string id="1250">Αυτόματος εντοπισμός</string> <string id="1251">Αυτόματος εντοπισμός συστήματος</string> <string id="1252">Ψευδώνυμο</string> + <string id="1254">Να απαιτείται επιβεβαίωση για να συνδεθεί</string> - <string id="1255">Αποστολή ονόματος και κωδικού πρόσβασης χρήστη (FTP) </string> + <string id="1255">Αποστολή ονόματος και κωδικού πρόσβασης χρήστη (FTP)</string> <string id="1256">Διάστημα μεταλλικού θορύβου</string> - <string id="1257">Να συνδεθείτε στο συστήμα που εντοπίστηκε;</string> + <string id="1257">Να συνδεθείτε στο σύστημα που εντοπίστηκε;</string> + <string id="1260">Αναγγελία αυτών των υπηρεσιών σε άλλα συστήματα διαμέσου του Zeroconf</string> + <string id="1270">Έγκριση στο XBMC να λαμβάνει περιεχόμενο AirPlay</string> + <string id="1271">Όνομα συσκευής</string> + <string id="1272">- Χρήση προστασίας με κωδικό</string> + <string id="1300">Ειδική συσκευή ήχου</string> <string id="1301">Ειδική συσκευή διέλευσης</string> + <string id="1396">Πυκνό</string> <string id="1397">και</string> <string id="1398">Παγωνιά</string> @@ -784,17 +833,25 @@ <string id="1415">Ασθενής βροχή</string> <string id="1416">Ομιχλώδης</string> <string id="1417">Κόκκοι</string> - <string id="1418">Καταιγίδες (με κεραυνούς) </string> + <string id="1418">Καταιγίδες (με κεραυνούς)</string> <string id="1419">Μπόρες (με κεραυνούς)</string> <string id="1420">Μέση</string> <string id="1421">Πολύ υψηλή</string> <string id="1422">Θυελλώδης</string> <string id="1423">Ομίχλη</string> + + <!-- strings through to 1450 reserved for weather translation --> + <string id="1450">Σε κατάσταση ύπνωσης κατά την αναμονή</string> + <!-- strings through to 1470 reserved for power-saving --> + <string id="2050">Διάρκεια</string> + <string id="2100">Αποτυχία script! : %s</string> <string id="2101">Απαιτείται νεώτερη έκδοση - Δείτε το αρχείο καταγραφής</string> + <string id="4501">Ενεργοποίηση LCD/VFD</string> + <string id="10000">Αρχική τοποθεσία</string> <string id="10001">Εφαρμογές</string> <string id="10002">Φωτογραφίες</string> @@ -806,7 +863,7 @@ <string id="10008">Ρυθμίσεις - Γενικά</string> <string id="10009">Ρυθμίσεις - Οθόνη</string> <string id="10010">Ρυθμίσεις - Αισθητικά - Βαθμονόμηση γραφικού περιβάλλοντος (GUI)</string> - <string id="10011">Ρυθμίσεις - Βίντεο - Βαθμονόμιση Οθόνης</string> + <string id="10011">Ρυθμίσεις - Βίντεο - Βαθμονόμηση Οθόνης</string> <string id="10012">Ρυθμίσεις - Φωτογραφίες</string> <string id="10013">Ρυθμίσεις - Εφαρμογές</string> <string id="10014">Ρυθμίσεις - Καιρός</string> @@ -817,15 +874,21 @@ <string id="10019">Ρυθμίσεις - Εξατομίκευση</string> <string id="10020">Scripts</string> <string id="10021">Περιηγητής ιστού</string> + <string id="10025">Βίντεο</string> <string id="10028">Βίντεο/Λίστα Αναπαραγωγής</string> + <string id="10029">Οθόνη σύνδεσης</string> <string id="10034">Ρυθμίσεις - Προφίλ</string> + <string id="10040">Περιηγητής Πρόσθετων</string> + <string id="10100">Διάλογος Ναι/Όχι</string> <string id="10101">Διάλογος διαδικασίας</string> - <string id="10210">Αναζήτηση για υπότιτλων...</string> + + <string id="10210">Αναζήτηση για υπότιτλους...</string> <string id="10211">Προσωρινή αποθήκευση υπότιτλων...</string> <string id="10212">τερματισμός</string> <string id="10213">αποθήκευση</string> <string id="10214">Άνοιγμα ροής</string> + <string id="10500">Μουσική/Λίστα αναπαραγωγής</string> <string id="10501">Μουσική/Αρχεία</string> <string id="10502">Μουσική/Συλλογή</string> @@ -838,11 +901,14 @@ <string id="10509">Δικτυακό παιχνίδι</string> <string id="10510">Καταλήξεις</string> <string id="10511">Πληροφορίες συστήματος</string> + <string id="10516">Μουσική - Συλλογή</string> <string id="10517">Μουσική - Εκτελείται τώρα</string> + <string id="10522">Βίντεο - Εκτελείται τώρα</string> <string id="10523">Πληροφορίες</string> <string id="10524">Πληροφορίες ταινίας</string> + <string id="12000">Επιλογή διαλόγου</string> <string id="12001">Μουσική/Πληροφορίες</string> <string id="12002">Διάλογος OK</string> @@ -850,12 +916,15 @@ <string id="12004">Scripts/Πληροφορίες</string> <string id="12005">Βίντεο πλήρους οθόνης</string> <string id="12006">Απεικόνιση μουσικής</string> + <string id="12008">Διάλογος στοιβαγμένου αρχείου</string> <string id="12009">Ανακατασκευή περιεχομένων...</string> - <string id="12010">Επιστροφή στην μουσική</string> + <string id="12010">Επιστροφή στη μουσική</string> <string id="12011">Επιστροφή στα βίντεο</string> + <string id="12021">Εκκίνηση από την αρχή</string> <string id="12022">Επανεκκίνηση από %s</string> + <string id="12310">0</string> <string id="12311">1</string> <string id="12312">2</string> @@ -886,44 +955,50 @@ <string id="12340">Εισαγωγή νέου κωδικού πρόσβασης</string> <string id="12341">Επανεισαγωγή νέου κωδικού πρόσβασης</string> <string id="12342">Λάθος κωδικός πρόσβασης.</string> - <string id="12343">δοκιμές έμειναν</string> + <string id="12343">δοκιμές έμειναν </string> <string id="12344">Ο κωδικός πρόσβασης δεν ταιριάζει.</string> <string id="12345">Δεν επιτράπηκε η πρόσβαση</string> <string id="12346">Οι δοκιμές εισαγωγής κωδικού πρόσβασης εξαντλήθηκαν.</string> - <string id="12347">Το συστήμα τώρα θα απενεργοποιηθεί.</string> + <string id="12347">Το σύστημα τώρα θα απενεργοποιηθεί.</string> <string id="12348">Το αντικείμενο κλειδώθηκε</string> <string id="12353">Επανενεργοποίηση κλειδώματος</string> <string id="12356">Αλλαγή κλειδώματος</string> <string id="12357">Πηγαίο κλείδωμα</string> <string id="12358">Το πεδίο του κωδικού πρόσβασης ήταν κενό. Ξαναπροσπαθήστε.</string> <string id="12360">Κεντρικό κλείδωμα</string> - <string id="12362">Απενεργοποίηση συστήματος όταν προσπάθειες εισαγωγής εξαντληθούν</string> + <string id="12362">Απενεργοποίηση συστήματος όταν εξαντληθούν οι προσπάθειες εισαγωγής</string> <string id="12367">Ο κεντρικός κωδικός δεν είναι έγκυρος</string> <string id="12368">Παρακαλώ, εισάγετε έναν έγκυρο κεντρικό κωδικό</string> <string id="12373">Ρυθμίσεις & διαχείριση αρχείων</string> <string id="12376">Ορισμός ως προεπιλογή για όλες τις ταινίες</string> <string id="12377">Διαγράφει όλες τις προηγούμενες αποθηκευμένες τιμές</string> <string id="12378">Χρονικό διάστημα προβολής κάθε εικόνας</string> - <string id="12379">Εφέ προσαρμογης αναλογιών σήματος (pan & zoom)</string> + <string id="12379">Εφέ προσαρμογής αναλογιών σήματος (pan & zoom)</string> + <string id="12383">Κανονικό ρολόι</string> <string id="12384">Ψηφιακό ρολόι</string> <string id="12385">Μέρα/Μήνας</string> <string id="12386">Μήνας/Μέρα</string> + <string id="12390">Χρόνος λειτουργίας συστήματος</string> <string id="12391">Λεπτά</string> <string id="12392">Ώρες</string> <string id="12393">Μέρες</string> <string id="12394">Συνολικός χρόνος λειτουργίας</string> <string id="12395">Επίπεδο φόρτισης</string> + <string id="12600">Ο καιρός</string> + <string id="12900">Προφύλαξη οθόνης</string> - <string id="12901">Πλήρους οθόνης απεικόνισεις (OSD)</string> + <string id="12901">Απεικονίσεις πλήρους οθόνης (OSD)</string> + <string id="13000">Σύστημα</string> <string id="13001">Άμεση ελάττωση περιστροφής (Spindown)</string> <string id="13002">Βίντεο μόνο</string> <string id="13003">- Καθυστέρηση</string> <string id="13004">- Ελάχιστη διάρκεια αρχείου</string> <string id="13005">Παύση λειτουργίας</string> + <string id="13008">Λειτουργία τερματισμού</string> <string id="13009">Έξοδος</string> <string id="13010">Αδρανοποίηση</string> @@ -933,15 +1008,19 @@ <string id="13014">Ελαχιστοποίηση</string> <string id="13015">Ενέργεια πλήκτρου λειτουργίας</string> <string id="13016">Απενεργοποίηση συστήματος</string> + <string id="13020">Είναι ενεργή άλλη συνεδρία (ίσως μέσω ssh);</string> <string id="13021">Προσάρτηση αναιρούμενου δίσκου</string> <string id="13022">Επισφαλής αφαίρεση συσκευής</string> <string id="13023">Η συσκευή αφαιρέθηκε επιτυχώς</string> <string id="13024">Συνδέθηκε χειριστήριο</string> <string id="13025">Αποσυνδέθηκε χειριστήριο</string> + <string id="13050">Έχει αποφορτιστεί η μπαταρία</string> + <string id="13100">Φίλτρο Flicker (τρεμόπαιγμα οθόνης)</string> <string id="13101">Αφήστε τον οδηγό να επιλέξει (απαιτεί επανεκκίνηση)</string> + <string id="13105">Κατακόρυφος χρονισμός</string> <string id="13106">Ανενεργός</string> <string id="13107">Ενεργός κατά την αναπαραγωγή βίντεο</string> @@ -949,10 +1028,12 @@ <string id="13109">Δοκιμή ανάλυσης</string> <string id="13110">Αποθήκευση ανάλυσης;</string> <string id="13111">Θέλετε να διατηρήσετε αυτή την ανάλυση;</string> + <string id="13112">Υψηλή ποιότητα ανακλιμακοθέτησης</string> <string id="13113">Ανενεργό</string> - <string id="13114">Ενεργό για περιεχόμενο SD </string> + <string id="13114">Ενεργό για περιεχόμενο SD</string> <string id="13115">Πάντα ενεργό</string> + <string id="13116">Μέθοδος ανακλιμακοθέτησης</string> <string id="13117">Δικυβική</string> <string id="13118">Lanczos</string> @@ -960,30 +1041,38 @@ <string id="13120">VDPAU</string> <string id="13121">VDPAU HQ ανακλιμακοθέτηση</string> <string id="13122">VDPAU Μετατροπή στάθμης χρώματος</string> + <string id="13130">Κενό σε άλλες απεικονίσεις</string> <string id="13131">Ανενεργή</string> - <string id="13132">Blank displays</string> - <string id="13140">Έχουν ανιχνευτεί ενεργές συνδέσεις! </string> + <string id="13132">Κενές απεικονίσεις</string> + + <string id="13140">Έχουν ανιχνευτεί ενεργές συνδέσεις!</string> <string id="13141">Εάν συνεχίσετε, δεν θα είναι δυνατός πλέον ο έλεγχος του XBMC.</string> <string id="13142">Να διακοπεί η λειτουργία του Απομακρυσμένου διακομιστή;</string> + <string id="13144">Αλλαγή κατάστασης συσκευής (Apple Remote);</string> <string id="13145">Εάν χρησιμοποιείτε τώρα τη συσκευή (Apple Remote) για να</string> <string id="13146">ελέγξετε το XBMC, η αλλαγή της ρύθμισης αυτής θα επηρεάσει</string> <string id="13147">την ικανότητα ελέγχου του. Θέλετε να συνεχίσετε;</string> - <string id="13159">Μάσκα Subnet</string> + + <string id="13159">Μάσκα Υποδικτύου</string> <string id="13160">Πύλη</string> <string id="13161">Πρωτεύον DNS</string> <string id="13162">Η αναγνώριση απέτυχε</string> + <string id="13170">Ποτέ</string> <string id="13171">Αμέσως</string> <string id="13172">Μετά από %i δευτ.</string> <string id="13173">Ημερομηνία εγκατάστασης</string> <string id="13174">Πλήθος περιστροφών σε ισχύ</string> + <string id="13200">Προφίλ</string> <string id="13201">Διαγραφή προφίλ '%s';</string> + <string id="13204">Προηγούμενο προφίλ:</string> <string id="13205">Άγνωστο</string> <string id="13206">Αντικατάσταση</string> + <string id="13208">Ξυπνητήρι</string> <string id="13209">Διάρκεια κουδουνισμού (σε λεπτά)</string> <string id="13210">Εκκίνηση ξυπνητηριού σε %im</string> @@ -991,13 +1080,16 @@ <string id="13212">Ακυρώθηκε %im%is απέμειναν</string> <string id="13213">%2.0fm</string> <string id="13214">%2.0fs</string> + <string id="13249">Αναζήτηση υποτίτλων στα RARs</string> <string id="13250">Αναζήτηση για υπότιτλο...</string> <string id="13251">Μετακίνηση αντικειμένου</string> <string id="13252">Μετακίνηση αντικειμένου εδώ</string> <string id="13253">Ακύρωση μετακίνησης</string> + <string id="13270">Υλικό</string> <string id="13271">Ταχύτητα CPU</string> + <string id="13274">Συνδέθηκε, αλλά η διεύθυνση DNS δεν είναι διαθέσιμη.</string> <string id="13275">Σκληρός δίσκος</string> <string id="13276">DVD-ROM</string> @@ -1006,15 +1098,20 @@ <string id="13279">Δίκτυο</string> <string id="13280">Βίντεο</string> <string id="13281">Υλικό</string> + <string id="13283">Λειτουργικό σύστημα</string> <string id="13284">Ταχύτητα CPU</string> - <string id="13286">Βίντεο κωδικοποιητής</string> + + <string id="13286">Κωδικοποιητής βίντεο:</string> <string id="13287">Ανάλυση οθόνης</string> + <string id="13292">Καλώδιο A/V</string> + <string id="13294">Περιοχή DVD</string> <string id="13295">Internet</string> <string id="13296">Συνδέθηκε</string> <string id="13297">Δε συνδέθηκε. Ελέγξτε τις ρυθμίσεις δικτύου.</string> + <string id="13299">Θερμοκρασία στόχος</string> <string id="13300">Ταχύτητα ανεμιστήρα</string> <string id="13301">Αυτόματος έλεγχος θερμοκρασίας</string> @@ -1053,6 +1150,7 @@ <string id="13334">Επεξεργασία ετικέτας</string> <string id="13335">Εξ' ορισμού επιλογή</string> <string id="13336">Απαλοιφή πλήκτρου</string> + <string id="13340">Παραμένει ως έχει</string> <string id="13341">Πράσινο</string> <string id="13342">Πορτοκαλί</string> @@ -1075,6 +1173,7 @@ <string id="13359">Ορισμός μικρογραφίας καλλιτέχνη</string> <string id="13360">Αυτόματη δημιουργία μικρογραφιών</string> <string id="13361">Ενεργοποίηση φωνής</string> + <string id="13375">Ενεργοποίηση συσκευής</string> <string id="13376">Ένταση</string> <string id="13377">Προεπιλεγμένη κατάσταση προβολής</string> @@ -1089,10 +1188,8 @@ <string id="13386">Αναζήτηση βασισμένη στην χρήση χρόνου</string> <string id="13387">Πρότυπο ονομασίας κομματιού (δεξιά πλευρά)</string> <string id="13388">Προκαθορισμένα</string> - <string id="13389">Δεν υπάρχουν διαθέσιμα προκαθορισμένα -γι' αυτή την απεικόνιση</string> - <string id="13390">Δεν υπάρχουν διαθέσιμες ρυθμίσεις -γι' αυτή την απεικόνιση</string> + <string id="13389">Δεν υπάρχουν διαθέσιμα προκαθορισμένα γι' αυτή την απεικόνιση</string> + <string id="13390">Δεν υπάρχουν διαθέσιμες ρυθμίσεις γι' αυτή την απεικόνιση</string> <string id="13391">Εξαγωγή/Εισαγωγή</string> <string id="13392">Χρήση απεικονίσεων κατά την αναπαραγωγή ήχου</string> <string id="13393">Υπολόγισε το μέγεθος</string> @@ -1110,8 +1207,8 @@ <string id="13405">Μικρογραφία</string> <string id="13406">Πληροφορίες εικόνας</string> <string id="13407">%s προκαθορισμένα</string> - <string id="13408">(Αξιολόγηση χρήστη IMDb)</string> - <string id="13409">250 κορυφαία </string> + <string id="13408">(Αξιολόγηση IMDb)</string> + <string id="13409">250 κορυφαία</string> <string id="13410">Συντονισμός στο Last.FM</string> <string id="13411">Ελάχιστη ταχύτητα ανεμιστήρα</string> <string id="13412">Αναπαραγωγή από εδώ</string> @@ -1135,6 +1232,7 @@ <string id="13430">Αποδοχή επιτάχυνσης υλικού (OpenMax)</string> <string id="13431">Σκιάσεις εικονοστοιχείου</string> <string id="13432">Έγκριση επιτάχυνσης υλικού (VideoToolbox)</string> + <string id="13500">Μέθοδος συγχρονισμού A/V</string> <string id="13501">Χρονισμός ήχου</string> <string id="13502">Χρονισµός βίντεο (εις βάρος του ήχου)</string> @@ -1146,19 +1244,25 @@ <string id="13508">Υψηλή</string> <string id="13509">Πραγματικά υψηλή (αργή!)</string> <string id="13510">Συγχρονισμός αναπαραγωγής ήχου κατά τη προβολή</string> - <string id="13550">Παύση κατά τη διάρκεια ανανέωσης του ρυθμού αλλαγής </string> + + <string id="13550">Παύση κατά τη διάρκεια ανανέωσης του ρυθμού αλλαγής</string> <string id="13551">Ανενεργό</string> <string id="13552">%.1f Δευτερόλεπτο</string> <string id="13553">%.1f Δευτερόλεπτα</string> + <string id="13600">Apple Remote</string> + <string id="13602">Έγκριση έναρξης του XBMC μέσου απομακρυσμένου ελέγχου</string> <string id="13603">Ακολουθία χρόνου καθυστέρησης</string> + <string id="13610">Ανενεργή</string> <string id="13611">Τυπική</string> <string id="13612">Τηλεχειριστήριο γενικής χρήσης</string> <string id="13613">Τηλεχειριστήριο γενικής χρήσης (Harmony)</string> + <string id="13620">Σφάλμα συσκευής (Apple Remote)</string> <string id="13621">Αδυναμία υποστήριξης συσκευής (Apple Remote).</string> + <string id="14000">Στοίβαγμα</string> <string id="14001">Σκόρπισμα</string> <string id="14003">Λήψη αρχείου λίστας αναπαραγωγής...</string> @@ -1166,6 +1270,7 @@ <string id="14005">Ανάλυση λίστας ροής πολυμέσων...</string> <string id="14006">Αποτυχία λήψης λίστας ροής πολυμέσων</string> <string id="14007">Αποτυχία λήψης αρχείου λίστας αναπαραγωγής</string> + <string id="14009">Κατάλογος παιχνιδιών</string> <string id="14010">Αυτόματη εναλλαγή με βάση τις μικρογραφίες</string> <string id="14011">Ενεργοποίηση αυτόματης εναλλαγής στην προβολή μικρογραφιών</string> @@ -1192,10 +1297,12 @@ <string id="14034">Λανθάνουσα μνήμη DVD - DVDRom</string> <string id="14035">- Τοπικό δίκτυο</string> <string id="14036">Υπηρεσίες</string> + <string id="14038">Οι ρυθμίσεις του δικτύου άλλαξαν</string> <string id="14039">Το XBMC πρέπει να επανεκκινηθεί για να αλλάξουν</string> <string id="14040">οι ρυθμίσεις δικτύου. Να γίνει επανεκκίνηση;</string> <string id="14041">Σύνδεση Internet με περιορισμένο εύρος</string> + <string id="14043">- Τερματισμός κατά την αναπαραγωγή</string> <string id="14044">%i λεπτ.</string> <string id="14045">%i δευτ.</string> @@ -1207,11 +1314,12 @@ <string id="14051">Διαμόρφωση Ώρας</string> <string id="14052">Διαμόρφωση Ημ/νίας</string> <string id="14053">Φίλτρα γραφικού περιβάλλοντος (GUI)</string> + <string id="14055">Σάρωση στο παρασκήνιο</string> <string id="14056">Διακοπή σάρωσης</string> <string id="14057">Δεν είναι εφικτό κατά τη σάρωση πληροφοριών αρχείων</string> <string id="14058">Εφέ Film Grain</string> - <string id="14059">Έρευνα στους κοινόχρηστους πόρους για μικρογραφίες </string> + <string id="14059">Έρευνα στους κοινόχρηστους πόρους για μικρογραφίες</string> <string id="14060">Άγνωστος τύπος λανθάνουσας μνήμης - Internet</string> <string id="14061">Αυτόματο/η</string> <string id="14062">Εισάγετε όνομα χρήστη για</string> @@ -1224,6 +1332,7 @@ <string id="14069">Εφαρμογή αυτών των ρυθμίσεων τώρα;</string> <string id="14070">Εφαρμογή ρυθμίσεων τώρα</string> <string id="14071">Επιτρεπτή η μετονομασία και η διαγραφή</string> + <string id="14074">Ορισμός ζώνης ώρας</string> <string id="14075">Ενεργοποίηση θερινής ώρας</string> <string id="14076">Προσθήκη στα αγαπημένα</string> @@ -1246,26 +1355,32 @@ <string id="14093">Ασφάλεια</string> <string id="14094">Συσκευές εισόδου</string> <string id="14095">Εξοικονόμηση ενέργειας</string> + <string id="15015">Απομάκρυνση</string> <string id="15016">Παιχνίδια</string> + <string id="15019">Προσθήκη</string> + <string id="15052">Κωδικός πρόσβασης</string> + <string id="15100">Συλλογή</string> <string id="15101">Βάση δεδομένων</string> <string id="15102">* Όλα τα άλμπουμ</string> <string id="15103">* Όλοι οι καλλιτέχνες</string> <string id="15104">* Όλα τα τραγούδια</string> <string id="15105">* Όλα τα είδη</string> + <string id="15107">Aποθήκευση...</string> <string id="15108">Ήχοι πλοήγησης</string> <string id="15109">Προεπιλεγμένο κέλυφος</string> <string id="15111">- Θέμα</string> <string id="15112">Προεπιλεγμένο Θέμα</string> + <string id="15200">Last.FM</string> <string id="15201">Αποστολή τραγουδιών στο Last.FM</string> <string id="15202">Όνομα χρήστη Last.FM</string> <string id="15203">Κωδικός πρόσβασης Last.FM</string> - <string id="15204">Αδύνατη η χειραψία: σε αδράνεια... </string> + <string id="15204">Αδύνατη η χειραψία: σε αδράνεια...</string> <string id="15205">Παρακαλώ, αναβαθμίστε το XBMC</string> <string id="15206">Απέτυχε η εξακρίβωση. Ελέγξτε το όνομα χρήστη και τον κωδικό πρόσβασης</string> <string id="15207">Συνδεμένο</string> @@ -1283,6 +1398,7 @@ <string id="15219">Κωδικός πρόσβασης (Libre.fm)</string> <string id="15220">Libre.fm</string> <string id="15221">Υποβολή αιτήματος τραγουδιού</string> + <string id="15250">Αποστολή Last.fm radio στο Last.fm</string> <string id="15251">Σύνδεση με Last.FM...</string> <string id="15252">Επιλογή σταθμού...</string> @@ -1319,6 +1435,7 @@ <string id="15283">Κομμάτια που ακούστηκαν πρόσφατα από τον %name%</string> <string id="15284">Ακρόαση των προτιμήσεων του %name% στο Last.FM radio</string> <string id="15285">Κορυφαίες ετικέτες για τον χρήστη %name%</string> + <string id="15287">Να προστεθεί το παρόν κομμάτι στα αγαπημένα σας;</string> <string id="15288">Να αποκλειστεί το παρόν κομμάτι;</string> <string id="15289">Προσθήκη στα αγαπημένα σας κομμάτια: '%s'.</string> @@ -1331,16 +1448,21 @@ <string id="15296">Αποδεκτό</string> <string id="15297">Να αφαιρεθεί το παρόν κομμάτι από τα αγαπημένα σας;</string> <string id="15298">Να μην αποκλειστεί το παρόν κομμάτι;</string> + <string id="15300">H διαδρομή δεν βρέθηκε</string> <string id="15301">Απέτυχε η σύνδεση με τον διακομιστή δικτύου</string> <string id="15302">Δεν βρέθηκαν διακομιστές</string> <string id="15303">Δεν βρέθηκαν ομάδες εργασίας</string> + <string id="15310">Άνοιγμα πηγής multi-path</string> <string id="15311">Διαδρομή:</string> + <string id="16000">Γενικά</string> + <string id="16002">Έρευνα στο Internet</string> <string id="16003">Αναπαραγωγή</string> <string id="16004">Αναπαραγωγή πολυμέσων από το δίσκο</string> + <string id="16008">Εισάγετε νέο τίτλο</string> <string id="16009">Εισάγετε το όνομα της ταινίας</string> <string id="16010">Εισάγετε το όνομα του προφίλ</string> @@ -1353,7 +1475,7 @@ <string id="16017">Εισαγωγή συμβολοσειράς αναζήτησης</string> <string id="16018">Καμία</string> <string id="16019">Αυτόματη επιλογή</string> - <string id="16020">Διαστρωμάτωση</string> + <string id="16020">Απόπλεξη</string> <string id="16021">Επιλεκτική</string> <string id="16022">Επιλεκτική (αντιστροφή)</string> <string id="16023">Μέθοδος περιπλεγμένου χειρισμού</string> @@ -1369,13 +1491,20 @@ <string id="16033">Απέτυχε το άνοιγμα της βάσης δεδομένων.</string> <string id="16034">Απέτυχε η λήψη τραγουδιών από τη βάση δεδομένων.</string> <string id="16035">Λίστα αναπαραγωγής σε Party Μode</string> - <string id="16036">Απεπλεγμένη (κατά το ήμισυ) </string> + <string id="16036">Απόπλεξη (κατά το ήμισυ)</string> + <string id="16037">Απόπλεξη βίντεο</string> + <string id="16038">Μέθοδος απόπλεξης</string> + <string id="16039">Ανενεργή</string> + <string id="16040">Αυτόματη</string> + <string id="16041">Ενεργή</string> + <string id="16100">Όλα τα βίντεο</string> <string id="16101">Μη προβληθέντα</string> <string id="16102">Προβληθέντα</string> <string id="16103">Επισήμανση ως προβληθέντα</string> <string id="16104">Επισήμανση ως μη προβληθέντα</string> <string id="16105">Επεξεργασία τίτλου</string> + <string id="16200">Η διαδικασία ακυρώθηκε</string> <string id="16201">Η αντιγραφή απέτυχε</string> <string id="16202">Απέτυχε η αντιγραφή τουλάχιστον ενός αρχείου</string> @@ -1383,6 +1512,7 @@ <string id="16204">Απέτυχε η μετακίνηση τουλάχιστον ενός αρχείου</string> <string id="16205">Η διαγραφή απέτυχε</string> <string id="16206">Απέτυχε η διαγραφή τουλάχιστον ενός αρχείου</string> + <string id="16300">Μέθοδος προσαρμογής ανάλυσης βίντεο</string> <string id="16301">Εγγύτερη προσέγγιση</string> <string id="16302">Διγραμμική</string> @@ -1403,18 +1533,29 @@ <string id="16317">Χρονική (κατά το ήμισυ)</string> <string id="16318">Χρονική/Χωρική (κατά το ήμισυ)</string> <string id="16319">DXVA</string> + <string id="16320">DXVA Bob</string> + <string id="16321">DXVA Best</string> + <string id="16322">Spline36</string> + <string id="16323">Spline36 βελτιστοποιημένο</string> + <string id="16324">Blend λογισμικού</string> + <string id="16400">Μετα-επεξεργασία</string> - <string id="17500">Προβολή λήξης χρόνου αναστόλης</string> + + <string id="17500">Προβολή λήξης χρόνου αναστολής</string> + <string id="19000">Αλλαγή καναλιού</string> + <string id="20000">Φάκελος αποθήκευσης μουσικής</string> <string id="20001">Χρήση εξωτερικού αναπαραγωγέα DVD</string> <string id="20002">Εξωτερικός αναπαραγωγέας DVD</string> <string id="20003">Φάκελος εκπαιδευτών</string> <string id="20004">Φάκελος στιγμιότυπου</string> + <string id="20006">Φάκελος λίστας αναπαραγωγής</string> <string id="20007">Εγγραφές</string> <string id="20008">Στιγμιότυπα</string> <string id="20009">Χρήση XBMC</string> + <string id="20011">Λίστες αναπαραγωγής μουσικής</string> <string id="20012">Λίστες αναπαραγωγής βίντεο</string> <string id="20013">Να εκτελεστεί το παιχνίδι;</string> @@ -1424,10 +1565,16 @@ <string id="20017">Τοπική μικρογραφία</string> <string id="20018">Χωρίς μικρογραφία</string> <string id="20019">Επιλογή μικρογραφίας</string> + + <!-- string id 20022 will always be set to an empty string (LocalizeStrings.cpp)--> + <string id="20022"></string> <string id="20023">Διένεξη</string> <string id="20024">Σάρωση καινούργιων</string> <string id="20025">Σάρωση όλων</string> <string id="20026">Περιοχή</string> + + <!-- string id's 20027 thru 20034 are reserved for temperature strings (LocalizeStrings.cpp)--> + <string id="20037">Συνολικές</string> <string id="20038">Κλείδωμα της μουσικής</string> <string id="20039">Κλείδωμα των βίντεο</string> @@ -1447,6 +1594,7 @@ <string id="20053">Αριστερή γενική διαχείριση</string> <string id="20054">Καταχωρημένη γενική διαχείριση</string> <string id="20055">Μικρογραφία Allmusic.com</string> + <string id="20057">Απομάκρυνση μικρογραφίας</string> <string id="20058">Προσθέστε προφίλ...</string> <string id="20059">Ερώτημα για όλα τα άλμπουμ</string> @@ -1520,7 +1668,7 @@ <string id="20128">Πήγαινε στο root</string> <string id="20129">Ύφανση</string> <string id="20130">Ύφανση (αντιστροφή)</string> - <string id="20131">Συνδυασμός </string> + <string id="20131">Συνδυασμός</string> <string id="20132">Επανεκκίνηση βίντεο</string> <string id="20133">Επεξεργασία τοποθεσίας δικτύου</string> <string id="20134">Απομάκρυνση τοποθεσίας δικτύου</string> @@ -1554,9 +1702,9 @@ <string id="20162">Χρησιμοποιημένα</string> <string id="20163">από τα</string> <string id="20164">Δεν υποστηρίζει κλείδωμα</string> - <string id="20165">Ξεκλείδωτοs</string> - <string id="20166">Κλειδωμένοs</string> - <string id="20167">Παγωμένοs</string> + <string id="20165">Ξεκλείδωτος</string> + <string id="20166">Κλειδωμένος</string> + <string id="20167">Παγωμένος</string> <string id="20168">Απαιτεί επανεκκίνηση</string> <string id="20169">Εβδομάδα</string> <string id="20170">Γραμμή</string> @@ -1574,8 +1722,9 @@ <string id="20182">Κενό</string> <string id="20183">Επαναφόρτωση κελύφους</string> <string id="20184">Περιστροφή εικόνων που χρησιμοποιούν τις πληροφορίες EXIF</string> - <string id="20185">Χρήση όψης αφίσας για τις τηλεοπτικές σειρές</string> + <string id="20185">Χρήση στυλ αφισών για τις τηλεοπτικές σειρές</string> <string id="20186">Απασχολημένο</string> + <string id="20189">Ενεργοποίηση αυτόματης κύλισης στην επισκόπηση πλοκής & κριτικής</string> <string id="20190">Προσαρμογή</string> <string id="20191">Ενεργοποίηση καταγραφής αποσφαλμάτωσης</string> @@ -1587,42 +1736,52 @@ <string id="20197">Εισαγωγή μουσικής συλλογής</string> <string id="20198">Δεν βρέθηκε ο καλλιτέχνης!</string> <string id="20199">Αποτυχία λήψης πληροφοριών για τον καλλιτέχνη</string> + + <!-- string id's 20200 thru 20211 are reserved for speedstrings (LocalizeStrings.cpp)--> + <string id="20250">Party on! (βίντεο)</string> <string id="20251">Αναμιγνύοντας τα ποτά (βίντεο)</string> <string id="20252">Γεμίζοντας τα ποτήρια (βίντεο)</string> <string id="20253">Διακομιστής WebDAV (HTTP)</string> <string id="20254">Διακομιστής WebDAV (HTTPS)</string> <string id="20255">Πρώτη σύνδεση, επεξεργαστείτε το προφίλ σας</string> - <string id="20256">HTS Tvheadend client</string> - <string id="20257">VDR Streamdev client</string> - <string id="20258">MythTV client</string> + <string id="20256">Πελάτης HTS Tvheadend</string> + <string id="20257">Πελάτης VDR Streamdev</string> + <string id="20258">Πελάτης MythTV</string> <string id="20259">Σύστημα Αρχείων Δικτύου (NFS)</string> <string id="20260">Κέλυφος Ασφαλείας (SSH/SFTP)</string> + <string id="20261">Πρωτόκολλο Αρχειοθέτησης Apple (AFP)</string> + <string id="20300">Κατάλογος διακομιστή ιστού (HTTP)</string> <string id="20301">Κατάλογος διακομιστή ιστού (HTTPS)</string> - <string id="20302">Αδυναμία εγγραφής στο φάκελλο:</string> + <string id="20302">Αδυναμία εγγραφής στο φάκελο:</string> <string id="20303">Θέλετε να παραβλεφθεί και να συνεχίσετε;</string> <string id="20304">Ροή τίτλων ειδήσεων (RSS)</string> + <string id="20307">Δευτερεύον DNS</string> <string id="20308">DHCP διακομιστή:</string> <string id="20309">Δημιουργία νέου φακέλου</string> - <string id="20310">Dim LCD κατα την αναπαραγωγή</string> + <string id="20310">Σκίαση LCD κατά την αναπαραγωγή</string> <string id="20311">Άγνωστο ή πάνω στην μητρική (προστατεύεται)</string> - <string id="20312">Dim LCD σε παύση</string> + <string id="20312">Σκίαση LCD σε παύση</string> + <string id="20314">Βίντεο - Συλλογή</string> + <string id="20316">Ταξ. κατά: ID</string> + <string id="20324">Αναπαραγωγή κομματιού...</string> <string id="20325">Επαναφορά βαθμονόμησης</string> <string id="20326">Επαναφορά των τιμών βαθμονόμησης για %s</string> <string id="20327">στις προκαθορισμένες τιμές.</string> <string id="20328">Αναζήτηση προορισμού</string> + <string id="20329">Οι ταινίες είναι σε διαφορετικούς φακέλους που ταιριάζουν με τον τίτλο της ταινίας</string> <string id="20330">Χρήση ονόματος φακέλου για αναζητήσεις</string> <string id="20331">Αρχείο</string> <string id="20332">Χρήση φακέλων ή ονομάτων αρχείων στις αναζητήσεις;</string> <string id="20333">Ορισμός περιεχομένου</string> <string id="20334">Φάκελος</string> <string id="20335">Κατόπτευση κατ' επανάληψη του περιεχομένου;</string> - <string id="20336">Ξεκλείδωτες πηγές</string> + <string id="20336">Ξεκλείδωμα πηγών</string> <string id="20337">Ηθοποιός</string> <string id="20338">Ταινία</string> <string id="20339">Σκηνοθεσία</string> @@ -1656,7 +1815,7 @@ <string id="20367">Απόκρυψη προβληθέντων</string> <string id="20368">Κωδικός παραγωγής</string> <string id="20369">Εμφάνιση πλοκής στα μη προβληθέντα</string> - <string id="20370">* Απόκρυψη σε περίληψη *</string> + <string id="20370">* Απόκρυψη για αποφυγή spoiler *</string> <string id="20371">Ορισμός μικρογραφίας κύκλου</string> <string id="20372">Εικόνα κύκλου</string> <string id="20373">Κύκλος</string> @@ -1685,16 +1844,17 @@ <string id="20396">Άλμπουμ καλλιτέχνη</string> <string id="20397">Άλμπουμ</string> <string id="20398">Αναπαραγωγή τραγουδιού</string> - <string id="20399">Μουσικά βίντεο από άλμπουμ </string> + <string id="20399">Μουσικά βίντεο από άλμπουμ</string> <string id="20400">Μουσικά βίντεο ανά καλλιτέχνη</string> <string id="20401">Αναπαραγωγή μουσικού βίντεο</string> <string id="20402">Λήψη μικρογραφιών ηθοποιού κατά τη προσθήκη στη συλλογή</string> <string id="20403">Ορισμός μικρογραφίας ηθοποιού</string> + <string id="20405">Αφαίρεση σελιδοδείκτη επεισοδίου</string> <string id="20406">Ορισμός σελιδοδείκτη επεισοδίου</string> <string id="20407">Ρυθμίσεις καταγραφέα</string> <string id="20408">Λήψη πληροφοριών για το μουσικό βίντεο</string> - <string id="20409">Λήψη πληροφοριών για την τηλεοπτική σειρά </string> + <string id="20409">Λήψη πληροφοριών για την τηλεοπτική σειρά</string> <string id="20410">Διαφημιστικό</string> <string id="20411">Ισοπέδωση</string> <string id="20412">Ισοπέδωση τηλεοπτικών σειρών</string> @@ -1703,7 +1863,9 @@ <string id="20415">Έλεγχος για νέα περιεχόμενα</string> <string id="20416">Πρεμιέρα</string> <string id="20417">Σενάριο</string> - <string id="20419">Εμφάνιση μεταδεδομένων κατά την προβολή αρχείων</string> + <string id="20418"></string> + <string id="20419">Αντικατάσταση ονομάτων αρχείων με τίτλους συλλογών</string> + <string id="20420">Ποτέ</string> <string id="20421">Eάν είναι ενός κύκλου</string> <string id="20422">Πάντα</string> @@ -1718,13 +1880,13 @@ <string id="20431">Αντικατάσταση παλιών αρχείων;</string> <string id="20432">Εξαίρεση διαδρομής από τις ενημερώσεις συλλογής</string> <string id="20433">Εξαγωγή μικρογραφιών και πληροφοριών</string> - <string id="20434">Ορίσματα</string> + <string id="20434">Ομάδες Ταινιών</string> <string id="20435">Ορισμός θέσης μικρογραφίας ταινίας</string> <string id="20436">Εξαγωγή μικρογραφιών καλλιτέχνη;</string> <string id="20437">Επιλεγμένο fanart</string> <string id="20438">Τοπικό fanart</string> <string id="20439">Χωρίς fanart</string> - <string id="20440">Tρέχον fanart</string> + <string id="20440">Τρέχον fanart</string> <string id="20441">Απομακρυσμένο fanart</string> <string id="20442">Αλλαγή περιεχομένου</string> <string id="20443">Επιθυμείτε να ανανεώσετε τις πληροφορίες</string> @@ -1732,16 +1894,21 @@ <string id="20445">Fanart</string> <string id="20446">Βρέθηκαν τοπικά αποθηκευμένες πληροφορίες.</string> <string id="20447">Να αγνοηθούν και να ανανεωθούν από το internet;</string> - <string id="20448">Αδυναμία λήψης πληροφοριών </string> + <string id="20448">Αδυναμία λήψης πληροφοριών</string> <string id="20449">Αδυναμία σύνδεσης με τον απομακρυσμένο διακομιστή</string> - <string id="20450">Επιθυμείτε, να συνεχίσετε την αναζήτηση;</string> + <string id="20450">Επιθυμείτε να συνεχίσετε την αναζήτηση;</string> <string id="20451">Χώρες</string> <string id="20452">επεισόδιο</string> <string id="20453">επεισόδια</string> <string id="20454">Ακροατής</string> <string id="20455">Ακροατές</string> - <string id="20456">Προσαρμογή ορισμάτων ταινίας fanart</string> + <string id="20456">Ορισμός fanart ομάδας ταινιών</string> + <string id="20457">Ομάδα Ταινιών</string> + <string id="20458">Ομαδοποίηση ταινιών</string> + <!-- up to 21329 is reserved for the video db !! !--> + <string id="21330">Προβολή κρυφών αρχείων και φακέλων</string> + <string id="21331">Πελάτης TuxBox</string> <string id="21332">ΠΡΟΣΟΧΗ: Η συσκευή TuxBox βρίσκεται σε κατάσταση εγγραφής!</string> <string id="21333">Η ροή πολυμέσων θα σταματήσει!</string> @@ -1749,12 +1916,17 @@ <string id="21335">Θέλετε να ξεκινήσει η ροή πολυμέσων;</string> <string id="21336">Σύνδεση στο: %s</string> <string id="21337">Συσκευή TuxBox</string> + <!-- up to 21355 is reserved for the TuxBox Client!! !--> + <string id="21359">Προσθήκη κοινόχρηστου πολυμέσου...</string> <string id="21360">Διαμοιρασμός κοινόχρηστων συλλογών μουσικής και βίντεο διαμέσου UPnP</string> + <string id="21364">Επεξεργασία κοινόχρηστων πολυμέσων</string> <string id="21365">Απομάκρυνση κοινόχρηστων πολυμέσων</string> - <string id="21366">Φακέλος υποτίτλων</string> + <string id="21366">Φάκελος υποτίτλων</string> <string id="21367">Ταινία & εναλλακτικός φάκελος υποτίτλων</string> + <string id="21368">Παράκαμψη γραμματοσειρών υποτίτλων ASS/SSA</string> + <string id="21369">Ενεργοποίηση ποντικιού</string> <string id="21370">Ενεργοποίηση ήχων πλοήγησης κατά την εκτέλεση πολυμέσων</string> <string id="21371">Μικρογραφία</string> @@ -1806,9 +1978,9 @@ <string id="21417">- Ρυθμίσεις</string> <string id="21418">Πολύγλωσσο</string> <string id="21419">Δεν υπάρχει διαθέσιμος καταγραφέας</string> - <string id="21420">Τιμές για αντιστοίχηση</string> + <string id="21420">Τιμές για αντιστοίχιση</string> <string id="21421">Όροι έξυπνης λίστας αναπαραγωγής</string> - <string id="21422">Κριτήρια αντιστοίχησης αντικειμένων</string> + <string id="21422">Κριτήρια αντιστοίχισης αντικειμένων</string> <string id="21423">Νέοι κανόνες...</string> <string id="21424">Αντικείμενα με πολλές αντιστοιχίες</string> <string id="21425">με όλους τους κανόνες</string> @@ -1835,11 +2007,21 @@ <string id="21446">Κωδικοποίηση ήχου</string> <string id="21447">Γλώσσα ήχου</string> <string id="21448">Γλώσσα υποτίτλων</string> - <string id="21449">Το τηλεχειριστήριο στέλνει εντολές πληκτρολογίου </string> + <string id="21449">Το τηλεχειριστήριο στέλνει εντολές πληκτρολογίου</string> <string id="21450">- Επεξεργασία</string> <string id="21451">Απαιτείται σύνδεση στο Internet.</string> <string id="21452">Λήψη περισσότερων...</string> <string id="21453">Σύστημα αρχείων root</string> + <string id="21454">Λανθάνουσα μνήμη πλήρης</string> + <string id="21455">Η λανθάνουσα μνήμη γέμισε πριν φθάσει το απαιτούμενο μέγεθος για συνεχόμενη αναπαραγωγή</string> + + <string id="21460">Θέση υπότιτλου</string> + <string id="21461">Σταθερή</string> + <string id="21462">Κάτω πλευρά του βίντεο</string> + <string id="21463">Κάτω από το βίντεο</string> + <string id="21464">Πάνω πλευρά του βίντεο</string> + <string id="21465">Πάνω από το βίντεο</string> + <string id="21800">Όνομα αρχείου</string> <string id="21801">Διαδρομή αρχείου</string> <string id="21802">Μέγεθος αρχείου</string> @@ -1848,7 +2030,8 @@ <string id="21805">Ανάλυση</string> <string id="21806">Σχόλιο</string> <string id="21807">Απόδοση</string> - <string id="21808">Επεξεργασία Jpeg</string> + <string id="21808">Επεξεργασία JPEG</string> + <string id="21820">Ημερομηνία λήψης</string> <string id="21821">Περιγραφή</string> <string id="21822">Κατασκευαστής κάμερας</string> @@ -1869,10 +2052,11 @@ <string id="21837">Ευαισθησία ISO</string> <string id="21838">Ψηφιακή μεγέθυνση</string> <string id="21839">Πλάτος CCD</string> - <string id="21840">GPS γεωγραφικό πλάτος </string> + <string id="21840">GPS γεωγραφικό πλάτος</string> <string id="21841">GPS γεωγραφικό μήκος</string> <string id="21842">GPS υψόμετρο</string> <string id="21843">Προσανατολισμός</string> + <string id="21860">Συμπληρωματικές πληροφορίες</string> <string id="21861">Λέξεις κλειδιά</string> <string id="21862">Λεζάντα</string> @@ -1894,11 +2078,11 @@ <string id="21878">Πνευματικά δικαιώματα</string> <string id="21879">Κωδικός χώρας</string> <string id="21880">Υπηρεσία πληροφόρησης</string> - <string id="21881">Έγκριση στους ελεγκτές UPnP να ελέγχουν το XBMC</string> + <string id="21881">Έγκριση στους ελεγκτές UPnP να ελέγχουν το XBMC</string> <string id="21882">Απόπειρα αποφυγής οδηγιών πριν από το μενού DVD</string> <string id="21883">Αποθηκευμένη μουσική</string> <string id="21884">Ερώτημα για όλους τους καλλιτέχνες</string> - <string id="21885">Λήψη πληροφοριών για το άλμπουμ </string> + <string id="21885">Λήψη πληροφοριών για το άλμπουμ</string> <string id="21886">Λήψη πληροφοριών για τον καλλιτέχνη</string> <string id="21887">Βιογραφικό</string> <string id="21888">Δισκογραφία</string> @@ -1914,16 +2098,20 @@ <string id="21898">Έτη ενεργής σταδιοδρομίας</string> <string id="21899">Ετικέτα</string> <string id="21900">Γέννηση/Δημιουργία</string> + + <!-- strings 21900 thru 21999 reserved for slideshow info --> + <string id="22000">Ενημέρωση της συλλογής κατά την εκκίνηση</string> <string id="22001">Απόκρυψη εξέλιξης ενημερώσεων συλλογής</string> <string id="22002">- Κατάληξη DNS</string> + <string id="22003">%2.3fs</string> <string id="22004">Καθυστέρηση κατά: %2.3fs</string> <string id="22005">Προβάδισμα κατά: %2.3fs</string> - <string id="22006">Μετατόπιση υπότιτλων</string> + <string id="22006">Μετατόπιση υποτίτλων</string> <string id="22007">Κατασκευαστής OpenGL:</string> <string id="22008">Αποτυπωτής OpenGL:</string> - <string id="22009">Έκδοση OpenGL: </string> + <string id="22009">Έκδοση OpenGL:</string> <string id="22010">Θερμοκρασία GPU:</string> <string id="22011">Θερμοκρασία CPU:</string> <string id="22012">Συνολική μνήμη</string> @@ -1939,13 +2127,15 @@ <string id="22022">Εμφάνιση αρχείων βίντεο στις λίστες</string> <string id="22023">Κατασκευαστής DirectX:</string> <string id="22024">Έκδοση Direct3D:</string> + + <!-- strings 22030 thru 22060 reserved for karaoke --> <string id="22030">Γραμματοσειρά</string> <string id="22031">- Μέγεθος</string> <string id="22032">- Χρώματα</string> <string id="22033">- Κωδικοποίηση χαρακτήρων</string> <string id="22034">Εξαγωγή τίτλων karaoke ως HTML</string> <string id="22035">Εξαγωγή τίτλων karaoke ως CSV</string> - <string id="22036">Εισαγωγή τίτλων karaoke... </string> + <string id="22036">Εισαγωγή τίτλων karaoke...</string> <string id="22037">Αυτόματη εμφάνιση επιλογέα τραγουδιών</string> <string id="22038">Εξαγωγή τίτλων karaoke...</string> <string id="22039">Εισαγωγή αριθμού τραγουδιού</string> @@ -1953,24 +2143,32 @@ <string id="22041">άσπρο/κόκκινο</string> <string id="22042">άσπρο/μπλε</string> <string id="22043">μαύρο/άσπρο</string> + <string id="22079">Προεπιλεγμένη ενέργεια</string> <string id="22080">Επιλογή</string> <string id="22081">Προβολή πληροφοριών</string> <string id="22082">Περισσότερα...</string> <string id="22083">Αναπαραγωγή όλων</string> - <string id="23049">Μη διαθέσιμο Teletext </string> + + <string id="23049">Μη διαθέσιμο Teletext</string> <string id="23050">Ενεργοποίηση Teletext</string> <string id="23051">Μέρος %i</string> <string id="23052">Aποθήκευση %i bytes</string> <string id="23053">Διακόπτεται</string> <string id="23054">Εκτελείται</string> + + <!-- strings 23100 thru 23150 reserved for external player --> <string id="23100">Ενεργός εξωτερικός αναπαραγωγέας</string> <string id="23101">Πιέστε το 'Εντάξει' για να τερματίσετε τον αναπαραγωγέα</string> + <string id="23104">Πιέστε το 'Εντάξει' όταν η αναπαραγωγή ολοκληρωθεί</string> + + <!-- strings 24000 thru 24299 reserved for the Add-ons framework --> <string id="24000">Πρόσθετο</string> <string id="24001">Πρόσθετα</string> <string id="24002">Ρυθμίσεις πρόσθετου</string> <string id="24003">Πληροφορίες πρόσθετου</string> + <string id="24005">Πηγές πολυμέσων</string> <string id="24007">Πληροφορίες ταινίας</string> <string id="24008">Προφύλαξη οθόνης</string> @@ -1981,9 +2179,10 @@ <string id="24013">Στίχοι</string> <string id="24014">Πληροφορίες τηλεόρασης</string> <string id="24015">Πληροφορίες μουσικού βίντεο</string> - <string id="24016">Πληροφορίες άλμπουμ </string> + <string id="24016">Πληροφορίες άλμπουμ</string> <string id="24017">Πληροφορίες καλλιτέχνη</string> <string id="24018">Υπηρεσίες</string> + <string id="24020">Ρύθμιση</string> <string id="24021">Απενεργοποίηση</string> <string id="24022">Ενεργοποίηση</string> @@ -2008,7 +2207,8 @@ <string id="24045">Η Επέκταση δεν έχει τη σωστή δομή</string> <string id="24046">%s χρησιμοποιείται από την εγκατεστημένη(νες) Επέκταση(εις)</string> <string id="24047">Αδυναμία απεγκατάστασης αυτής της Επέκτασης</string> - <string id="24048">Επαναφορά </string> + <string id="24048">Επαναφορά</string> + <string id="24050">Διαθέσιμα πρόσθετα</string> <string id="24051">Έκδοση:</string> <string id="24052">Αποποίηση ευθυνών</string> @@ -2025,25 +2225,37 @@ <string id="24067">Γίνεται λήψη πρόσθετων</string> <string id="24068">Διαθέσιμη ενημέρωση</string> <string id="24069">Ενημέρωση</string> + <string id="24070">Αδυναμία χρήσης πρόσθετου.</string> <string id="24071">Παρουσιάστηκε άγνωστο σφάλμα.</string> <string id="24072">Απαιτούνται ρυθμίσεις</string> <string id="24073">Δεν ήταν δυνατή η σύνδεση</string> <string id="24074">Απαιτείται επανεκκίνηση</string> <string id="24075">Απενεργοποίηση</string> + <string id="24076">Απαιτείται Πρόσθετο</string> <string id="24080">Νέα προσπάθεια επανασύνδεσης;</string> <string id="24089">Επανεκκινήσεις πρόσθετου</string> <string id="24090">Κλείδωμα διαχειριστή πρόσθετων</string> + <string id="24094">(τρέχων)</string> - <string id="24095">(ανεπιθύμητο) </string> + <string id="24095">(ανεπιθύμητο)</string> <string id="24096">Το πρόσθετο έχει επισημανθεί ως κατεστραμμένο στο αποθετήριο.</string> <string id="24097">Επιθυμείτε να απενεργοποιηθεί από το σύστημά σας;</string> <string id="24098">Κατεστραμμένο</string> <string id="24099">Επιθυμείτε να εφαρμοστεί αυτό το κέλυφος;</string> + <string id="24100">Για να χρησιμοποιήσετε αυτή τη λειτουργία πρέπει να κατεβάσετε ένα Πρόσθετο:</string> + <string id="24101">Επιθυμείτε να κατεβάσετε αυτό το Πρόσθετο;</string> <string id="25000">Ειδοποιήσεις</string> + + <!-- strings 29800 thru 29998 reserved strings used only in the default Project Mayhem III skin and not c++ code --> <string id="29800">Λειτουργία συλλογής</string> <string id="29801">Διάταξη πληκτρολογίου QWERTY</string> <string id="29802">Σε λειτουργία η διέλευση ήχου</string> + + <!-- strings 30000 thru 30999 reserved for plugins and plugin settings --> + <!-- strings 31000 thru 31999 reserved for skins --> + <!-- strings 32000 thru 32999 reserved for scripts --> + <!-- strings 33000 thru 33999 reserved for common strings used in addons --> <string id="33001">Ποιότητα διαφημιστικού</string> <string id="33002">Ροή πολυμέσων</string> <string id="33003">Λήψη</string> @@ -2116,16 +2328,22 @@ <string id="33081">Αυτό το αρχείο είναι στοιβαγμένο, επιλέξτε το μέρος αυτού που επιθυμείτε να αναπαραχθεί.</string> <string id="33082">Διαδρομή για το script</string> <string id="33083">Ενεργοποίηση προσαρμοσμένου πλήκτρου script</string> + <string id="33100">Αποτυχία εκκίνησης</string> <string id="33101">Διακομιστής web</string> <string id="33102">Διακομιστής Συμβάντων</string> <string id="33103">Απομακρυσμένος Διακομιστής Επικοινωνίας</string> + + <string id="33200">Εντοπίστηκε Νέα Σύνδεση</string> + + <!-- translators: no need to add these to your language files --> <string id="34000">Lame</string> <string id="34001">Vorbis</string> <string id="34002">Wav</string> <string id="34003">DXVA2</string> <string id="34004">VAAPI</string> <string id="34005">Flac</string> + <string id="34100">Διάταξη ηχείων</string> <string id="34101">2.0</string> <string id="34102">2.1</string> @@ -2137,22 +2355,36 @@ <string id="34108">5.1</string> <string id="34109">7.0</string> <string id="34110">7.1</string> + <!-- 34112-34200 reserved for future use --> + <string id="34201">Αδυναμία εύρεσης επόμενου αντικειμένου για αναπαραγωγή</string> <string id="34202">Αδυναμία εύρεσης προηγούμενου αντικειμένου για αναπαραγωγή</string> + + <string id="34300">Αποτυχία εκκίνησης του zeroconf</string> + <string id="34301">Είναι εγκατεστημένη η Υπηρεσία Bonjour της Apple; Δείτε το αρχείο καταγραφής για περισσότερες πληροφορίες.</string> + + <string id="34400">Απόδοση Βίντεο</string> + <string id="34401">Αποτυχία αρχικοποίησης φίλτρων/scalers βίντεο, επαναφορά σε διγραμμική προσαρμογή ανάλυσης</string> + <string id="34402">Αποτυχία αρχικοποίησης της συσκευής ήχου</string> + <string id="34403">Ελέγξτε τις ρυθμίσεις ήχου</string> + <string id="35000">Περιφερειακά</string> + <string id="35001">Γενική συσκευή HID</string> <string id="35002">Γενικός προσαρμογέας δικτύου</string> <string id="35003">Γενικός δίσκος</string> - <string id="35004">Δεν υπάρχουν διαθέσιμες ρυθμίσεις για αυτό το περιφερικό.</string> + <string id="35004">Δεν υπάρχουν διαθέσιμες ρυθμίσεις για αυτό το περιφερειακό.</string> <string id="35005">Η νέα συσκευή έχει ρυθμιστεί</string> <string id="35006">Η συσκευή έχει αφαιρεθεί</string> - <string id="35007">Το Keymap να χρησιμοποιήθει για τη συγκεκριμένη συσκευή</string> + <string id="35007">Το Keymap να χρησιμοποιηθεί για τη συγκεκριμένη συσκευή</string> <string id="35008">Ενεργοποιημένο Keymap</string> + <string id="35500">Τοποθεσία</string> <string id="35501">Κλάση</string> <string id="35502">Όνομα</string> <string id="35503">Προμηθευτής</string> <string id="35504">Αναγνωριστικό προϊόντος</string> + <string id="36000">Προσαρμογέας Pulse-Eight CEC</string> <string id="36001">Pulse-Eight Nyxboard</string> <string id="36002">Μετάβαση στο πληκτρολόγιο εντολών</string> @@ -2171,5 +2403,5 @@ <string id="36015">Αριθμός θύρας HDMI</string> <string id="36016">Συνδεδεμένη</string> <!-- max. 13 characters --> <string id="36017">O προσαρμογέας εντοπίσθηκε, αλλά η libcec δεν είναι διαθέσιμη</string> - <string id="36018">Χρησιμοποιήστε τη γλώσσα της τηλεόρασης</string> + <string id="36018">Χρήση της γλώσσας της τηλεόρασης</string> </strings> diff --git a/language/Hebrew/langinfo.xml b/language/Hebrew/langinfo.xml index cee9ec5264..e160608559 100644 --- a/language/Hebrew/langinfo.xml +++ b/language/Hebrew/langinfo.xml @@ -12,13 +12,22 @@ </dvd> <regions> - <region locale="IL"> + <region name="ISRAEL (12h)" locale="IL"> + <dateshort>DD/MM/YYYY</dateshort> + <datelong>DDDD DD MMMM YYYY</datelong> + <time symbolAM="" symbolPM="">hh:mm:ss</time> + <tempunit>C</tempunit> + <speedunit>kmh</speedunit> + </region> + + <region name="ISRAEL (24h)" locale="US"> <dateshort>DD/MM/YYYY</dateshort> <datelong>DDDD DD MMMM YYYY</datelong> <time symbolAM="" symbolPM="">HH:mm:ss</time> <tempunit>C</tempunit> <speedunit>kmh</speedunit> </region> + </regions> </language> diff --git a/language/Hebrew/strings.xml b/language/Hebrew/strings.xml index ed47e1846d..ba60c85dc5 100644 --- a/language/Hebrew/strings.xml +++ b/language/Hebrew/strings.xml @@ -2,8 +2,8 @@ <!--Language file translated with Team XBMC Translator--> <!--Translator: Idan Bushari--> <!--Email: bushari2003@hotmail.com--> -<!--Date of translation: 01/25/2012--> -<!--Based on English 3978ce61ee897fab5daf83c345f3a8183aae0b22 (26.01.2012)--> +<!--Date of translation: 02/20/2012--> +<!--Based on English 0ee1ef09238e4d913cf6c47fa18138c3654cd33e (08.02.2012)--> <strings> <string id="0">תוכנות</string> <string id="1">תמונות</string> @@ -812,8 +812,11 @@ <string id="10019">הגדרות - מראה</string> <string id="10020">סקריפטים</string> <string id="10021">דפדפן אינטרנט</string> + <string id="10025">וידאו</string> <string id="10028">וידאו/רשימת ניגון</string> + <string id="10029">מסך כניסה</string> <string id="10034">הגדרות - פרופילים</string> + <string id="10040">דפדפן הרחבות</string> <string id="10100">דיאלוג לא/כן</string> <string id="10101">דיאלוג התקדמות</string> <string id="10210">מחפש כתוביות...</string> @@ -1389,16 +1392,16 @@ <string id="20042">נעל מנהל קבצים</string> <string id="20043">נעל הגדרות</string> <string id="20044">התחל מחדש</string> - <string id="20045">היכנס למצב מומחה</string> - <string id="20046">צא ממצב מומחה</string> + <string id="20045">היכנס למצב ראשי</string> + <string id="20046">צא ממצב ראשי</string> <string id="20047">צור פרופיל '%s' ?</string> <string id="20048">התחל עם הגדרות חדשות</string> <string id="20049">הזמין הטוב ביותר</string> <string id="20050">החלף אוטומטית בין 16x9 ו 4x3</string> <string id="20051">התייחס לערימת קבצים כקובץ אחד</string> <string id="20052">זהירות</string> - <string id="20053">עזב מצב מומחה</string> - <string id="20054">נכנס למצב מומחה</string> + <string id="20053">עזב מצב ראשי</string> + <string id="20054">נכנס למצב ראשי</string> <string id="20055">תמונה ממוזערת Allmusic.com</string> <string id="20057">הסר תמונה ממוזערת</string> <string id="20058">הוסף פרופיל...</string> @@ -1444,7 +1447,7 @@ <string id="20098">משיג פרטים עבור האלבום</string> <string id="20099">לא יכול להעתיק דיסק או רצועה בזמן ניגון מהדיסק</string> <string id="20100">קוד נעילה ראשי והגדרות</string> - <string id="20101">הזנת קוד נעילה ראשי תמיד מאפשרת מצב מומחה</string> + <string id="20101">הזנת קוד נעילה ראשי תמיד מאפשרת מצב ראשי</string> <string id="20102">או העתק מברירת מחדל?</string> <string id="20103">שמור שינויים לפרופיל?</string> <string id="20104">הגדרות ישנות נמצאו</string> @@ -1563,6 +1566,7 @@ <string id="20326">זה יאפס את ערכי הכיול ל %s</string> <string id="20327">לערכי ברירת המחדל שלו</string> <string id="20328">עיין לנתיב יעד</string> + <string id="20329">סרטים נמצאים בתיקיות נפרדות עם כותרת הסרט</string> <string id="20330">השתמש בשמות תיקיות לחיפוש</string> <string id="20331">קובץ</string> <string id="20332">השתמש בשמות תיקיה או קובץ בחיפוש?</string> @@ -1666,7 +1670,7 @@ <string id="20432">אל תכלול נתיב זה בעידכוני ספריה</string> <string id="20433">חלץ תמונות ממוזערות ופרטי וידאו</string> <string id="20434">מארזים</string> - <string id="20435">קבע תמונות ממוזערת למארז סרטים</string> + <string id="20435">קבע תמונה ממוזערת למארז סרטים</string> <string id="20436">לייצא תמונות ממוזערות לשחקנים</string> <string id="20437">בחר פאנארט</string> <string id="20438">פאנארט מקומי</string> diff --git a/language/Italian/strings.xml b/language/Italian/strings.xml index abcc3c7cc1..a60cdc596b 100644 --- a/language/Italian/strings.xml +++ b/language/Italian/strings.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<!--Translator: Succo, updated by Gulp--> +<!--Translator: Succo, updated by Gulp and Liltee89--> <!--Email: succo69@libero.it, http://forum.xbmc.org/member.php?u=42290--> -<!--Based on English 98d103ae66a1e81e379e65dd131341cd119cfcf2 (21.01.2012)--> +<!--Based on English 5c8c939de7422db2427f37d5c26036138a9fe04e (03.02.2012)--> <strings> <string id="0">Programmi</string> <string id="1">Immagini</string> @@ -346,17 +346,17 @@ <string id="382">Sparsi</string> <string id="383">Vento</string> <string id="384">Forte</string> - <string id="385">Bello</string> - <string id="386">Chiaro</string> + <string id="385">Sereno</string> + <string id="386">Limpido</string> <string id="387">Nuvoloso</string> <string id="388">Anticipati</string> <string id="389">Rovescio</string> <string id="390">Turbini</string> - <string id="391">Bassa</string> + <string id="391">Minima</string> <string id="392">Media</string> - <string id="393">Alta</string> + <string id="393">Massima</string> <string id="394">Nebbia</string> - <string id="395">Coperto</string> + <string id="395">Foschia</string> <string id="396">Seleziona località</string> <string id="397">Aggiornamento</string> <string id="398">Misura di temperatura</string> @@ -1774,7 +1774,7 @@ <string id="20326">Questo resetterà il valore di calibrazione per %s</string> <string id="20327">al suo valore originale.</string> <string id="20328">Cerca la destinazione</string> - + <string id="20329">I film sono in cartelle separate rinominate con il titolo del film</string> <string id="20330">Usa i nomi delle cartelle per le ricerche</string> <string id="20331">File</string> <string id="20332">Uso i nomi dei files o delle cartelle per le ricerche?</string> @@ -1904,6 +1904,7 @@ <string id="20455">In Ascolto</string> <string id="20456">Imposta l'immagine fanart per un set di filmati</string> <string id="20457">imposta filmato</string> + <string id="20458">Raggruppa film in antologie</string> <!-- up to 21329 is reserved for the video db !! !--> <string id="21330">Mostra i files e le cartelle nascoste</string> diff --git a/language/Korean/strings.xml b/language/Korean/strings.xml index a69dd93b07..3a6044aeec 100644 --- a/language/Korean/strings.xml +++ b/language/Korean/strings.xml @@ -707,7 +707,7 @@ <string id="852">유효한 포트 범위는 1024-65535 입니다</string> <string id="998">음악 파일 위치 추가...</string> - <string id="999">비디오 파일 위치 추가...</string> + <string id="999">비디오 추가...</string> <string id="1000">- 미리보기</string> <string id="1001">연결할수 없음</string> <string id="1002">XBMC가 네트워크에 연결할수 없습니다.</string> @@ -874,9 +874,11 @@ <string id="10019">설정 - 모양새</string> <string id="10020">스크립트</string> <string id="10021">웹 브라우저</string> - + <string id="10025">비디오</string> <string id="10028">비디오/재생목록</string> + <string id="10029">로그인 화면</string> <string id="10034">설정 - 프로파일</string> + <string id="10040">애드온 탐색기</string> <string id="10100">예/아니오 대화창</string> <string id="10101">진행 대화창</string> @@ -1209,7 +1211,7 @@ <string id="13409">인기 250</string> <string id="13410">Last.fm 에 채널을 맞춤</string> <string id="13411">최소 팬 속도</string> - <string id="13412">Play from here</string> + <string id="13412">이 항목부터 재생</string> <string id="13413">다운로드</string> <string id="13414">컴필레이션에만 있는 아티스트 포함</string> <string id="13415">렌더링 방식</string> @@ -1772,7 +1774,7 @@ <string id="20326">기본값으로 %s 조정값를</string> <string id="20327">초기화하게 됩니다.</string> <string id="20328">대상 찾기</string> - + <string id="20329">영화 파일들이 영화 제목과 같은 개별 폴더에 저장됨</string> <string id="20330">검색에 폴더 이름 사용</string> <string id="20331">파일</string> <string id="20332">검색에 파일이나 폴더 이름을 사용 하시겠습니까?</string> @@ -1862,7 +1864,7 @@ <string id="20416">초연</string> <string id="20417">각본</string> <string id="20418">파일 및 폴더 이름 정리</string> - <string id="20419">파일 보기에서 미디어정보 보기</string> + <string id="20419">파일명을 라이브러리 제목으로 표시</string> <string id="20420">안함</string> <string id="20421">한 시즌 일때만</string> @@ -1902,6 +1904,7 @@ <string id="20455">청취자</string> <string id="20456">시리즈 영화 팬아트 설정</string> <string id="20457">시리즈 영화</string> + <string id="20458">시리즈 영화 묶기</string> <!-- up to 21329 is reserved for the video db !! !--> <string id="21330">숨김 파일 및 디렉토리 보이기</string> @@ -2009,6 +2012,8 @@ <string id="21451">인터넷 연결이 필요함.</string> <string id="21452">더 가져오기...</string> <string id="21453">루트 파일시스템</string> + <string id="21454">캐시 가득참</string> + <string id="21455">연속 재생에 필요한 양에 도달하기 전에 캐시가 채워짐</string> <string id="21460">자막 위치</string> <string id="21461">고정</string> @@ -2198,7 +2203,7 @@ <string id="24041">압축 파일에서 설치</string> <string id="24042">%i%% 다운로드중</string> <string id="24043">사용가능한 업데이트</string> - <string id="24044">Dependencies not met</string> + <string id="24044">설치 요구조건을 충족하지 않습니다</string> <string id="24045">애드온의 구조가 바르지 않습니다</string> <string id="24046">%s 을 설치된 애드온이 사용합니다.</string> <string id="24047">이 추가기능은 제거할 수 없습니다</string> @@ -2329,6 +2334,8 @@ <string id="33102">이벤트 서버</string> <string id="33103">원격 커뮤니케이션 서버</string> + <string id="33200">새 연결 검색됨</string> + <!-- translators: no need to add these to your language files --> <string id="34000">Lame</string> <string id="34001">Vorbis</string> @@ -2353,6 +2360,14 @@ <string id="34201">재생할 다음 항목이 없습니다</string> <string id="34202">재생할 이전 항목이 없습니다</string> + <string id="34300">제로컨프 시작 실패</string> + <string id="34301">애플 봉주르 서비스가 설치되어 있습니까? 자세한 정보는 로그를 확인하세요.</string> + + <string id="34400">비디오 렌더링</string> + <string id="34401">비디오 필터/스케일러 초기화 실패. 이중선형 스케일링으로 변경합니다</string> + <string id="34402">오디오 장치 초기화 실패</string> + <string id="34403">오디오 설정을 확인하세요</string> + <string id="35000">주변장치</string> <string id="35001">Generic HID 장치</string> @@ -2375,7 +2390,7 @@ <string id="36002">키보드 사이드 명령으로 전환</string> <string id="36003">리모콘 사이드 명령으로 전환</string> <string id="36004">"user" 버튼 명령 누르기</string> - <string id="36005">Enable switch side commands</string> + <string id="36005">스위치 사이드 명령 사용</string> <string id="36006">어댑터를 열 수 없습니다</string> <string id="36007">XBMC 시작시 TV 켜기</string> <string id="36008">XBMC 종료시 장치 전원 끄기</string> diff --git a/language/Polish/strings.xml b/language/Polish/strings.xml index 61d47085a6..ac07e8ef9d 100644 --- a/language/Polish/strings.xml +++ b/language/Polish/strings.xml @@ -2,7 +2,7 @@ <!--Language file translated with Team XBMC Translator--> <!--Translator: Rafał Wójcik--> <!--Email: rafal.wojcik@gmail.com--> -<!--Date of translation: 12/25/2011--> +<!--Date of translation: 02/21/2012--> <!--$Revision$--> <strings> <string id="0">Programy</string> @@ -808,8 +808,11 @@ <string id="10019">Ustawienia - Wygląd</string> <string id="10020">Skrypty</string> <string id="10021">Przeglądarka</string> + <string id="10025">Pliki wideo</string> <string id="10028">Wideo/Playlista</string> + <string id="10029">Ekran logowania</string> <string id="10034">Ustawienia - Profile</string> + <string id="10040">Przeglądarka wtyczek</string> <string id="10100">Dialog Tak/Nie</string> <string id="10101">Okno postępu</string> <string id="10210">Szukam napisów...</string> @@ -1554,6 +1557,9 @@ <string id="20256">Klient HTS Tvheadend</string> <string id="20257">Klient VDR Streamdev</string> <string id="20258">Klient MythTV</string> + <string id="20259">System plików NFS</string> + <string id="20260">SSH/SFTP</string> + <string id="20261">Protokół AFP</string> <string id="20300">Katalog serwera web (HTTP)</string> <string id="20301">Katalog serwera web (HTTPS)</string> <string id="20302">Nie powiódł się zapis do folderu:</string> @@ -1572,6 +1578,7 @@ <string id="20326">Spowoduje to reset ustawień kalibracji dla %s</string> <string id="20327">i zostaną przywrócone wartości domyślne.</string> <string id="20328">Wskaż katalog docelowy</string> + <string id="20329">Filmy są w oddzielnych katalogach, z nazwami tytułu filmu</string> <string id="20330">Nazwa folderu jako podstawa szukania</string> <string id="20331">Plik</string> <string id="20332">Użyć nazwy pliku lub folderu jako podstawy szukania?</string> @@ -1698,6 +1705,7 @@ <string id="20455">Słuchaczy</string> <string id="20456">Ustaw fanart dla kolekcji filmów</string> <string id="20457">Kolekcja filmów</string> + <string id="20458">Grupuj filmy w kolekcje</string> <string id="21330">Pokazuj ukryte pliki i foldery</string> <string id="21331">Klient TuxBox</string> <string id="21332">UWAGA: Urządzenie TuxBox jest w trybie nagrywania!</string> @@ -1796,6 +1804,8 @@ <string id="21451">Wymagane połączenie z Internetem.</string> <string id="21452">Pobierz więcej...</string> <string id="21453">Główny system plików</string> + <string id="21454">Pełny bufor</string> + <string id="21455">Bufor wypełniany zanim osiągnie wymagany poziom do ciągłego odtwarzania</string> <string id="21460">Położenie napisów</string> <string id="21461">Stałe</string> <string id="21462">Dół wideo</string> @@ -1965,6 +1975,7 @@ <string id="24041">Instaluj z pliku zip</string> <string id="24042">Pobieram %i%%</string> <string id="24043">Dostępne aktualizacje</string> + <string id="24044">Zależności nie są spełnione</string> <string id="24045">Wtyczka nie ma właściwej struktury</string> <string id="24046">%s jest używany przez następujące zainstalowane wtyczki</string> <string id="24047">Ta wtyczka nie może zostać usunięta</string> @@ -2079,9 +2090,16 @@ <string id="33101">Serwer WWW</string> <string id="33102">Serwer zdarzeń</string> <string id="33103">Serwer zdalnej komunikacji</string> + <string id="33200">Wykryto nowe połączenie</string> <string id="34100">System głośników</string> <string id="34201">Nie mogę znaleźć następnej pozycji do odtworzenia</string> <string id="34202">Nie mogę znaleźć poprzedniej pozycji do odtworzenia</string> + <string id="34300">Błąd podczas startu zeroconf</string> + <string id="34301">Usługa Apple Bonjour jest zainstalowana? Sprawdź log.</string> + <string id="34400">Rendering wideo</string> + <string id="34401">Błąd inicjalizacji filtrów/skalerów wideo, powracam do skalowania bilinearnego</string> + <string id="34402">Błąd inicjalizacji urządzenia audio</string> + <string id="34403">Sprawdź ustawienia dźwięku</string> <string id="35000">Peryferia</string> <string id="35001">Standardowe urządzenie HID</string> <string id="35002">Standardowy adapter sieciowy</string> @@ -2089,7 +2107,13 @@ <string id="35004">To urządzenie nie ma ustawień.</string> <string id="35005">Skonfigurowano nowe urządzenie</string> <string id="35006">Usunięto urządzenie</string> + <string id="35007">Mapa klawiszy do użycia z tym urządzeniem</string> + <string id="35008">Mapa klawiszy włączona</string> <string id="35500">Położenie</string> + <string id="35501">Klasa</string> + <string id="35502">Nazwa</string> + <string id="35503">Dostawca</string> + <string id="35504">ID produktu</string> <string id="36000">Adapter Pulse-Eight CEC</string> <string id="36006">Nie mogę połączyć się z adapterem</string> <string id="36007">Włącz TV, kiedy uruchomiany jest XBMC</string> diff --git a/language/Portuguese (Brazil)/strings.xml b/language/Portuguese (Brazil)/strings.xml index 3739a1110e..27bb50e389 100644 --- a/language/Portuguese (Brazil)/strings.xml +++ b/language/Portuguese (Brazil)/strings.xml @@ -2,11 +2,10 @@ <!--Language file translated with Team XBMC Translator[wm] --> <!--Translator: Fabiano Santiago (fabianosan), bugre (wm) --> <!--Email: fabianosan@hotmail.com, wxxx333-nospam-at-gmail.com --> -<!--Date of translation: 12/21/2009 --> +<!--Updated on 15/02/2012 by wcampos --> <!--Updated on 28/08/2011 by fabianosan --> <!--Updated on 15/11/2010 by bugre --> -<!--$Revision$--> -<!--Based on english strings version 35193--> +<!--Based on English 4a0e4931310c8957d73ffec0cf6fdfa9292bb8d4 (08.02.2012)--> <strings> <string id="0">Programas</string> <string id="1">Imagens</string> @@ -18,6 +17,7 @@ <string id="7">Arquivos</string> <string id="8">Tempo</string> <string id="9">xbmc media center</string> + <string id="11">Segunda</string> <string id="12">Terça</string> <string id="13">Quarta</string> @@ -25,6 +25,7 @@ <string id="15">Sexta</string> <string id="16">Sábado</string> <string id="17">Domingo</string> + <string id="21">Janeiro</string> <string id="22">Fevereiro</string> <string id="23">Março</string> @@ -37,6 +38,7 @@ <string id="30">Outubro</string> <string id="31">Novembro</string> <string id="32">Dezembro</string> + <string id="41">Seg</string> <string id="42">Ter</string> <string id="43">Qua</string> @@ -56,6 +58,7 @@ <string id="60">Out</string> <string id="61">Nov</string> <string id="62">Dez</string> + <string id="71">N</string> <string id="72">NNE</string> <string id="73">NO</string> @@ -73,6 +76,7 @@ <string id="85">NL</string> <string id="86">NNL</string> <string id="87">VAR</string> + <string id="98">Ver: Auto</string> <string id="99">Ver: Auto grande</string> <string id="100">Ver: Icones</string> @@ -142,13 +146,18 @@ <string id="164">Sem disco</string> <string id="165">Disco presente</string> <string id="166">Skin</string> + <string id="169">Resolução</string> <string id="170">Ajustar taxa de atualização para mesma da tela</string> + <string id="171"></string> + <string id="172">Data de lançamento:</string> <string id="173">Exibir videos 4:3 como</string> + <string id="175">Modos</string> <string id="176">Estilos</string> + <string id="179">Música</string> <string id="180">Duração</string> <string id="181">Selecionar álbum</string> @@ -170,8 +179,10 @@ <string id="197">Procurando informação de %s</string> <string id="198">Carregando detalhes do filme</string> <string id="199">Interface web</string> + <string id="202">Título:</string> <string id="203">Sinopse:</string> + <string id="205">Votos</string> <string id="206">Elenco</string> <string id="207">Enredo</string> @@ -189,6 +200,7 @@ <string id="221">Rede não está conectada</string> <string id="222">Cancelar</string> <string id="224">Velocidade</string> + <string id="225">Deslocamento Vertical</string> <string id="226">Padrões de teste....</string> <string id="227">Procurar CDs de áudio na Internet</string> <string id="228">Misturar lista de reprodução ao carregar</string> @@ -209,6 +221,7 @@ <string id="243">Taxa de Atualização</string> <string id="244">Tela Cheia</string> <string id="245">Dimensionando: (%i,%i)->(%i,%i) (Zoom x%2.2f) AR:%2.2f:1 (Pixels: %2.2f:1)</string> + <string id="247">Scripts</string> <string id="248">Idioma</string> <string id="249">Música</string> @@ -247,6 +260,7 @@ <string id="282">Encontrado(s) %i item(s)</string> <string id="283">Resultado(s) da busca</string> <string id="284">Nenhum resultado encontrado</string> + <string id="287">Legendas</string> <string id="288">Fonte</string> <string id="289">- Tamanho</string> @@ -266,6 +280,7 @@ <string id="304">Idioma</string> <string id="305">Ativado</string> <string id="306">Não-intercalado</string> + <string id="312">(0=auto)</string> <string id="313">Excluindo banco de dados</string> <string id="314">Preparando...</string> @@ -358,6 +373,7 @@ <string id="404">Vento</string> <string id="405">Pt. de orvalho</string> <string id="406">Umidade</string> + <string id="409">Padrões</string> <string id="410">Acessando o serviço de meteorologia</string> <string id="411">Obtendo informações de tempo para:</string> @@ -370,6 +386,7 @@ <string id="418">Baixo</string> <string id="419">Alto</string> <string id="420">HDMI</string> + <string id="422">Excluir informações do álbum</string> <string id="423">Excluir informações do CD</string> <string id="424">Selecionar</string> @@ -383,6 +400,7 @@ <string id="432">Excluir filme da coleção</string> <string id="433">Deseja excluir '%s'?</string> <string id="434">De %s até %i %s</string> + <string id="437">Disco removível</string> <string id="438">Abrindo arquivo</string> <string id="439">Cache</string> @@ -426,6 +444,7 @@ <string id="480">Aparência</string> <string id="481">Opções de Áudio</string> <string id="482">Sobre o XBMC</string> + <string id="485">Excluir álbum</string> <string id="486">Repetir</string> <string id="487">Repetir uma</string> @@ -453,9 +472,11 @@ <string id="513">Janela principal</string> <string id="514">Configurações manuais</string> <string id="515">Gênero</string> + <string id="517">Álbuns reproduzidos recentemente</string> <string id="518">Iniciar</string> <string id="519">Iniciar em..</string> + <string id="521">Compilações</string> <string id="522">Remover origem</string> <string id="523">Trocar mídia</string> @@ -484,6 +505,7 @@ <string id="546">Dispositivo de saída de passagem</string> <string id="547">Sem biografia para este artista</string> <string id="548">Converter áudio multicanal para estéreo</string> + <string id="550">Ordenar por: %s</string> <string id="551">Nome</string> <string id="552">Data</string> @@ -530,12 +552,14 @@ <string id="595">Repetir: desl.</string> <string id="596">Repetir: uma</string> <string id="597">Repetir: todos</string> + <string id="600">Extrair CD de áudio</string> <string id="601">Média</string> <string id="602">Padrão</string> <string id="603">Extrema</string> <string id="604">Taxa de bits constante</string> <string id="605">Extraindo...</string> + <string id="607">Para:</string> <string id="608">Não foi possível extrair o CD ou faixa</string> <string id="609">CDDARipPath não foi definido.</string> @@ -543,6 +567,7 @@ <string id="611">Digite número</string> <string id="612">Bits/Amostra</string> <string id="613">Frequencia de amostra</string> + <string id="620">CDs de áudio</string> <string id="621">Codificador</string> <string id="622">Qualidade</string> @@ -580,24 +605,30 @@ <string id="657">Busca pasta</string> <string id="658">Informação da música</string> <string id="659">Expansão não-linear</string> + <string id="660">Amplificação de volume</string> <string id="661">Pasta de exportação</string> <string id="662">Este arquivo não está mais disponível.</string> <string id="663">Gostaria de remover da coleção?</string> <string id="664">Busca Script</string> <string id="665">Nível de Compressão</string> + <string id="700">Limpando a coleção</string> <string id="701">Removendo músicas antigas da coleção</string> <string id="702">Este caminho já foi examinado anteriormente</string> <string id="705">Rede</string> <string id="706">- Servidor</string> + <string id="708">Ativar proxy HTTP</string> + <string id="711">Internet Protocol (IP)</string> <string id="712">Porta inválida. O valor deve ser entre 1 e 65535.</string> <string id="713">Proxy HTTP</string> + <string id="715">- Atribuição</string> <string id="716">Automático (DHCP)</string> <string id="717">Manual (estático)</string> + <string id="719">- Endereço IP:</string> <string id="720">- Máscara de sub-rede:</string> <string id="721">- Gateway padrão:</string> @@ -608,7 +639,9 @@ <string id="726">As mudanças não foram salvas. Deseja continuar mesmo assim?</string> <string id="727">Servidor Web</string> <string id="728">Servidor FTP</string> + <string id="730">- Porta</string> + <string id="732">Salvar & aplicar</string> <string id="733">- Senha</string> <string id="734">Sem senha</string> @@ -629,10 +662,12 @@ <string id="749">Espelhar imagem</string> <string id="750">Tem certeza?</string> <string id="751">Removendo origem</string> + <string id="754">Adicionar link de programa</string> <string id="755">Editar caminho do programa</string> <string id="756">Editar nome do programa</string> <string id="757">Editar a profundidade do caminho</string> + <string id="759">Ver: lista grande</string> <string id="760">Amarelo</string> <string id="761">Branco</string> @@ -642,7 +677,9 @@ <string id="765">Ciano</string> <string id="766">Cinza claro</string> <string id="767">Cinza</string> + <string id="770">Erro %i: compartilhamento não disponível</string> + <string id="772">Saída de áudio</string> <string id="773">Procurando</string> <string id="774">Pasta de apresentação (slideshow)</string> @@ -661,6 +698,7 @@ <string id="787">Interface de rede desabilitada</string> <string id="788">Interface de rede desabilitada com sucesso.</string> <string id="789">Nome da rede sem fio (ESSID)</string> + <string id="791">Permitir programas locais controlar o XBMC</string> <string id="792">Porta</string> <string id="793">Intervalo de portas</string> @@ -669,14 +707,19 @@ <string id="796">Atraso de repetição contínuo (ms)</string> <string id="797">Número máximo de clientes</string> <string id="798">Acesso internet</string> + <string id="850">Número de porta inválido</string> <string id="851">Intervalor de portas válido 1-65535</string> <string id="852">Intervalor de portas válido 1024-65535</string> + + <string id="998">Adicione Música...</string> + <string id="999">Adicione Vídeos...</string> <string id="1000">- Previsualização</string> <string id="1001">Incapaz de conectar</string> <string id="1002">O XBMC foi incapaz de conectar ao local de rede</string> <string id="1003">Isto pode ser devido a rede não estar conectada.</string> <string id="1004">Gostaria de adicionar assim mesmo?</string> + <string id="1006">Endereço IP</string> <string id="1007">Adicionar Local de rede</string> <string id="1008">Protocolo</string> @@ -723,12 +766,15 @@ <string id="1049">Opções do Script</string> <string id="1050">Singles</string> <string id="1051">Digite a URL</string> + <string id="1200">Cliente SMB</string> <string id="1202">Grupo de trabalho</string> <string id="1203">Usuário padrão</string> <string id="1204">Senha padrão</string> + <string id="1207">Servidor WINS</string> <string id="1208">Montar compartilhamento SMB</string> + <string id="1210">Remover</string> <string id="1211">Música</string> <string id="1212">Vídeo</string> @@ -753,16 +799,24 @@ <string id="1233">Programas & vídeo & música</string> <string id="1234">Programas & imagens & música</string> <string id="1235">Programas & imagens & vídeo</string> + <string id="1250">Auto detecção</string> <string id="1251">Auto detectar sistemas</string> <string id="1252">Apelido</string> + <string id="1254">Perguntar para conectar</string> <string id="1255">Enviar usuário e senha de FTP</string> <string id="1256">Intervalo de ping</string> <string id="1257">Gostaria de conectar ao sistema auto detectado?</string> + <string id="1260">Anunciar estes serviços para outros sistemas via Zeroconf</string> + <string id="1270">Permitir ao XBMC receber contéudo AirPlay</string> + <string id="1271">Nome Equipamento</string> + <string id="1272">- Usar senha para proteção</string> + <string id="1300">Dispositivo de áudio personalizado</string> <string id="1301">Dispositivo de passagem personalizado</string> + <string id="1396">Correntes de ar</string> <string id="1397">e</string> <string id="1398">Congelando</string> @@ -791,11 +845,16 @@ <string id="1421">Muito Alto</string> <string id="1422">Ventoso</string> <string id="1423">Névoa</string> + <string id="1450">Colocar tela em descanso quando inativo</string> + <string id="2050">Executável</string> + <string id="2100">Falha no Script! : %s</string> <string id="2101">Necessário versão mais nova - Veja o log</string> + <string id="4501">Habilitar LCD/VFD</string> + <string id="10000">Home</string> <string id="10001">Programas</string> <string id="10002">Imagens</string> @@ -818,15 +877,23 @@ <string id="10019">Configurações - Aparência</string> <string id="10020">Scripts</string> <string id="10021">Navegador Web</string> + <string id="10028">Vídeos/lista de reprodução</string> + <string id="10029">Tela de Login</string> + <string id="10034">Configurações - Perfil</string> + + <string id="10040">Addon-Navegador</string> + <string id="10100">Janela sim/não</string> <string id="10101">Janela de progresso</string> + <string id="10210">Procurando legendas...</string> <string id="10211">Procurando ou armazenando legendas</string> <string id="10212">terminando</string> <string id="10213">carregando</string> <string id="10214">Abrindo sinal</string> + <string id="10500">Música/lista de reprodução</string> <string id="10501">Música/arquivos</string> <string id="10502">Música/coleção</string> @@ -834,16 +901,20 @@ <string id="10504">As 100 melhores músicas</string> <string id="10505">Os 100 melhores álbuns</string> <string id="10506">Programas</string> + <string id="10507">Configurações</string> <string id="10508">Previsão do tempo</string> <string id="10509">Jogos em rede</string> <string id="10510">Extensões</string> <string id="10511">Informações do sistema</string> + <string id="10516">Músicas - Coleção</string> <string id="10517">Tocando agora - Músicas</string> + <string id="10522">Tocando agora - Vídeos</string> <string id="10523">Informação do álbum</string> <string id="10524">Informação do filme</string> + <string id="12000">Selec. janela</string> <string id="12001">Música/informação</string> <string id="12002">Janela OK</string> @@ -851,12 +922,15 @@ <string id="12004">Scripts/informação</string> <string id="12005">Vídeo em tela-cheia</string> <string id="12006">Visualização de áudio</string> + <string id="12008">Janela agrupamento de arquivos</string> <string id="12009">Reconstruindo índice...</string> <string id="12010">Voltar para janela de músicas</string> <string id="12011">Voltar para janela de vídeos</string> + <string id="12021">Iniciar/Reiniciar</string> <string id="12022">Retomar da posição %s</string> + <string id="12310">0</string> <string id="12311">1</string> <string id="12312">2</string> @@ -906,24 +980,31 @@ <string id="12377">Isto irá zerar qualquer valor previamente salvo</string> <string id="12378">Exibir cada imagem por</string> <string id="12379">Usar efeitos de pan e zoom</string> + <string id="12383">relógio 12 horas</string> <string id="12384">relógio 24 horas</string> <string id="12385">Dia/Mês</string> <string id="12386">Mês/Dia</string> + <string id="12390">Uptime do sistema</string> <string id="12391">Minutos</string> <string id="12392">Horas</string> <string id="12393">Dias</string> <string id="12394">Uptime total</string> + <string id="12395">Nível Bateria</string> + <string id="12600">Tempo</string> + <string id="12900">Proteção de tela</string> <string id="12901">OSD em tela-cheia</string> + <string id="13000">Sistema</string> <string id="13001">Diminuir rotação do HD</string> <string id="13002">Somente vídeos</string> <string id="13003">- Atraso</string> <string id="13004">- Tempo mínimo de duração</string> <string id="13005">Desligar</string> + <string id="13008">Modo de desligamento</string> <string id="13009">Terminar</string> <string id="13010">Hibernar</string> @@ -933,15 +1014,19 @@ <string id="13014">Minimizar</string> <string id="13015">Ação do botão de Liga/Desliga</string> <string id="13016">Desligar o sistema</string> + <string id="13020">Tem outra sessão ativa, talvez por ssh?</string> <string id="13021">Disco rígido removível montado</string> <string id="13022">Remoção insegura de dispositivo</string> <string id="13023">Dispositivo removido com sucesso</string> <string id="13024">Joystick conectado</string> <string id="13025">Joystick desconectado</string> + <string id="13050">Bateria fraca</string> + <string id="13100">Filtro de anti-oscilação</string> <string id="13101">Deixe driver escolher (necessita reinicializar)</string> + <string id="13105">Sincronização vertical</string> <string id="13106">Desabilitado</string> <string id="13107">Habilitado durante execução de vídeo</string> @@ -949,10 +1034,12 @@ <string id="13109">Testar e aplicar resolução</string> <string id="13110">Salvar resolução?</string> <string id="13111">Manter esta resolução?</string> + <string id="13112">Aumento de resolução em alta qualidade</string> <string id="13113">Desabilitado</string> <string id="13114">Habilitado para conteúdo SD</string> <string id="13115">Sempre habilitado</string> + <string id="13116">Método de aumento de resolução</string> <string id="13117">Bicúbico</string> <string id="13118">Lanczos</string> @@ -960,30 +1047,38 @@ <string id="13120">VDPAU</string> <string id="13121">Nível VDPAU HQ Upscaling</string> <string id="13122">Nível de conversão de cores VDPAU Studio</string> + <string id="13130">Escurecer outras telas</string> <string id="13131">Desabilitado</string> <string id="13132">Limpar telas</string> + <string id="13140">Detectadas coneções ativas!</string> <string id="13141">Se continuar, poderá perder o controle do XBMC</string> <string id="13142">Tem certeza que quer parar o servidor de Eventos?</string> + <string id="13144">Trocar o modo "Apple Remote"?</string> <string id="13145">Se está utilizando o "Apple Remote" agora para controlar</string> <string id="13146">XBMC, trocar esta configuração pode afetar sua habilidade</string> <string id="13147">de continuar controlando ele. Você deseja prosseguir?</string> + <string id="13159">Máscara de sub-rede</string> <string id="13160">Gateway</string> <string id="13161">DNS primário</string> <string id="13162">Falha na inicialização</string> + <string id="13170">Nunca</string> <string id="13171">Imediatamente</string> <string id="13172">Depois de %i segs</string> <string id="13173">Data de instalação do HDD:</string> <string id="13174">Re-ligamentos do HDD:</string> + <string id="13200">Perfis</string> <string id="13201">Excluir perfil '%s'?</string> + <string id="13204">Último perfil utilizado:</string> <string id="13205">Desconhecido</string> <string id="13206">Sobrescrever</string> + <string id="13208">Alarme do relógio</string> <string id="13209">Intervalo do alarme (em minutos)</string> <string id="13210">Iniciado, alarmar em %im</string> @@ -991,13 +1086,16 @@ <string id="13212">Cancelado restando %im%is</string> <string id="13213">%2.0fm</string> <string id="13214">%2.0fs</string> + <string id="13249">Procurar por legendas em RARs</string> <string id="13250">Buscar por legendas...</string> <string id="13251">Mover item</string> <string id="13252">Mover item aqui</string> <string id="13253">Cancelar mover</string> + <string id="13270">Hardware: </string> <string id="13271">Uso da CPU:</string> + <string id="13274">Conectado, mas nenhum DNS disponível.</string> <string id="13275">Disco rígido</string> <string id="13276">DVD-ROM</string> @@ -1006,15 +1104,20 @@ <string id="13279">Rede</string> <string id="13280">Vídeo</string> <string id="13281">Hardware</string> + <string id="13283">Sistema Operacional:</string> <string id="13284">Velocidade da CPU:</string> + <string id="13286">Encoder de vídeo:</string> <string id="13287">Resolução de tela:</string> + <string id="13292">Cabo A/V:</string> + <string id="13294">Região do DVD:</string> <string id="13295">Internet:</string> <string id="13296">Conectado</string> <string id="13297">Desconectado. Verifique as opções de rede.</string> + <string id="13299">Temperatura desejada:</string> <string id="13300">Velocidade do ventilador</string> <string id="13301">Controle automático de temperatura</string> @@ -1053,6 +1156,7 @@ <string id="13334">Editar etiqueta</string> <string id="13335">Tornar padrão</string> <string id="13336">Remover botão</string> + <string id="13340">Deixar como está</string> <string id="13341">Verde</string> <string id="13342">Laranja</string> @@ -1075,6 +1179,7 @@ <string id="13359">Definir ícone do artista</string> <string id="13360">Gerar ícones automaticamente</string> <string id="13361">Ativar voz</string> + <string id="13375">Ativar dispositivo</string> <string id="13376">Volume</string> <string id="13377">Modo de visualização padrão</string> @@ -1132,6 +1237,7 @@ <string id="13430">Permitir aceleração por hardware (OpenMax)</string> <string id="13431">Pixel Shaders</string> <string id="13432">Permitir aceleração por hardware (VideoToolbox)</string> + <string id="13500">Método de syncronização de A/V</string> <string id="13501">Relógio de áudio</string> <string id="13502">Relógio de vídeo (cortar/ignorar áudio)</string> @@ -1143,19 +1249,25 @@ <string id="13508">Alto</string> <string id="13509">Realmente alto(lento!)</string> <string id="13510">Sincronizar reprodução com a exibição</string> + <string id="13550">Pausa durante alteração na taxa de atualização</string> <string id="13551">Desligado</string> <string id="13552">%.1f Segundo</string> <string id="13553">%.1f Segundos</string> + <string id="13600">Controle Remoto Apple</string> + <string id="13602">Permite iniciar o XBMC através do Controle Remoto</string> <string id="13603">Tempo de espera para sequenciamento</string> + <string id="13610">Desabilitado</string> <string id="13611">Padrão</string> <string id="13612">Controle Remoto Universal</string> <string id="13613">Controle Remoto universal (Harmony)</string> + <string id="13620">Erro Controle Remoto Apple</string> <string id="13621">Suporte ao Controle Remoto Apple pode ser habilitado.</string> + <string id="14000">Agrupar</string> <string id="14001">Desagrupar</string> <string id="14003">Baixando lista de execução...</string> @@ -1163,6 +1275,7 @@ <string id="14005">Interpretando lista de canais...</string> <string id="14006">Recebimento da lista de canais falhou</string> <string id="14007">Recebimento de lista de execução falhou</string> + <string id="14009">Diretório de jogos</string> <string id="14010">Troca automática para ícones baseado em</string> <string id="14011">Ativar troca automática para ícones</string> @@ -1189,10 +1302,12 @@ <string id="14034">Cache do DVD - DVD-ROM</string> <string id="14035">- Rede local</string> <string id="14036">Serviços</string> + <string id="14038">Configurações de rede modificadas</string> <string id="14039">O XBMC precisa reiniciar para aplicar as suas</string> <string id="14040">configurações de rede. Deseja reiniciar agora?</string> <string id="14041">Limitação de banda de Internet</string> + <string id="14043">- Desligar durante a execução</string> <string id="14044">%i mins</string> <string id="14045">%i segs</string> @@ -1204,6 +1319,7 @@ <string id="14051">Formato da hora</string> <string id="14052">Formato da data</string> <string id="14053">Filtros de interface</string> + <string id="14055">Usar busca em segundo plano</string> <string id="14056">Parar busca</string> <string id="14057">Impossível enquanto estiver buscando informações da mídia</string> @@ -1221,6 +1337,7 @@ <string id="14069">Aplicar as configurações agora?</string> <string id="14070">Aplicar mudanças agora</string> <string id="14071">Permitir renomear e excluir arquivos</string> + <string id="14074">Selecionar fuso horário</string> <string id="14075">Ajustar para horário de verão</string> <string id="14076">Adicionar a favoritos</string> @@ -1243,21 +1360,27 @@ <string id="14093">Segurança</string> <string id="14094">Disp. de Entrada</string> <string id="14095">Econ. de energia</string> + <string id="15015">Remove</string> <string id="15016">Jogos</string> + <string id="15019">Adicionar</string> + <string id="15052">Senha</string> + <string id="15100">Coleção</string> <string id="15101">Banco de dados</string> <string id="15102">* Todos álbuns</string> <string id="15103">* Todos artistas</string> <string id="15104">* Todas as músicas</string> <string id="15105">* Todos gêneros</string> + <string id="15107">Carregando...</string> <string id="15108">Sons de navegação</string> <string id="15109">Skin padrão</string> <string id="15111">- Tema</string> <string id="15112">Tema padrão</string> + <string id="15200">Last.fm</string> <string id="15201">Enviar músicas para o Last.fm</string> <string id="15202">Nome de usuário Last.fm</string> @@ -1280,6 +1403,7 @@ <string id="15219">Senha do Libre.fm</string> <string id="15220">Libre.fm</string> <string id="15221">Scrobbler</string> + <string id="15250">Enviar a rádio para o Last.fm</string> <string id="15251">Conectando ao Last.fm...</string> <string id="15252">Selecionando estação...</string> @@ -1316,7 +1440,7 @@ <string id="15283">Faixas ouvidas recentemente por %name%</string> <string id="15284">Ouça recomendações de %name%'s no Last.fm</string> <string id="15285">Melhores gêneros para usuário %name%</string> - <string id="15286">Ouvir lista de reprodução de %name%'s do Last.fm</string> + <string id="15287">Você quer adicionar a faixa atual para as suas faixas prediletas?</string> <string id="15288">Você quer banir a faixa atual?</string> <string id="15289">Adicionado às suas faixas prediletas: '%s'.</string> @@ -1329,16 +1453,21 @@ <string id="15296">Desbanir</string> <string id="15297">Você quer remover esta faixa de suas faixas prediletas?</string> <string id="15298">Você quer desbanir esta faixa?</string> + <string id="15300">Caminho não encontrado ou inválido</string> <string id="15301">Não foi possível conectar ao servidor da rede</string> <string id="15302">Não encontrou servidores</string> <string id="15303">Grupo de trabalho não encontrado</string> + <string id="15310">Abrindo múltiplos caminhos para os marcadores</string> <string id="15311">Caminho:</string> + <string id="16000">Geral</string> + <string id="16002">Busca na internet</string> <string id="16003">Reprodutor</string> <string id="16004">Reproduzir mídia do disco</string> + <string id="16008">Digite um novo título</string> <string id="16009">Nome do filme</string> <string id="16010">Nome do perfil</string> @@ -1368,12 +1497,19 @@ <string id="16034">Não pôde obter músicas do banco de dados.</string> <string id="16035">Lista de execução em modo-festa</string> <string id="16036">De-interlace (Half)</string> + <string id="16037">Desentrelaçamento video</string> + <string id="16038">Método de Desentrelaçamento</string> + <string id="16039">Desligado</string> + <string id="16040">Auto</string> + <string id="16041">Ligado</string> + <string id="16100">Todos os vídeos</string> <string id="16101">Não-vistos </string> <string id="16102">Vistos</string> <string id="16103">Marcar como visto</string> <string id="16104">Marcar como não-visto</string> <string id="16105">Editar título</string> + <string id="16200">Operação foi cancelada</string> <string id="16201">Cópia falhou</string> <string id="16202">Falha ao copiar pelo menos um arquivo</string> @@ -1381,6 +1517,7 @@ <string id="16204">Falha ao mover pelo menos um arquivo</string> <string id="16205">Remover falhou</string> <string id="16206">Falha ao remover pelo menos um arquivo</string> + <string id="16300">Método para escalamento de vídeo</string> <string id="16301">Vizinho mais próximo</string> <string id="16302">Bilinear</string> @@ -1401,21 +1538,29 @@ <string id="16317">Temporal (Half)</string> <string id="16318">Temporal/Spatial (Half)</string> <string id="16319">DXVA</string> + <string id="16320">DXVA Bob</string> + <string id="16321">DXVA Best</string> + <string id="16322">Spline36</string> + <string id="16323">Spline36 otimizado</string> + <string id="16324">Software Blend</string> + <string id="16400">Pós-processamento de video</string> - <string id="16401">Desabilitado</string> - <string id="16402">Ativar para Conteúdo SD</string> - <string id="16403">Sempre Ligado</string> + <string id="17500">Exibir intervalo para descanso</string> + <string id="19000">Trocar para canal</string> + <string id="20000">Pasta de músicas salvas</string> <string id="20001">Usar DVD-player externo</string> <string id="20002">DVD-player externo</string> <string id="20003">Pasta de trainers</string> <string id="20004">Pasta para captura de tela</string> + <string id="20006">Pasta lista de reprodução</string> <string id="20007">Gravações</string> <string id="20008">Screenshots</string> <string id="20009">Usar XBMC</string> + <string id="20011">Lista de reprodução de músicas</string> <string id="20012">Lista de reprodução de vídeos</string> <string id="20013">Você gostaria de iniciar o jogo?</string> @@ -1425,11 +1570,13 @@ <string id="20017">Ícone local</string> <string id="20018">Nenhum ícone</string> <string id="20019">Selecionar ícone</string> + <string id="20022"></string> <string id="20023">Conflito</string> <string id="20024">Examinar novo</string> <string id="20025">Examinar todos</string> <string id="20026">Região</string> + <string id="20037">Resumo</string> <string id="20038">Bloquear seção de música</string> <string id="20039">Bloquear seção de vídeo</string> @@ -1449,6 +1596,7 @@ <string id="20053">Sair do modo-mestre</string> <string id="20054">Entrou no modo-mestre</string> <string id="20055">Ícone Allmusic.com</string> + <string id="20057">Remover ícone</string> <string id="20058">Adicionar perfil...</string> <string id="20059">Obter informação para todos os álbuns</string> @@ -1578,6 +1726,7 @@ <string id="20184">Rotacionar imagens usando informação do EXIF</string> <string id="20185">Usar estilo de visualização poster para seriados</string> <string id="20186">Por favor aguarde</string> + <string id="20189">Habilitar auto rolagem para enredo & crítica</string> <string id="20190">Personalizado</string> <string id="20191">Habilitar registro de depuração</string> @@ -1589,6 +1738,7 @@ <string id="20197">Importar coleção de música</string> <string id="20198">Artista não encontrado!</string> <string id="20199">Erro ao baixar informação de artista</string> + <string id="20250">Ativo! (vídeos)</string> <string id="20251">Misturando bebidas (vídeos)</string> <string id="20252">Enchendo os copos (vídeos)</string> @@ -1598,24 +1748,33 @@ <string id="20256">Cliente HTS Tvheadend</string> <string id="20257">Cliente VDR Streamdev</string> <string id="20258">Cliente MythTV</string> + <string id="20259">Sistema Arquivos Rede(NFS)</string> + <string id="20260">Secure Shell (SSH/SFTP)</string> + <string id="20261">Apple Filing Protocol (AFP)</string> + <string id="20300">Diretório do servidor Web (HTTP)</string> <string id="20301">Diretório do servidor Web (HTTPS)</string> <string id="20302">Impossível gravar na pasta:</string> <string id="20303">Quer cancelar e prosseguir?</string> <string id="20304">Feed RSS</string> + <string id="20307">DNS secundário</string> <string id="20308">Servidor DHCP:</string> <string id="20309">Criar nova pasta</string> <string id="20310">Escurecer LCD na reprodução</string> <string id="20311">Desconhecido ou onboard (protegido)</string> <string id="20312">Escurecer LCD na pausa</string> + <string id="20314">Vídeos - Coleção</string> + <string id="20316">Ordenar por: ID</string> + <string id="20324">Reproduzir parte...</string> <string id="20325">Restaurar valores da calibração</string> <string id="20326">Isto irá restaurar os valores da calibração para %s</string> <string id="20327">para os valores padrões.</string> <string id="20328">Procurar destino</string> + <string id="20329">Filmes em pastas separadas que combinam com o título do filme</string> <string id="20330">Usar nomes de pastas para busca</string> <string id="20331">Arquivo</string> <string id="20332">Usar pasta ou nomes de arquivos em buscas?</string> @@ -1690,6 +1849,7 @@ <string id="20401">Reproduzir vídeo musical</string> <string id="20402">Baixar ícones de atores ao criar a coleção</string> <string id="20403">Selecionar ícone de ator</string> + <string id="20405">Remover marcador do episódio</string> <string id="20406">Definir marcador do episódio</string> <string id="20407">Opções de scraper</string> @@ -1704,6 +1864,8 @@ <string id="20416">Primeira exibição</string> <string id="20417">Escritor</string> <string id="20418">Limpar nomes de arquivos e pastas</string> + <string id="20419">Substituir nome do arquivo pelo título da biblioteca</string> + <string id="20420">Nunca</string> <string id="20421">Se só uma temporada</string> <string id="20422">Sempre</string> @@ -1740,7 +1902,12 @@ <string id="20453">episódios</string> <string id="20454">Ouvinte</string> <string id="20455">Ouvintes</string> + <string id="20456">Setar fanart coleções filmes</string> + <string id="20457">Conjunto de filmes</string> + <string id="20458">Agrupar filmes em conjuntos</string> + <string id="21330">Exibir arquivos e diretórios ocultos</string> + <string id="21331">Cliente TuxBox</string> <string id="21332">AVISO: dispositivo TuxBox está em modo de gravação!</string> <string id="21333">Este canal será interrompido!</string> @@ -1748,12 +1915,16 @@ <string id="21335">Tem certeza que deseja iniciar o canal?</string> <string id="21336">Conectando a: %s</string> <string id="21337">Dispositivo TuxBox</string> + <string id="21359">Adicionar compartilhamento de mídia...</string> <string id="21360">Compartilhar coleções de vídeo e música através do UPnP</string> + <string id="21364">Editar compartilhamento de mídia</string> <string id="21365">Remover compartilhamento de mídia</string> <string id="21366">Pasta de legendas</string> <string id="21367">Filme & diretório de legenda alternativo</string> + <string id="21368">Substituir fontes da legendas em formato ASS/SSA</string> + <string id="21369">Ativar mouse</string> <string id="21370">Permitir sons de navegação durante reprodução</string> <string id="21371">Ícone</string> @@ -1839,6 +2010,9 @@ <string id="21451">Necessário conexão com a Internet.</string> <string id="21452">Obter Mais</string> <string id="21453">Raiz</string> + <string id="21454">Cache cheio</string> + <string id="21455">Cache cheio antes de chegar a quantidade necessária para reprodução contínua</string> + <string id="21460">Local da Legenda</string> <string id="21461">Fixado</string> @@ -1856,6 +2030,7 @@ <string id="21806">Comentário</string> <string id="21807">Colorido/B&W</string> <string id="21808">Processamento JPEG</string> + <string id="21820">Data/Hora</string> <string id="21821">Descrição</string> <string id="21822">Fabricante da câmera</string> @@ -1880,6 +2055,7 @@ <string id="21841">Longitude do GPS</string> <string id="21842">Altitude do GPS</string> <string id="21843">Orientação</string> + <string id="21860">Categorias suplementares</string> <string id="21861">Palavras-chave</string> <string id="21862">Sub-título</string> @@ -1921,9 +2097,11 @@ <string id="21898">Anos de atividade</string> <string id="21899">Gravadora/marca</string> <string id="21900">Nascido/formado</string> + <string id="22000">Atualizar coleção ao iniciar</string> <string id="22001">Ocultar progresso de atualizações de coleção</string> <string id="22002">- Sufixo de DNS</string> + <string id="22003">%2.3fs</string> <string id="22004">Atrasado em: %2.3fs</string> <string id="22005">Adiantado em: %2.3fs</string> @@ -1946,6 +2124,7 @@ <string id="22022">Incluir arquivos de vídeo nas listagens</string> <string id="22023">Fabricante DirectX:</string> <string id="22024">Versão Direct3D:</string> + <string id="22030">Fonte</string> <string id="22031">- Tamanho</string> <string id="22032">- Cores</string> @@ -1960,24 +2139,30 @@ <string id="22041">branco/vermelho</string> <string id="22042">branco/azul</string> <string id="22043">preto/branco</string> + <string id="22079">Selecionar ação padrão</string> <string id="22080">Escolher</string> <string id="22081">Mostrar Informação</string> <string id="22082">Mais...</string> <string id="22083">Tocar Tudo</string> + <string id="23049">Teletext indisponível</string> <string id="23050">Ativar Teletext</string> <string id="23051">Parte %i</string> <string id="23052">Acumulando %i bytes</string> <string id="23053">Parando</string> <string id="23054">Executando</string> + <string id="23100">Player externo ativo</string> <string id="23101">Clique OK para sair do player</string> + <string id="23104">Clique OK quando execução tiver terminado</string> + <string id="24000">Add-on</string> <string id="24001">Add-ons</string> <string id="24002">Opções Add-on</string> <string id="24003">Informação do Add-on</string> + <string id="24005">Locais de Midia</string> <string id="24007">Informação do Filme</string> <string id="24008">Proteção de Tela</string> @@ -2034,28 +2219,33 @@ <string id="24067">Baixando Add-ons</string> <string id="24068">Atualização Disponível</string> <string id="24069">Atualizar</string> + <string id="24070">Add-on não utilizado</string> <string id="24071">Ocorreu um erro desconhecido</string> <string id="24072">Necessário configurações</string> <string id="24073">Não é possível conectar</string> <string id="24074">Necessário reiniciar</string> <string id="24075">Desativar</string> + <string id="24076">Add-on Necessário</string> <string id="24080">Reconectar?</string> <string id="24089">Add-on reiniciado</string> <string id="24090">Bloquear Gerenciador de Add-on</string> + <string id="24091"></string> <string id="24092"></string> <string id="24093"></string> - <string id="24094"></string> - <string id="24095"></string> + <string id="24094">(atual)</string> + <string id="24095">(na lista negra)</string> <string id="24096">O Add-on foi marcado como indisponível no repositório.</string> <string id="24097">Você deseja desabilitar em seu sistema?</string> <string id="24098">Indisponível</string> <string id="24099">Gostaria de trocar para esta skin?</string> <string id="25000">Notificações</string> + <string id="29800">Modo de coleção</string> <string id="29801">Teclado QWERTY</string> <string id="29802">Utilizando áudio em passthrough</string> + <string id="33001">Qualidade do trailer</string> <string id="33002">Canal/sinal</string> <string id="33003">Baixar</string> @@ -2134,5 +2324,66 @@ <string id="33102">Servidor de Eventos</string> <string id="33103">Servidor de Comunicação Remota</string> + <string id="33200">Detectado Nova Conexão</string> + <string id="34100">Configurar alto-falantes</string> + <string id="34101">2.0</string> + <string id="34102">2.1</string> + <string id="34103">3.0</string> + <string id="34104">3.1</string> + <string id="34105">4.0</string> + <string id="34106">4.1</string> + <string id="34107">5.0</string> + <string id="34108">5.1</string> + <string id="34109">7.0</string> + <string id="34110">7.1</string> + <!-- 34112-34200 reserved for future use --> + + <string id="34201">Não foi possível encontrar um item posterior para tocar</string> + <string id="34202">Não foi possível encontrar um item anterior para tocar</string> + + <string id="34300">Falha ao iniciar zeroconf</string> + <string id="34301">Se serviço Apple's Bonjour estiver instalado? Veja log para maiores informações.</string> + + <string id="34400">Renderização de Video</string> + <string id="34401">Falha para inciar filtros e scalers de vídeo, voltando a usar bilinear scaling</string> + <string id="34402">Falha para inicializar o dispositivo de áudio</string> + <string id="34403">Verifique suas configurações de áudio</string> + + <string id="35000">Periféricos</string> + + <string id="35001">Disposito HID Genérico</string> + <string id="35002">Adaptador de Rede Genérico</string> + <string id="35003">Disco Genérico</string> + <string id="35004">Não existe ajustes disponíveis para este periférico.</string> + <string id="35005">Novo dispositivo configurado</string> + <string id="35006">Dispositivo removido</string> + <string id="35007">Keymap para uso com este dispositivo</string> + <string id="35008">Keymap ativado</string> + + <string id="35500">Local</string> + <string id="35501">Classe</string> + <string id="35502">Nome</string> + <string id="35503">Fabricante</string> + <string id="35504">Produto ID</string> + + <string id="36000">Adaptador CEC Pulse-Eight</string> + <string id="36001">Nyxboard Pulse-Eight</string> + <string id="36002">Trocar o comando para o lado do teclado</string> + <string id="36003">Trocar o comando para o lado do remoto</string> + <string id="36004">Pressione botão de comando "usuário"</string> + <string id="36005">Enable switch side commands</string> + <string id="36006">Não pude abrir o adaptador</string> + <string id="36007">Ligar a TV ou projetor quando inicializar o XBMC</string> + <string id="36008">Desligar equipamentos quando parar o XBMC</string> + <string id="36009">Colocar os equipamentos em modo de espera quando ativando proteção de tela</string> + <string id="36010"></string> + <string id="36011">Não pude detectar a porta CEC. Seta manualmente.</string> + <string id="36012">Não pude detectar o adaptador CEC.</string> + <string id="36013">Versãod libcec da interface não suportada. %d é superior a versão que o XBMC suporta (%d)</string> + <string id="36014">Passar este PC para modo standby, quando a TV for desligada</string> + <string id="36015">Número da porta HDMI</string> + <string id="36016">Conectado</string> <!-- max. 13 characters --> + <string id="36017">Adaptador encontrado, mas libcec não esta disponível</string> + <string id="36018">Usar os ajustes de linguagem da TV</string> </strings> diff --git a/language/Russian/strings.xml b/language/Russian/strings.xml index 3a6df260dc..85d29856ad 100644 --- a/language/Russian/strings.xml +++ b/language/Russian/strings.xml @@ -1,5 +1,6 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<!--$Revision$--> +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<!-- Russian – current edition by Roman_V_M --> +<!--Based on English cd69c7030b0caec990b6143fac65ca8168dccf71 (23.01.2012)--> <strings> <string id="0">Программы</string> <string id="1">Фотографии</string> @@ -43,7 +44,7 @@ <string id="51">янв.</string> <string id="52">фев.</string> - <string id="53">мар.</string> + <string id="53">марта</string> <string id="54">апр.</string> <string id="55">мая</string> <string id="56">июня</string> @@ -53,7 +54,7 @@ <string id="60">окт.</string> <string id="61">нояб.</string> <string id="62">дек.</string> - + <string id="71">С</string> <string id="72">ССВ</string> <string id="73">СВ</string> @@ -70,23 +71,23 @@ <string id="84">ЗСЗ</string> <string id="85">СЗ</string> <string id="86">ССЗ</string> - <string id="87">Переменный</string> + <string id="87">Перем.</string> - <string id="98">Вид: автоматически</string> + <string id="98">Вид: авто</string> <string id="99">Вид: авто крупн.</string> <string id="100">Вид: значки</string> <string id="101">Вид: список</string> <string id="102">Сканировать</string> - <string id="103">Сорт. по: названию</string> - <string id="104">Сорт. по: дате</string> - <string id="105">Сорт. по: размеру</string> + <string id="103">Сорт. по имени</string> + <string id="104">Сорт. по дате</string> + <string id="105">Сорт. по размеру</string> <string id="106">Нет</string> <string id="107">Да</string> <string id="108">Слайд-шоу</string> <string id="109">Создавать эскизы</string> <string id="110">Создавать эскизы</string> <string id="111">Ярлыки</string> - <string id="112">На паузе</string> + <string id="112">Пауза</string> <string id="113">Не удалось обновить</string> <string id="114">Не удалось установить</string> <string id="115">Копировать</string> @@ -99,7 +100,7 @@ <string id="122">Удалить файл?</string> <string id="123">Копировать файлы?</string> <string id="124">Переместить файлы?</string> - <string id="125">Удалить файлы? (Восстановление будет невозможно.)</string> + <string id="125">Удалить файлы? Восстановление будет невозможно!</string> <string id="126">Состояние</string> <string id="127">Объектов</string> <string id="128">Общие</string> @@ -167,7 +168,7 @@ <string id="192">Очистить</string> <string id="193">Сканировать</string> <string id="194">Поиск…</string> - <string id="195">Информации не найдено.</string> + <string id="195">Информация не найдена.</string> <string id="196">Выберите фильм:</string> <string id="197">Запрос информации от %s</string> <string id="198">Загрузка данных о фильме</string> @@ -183,7 +184,7 @@ <string id="209">Следующий</string> <string id="210">Предыдущий</string> <string id="213">Калибровка интерфейса…</string> - <string id="214">Калибровка экрана…</string> + <string id="214">Калибровка дисплея…</string> <string id="215">Сглаживание</string> <string id="216">Степень увеличения</string> <string id="217">Соотношение сторон</string> @@ -197,7 +198,7 @@ <string id="226">Тестовые шаблоны…</string> <string id="227">Искать имена треков аудио-CD на freedb.org</string> <string id="228">Перемешать плейлист при загрузке</string> - <string id="229">Останавливать HDD через (мин)</string> + <string id="229">Останавливать HDD через (мин.)</string> <string id="230">Видеофильтры</string> <string id="231">Нет</string> <string id="232">Точка</string> @@ -208,7 +209,7 @@ <string id="237">Уменьшение</string> <string id="238">Увеличение</string> <string id="239">Очищать плейлист после проигрывания</string> - <string id="240">Режим экрана</string> + <string id="240">Режим дисплея</string> <string id="241">Полный экран #%d</string> <string id="242">В окне</string> <string id="243">Частота обновления</string> @@ -220,11 +221,11 @@ <string id="249">Музыка</string> <string id="250">Визуализация</string> <string id="251">Выберите папку назначения</string> - <string id="252">- Выводить стерео на все динамики</string> + <string id="252">Выводить стерео на все динамики</string> <string id="253">Количество каналов</string> <string id="254">- Выводить звук в формате DTS</string> <string id="255">CDDB</string> - <string id="256">Запрос данных о CD…</string> + <string id="256">Получение данных о CD…</string> <string id="257">Ошибка</string> <string id="258">Читать информацию из тэгов</string> <string id="259">Открытие…</string> @@ -234,11 +235,11 @@ <string id="263">Разрешить управление XBMC по HTTP</string> <string id="264">Запись</string> <string id="265">Остановить запись</string> - <string id="266">Сорт. по: № трека</string> - <string id="267">Сорт. по: времени</string> - <string id="268">Сорт. по: названию</string> - <string id="269">Сорт. по: исполнителю</string> - <string id="270">Сорт. по: альбому</string> + <string id="266">Сорт. по трекам</string> + <string id="267">Сорт. по времени</string> + <string id="268">Сорт. по названию</string> + <string id="269">Сорт. по исполнителю</string> + <string id="270">Сорт. по альбомам</string> <string id="271">Топ 100</string> <string id="272">Настройка размеров экрана (левый верхний угол)</string> <string id="273">Настройка размеров экрана (правый нижний угол)</string> @@ -247,9 +248,9 @@ <string id="276">Двигайте стрелки для регулировки размеров экрана</string> <string id="277">Двигайте полоску, чтобы изменить позицию субтитров</string> <string id="278">Измените прямоугольник так, чтобы добиться идеального квадрата</string> - <string id="279">Невозможно загрузить настройки</string> + <string id="279">Не удалось загрузить настройки</string> <string id="280">Используются стандартные настройки</string> - <string id="281">Пожалуйста, проверьте файлы XML</string> + <string id="281">Проверьте файлы XML</string> <string id="282">Найдено объектов: %i</string> <string id="283">Результаты поиска</string> <string id="284">Ничего не найдено</string> @@ -322,40 +323,40 @@ <string id="360">Заставка</string> <string id="361">Рекурс. слайд-шоу</string> <string id="362">Уровень затемнения экрана</string> - <string id="363">Сорт. по: файлам</string> + <string id="363">Сорт. по файлам</string> <string id="364">- Выводить звук в формате Dolby Digital (AC3)</string> - <string id="365">Сорт. по: названию</string> - <string id="366">Сорт. по: году</string> - <string id="367">Сорт. по: рейтингу</string> + <string id="365">Сорт. по имени</string> + <string id="366">Сорт. по году</string> + <string id="367">Сорт. по рейтингу</string> <string id="368">IMDb</string> <string id="369">Название</string> - <string id="370">Грозы</string> - <string id="371">Местами</string> - <string id="372">Преимущественно</string> + <string id="370">грозы</string> + <string id="371">местами</string> + <string id="372">преимущественно</string> <string id="373">солнечно</string> <string id="374">облачно</string> <string id="375">снег</string> <string id="376">дождь</string> - <string id="377">Небольшой</string> + <string id="377">небольш.</string> <string id="378">Утром</string> <string id="379">Днем</string> - <string id="380">ливни</string> - <string id="381">Немного</string> - <string id="382">Местами</string> + <string id="380"> </string> + <string id="381">немного</string> + <string id="382">местами</string> <string id="383">ветер</string> - <string id="384">Сильный</string> - <string id="385">Ясно</string> - <string id="386">Безоблачно</string> + <string id="384">сильный</string> + <string id="385">безоблачно</string> + <string id="386">ясно</string> <string id="387">облачно</string> - <string id="388">Ранние</string> - <string id="389">Ливень</string> - <string id="390">Шквалы</string> + <string id="388">ранние</string> + <string id="389">ливень</string> + <string id="390">снегопад</string> <string id="391">Мин.</string> <string id="392">Средн.</string> <string id="393">Макс.</string> - <string id="394">Туман</string> - <string id="395">Дымка</string> - <string id="396">Выберите расположение</string> + <string id="394">туман</string> + <string id="395">дымка</string> + <string id="396">Выберите местность</string> <string id="397">Время обновления</string> <string id="398">Единица измерения температуры</string> <string id="399">Единица измерения скорости ветра</string> @@ -375,20 +376,20 @@ <string id="414">Нет описания этого альбома</string> <string id="415">Загрузка эскизов…</string> <string id="416">Нет данных</string> - <string id="417">Вид: крупные значки</string> - <string id="418">Мин</string> - <string id="419">Макс</string> + <string id="417">Вид: крупн. значки</string> + <string id="418">Мин.</string> + <string id="419">Макс.</string> <string id="420">HDMI</string> - <string id="422">Удалить данные об альбоме</string> - <string id="423">Удалить данные о CD</string> + <string id="422">Удалить сведения об альбоме</string> + <string id="423">Удалить сведения о CD</string> <string id="424">Выбор</string> - <string id="425">Данные об альбоме не найдены</string> - <string id="426">Данные о CD не найдены</string> + <string id="425">Сведения об альбоме не найдены</string> + <string id="426">Сведения о CD не найдены</string> <string id="427">Диск</string> <string id="428">Вставьте правильный CD/DVD-диск</string> - <string id="429">Вставьте следующий CD/DVD-диск:</string> - <string id="430">Сорт. по: № DVD</string> + <string id="429">Вставьте следующий диск:</string> + <string id="430">Сорт. по № DVD</string> <string id="431">Не кэшировать</string> <string id="432">Удалить фильм из медиатеки</string> <string id="433">Действительно удалить[CR]"%s"?</string> @@ -406,7 +407,7 @@ <string id="446">DVD</string> <string id="447">Автозапуск</string> <string id="448">LCD-экран</string> - <string id="449">Включ.</string> + <string id="449">Вкл.</string> <string id="450">Количество знакомест в строке</string> <string id="451">Адрес 1-ой строки</string> <string id="452">Адрес 2-ой строки</string> @@ -425,13 +426,13 @@ <string id="466">Гамма</string> <string id="467">Тип</string> <string id="468">Двигайте полоску, чтобы изменить положение экранного меню (OSD)</string> - <string id="469">Позиция экранного меню (OSD)</string> + <string id="469">Положение экранного меню (OSD)</string> <string id="470">Создатели</string> <string id="471">МOD-чип</string> <string id="474">Выкл.</string> <string id="475">Только музыка</string> <string id="476">Музыка и видео</string> - <string id="477">Невозможно загрузить плейлист</string> + <string id="477">Не удалось загрузить плейлист</string> <string id="478">Экранное меню (OSD)</string> <string id="479">Обложка и язык</string> <string id="480">Внешний вид</string> @@ -447,20 +448,20 @@ <string id="492">Масштабировать субтитры</string> <string id="493">Расширенные параметры (только для экспертов!)</string> <string id="494">Общий уровень шума в комнате (dB)</string> - <string id="495">Пересчитывать видео до разрешения GUI</string> + <string id="495">Масштабировать видео до разрешения GUI</string> <string id="496">Калибровка</string> <string id="497">Показывать расширения файлов</string> - <string id="498">Сорт. по: типу</string> - <string id="499">Не удалось соединиться с поисковым сервисом</string> + <string id="498">Сорт. по типу</string> + <string id="499">Не удалось подключиться к поисковой службе</string> <string id="500">Не удалось загрузить данные об альбоме</string> <string id="501">Поиск названий альбомов…</string> <string id="502">Открыть</string> <string id="503">Ждите…</string> <string id="504">Пуст</string> <string id="505">Загрузка информации из файлов…</string> - <string id="507">Сорт. по: частоте</string> - <string id="510">Включить видеоэффекты</string> - <string id="511">Автопереключение PAL/NTSC</string> + <string id="507">Сорт. по частоте</string> + <string id="510">Включить визуализацию</string> + <string id="511">Автопереключение видеорежима</string> <string id="512">Стартовое окно</string> <string id="513">Главное меню</string> <string id="514">Настройки</string> @@ -504,7 +505,7 @@ <string id="552">Дата</string> <string id="553">Размер</string> <string id="554">№ трека</string> - <string id="555">Временя</string> + <string id="555">Время</string> <string id="556">Название</string> <string id="557">Исполнитель</string> <string id="558">Альбом</string> @@ -524,7 +525,7 @@ <string id="572">Студия</string> <string id="573">Путь</string> <string id="574">Страна</string> - <string id="575">Выполняется…</string> + <string id="575">Неоконченные</string> <string id="576">Кол-во проигрываний</string> <string id="580">Направление сортировки</string> @@ -549,7 +550,7 @@ <string id="600">Оцифровать аудио-CD</string> <string id="601">Среднее</string> <string id="602">Стандартное</string> - <string id="603">Экстремальное</string> + <string id="603">Максимальное</string> <string id="604">Постоянный битрейт</string> <string id="605">Оцифровка…</string> @@ -571,7 +572,7 @@ <string id="630">Нормальный</string> <string id="631">Увеличенный</string> <string id="632">Растянутый 4:3</string> - <string id="633">Растянутый 14:9</string> + <string id="633">Растянутый</string> <string id="634">Растянутый 16:9</string> <string id="635">Оригинальный размер</string> <string id="636">Заданный</string> @@ -601,7 +602,7 @@ <string id="660">Усиление громкости</string> <string id="661">Укажите папку для экспорта</string> - <string id="662">Этот файл больше недоступен.</string> + <string id="662">Этот файл больше не доступен.</string> <string id="663">Удалить его из медиатеки?</string> <string id="664">Выбрать скрипт</string> <string id="665">Степень сжатия</string> @@ -624,8 +625,8 @@ <string id="719">- IP-адрес</string> <string id="720">- Маска подсети</string> - <string id="721">- Адрес шлюза</string> - <string id="722">- Адрес DNS сервера</string> + <string id="721">- Шлюз по умолчанию</string> + <string id="722">- DNS-сервер</string> <string id="723">Сохранить и перезапустить</string> <string id="724">Неправильный адрес. Введите значение в виде AAA.BBB.CCC.DDD</string> <string id="725">с числами от 0 до 255.</string> @@ -646,7 +647,7 @@ <string id="740">Курсив</string> <string id="741">Жирный курсив</string> <string id="742">Белый</string> - <string id="743">Жёлтый</string> + <string id="743">Желтый</string> <string id="744">Файлы</string> <string id="745">Нет сканированных данных для этого вида</string> <string id="746">Выключите режим медиатеки</string> @@ -672,7 +673,7 @@ <string id="767">Серый</string> <!-- strings 768 and 769 reserved for more subtitle colors --> - <string id="770">Ошибка %i: ресурс недоступен</string> + <string id="770">Ошибка %i: ресурс недоступен</string> <string id="772">Вывод звука</string> <string id="773">Поиск…</string> @@ -687,10 +688,10 @@ <string id="782">WPA</string> <string id="783">WPA2</string> <string id="784">Применение сетевых настроек. Подождите…</string> - <string id="785">Сетевой интерфейс перезапущен успешно</string> - <string id="786">Не удалось запустить сетевой интерфейс</string> + <string id="785">Сетевой интерфейс перезапущен.</string> + <string id="786">Не удалось запустить сетевой интерфейс.</string> <string id="787">Интерфейс отключен</string> - <string id="788">Сетевой интерфейс успешно отключен</string> + <string id="788">Сетевой интерфейс отключен.</string> <string id="789">Имя беспроводной сети (ESSID)</string> <string id="791">Разрешить программам на этой системе управлять XBMC</string> @@ -712,7 +713,7 @@ <string id="1001">Не удалось подключиться</string> <string id="1002">XBMC не удалось подключиться к сети.</string> <string id="1003">Возможно, сеть не подключена.</string> - <string id="1004">Добавить в любом случае?</string> + <string id="1004">Все равно добавить?</string> <string id="1006">IP-адрес</string> <string id="1007">Добавить сетевой адрес</string> @@ -720,24 +721,24 @@ <string id="1009">Адрес сервера</string> <string id="1010">Имя сервера</string> <string id="1011">Сетевой путь</string> - <string id="1012">Доступная папка</string> + <string id="1012">Общая папка</string> <string id="1013">Порт</string> <string id="1014">Имя пользователя</string> <string id="1015">Укажите сетевой сервер</string> <string id="1016">Введите адрес сервера</string> - <string id="1017">Введите путь к серверу</string> + <string id="1017">Введите путь на сервере</string> <string id="1018">Введите номер порта</string> <string id="1019">Введите имя пользователя</string> <string id="1020">Добавление источника - %s</string> <string id="1021">Введите путь или укажите расположение файлов</string> - <string id="1022">Введите имя этого медиаисточника</string> + <string id="1022">Введите имя медиа-источника.</string> <string id="1023">Укажите новый ресурс</string> <string id="1024">Обзор</string> <string id="1025">Не удалось получить информацию о папке</string> <string id="1026">Добавить источник…</string> <string id="1027">Изменить источник…</string> <string id="1028">Изменение источника - %s</string> - <string id="1029">Введите новую метку</string> + <string id="1029">Введите новое название</string> <string id="1030">Укажите картинку</string> <string id="1031">Укажите папку с картинками</string> <string id="1032">Добавить сетевой адрес…</string> @@ -782,7 +783,7 @@ <string id="1220">Фото и файлы</string> <string id="1221">Музыка, видео и фото</string> <string id="1222">Музыка, видео, фото и файлы</string> - <string id="1223">Откл.</string> + <string id="1223">Отключено</string> <string id="1226">Файлы, музыка и видео</string> <string id="1227">Файлы, фото и музыка</string> <string id="1228">Файлы, фото и видео</string> @@ -799,7 +800,7 @@ <string id="1252">Псевдоним</string> <string id="1254">Запрашивать разрешение на подключение</string> - <string id="1255">Отправлять логин и пароль для FTP</string> + <string id="1255">Использовать логин и пароль для FTP</string> <string id="1256">Интервал опроса</string> <string id="1257">Подключиться к найденной системе?</string> @@ -811,34 +812,34 @@ <string id="1300">Другое аудио устройство</string> <string id="1301">Другое устройство прямого вывода звука</string> - <string id="1396">Гололед</string> + <string id="1396">гололед</string> <string id="1397">и</string> - <string id="1398">Заморозки</string> - <string id="1399">Поздний</string> - <string id="1400">Местами</string> - <string id="1401">Ливень с грозами</string> - <string id="1402">Гром</string> - <string id="1403">Солнце</string> - <string id="1404">Сильный</string> + <string id="1398">заморозки</string> + <string id="1399">поздний</string> + <string id="1400">местами</string> + <string id="1401">ливень с грозами</string> + <string id="1402">гроза</string> + <string id="1403">солнце</string> + <string id="1404">сильный</string> <string id="1405">в</string> <string id="1406"> </string> - <string id="1407">Окрестностях</string> - <string id="1408">Лед</string> - <string id="1409">Кристаллы</string> - <string id="1410">Спокойно</string> + <string id="1407">окрестностях</string> + <string id="1408">лед</string> + <string id="1409">кристаллы</string> + <string id="1410">спокойно</string> <string id="1411">с</string> <string id="1412">ветрено</string> <string id="1413">дождь</string> <string id="1414">гроза</string> <string id="1415">дождь</string> - <string id="1416">Туманно</string> - <string id="1417">Град</string> - <string id="1418">Грозы</string> - <string id="1419">Грозовые ливни</string> - <string id="1420">Умеренный</string> - <string id="1421">Очень высокий</string> - <string id="1422">Ветрено</string> - <string id="1423">Туман</string> + <string id="1416">туманно</string> + <string id="1417">град</string> + <string id="1418">грозы</string> + <string id="1419">Ливни с грозами</string> + <string id="1420">умеренный</string> + <string id="1421">очень высокий</string> + <string id="1422">ветрено</string> + <string id="1423">туман</string> <!-- strings through to 1450 reserved for weather translation --> @@ -847,7 +848,7 @@ <string id="2050">Длительность</string> - <string id="2100">Ошибка скрипта : %s</string> + <string id="2100">Ошибка скрипта: %s</string> <string id="2101">Требуется более новая версия; см. журнал</string> <string id="4501">Включить LCD/VFD-дисплей</string> @@ -863,14 +864,14 @@ <string id="10008">Настройки - Основные</string> <string id="10009">Настройки - Экран</string> <string id="10010">Настройки - Внешний вид - Калибровка интерфейса</string> - <string id="10011">Настройки - Видео - Калибровка экрана</string> + <string id="10011">Настройки - Видео - Калибровка дисплея</string> <string id="10012">Настройки - Фотографии</string> <string id="10013">Настройки - Программы</string> <string id="10014">Настройки - Погода</string> <string id="10015">Настройки - Музыка</string> <string id="10016">Настройки - Система</string> <string id="10017">Настройки - Видео</string> - <string id="10018">Настройки > Сеть</string> + <string id="10018">Настройки - Сеть</string> <string id="10019">Настройки - Внешний вид</string> <string id="10020">Скрипты</string> <string id="10021">Веб-браузер</string> @@ -891,8 +892,8 @@ <string id="10501">Музыка/файлы</string> <string id="10502">Музыка/медиатека</string> <string id="10503">Редактор плейлиста</string> - <string id="10504">Top 100 - песни</string> - <string id="10505">Top 100 - альбомы</string> + <string id="10504">Топ 100 - песни</string> + <string id="10505">Топ 100 - альбомы</string> <string id="10506">Программы</string> <string id="10507">Настройка</string> <string id="10508">Прогноз погоды</string> @@ -966,15 +967,15 @@ <string id="12360">Общая защита</string> <string id="12362">Выключить систему, если количество неудачных попыток исчерпано</string> <string id="12367">Неправильный код защиты</string> - <string id="12368">Введите правильный код защиты!</string> + <string id="12368">Введите правильный код защиты</string> <string id="12373">Настройки и файл-менеджер</string> <string id="12376">Установить для всех фильмов</string> <string id="12377">Это сбросит сохраненные ранее значения.</string> <string id="12378">Время показа каждого слайда</string> <string id="12379">Эффекты панорамы и увеличения</string> - <string id="12383">12-х часовой</string> - <string id="12384">24-х часовой</string> + <string id="12383">12-часовой</string> + <string id="12384">24-часовой</string> <string id="12385">День/месяц</string> <string id="12386">Месяц/день</string> @@ -1007,7 +1008,7 @@ <string id="13015">Реакция на кнопку питания</string> <string id="13016">Выключить систему</string> - <string id="13020">Активна другая сессия; возможно, по SSH.</string> + <string id="13020">Проверьте, не активна ли другая сессия (напр., SSH).</string> <string id="13021">Подключен переносной жесткий диск</string> <string id="13022">Небезопасное отключение устройства</string> <string id="13023">Устройство отключено успешно</string> @@ -1018,7 +1019,7 @@ <string id="13100">Фильтр мерцания</string> <string id="13101">По выбору драйвера (требуется перезапуск)</string> - + <string id="13105">Вертикальная синхронизация</string> <string id="13106">Отключена</string> <string id="13107">Только при просмотре видео</string> @@ -1033,7 +1034,7 @@ <string id="13115">Всегда включено</string> <string id="13116">Метод масштабирования</string> - <string id="13117">Бикубический</string> + <string id="13117">Bicubic</string> <string id="13118">Lanczos</string> <string id="13119">Sinc</string> <string id="13120">VDPAU</string> @@ -1044,7 +1045,7 @@ <string id="13131">Отключено</string> <string id="13132">Погасить дисплеи</string> - <string id="13140">Обнаружено активное соединение.</string> + <string id="13140">Обнаружены активные соединения.</string> <string id="13141">В случае продолжения возможна потеря управления</string> <string id="13142">XBMC. Остановить сервер событий?</string> @@ -1065,19 +1066,19 @@ <string id="13174">Кол-во циклов включения/выключения HDD:</string> <string id="13200">Профили</string> - <string id="13201">Удалить профиль '%s'?</string> - + <string id="13201">Удалить профиль "%s"?</string> + <string id="13204">Последний загруженный профиль:</string> <string id="13205">Неизвестно</string> <string id="13206">Перезаписать</string> - + <string id="13208">Таймер напоминаний</string> - <string id="13209">Период таймера напоминаний (в минутах)</string> - <string id="13210">Запущен, сработает в %im</string> + <string id="13209">Период таймера напоминаний (в мин.)</string> + <string id="13210">Запущен; сработает через %i мин.</string> <string id="13211">НАПОМИНАНИЕ!</string> - <string id="13212">Отменено за %im%is до срабатывания</string> - <string id="13213">%2.0fm</string> <!--minutes (left from countdown)--> - <string id="13214">%2.0fs</string> <!--seconds (left from countdown)--> + <string id="13212">Отменено за %i мин. %i с. до срабатывания</string> + <string id="13213">%2.0f мин.</string> <!--minutes (left from countdown)--> + <string id="13214">%2.0f с.</string> <!--seconds (left from countdown)--> <string id="13249">Искать субтитры в архивах RAR</string> <string id="13250">Выбрать субтитры…</string> @@ -1088,7 +1089,7 @@ <string id="13270">Оборудование:</string> <string id="13271">Загрузка CPU:</string> - <string id="13274">Подключено, но DNS-сервер недоступен</string> + <string id="13274">Подключено, но DNS-сервер недоступен.</string> <string id="13275">Жесткий диск</string> <string id="13276">Привод DVD</string> <string id="13277">Накопители</string> @@ -1132,8 +1133,8 @@ <string id="13318">Рекурсивное слайд-шоу</string> <string id="13319">Случайно</string> <string id="13320">Стерео</string> - <string id="13321">только левый</string> - <string id="13322">только правый</string> + <string id="13321">Только левый</string> + <string id="13322">Только правый</string> <string id="13323">Разрешить поддержку караоке</string> <string id="13324">Уровень прозрачности фона</string> <string id="13325">Уровень прозрачности текста</string> @@ -1142,10 +1143,10 @@ <string id="13328">%s не найден</string> <string id="13329">Ошибка открытия %s</string> <string id="13330">Не удалось загрузить %s</string> - <string id="13331">Ошибка: не хватает памяти</string> + <string id="13331">Ошибка: недостаточно памяти</string> <string id="13332">Переместить вверх</string> <string id="13333">Переместить вниз</string> - <string id="13334">Изменить метку</string> + <string id="13334">Изменить название</string> <string id="13335">Сделать по умолчанию</string> <string id="13336">Убрать кнопку</string> @@ -1154,10 +1155,10 @@ <string id="13342">Оранжевый</string> <string id="13343">Красный</string> <string id="13344">Циклически</string> - <string id="13345">Выключать при проигрывании</string> + <string id="13345">Выключать индикатор при проигрывании</string> <string id="13346">Сведения о фильме</string> <string id="13347">Добавить в плейлист</string> - <string id="13348">Найти в IMDb…</string> + <string id="13348">Поиск в IMDb…</string> <string id="13349">Сканировать содержимое</string> <string id="13350">Текущий плейлист…</string> <string id="13351">Сведения об альбоме</string> @@ -1167,11 +1168,11 @@ <string id="13355">Пикс. шейдер низк. качества</string> <string id="13356">Аппаратное наложение</string> <string id="13357">Пикс. шейдер высок. качества</string> - <string id="13358">Воспроизвести объект</string> - <string id="13359">Установить эскиз исполнителя</string> + <string id="13358">Проиграть объект</string> + <string id="13359">Выбрать эскиз исполнителя</string> <string id="13360">Создавать эскизы</string> <string id="13361">Включить микрофон</string> - + <string id="13375">Включить устройство</string> <string id="13376">Громкость</string> <string id="13377">Основной режим просмотра</string> @@ -1186,27 +1187,27 @@ <string id="13386">Позиционировать по времени</string> <string id="13387">Правая колонка в списке</string> <string id="13388">Предустановка</string> - <string id="13389">Нет предустановок для этого видео эффекта</string> - <string id="13390">Нет настроек для этого видео эффекта</string> - <string id="13391">Открыть / закрыть</string> + <string id="13389">Нет предустановок для этой визуализации</string> + <string id="13390">Нет настроек для этой визуализации</string> + <string id="13391">Открыть/закрыть</string> <string id="13392">Включить визуализацию при проигрывании музыки</string> - <string id="13393">Вычислить объем</string> - <string id="13394">Вычисляется объем папки…</string> + <string id="13393">Вычислить размер</string> + <string id="13394">Вычисляется размер папки…</string> <string id="13395">Настройки видео</string> - <string id="13396">Настройки субтитров и звука</string> + <string id="13396">Настройки звука и субтитров</string> <string id="13397">Включить субтитры</string> <string id="13398">Ярлыки</string> - <string id="13399">Не учитывать артикли при сортировке</string> + <string id="13399">Не учитывать артикли при сортировке (напр., "the")</string> <string id="13400">Переход между песнями в том же альбоме</string> <string id="13401">Выбрать %s</string> <string id="13402">Показать позицию трека</string> <string id="13403">Очистить по умолчанию</string> <string id="13404">Продолжить</string> <string id="13405">Эскиз</string> - <string id="13406">Данные о фотографии</string> - <string id="13407">%s предустановки</string> + <string id="13406">Сведения о фотографии</string> + <string id="13407">Предустановок: %s</string> <string id="13408">(Рейтинг пользователей IMDb)</string> - <string id="13409">Top 250</string> + <string id="13409">Топ 250</string> <string id="13410">Настройки Last.fm</string> <string id="13411">Минимальная скорость вентиляторов</string> <string id="13412">Проигрывать отсюда</string> @@ -1231,13 +1232,13 @@ <string id="13431">Пиксельные шейдеры</string> <string id="13432">Включить аппаратное ускорение (VideoToolbox)</string> - <string id="13500">Метод синхронизации А/В</string> + <string id="13500">Синхронизация А/В</string> <string id="13501">По частоте звука</string> <string id="13502">По частоте видео (пропуск/дублирование звука)</string> <string id="13503">По частоте видео (преобразование звука)</string> <string id="13504">Максимальная величина преобразования (%)</string> <string id="13505">Качество преобразования</string> - <string id="13506">Низкое</string> + <string id="13506">Низкое (быстро)</string> <string id="13507">Среднее</string> <string id="13508">Высокое</string> <string id="13509">Очень высокое (медленно!)</string> @@ -1253,21 +1254,21 @@ <string id="13602">Разрешить запуск XBMC с ДУ</string> <string id="13603">Интервал последовательности</string> - <string id="13610">Отключено</string> + <string id="13610">Откл.</string> <string id="13611">Стандартный</string> - <string id="13612">Универсальное ДУ</string> + <string id="13612">Универсальный пульт ДУ</string> <string id="13613">Мульти-ДУ (Harmony)</string> <string id="13620">Ошибка ДУ Apple</string> - <string id="13621">Можно включить поддержку ДУ Apple</string> + <string id="13621">Можно включить поддержку ДУ Apple.</string> <string id="14000">Сгруппировать</string> <string id="14001">Разгруппировать</string> <string id="14003">Загружается файл плейлиста…</string> <string id="14004">Загружается список потоков…</string> <string id="14005">Анализ списка потоков…</string> - <string id="14006">Ошибка загрузки списка потоков</string> - <string id="14007">Ошибка загрузки файла плейлиста</string> + <string id="14006">Не удалось загрузить список потоков</string> + <string id="14007">Не удалось загрузить файл плейлиста</string> <string id="14009">Папка с играми</string> <string id="14010">Автопереключение вида на эскизы по</string> @@ -1279,9 +1280,9 @@ <string id="14016">Хотя бы один файл и эскиз</string> <string id="14017">Процентное соотношение эскизов</string> <string id="14018">Настройки просмотра</string> - <string id="14019">Первая местность</string> - <string id="14020">Вторая местность</string> - <string id="14021">Третья местность</string> + <string id="14019">Местность 1</string> + <string id="14020">Местность 2</string> + <string id="14021">Местность 3</string> <string id="14022">Медиатека</string> <string id="14023">Без ТВ</string> <string id="14024">Введите ближайший крупный город</string> @@ -1294,7 +1295,7 @@ <string id="14032">- из Интернета</string> <string id="14034">Кэш DVD - с DVD-диска</string> <string id="14035">- Из локальной сети</string> - <string id="14036">Серверы</string> + <string id="14036">Службы</string> <string id="14038">Настройки локальной сети изменены.</string> <string id="14039">Для изменения настроек сети требуется</string> @@ -1331,7 +1332,7 @@ <string id="14070">Применить изменения сейчас</string> <string id="14071">Разрешить переименование и удаление файлов</string> - <string id="14074">Установить часовой пояс</string> + <string id="14074">Выбрать часовой пояс</string> <string id="14075">Учитывать летнее/зимнее время</string> <string id="14076">Добавить в "Избранное"</string> <string id="14077">Удалить из "Избранного"</string> @@ -1339,15 +1340,15 @@ <string id="14079">Страна в часовом поясе</string> <string id="14080">Часовой пояс</string> <string id="14081">Списки файлов</string> - <string id="14082">Показывать информацию о фото из EXIF</string> + <string id="14082">Показывать сведения о фото из EXIF</string> <string id="14083">Использовать окно на весь экран вместо полного экрана</string> <string id="14084">Добавлять треки в очередь при выборе</string> <string id="14085">Воспроизводить аудио-CD автоматически</string> <string id="14086">Воспроизведение</string> <string id="14087">DVD</string> <string id="14088">Воспроизводить DVD автоматически</string> - <string id="14089">Шрифт для текстовых субтитров</string> - <string id="14090">Языки[CR]и стандарты</string> + <string id="14089">Шрифт текстовых субтитров</string> + <string id="14090">Язык[CR]и стандарты</string> <string id="14091">Кодировка</string> <string id="14092">Отладка</string> <string id="14093">Безопасность</string> @@ -1378,15 +1379,15 @@ <string id="15201">Отправлять статистику на Last.fm</string> <string id="15202">Имя пользователя для Last.fm</string> <string id="15203">Пароль для Last.fm</string> - <string id="15204">Невозможно связаться: ожидание…</string> + <string id="15204">Не удалось связаться: ожидание…</string> <string id="15205">Обновите XBMC</string> - <string id="15206">Неверная авторизация: проверьте имя пользователя и пароль</string> + <string id="15206">Ошибка авторизации: проверьте имя пользователя и пароль</string> <string id="15207">Подключено</string> <string id="15208">Не подключено</string> <string id="15209">Интервал подключения %i</string> - <string id="15210">В кэше песен: %i</string> + <string id="15210">Песен в кэше: %i</string> <string id="15211">Подключение…</string> - <string id="15212">Подкл через %i с.</string> + <string id="15212">Подключение через %i с.</string> <string id="15213">Проиграть с помощью…</string> <string id="15214">Плавная синхронизация звука и видео</string> <string id="15215">Скрывать имена файлов в режиме эскизов</string> @@ -1424,31 +1425,31 @@ <string id="15274">Недельный чарт альбомов %name%</string> <string id="15275">Недельный чарт треков %name%</string> <string id="15276">Слушать выбор сообществ %name% на Last.fm</string> - <string id="15277">Слушать личный выбор %name%'а на Last.fm</string> + <string id="15277">Слушать личный выбор %name% на Last.fm</string> <string id="15278">Слушать любимые треки %name% на Last.fm</string> <string id="15279">Получение списка от Last.fm…</string> - <string id="15280">Не удалось получить список от Last.fm…</string> + <string id="15280">Не удается получить список от Last.fm…</string> <string id="15281">Введите имя исполнителя для поиска похожих</string> <string id="15282">Введите название тэга для поиска похожих</string> <string id="15283">Треки, недавно прослушанные %name%</string> <string id="15284">Слушать рекомендации %name% на Last.fm</string> - <string id="15285">Топ тэгов для %name%</string> - - <string id="15287">Вы хотите добавить этот трек к своим любимым трекам?</string> - <string id="15288">Вы хотите заблокировать этот трек?</string> - <string id="15289">Добавлено к вашим любимым трекам: '%s'.</string> - <string id="15290">Невозможно добавить '%s' к вашим любимым трекам.</string> - <string id="15291">Заблокировано: '%s'.</string> - <string id="15292">Не удалось заблокировать.</string> + <string id="15285">Топ тэгов пользователя %name%</string> + + <string id="15287">Добавить этот трек к вашим любимым трекам?</string> + <string id="15288">Заблокировать этот трек?</string> + <string id="15289">Добавлено к вашим любимым трекам: "%s".</string> + <string id="15290">Не удалось добавить "%s" к вашим любимым трекам.</string> + <string id="15291">Заблокировано: "%s".</string> + <string id="15292">Не удалось заблокировать "%s".</string> <string id="15293">Недавно полюбившиеся треки %name%</string> <string id="15294">Недавно заблокированные треки %name%</string> <string id="15295">Удалить из любимых треков</string> <string id="15296">Разблокировать</string> - <string id="15297">Вы хотите удалить этот трек из любимых треков?</string> - <string id="15298">Вы хотите разблокировать этот трек?</string> + <string id="15297">Удалить этот трек из ваших любимых треков?</string> + <string id="15298">Разблокировать этот трек?</string> <string id="15300">Неверный или несуществующий путь</string> - <string id="15301">Не удалось подключиться с серверу</string> + <string id="15301">Не удалось подключиться к серверу</string> <string id="15302">Серверы не найдены</string> <string id="15303">Рабочая группа не найдена</string> @@ -1478,16 +1479,16 @@ <string id="16022">Bob (обратный)</string> <string id="16023"></string> <string id="16024">Отмена…</string> - <string id="16025">Введите название исполнителя</string> + <string id="16025">Введите имя исполнителя</string> <string id="16026">Проигрывание плейлиста прервано</string> <string id="16027">Не удалось проиграть как минимум один файл.</string> <string id="16028">Введите значение</string> - <string id="16029">Для получения доп. сведений просмотрите журнал</string> - <string id="16030">Режим "party" отключен</string> - <string id="16031">Нет похожих песен в медиатеке</string> - <string id="16032">Не удалось инициализировать базу данных</string> - <string id="16033">Не удалось открыть базу данных</string> - <string id="16034">Не удалось получить песни из базы данных</string> + <string id="16029">Для получения доп. сведений просмотрите журнал.</string> + <string id="16030">Режим "party" отключен.</string> + <string id="16031">Нет похожих песен в медиатеке.</string> + <string id="16032">Не удалось инициализировать базу данных.</string> + <string id="16033">Не удалось открыть базу данных.</string> + <string id="16034">Не удалось получить песни из базы данных.</string> <string id="16035">Плейлист режима "party"</string> <string id="16036">Деинтерлейсинг (1 поле)</string> <string id="16037">Деинтерлейсинг</string> @@ -1495,7 +1496,7 @@ <string id="16039">Выкл.</string> <string id="16040">Авто</string> <string id="16041">Вкл.</string> - + <string id="16100">Все видео</string> <string id="16101">Не просмотрено</string> <string id="16102">Просмотрено</string> @@ -1536,10 +1537,10 @@ <string id="16322">Spline36</string> <string id="16323">Оптимизир. Spline36</string> <string id="16324">Blend (программный)</string> - + <string id="16400">Постобработка</string> - <string id="17500">Переход экрана в спящий режим через</string> + <string id="17500">Переход дисплея в спящий режим через</string> <string id="19000">Переключиться на канал</string> @@ -1557,7 +1558,7 @@ <string id="20011">Музыкальные плейлисты</string> <string id="20012">Плейлисты видео</string> <string id="20013">Запустить игру?</string> - <string id="20014">Сорт. по: плейлисту</string> + <string id="20014">Сорт. по плейлисту</string> <string id="20015">Внешний эскиз</string> <string id="20016">Текущий эскиз</string> <string id="20017">Локальный эскиз</string> @@ -1577,13 +1578,13 @@ <string id="20038">Заблокировать раздел "Музыка"</string> <string id="20039">Заблокировать раздел "Видео"</string> <string id="20040">Заблокировать раздел "Фотографии"</string> - <string id="20041">Заблокировать раздел "Программы" и "Скрипты"</string> + <string id="20041">Заблокировать разделы "Программы" и "Скрипты"</string> <string id="20042">Заблокировать "Файл-менеджер"</string> - <string id="20043">Заблокировать 'Настройки'</string> + <string id="20043">Заблокировать "Настройки"</string> <string id="20044">Чистый старт</string> <string id="20045">Включить режим полного доступа</string> <string id="20046">Выключить режим полного доступа</string> - <string id="20047">Создать профиль '%s' ?</string> + <string id="20047">Создать профиль "%s"?</string> <string id="20048">Запустить с чистыми параметрами</string> <string id="20049">Лучший из доступных</string> <string id="20050">Автоматический выбор 16:9 или 4:3</string> @@ -1596,7 +1597,7 @@ <string id="20057">Удалить эскиз</string> <string id="20058">Добавить профиль…</string> <string id="20059">Получить сведения обо всех альбомах</string> - <string id="20060">Сведения о файле</string> + <string id="20060">Информация</string> <string id="20061">Разделять</string> <string id="20062">Стандартные ресурсы</string> <string id="20063">Стандартные ресурсы (только чтение)</string> @@ -1612,7 +1613,7 @@ <string id="20073">и указано правильное имя новой папки</string> <string id="20074">Рейтинг MPAA</string> <string id="20075">Введите код защиты</string> - <string id="20076">Спрашивать код защиты при старте</string> + <string id="20076">Запрашивать код защиты при старте</string> <string id="20077">Настройки обложки</string> <string id="20078">- нет связи -</string> <string id="20079">Использовать анимацию</string> @@ -1622,11 +1623,11 @@ <string id="20083">Показывать сведения о музыке</string> <string id="20084">Показывать сведения о погоде</string> <string id="20085">Показывать сведения о системе</string> - <string id="20086">Показывать свободное место на C: E: F:</string> - <string id="20087">Показывать свободное место на E: F: G:</string> + <string id="20086">Показывать свободное место на дисках C: E: F:</string> + <string id="20087">Показывать свободное место на дисках E: F: G:</string> <string id="20088">Погода</string> <string id="20089">Свободное место на диске</string> - <string id="20090">Введите название существующего ресурса</string> + <string id="20090">Введите имя существующего ресурса</string> <string id="20091">Код защиты</string> <string id="20092">Загрузить профиль</string> <string id="20093">Название профиля</string> @@ -1670,7 +1671,7 @@ <string id="20132">Перезапустить видео</string> <string id="20133">Изменить сетевой ресурс</string> <string id="20134">Удалить сетевой ресурс</string> - <string id="20135">Просканировать папку?</string> + <string id="20135">Сканировать папку?</string> <string id="20136">Карта памяти</string> <string id="20137">Карта памяти подключена</string> <string id="20138">Не удалось подключить карту памяти</string> @@ -1681,10 +1682,10 @@ <string id="20143">Введите пароль для</string> <string id="20144">Таймер выключения</string> <string id="20145">Интервал выключения (мин.)</string> - <string id="20146">Запущен, выключение через %im</string> + <string id="20146">Запущен, выключение через %i мин.</string> <string id="20147">Выключение через 30 мин.</string> - <string id="20148">Выключение через 1 ч.</string> - <string id="20149">Выключение через 2 ч.</string> + <string id="20148">Выключение через 60 мин.</string> + <string id="20149">Выключение через 120 мин.</string> <string id="20150">Выключение по таймеру</string> <string id="20151">Отменить таймер выключения</string> <string id="20152">Заблокировать предпочтения для %s</string> @@ -1709,14 +1710,14 @@ <string id="20171">Сеть Windows (SMB)</string> <string id="20172">XBMSP-сервер</string> <string id="20173">FTP-сервер</string> - <string id="20174">iTunes (DAAP)</string> + <string id="20174">Ресурс iTunes (DAAP)</string> <string id="20175">UPnP-сервер</string> <string id="20176">Показывать сведения о видео</string> <string id="20177">Готово</string> <string id="20178">Shift</string> <string id="20179">Caps Lock</string> <string id="20180">Символы</string> - <string id="20181">← Backspace</string> + <string id="20181"><- Backspace</string> <string id="20182">Пробел</string> <string id="20183">Обновить обложку</string> <string id="20184">Поворачивать фото по информации из EXIF</string> @@ -1742,7 +1743,7 @@ <string id="20252">Наполнение бокалов (видео)</string> <string id="20253">WebDAV-сервер (HTTP)</string> <string id="20254">WebDAV-сервер (HTTPS)</string> - <string id="20255">Первый вход, настройте свой профиль</string> + <string id="20255">Первый вход; настройте свой профиль</string> <string id="20256">Клиент HTS Tvheadend</string> <string id="20257">Клиент VDR Streamdev</string> <string id="20258">Клиент MythTV</string> @@ -1756,21 +1757,21 @@ <string id="20303">Пропустить и продолжить?</string> <string id="20304">RSS-лента</string> - <string id="20307">Вторичный DNS</string> + <string id="20307">Дополнительный DNS</string> <string id="20308">Сервер DHCP:</string> <string id="20309">Создать новую папку</string> - <string id="20310">Пригасить LCD-экран при проигрывании</string> + <string id="20310">Затемнять LCD-экран при проигрывании</string> <string id="20311">Неизвестный или встроенный (защищенный)</string> - <string id="20312">Пригасить LCD-экран при паузе</string> + <string id="20312">Затемнять LCD-экран на паузе</string> <string id="20314">Видео - Медиатека</string> - <string id="20316">Сорт. по: ID</string> + <string id="20316">Сорт. по ID</string> <string id="20324">Играть часть…</string> <string id="20325">Сброс калибровки</string> <string id="20326">Это сбросит калибровочные значения для %s</string> - <string id="20327">на значения по умолчанию</string> + <string id="20327">до значений по умолчанию</string> <string id="20328">Укажите назначение</string> <string id="20330">Использовать имена папок для поиска</string> @@ -1798,7 +1799,7 @@ <string id="20352">Сведения о серии</string> <string id="20353">Загрузка сведений о сериале…</string> <string id="20354">Получение расписания серий…</string> - <string id="20355">Загрузка данных о сериях в папке…</string> + <string id="20355">Загрузка сведений о сериях в папке…</string> <string id="20356">Выберите сериал:</string> <string id="20357">Введите название сериала</string> <string id="20358">Сезон %i</string> @@ -1820,13 +1821,13 @@ <string id="20374">Загрузка сведений о фильме…</string> <string id="20375">Не указывать содержимое</string> <string id="20376">Оригинальное название</string> - <string id="20377">Обновить информацию о сериале</string> - <string id="20378">Обновить информацию о всех сериях?</string> + <string id="20377">Обновить сведения о сериале</string> + <string id="20378">Обновить сведения обо всех сериях?</string> <string id="20379">Указанная папка содержит отдельный сериал</string> <string id="20380">Не сканировать выбранную папку</string> <string id="20381">Дополнения</string> - <string id="20382">Автоматически создавать эскизы для сезонов</string> - <string id="20383">Указанная папка содержит отдельное видео</string> + <string id="20382">Автоматически загружать эскизы для сезонов</string> + <string id="20383">Указанная папка содержит отдельный видеофайл</string> <string id="20384">Связать с сериалом</string> <string id="20385">Убрать связь с сериалом</string> <string id="20386">Последние фильмы</string> @@ -1869,7 +1870,7 @@ <string id="20422">Всегда</string> <string id="20423">Есть трейлер</string> <string id="20424">Нет</string> - <string id="20425">Слайдшоу фанартов</string> + <string id="20425">Слайд-шоу фанартов</string> <string id="20426">Экспортировать одним файлом или разделять</string> <string id="20427">на отдельные файлы для каждой записи?</string> <string id="20428">Одним файлом</string> @@ -1888,20 +1889,21 @@ <string id="20441">Внешний фанарт</string> <string id="20442">Изменить тип содержимого</string> <string id="20443">Обновить сведения для всех</string> - <string id="20444">элементов в данной папке?</string> + <string id="20444">объектов в данной папке?</string> <string id="20445">Фанарт</string> - <string id="20446">Найдена локальная информация.</string> + <string id="20446">Найдены локальные сведения.</string> <string id="20447">Игнорировать и обновить из Интернета?</string> - <string id="20448">Не удалось загрузить информацию</string> - <string id="20449">Сервер недоступен</string> + <string id="20448">Не удалось загрузить сведения</string> + <string id="20449">Сервер недоступен.</string> <string id="20450">Продолжить сканирование?</string> <string id="20451">Страны</string> <string id="20452">серия</string> <string id="20453">серий</string> <string id="20454">Слушатель</string> - <string id="20455">Слушатели</string> + <string id="20455">Слушателей</string> <string id="20456">Выбрать фанарт киноцикла</string> <string id="20457">Киноцикл</string> + <string id="20458">Объединять фильмы в циклы</string> <!-- up to 21329 is reserved for the video db !! !--> <string id="21330">Показывать скрытые файлы и папки</string> @@ -1909,7 +1911,7 @@ <string id="21331">Клиент TuxBox</string> <string id="21332">ВНИМАНИЕ. Целевое устройство TuxBox находится в режиме записи!</string> <string id="21333">Поток будет остановлен!</string> - <string id="21334">Переключение каналов: ошибка %s</string> + <string id="21334">Не удалось переключиться на канал %s.</string> <string id="21335">Включить поток?</string> <string id="21336">Подключение к: %s</string> <string id="21337">Устройство TuxBox</string> @@ -1923,7 +1925,7 @@ <string id="21366">Папка субтитров</string> <string id="21367">Папка для фильмов и альтернативных субтитров</string> <string id="21368">Игнорировать шрифты субтитров ASS/SSA</string> - + <string id="21369">Включить мышь и сенсорный экран</string> <string id="21370">Звуки интерфейса во время проигрывания</string> <string id="21371">Эскизы</string> @@ -1944,13 +1946,13 @@ <string id="21386">Управление уровнем шума</string> <string id="21387">Скорость</string> <string id="21388">Тишина</string> - <string id="21389">Разрешить свои фоновые изображения</string> + <string id="21389">Разрешить выбор фоновых изображений</string> <string id="21390">Управление питанием</string> <string id="21391">Полная мощность</string> <string id="21392">Пониженная мощность</string> <string id="21393">Полное ожидание</string> <string id="21394">Пониженное ожидание</string> - <string id="21395">Невозможно кэшировать файлы размером более 4 ГБ</string> + <string id="21395">Не удалось кэшировать файлы размером более 4 ГБ</string> <string id="21396">Глава</string> <string id="21397">Качественные пиксельные шейдеры в. 2</string> <string id="21398">Проигрывать плейлист при запуске</string> @@ -1961,25 +1963,25 @@ <string id="21403">не</string> <string id="21404">начинается с</string> <string id="21405">заканчивается на</string> - <string id="21406">больше чем</string> - <string id="21407">меньше чем</string> + <string id="21406">больше, чем</string> + <string id="21407">меньше, чем</string> <string id="21408">после</string> <string id="21409">перед</string> <string id="21410">в конце</string> <string id="21411">не в конце</string> <string id="21412">Инфоресурсы</string> <string id="21413">Инфоресурс для фильмов по умолчанию</string> - <string id="21414">Стандартный инфоресурс для сериалов</string> + <string id="21414">Инфоресурс для сериалов по умолчанию</string> <string id="21415">Инфоресурс для клипов по умолчанию</string> <string id="21416">Использовать язык инфоресурса при недоступности основного</string> <string id="21417">- Настройки</string> - <string id="21418">Мультиязычность</string> + <string id="21418">Многоязычность</string> <string id="21419">Инфоресурсы отсутствуют</string> <string id="21420">Значение для поиска</string> <string id="21421">Правило смарт-плейлиста</string> <string id="21422">Выбрать объекты, в которых</string> <string id="21423">Новое правило…</string> - <string id="21424">Объекты должны удовлетворять</string> + <string id="21424">Объекты должны соответствовать</string> <string id="21425">всем правилам</string> <string id="21426">одному или более правилам</string> <string id="21427">Ограничить до</string> @@ -1999,16 +2001,18 @@ <string id="21441">Количество просмотров</string> <string id="21442">Название серии</string> <string id="21443">Разрешение видео</string> - <string id="21444">Каналы аудио</string> + <string id="21444">Каналов аудио</string> <string id="21445">Кодек видео</string> <string id="21446">Кодек аудио</string> <string id="21447">Язык аудио</string> <string id="21448">Язык субтитров</string> <string id="21449">Пульт ДУ посылает коды нажатий клавиш</string> <string id="21450">- Изменить</string> - <string id="21451">Требуется соединение с Интернетом.</string> + <string id="21451">Требуется подключение к Интернету.</string> <string id="21452">Еще…</string> <string id="21453">Корневая ФС</string> + <string id="21454">Кэш заполнен</string> + <string id="21455">Объем кэша недостаточен для непрерывного проигрывания</string> <string id="21460">Расположение субтитров</string> <string id="21461">Фиксированное</string> @@ -2027,7 +2031,7 @@ <string id="21807">Цвет / Ч-Б</string> <string id="21808">Алгоритм JPEG</string> - <string id="21820">Дата съемки</string> + <string id="21820">Дата/время</string> <string id="21821">Описание</string> <string id="21822">Производитель</string> <string id="21823">Модель фотоаппарата</string> @@ -2100,12 +2104,12 @@ <string id="22001">Скрывать состояние обновления медиатеки</string> <string id="22002">- Суффикс DNS</string> - <string id="22003">%2.3fс</string> - <string id="22004">Задержка на: %2.3fс</string> - <string id="22005">Опережение на: %2.3fс</string> + <string id="22003">%2.3f с.</string> + <string id="22004">Задержка на %2.3f с.</string> + <string id="22005">Опережение на %2.3f с.</string> <string id="22006">Смещение субтитров</string> <string id="22007">Производитель OpenGL:</string> - <string id="22008">Рендерер OpenGL:</string> + <string id="22008">Обработчик OpenGL:</string> <string id="22009">Версия OpenGL:</string> <string id="22010">Температура GPU:</string> <string id="22011">Температура CPU:</string> @@ -2148,15 +2152,15 @@ <string id="23049">Телетекст недоступен</string> <string id="23050">Активировать телетекст</string> <string id="23051">Часть %i</string> - <string id="23052">Буферизация %i байт</string> + <string id="23052">Буферизация: %i байт</string> <string id="23053">Остановка…</string> <string id="23054">Запуск…</string> <!-- strings 23100 thru 23150 reserved for external player --> <string id="23100">Активирован внешний проигрыватель</string> - <string id="23101">Нажмите ОК, чтобы выйти плеера</string> + <string id="23101">Нажмите ОК, чтобы закрыть проигрыватель</string> - <string id="23104">Нажмите ОК когда проигрывание завершится</string> + <string id="23104">Нажмите ОК, когда проигрывание завершится</string> <!-- strings 24000 thru 24299 reserved for the Add-ons framework --> <string id="24000">Дополнение</string> @@ -2165,17 +2169,17 @@ <string id="24003">Сведения о дополнении</string> <string id="24005">Источники данных</string> - <string id="24007">Сведения о фильме</string> + <string id="24007">Сведения о фильмах</string> <string id="24008">Заставка</string> <string id="24009">Скрипт</string> <string id="24010">Визуализация</string> <string id="24011">Репозиторий дополнений</string> <string id="24012">Субтитры</string> - <string id="24013">Тексты</string> - <string id="24014">Сведения о сериале</string> - <string id="24015">Сведения о клипе</string> - <string id="24016">Сведения об альбоме</string> - <string id="24017">Сведения об исполнителе</string> + <string id="24013">Тексты песен</string> + <string id="24014">Сведения о сериалах</string> + <string id="24015">Сведения о муз. клипах</string> + <string id="24016">Сведения об альбомах</string> + <string id="24017">Сведения об исполнителях</string> <string id="24018">Службы</string> <string id="24020">Настроить</string> @@ -2184,7 +2188,7 @@ <string id="24023">Дополнение отключено</string> <string id="24027">Погода</string> <string id="24028">Weather.com (стандартно)</string> - <string id="24030">Данное дополнение не может быть настроено</string> + <string id="24030">Невозможно настроить данное дополнение</string> <string id="24031">Ошибка при загрузке настроек</string> <string id="24032">Все дополнения</string> <string id="24033">Загрузить дополнения</string> @@ -2196,7 +2200,7 @@ <string id="24039">Отключенные дополнения</string> <string id="24040">(Очистить текущие настройки)</string> <string id="24041">Установить из файла ZIP</string> - <string id="24042">Загружается %i%%…</string> + <string id="24042">Загружается: %i%%…</string> <string id="24043">Доступные обновления</string> <string id="24044">Отсутствуют нужные компоненты</string> <string id="24045">Неправильная структура дополнения</string> @@ -2209,8 +2213,8 @@ <string id="24052">Соглашение</string> <string id="24053">Лицензия:</string> <string id="24054">Список изменений</string> - <string id="24059">Включить это Дополнение?</string> - <string id="24060">Отключить это Дополнение?</string> + <string id="24059">Включить это дополнение?</string> + <string id="24060">Отключить это дополнение?</string> <string id="24061">Доступны обновления для дополнений.</string> <string id="24062">Включенные дополнения</string> <string id="24063">Автообновление</string> @@ -2221,10 +2225,10 @@ <string id="24068">Доступно обновление</string> <string id="24069">Обновить</string> - <string id="24070">Невозможно загрузить дополнение</string> + <string id="24070">Не удалось загрузить дополнение</string> <string id="24071">Неизвестная ошибка.</string> <string id="24072">Требуется настройка</string> - <string id="24073">Невозможно подключиться</string> + <string id="24073">Не удалось подключиться</string> <string id="24074">Требуется перезапуск</string> <string id="24075">Отключить</string> <string id="24076">Требуемое дополнение</string> @@ -2232,8 +2236,8 @@ <string id="24089">Дополнение перезапускается</string> <string id="24090">Заблокировать менеджер дополнений</string> - <string id="24094">(текущие)</string> - <string id="24095">(заблокированные)</string> + <string id="24094">(текущ.)</string> + <string id="24095">(заблокирован.)</string> <string id="24096">Дополнение помечено в репозитории как испорченное.</string> <string id="24097">Отключить его в системе?</string> <string id="24098">Испорчено</string> @@ -2245,7 +2249,7 @@ <!-- strings 29800 thru 29998 reserved strings used only in the default Project Mayhem III skin and not c++ code --> <string id="29800">Режим медиатеки</string> <string id="29801">Клавиатура QWERTY</string> - <string id="29802">Прямой вывод аудио</string> + <string id="29802">Прямой вывод звука</string> <!-- strings 30000 thru 30999 reserved for plugins and plugin settings --><!-- strings 31000 thru 31999 reserved for skins --><!-- strings 32000 thru 32999 reserved for scripts --><!-- strings 33000 thru 33999 reserved for common strings used in addons --> <string id="33001">Качество трейлера</string> @@ -2256,22 +2260,22 @@ <string id="33006">Сегодня</string> <string id="33007">Завтра</string> <string id="33008">Сохранение…</string> - <string id="33009">Копируем</string> - <string id="33010">Выбрать путь для загрузки</string> + <string id="33009">Копирование…</string> + <string id="33010">Выбрать папку для загрузки</string> <string id="33011">Длительность поиска</string> <string id="33012">Короткая</string> <string id="33013">Длинная</string> <string id="33014">Использовать проигрыватель DVD вместо обычного</string> - <string id="33015">Предлагать скачать видео перед проигрыванием</string> + <string id="33015">Предлагать загрузку видео перед проигрыванием</string> <string id="33016">Клипы</string> <string id="33017">Перезапустите дополнение, чтобы включить его</string> <string id="33018">Сегодня вечером</string> <string id="33019">Завтра вечером</string> - <string id="33020">Условие</string> + <string id="33020">Условия</string> <string id="33021">Осадки</string> <string id="33022">Осадки</string> <string id="33023">Влажность</string> - <string id="33024">Ощущается как</string> + <string id="33024">Ощущается</string> <string id="33025">Наблюдается</string> <string id="33026">Отклонение от нормы</string> <string id="33027">Восход</string> @@ -2296,8 +2300,8 @@ <string id="33056">Смотрите</string> <string id="33057">Слушайте</string> <string id="33058">Просматривайте</string> - <string id="33059">Настраивайте</string> - <string id="33060">Вкл/выкл</string> + <string id="33059">Настройте</string> + <string id="33060">Вкл./выкл.</string> <string id="33061">Меню</string> <string id="33062">Воспроизводите</string> <string id="33063">Параметры</string> @@ -2310,8 +2314,8 @@ <string id="33071">Свои фоны</string> <string id="33072">Просмотреть информацию</string> <string id="33073">Просмотреть список изменений</string> - <string id="33074">Данная версия %s требует</string> - <string id="33075">версию XBMC %s или новее.</string> + <string id="33074">Для данной версии %s требуется</string> + <string id="33075">версия XBMC %s или новее.</string> <string id="33076">Обновите XBMC.</string> <string id="33077">Данных не найдено.</string> <string id="33078">Следующая страница</string> @@ -2319,13 +2323,15 @@ <string id="33080">Не нравится</string> <string id="33081">Составной файл; выберите часть для проигрывания.</string> <string id="33082">Путь к скрипту</string> - <string id="33083">Включить свою кнопку скрипта</string> + <string id="33083">Включить кнопку выбранного скрипта</string> <string id="33100">Не удалось запустить</string> <string id="33101">Веб-сервер</string> <string id="33102">Сервер событий</string> <string id="33103">Сервер удаленного доступа</string> + <string id="33200">Обнаружено новое подключение</string> + <!-- translators: no need to add these to your language files --> <string id="34000">Lame</string> <string id="34001">Vorbis</string> @@ -2347,15 +2353,23 @@ <string id="34110">7.1</string> <!-- 34112-34200 reserved for future use --> - <string id="34201">Следующий файл не найден</string> - <string id="34202">Предыдущий файл не найден</string> + <string id="34201">Не удается найти следующий файл</string> + <string id="34202">Не удается найти предыдущий файл</string> + + <string id="34300">Не удалось запустить zeroconf</string> + <string id="34301">Проверьте, установлена ли служба Apple Bonjour. См. журнал.</string> + + <string id="34400">Обработчик видео</string> + <string id="34401">Не удалось активировать фильтры видео. Используется масштабирование bilinear.</string> + <string id="34402">Не удалось активировать аудиоустройство</string> + <string id="34403">Проверьте настройки аудио</string> <string id="35000">Периферия</string> <string id="35001">Типовое HID-устройство</string> <string id="35002">Типовой сетевой адаптер</string> <string id="35003">Типовой диск</string> - <string id="35004">Для этой периферии нет настроек</string> + <string id="35004">Для этой периферии нет настроек.</string> <string id="35005">Настроено новое устройство</string> <string id="35006">Устройство удалено</string> <string id="35007">Раскладка для этого устройства</string> @@ -2366,7 +2380,7 @@ <string id="35502">Название</string> <string id="35503">Производитель</string> <string id="35504">ID продукта</string> - + <string id="36000">Адаптер Pulse-Eight CEC</string> <string id="36001">Pulse-Eight Nyxboard</string> <string id="36002">Включить дополнительные команды клавиатуры</string> @@ -2378,12 +2392,12 @@ <string id="36008">Выключать устройства при выходе из XBMC</string> <string id="36009">Переводить устройства в спящий режим при активной заставке</string> <string id="36010"></string> - <string id="36011">Не удалось обнаружить порт CEC. Настройте его вручную</string> + <string id="36011">Не удалось обнаружить порт CEC. Настройте его вручную.</string> <string id="36012">Не удалось обнаружить адаптер CEC.</string> <string id="36013">Неподдерживаемая версия интерфейса libcec. %d выше, чем версия, поддерживаемая XBMC (%d)</string> - <string id="36014">Переведите этот ПК в режим ожидания при выключении ТВ</string> + <string id="36014">Переводить этот ПК в режим ожидания при выключении ТВ</string> <string id="36015">Номер порта HDMI</string> - <string id="36016">Подключен</string> <!-- max. 13 characters --> + <string id="36016">Подключено</string> <!-- max. 13 characters --> <string id="36017">Адаптер найден, но libcec недоступен</string> <string id="36018">Использовать языковые настройки ТВ</string> </strings> diff --git a/language/Slovenian/strings.xml b/language/Slovenian/strings.xml index 883e2ef6b8..8f8d4251ee 100644 --- a/language/Slovenian/strings.xml +++ b/language/Slovenian/strings.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!--Translator: Tadej Novak--> <!--Email: tadej@tano.si--> -<!--Date of translation: 20/11/2011--> +<!--Date of translation: 18/02/2012--> <!--$Revision$--> <strings> <string id="0">Programi</string> @@ -879,8 +879,11 @@ <string id="10020">Skripte</string> <string id="10021">Spletni brskalnik</string> + <string id="10025">Videi</string> <string id="10028">Video/Predvajalni seznam</string> + <string id="10029">Prijavno okno</string> <string id="10034">Nastavitve - Profili</string> + <string id="10040">Brskalnik dodatkov</string> <string id="10100">Da/Ne dialog</string> <string id="10101">Dialog napredka</string> @@ -1777,6 +1780,7 @@ <string id="20327">na privzete vrednosti.</string> <string id="20328">Prebrskaj za ciljem</string> + <string id="20329">Filmi so v ločenih mapah, ki se ujemajo z naslovom filma</string> <string id="20330">Uporabi imena map za poizvedbe</string> <string id="20331">Datoteka</string> <string id="20332">Uporabi ime datoteke ali mape v poizvedbah?</string> @@ -1866,7 +1870,7 @@ <string id="20416">Prvič na sporedu</string> <string id="20417">Scenarist</string> <string id="20418"></string> - <string id="20419">Prikaži podrobnosti v pogledu datotek</string> + <string id="20419">Zamenjaj imena datotek z naslovi v knjižnici</string> <string id="20420">Nikoli</string> <string id="20421">Če vsebuje le eno sezono</string> @@ -1906,6 +1910,7 @@ <string id="20455">Listeners</string> <string id="20456">Nastavi ozadje filmske zbirke</string> <string id="20457">Filmska zbirka</string> + <string id="20458">Združi filme v zbirke</string> <!-- up to 21329 is reserved for the video db !! !--> <string id="21330">Prikaži skrite datoteke in mape</string> @@ -2013,6 +2018,8 @@ <string id="21451">Potrebna je internetna povezava.</string> <string id="21452">Prenesi več...</string> <string id="21453">Korenski datotečni sistem</string> + <string id="21454">Začasni pomnilnik poln</string> + <string id="21455">Začasni pomnilnik se je zapolnil, preden je bila dosežen nivo za tekoče predvajanje</string> <string id="21460">Položaj podnapisov</string> <string id="21461">Fiksno</string> @@ -2333,6 +2340,8 @@ <string id="33102">Strežnik dogodkov</string> <string id="33103">Strežnik oddaljene komunikacije</string> + <string id="33200">Zaznana nova povezava</string> + <!-- translators: no need to add these to your language files --> <string id="34000">Lame</string> <string id="34001">Vorbis</string> diff --git a/lib/UnrarXLib/os.hpp b/lib/UnrarXLib/os.hpp index a6889094b3..e48fa0a239 100644 --- a/lib/UnrarXLib/os.hpp +++ b/lib/UnrarXLib/os.hpp @@ -200,15 +200,6 @@ #define _stdfunction -#ifdef _APPLE - #ifndef BIG_ENDIAN - #define BIG_ENDIAN - #endif - #ifdef LITTLE_ENDIAN - #undef LITTLE_ENDIAN - #endif -#endif - #if defined(__sparc) || defined(sparc) || defined(__hpux) #ifndef BIG_ENDIAN #define BIG_ENDIAN diff --git a/lib/ffmpeg/libavcodec/dvbsubdec.c b/lib/ffmpeg/libavcodec/dvbsubdec.c index 7c37915aaa..e8ef8ce252 100644 --- a/lib/ffmpeg/libavcodec/dvbsubdec.c +++ b/lib/ffmpeg/libavcodec/dvbsubdec.c @@ -1409,6 +1409,7 @@ static int dvbsub_decode(AVCodecContext *avctx, int segment_type; int page_id; int segment_length; + int got_segment = 0; #ifdef DEBUG_PACKET_CONTENTS int i; @@ -1445,21 +1446,26 @@ static int dvbsub_decode(AVCodecContext *avctx, switch (segment_type) { case DVBSUB_PAGE_SEGMENT: dvbsub_parse_page_segment(avctx, p, segment_length); + got_segment |= 1; break; case DVBSUB_REGION_SEGMENT: dvbsub_parse_region_segment(avctx, p, segment_length); + got_segment |= 2; break; case DVBSUB_CLUT_SEGMENT: dvbsub_parse_clut_segment(avctx, p, segment_length); + got_segment |= 4; break; case DVBSUB_OBJECT_SEGMENT: dvbsub_parse_object_segment(avctx, p, segment_length); + got_segment |= 8; break; case DVBSUB_DISPLAYDEFINITION_SEGMENT: dvbsub_parse_display_definition_segment(avctx, p, segment_length); break; case DVBSUB_DISPLAY_SEGMENT: *data_size = dvbsub_display_end_segment(avctx, p, segment_length, sub); + got_segment |= 16; break; default: av_dlog(avctx, "Subtitling segment type 0x%x, page id %d, length %d\n", @@ -1470,6 +1476,10 @@ static int dvbsub_decode(AVCodecContext *avctx, p += segment_length; } + // Some streams do not send a display segment but if we have all the other + // segments then we need no further data. + if (got_segment == 15 && sub) + *data_size = dvbsub_display_end_segment(avctx, p, 0, sub); if (p != p_end) { av_dlog(avctx, "Junk at end of packet\n"); diff --git a/lib/ffmpeg/libavfilter/vf_yadif.c b/lib/ffmpeg/libavfilter/vf_yadif.c index da91600c95..1ed880790c 100644 --- a/lib/ffmpeg/libavfilter/vf_yadif.c +++ b/lib/ffmpeg/libavfilter/vf_yadif.c @@ -56,42 +56,42 @@ typedef struct { AVFilterBufferRef *out; void (*filter_line)(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next, - int w, int refs, int parity, int mode); + int w, int prefs, int mrefs, int parity, int mode); } YADIFContext; static void filter_line_c(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next, - int w, int refs, int parity, int mode) + int w, int prefs, int mrefs, int parity, int mode) { int x; uint8_t *prev2 = parity ? prev : cur ; uint8_t *next2 = parity ? cur : next; for (x = 0; x < w; x++) { - int c = cur[-refs]; + int c = cur[mrefs]; int d = (prev2[0] + next2[0])>>1; - int e = cur[+refs]; + int e = cur[prefs]; int temporal_diff0 = FFABS(prev2[0] - next2[0]); - int temporal_diff1 =(FFABS(prev[-refs] - c) + FFABS(prev[+refs] - e) )>>1; - int temporal_diff2 =(FFABS(next[-refs] - c) + FFABS(next[+refs] - e) )>>1; + int temporal_diff1 =(FFABS(prev[mrefs] - c) + FFABS(prev[prefs] - e) )>>1; + int temporal_diff2 =(FFABS(next[mrefs] - c) + FFABS(next[prefs] - e) )>>1; int diff = FFMAX3(temporal_diff0>>1, temporal_diff1, temporal_diff2); int spatial_pred = (c+e)>>1; - int spatial_score = FFABS(cur[-refs-1] - cur[+refs-1]) + FFABS(c-e) - + FFABS(cur[-refs+1] - cur[+refs+1]) - 1; + int spatial_score = FFABS(cur[mrefs-1] - cur[prefs-1]) + FFABS(c-e) + + FFABS(cur[mrefs+1] - cur[prefs+1]) - 1; #define CHECK(j)\ - { int score = FFABS(cur[-refs-1+j] - cur[+refs-1-j])\ - + FFABS(cur[-refs +j] - cur[+refs -j])\ - + FFABS(cur[-refs+1+j] - cur[+refs+1-j]);\ + { int score = FFABS(cur[mrefs-1+j] - cur[prefs-1-j])\ + + FFABS(cur[mrefs +j] - cur[prefs -j])\ + + FFABS(cur[mrefs+1+j] - cur[prefs+1-j]);\ if (score < spatial_score) {\ spatial_score= score;\ - spatial_pred= (cur[-refs +j] + cur[+refs -j])>>1;\ + spatial_pred= (cur[mrefs +j] + cur[prefs -j])>>1;\ CHECK(-1) CHECK(-2) }} }} CHECK( 1) CHECK( 2) }} }} if (mode < 2) { - int b = (prev2[-2*refs] + next2[-2*refs])>>1; - int f = (prev2[+2*refs] + next2[+2*refs])>>1; + int b = (prev2[2*mrefs] + next2[2*mrefs])>>1; + int f = (prev2[2*prefs] + next2[2*prefs])>>1; #if 0 int a = cur[-3*refs]; int g = cur[+3*refs]; @@ -139,7 +139,8 @@ static void filter(AVFilterContext *ctx, AVFilterBufferRef *dstpic, uint8_t *cur = &yadif->cur ->data[i][y*refs]; uint8_t *next = &yadif->next->data[i][y*refs]; uint8_t *dst = &dstpic->data[i][y*dstpic->linesize[i]]; - yadif->filter_line(dst, prev, cur, next, w, refs, parity ^ tff, yadif->mode); + int mode = y==1 || y+2==h ? 2 : yadif->mode; + yadif->filter_line(dst, prev, cur, next, w, y+1<h ? refs : -refs, y ? -refs : refs, parity ^ tff, mode); } else { memcpy(&dstpic->data[i][y*dstpic->linesize[i]], &yadif->cur->data[i][y*refs], w); diff --git a/lib/ffmpeg/libavfilter/x86/yadif_template.c b/lib/ffmpeg/libavfilter/x86/yadif_template.c index 3e520cb1e8..50ea843ebb 100644 --- a/lib/ffmpeg/libavfilter/x86/yadif_template.c +++ b/lib/ffmpeg/libavfilter/x86/yadif_template.c @@ -105,7 +105,7 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next, - int w, int refs, int parity, int mode) + int w, int prefs, int mrefs, int parity, int mode) { DECLARE_ALIGNED(16, uint8_t, tmp0[16]); DECLARE_ALIGNED(16, uint8_t, tmp1[16]); @@ -226,8 +226,8 @@ void RENAME(ff_yadif_filter_line)(uint8_t *dst, :[prev] "r"(prev),\ [cur] "r"(cur),\ [next] "r"(next),\ - [prefs]"r"((x86_reg)refs),\ - [mrefs]"r"((x86_reg)-refs),\ + [prefs]"r"((x86_reg)prefs),\ + [mrefs]"r"((x86_reg)mrefs),\ [mode] "g"(mode)\ );\ __asm__ volatile(MOV" "MM"1, %0" :"=m"(*dst));\ diff --git a/lib/ffmpeg/libavfilter/yadif.h b/lib/ffmpeg/libavfilter/yadif.h index 072812c524..ff574daf49 100644 --- a/lib/ffmpeg/libavfilter/yadif.h +++ b/lib/ffmpeg/libavfilter/yadif.h @@ -23,14 +23,14 @@ void ff_yadif_filter_line_mmx(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next, - int w, int refs, int parity, int mode); + int w, int prefs, int mrefs, int parity, int mode); void ff_yadif_filter_line_sse2(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next, - int w, int refs, int parity, int mode); + int w, int prefs, int mrefs, int parity, int mode); void ff_yadif_filter_line_ssse3(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next, - int w, int refs, int parity, int mode); + int w, int prefs, int mrefs, int parity, int mode); #endif /* AVFILTER_YADIF_H */ diff --git a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaBrowser.h b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaBrowser.h index 4c2bb0c44c..6a18c266b6 100644 --- a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaBrowser.h +++ b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltMediaBrowser.h @@ -95,7 +95,7 @@ public: NPT_UInt32 start_index, NPT_UInt32 count = 30, // DLNA recommendations bool browse_metadata = false, - const char* filter = "dc:date,upnp:genre,res@duration,res@size,upnp:albumArtURI,upnp:album,upnp:artist,upnp:author", + const char* filter = "dc:date,upnp:genre,res,res@duration,res@size,upnp:albumArtURI,upnp:album,upnp:artist,upnp:author", const char* sort_criteria = "", void* userdata = NULL); @@ -104,7 +104,7 @@ public: const char* search_criteria, NPT_UInt32 start_index, NPT_UInt32 count = 30, // DLNA recommendations - const char* filter = "dc:date,upnp:genre,res@duration,res@size,upnp:albumArtURI,upnp:album,upnp:artist,upnp:author", + const char* filter = "dc:date,upnp:genre,res,res@duration,res@size,upnp:albumArtURI,upnp:album,upnp:artist,upnp:author", void* userdata = NULL); //BBMOD END diff --git a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltSyncMediaBrowser.cpp b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltSyncMediaBrowser.cpp index 1d7b20e843..00e3df36dc 100644 --- a/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltSyncMediaBrowser.cpp +++ b/lib/libUPnP/Platinum/Source/Devices/MediaServer/PltSyncMediaBrowser.cpp @@ -284,7 +284,7 @@ PLT_SyncMediaBrowser::BrowseSync(PLT_DeviceDataReference& device, // nothing is returned back by the server. // Unless we were told to stop after reaching a certain amount to avoid // length delays - if ((browse_data->info.tm && browse_data->info.tm == list->GetItemCount()) || + if ((browse_data->info.tm && browse_data->info.tm <= list->GetItemCount()) || (max_results && list->GetItemCount() >= max_results)) break; diff --git a/lib/libid3tag/libid3tag/compat.gperf b/lib/libid3tag/libid3tag/compat.gperf index 8f023987e4..35cb4f6d55 100644 --- a/lib/libid3tag/libid3tag/compat.gperf +++ b/lib/libid3tag/libid3tag/compat.gperf @@ -141,7 +141,7 @@ int translate_APIC(struct id3_frame *frame, char const *oldid, id3_byte_t const *data, id3_length_t length) { id3_byte_t const *end; - char type[3]; + char type[4]; enum id3_field_textencoding encoding; int result = 0; diff --git a/lib/libid3tag/libid3tag/compat2.c b/lib/libid3tag/libid3tag/compat2.c index 8b7d43f5a8..bc758f5183 100644 --- a/lib/libid3tag/libid3tag/compat2.c +++ b/lib/libid3tag/libid3tag/compat2.c @@ -76,6 +76,7 @@ error "gperf generated tables don't work with this execution character set. Plea # define TX(id) #id, translate_##id static id3_compat_func_t translate_TCON; +static id3_compat_func_t translate_APIC; #define TOTAL_KEYWORDS 75 #define MIN_WORD_LENGTH 3 @@ -276,7 +277,7 @@ id3_compat_lookup (str, len) #line 96 "compat.gperf" {"TIME", OBSOLETE /* Time [obsolete] */}, #line 75 "compat.gperf" - {"PIC", EQ(APIC) /* Attached picture */}, + {"PIC", TX(APIC) /* Attached picture */}, #line 127 "compat.gperf" {"UFI", EQ(UFID) /* Unique file identifier */}, #line 72 "compat.gperf" @@ -346,7 +347,7 @@ int translate_APIC(struct id3_frame *frame, char const *oldid, id3_byte_t const *data, id3_length_t length) { id3_byte_t const *end; - char type[3]; + char type[4]; enum id3_field_textencoding encoding; int result = 0; diff --git a/lib/libid3tag/libid3tag/metadata.c b/lib/libid3tag/libid3tag/metadata.c index 3b03a6a758..7dee1e0f13 100644 --- a/lib/libid3tag/libid3tag/metadata.c +++ b/lib/libid3tag/libid3tag/metadata.c @@ -298,8 +298,8 @@ const id3_ucs4_t* id3_metadata_getcomment(const struct id3_tag* tag, enum id3_fi { union id3_field const *field; struct id3_frame const *frame; - const id3_ucs4_t* ucs4 = id3_ucs4_empty; int commentNumber = 0; + const id3_ucs4_t* ucs4 = 0; // return the first non-empty comment do @@ -332,11 +332,9 @@ const id3_ucs4_t* id3_metadata_getcomment(const struct id3_tag* tag, enum id3_fi //finally fetch the comment field = id3_frame_field(frame, 3); if (field == 0) - break; + continue; - ucs4 = id3_field_getfullstring(field); - //done - break; + return id3_field_getfullstring(field); } } } diff --git a/project/VS2010Express/XBMC.vcxproj b/project/VS2010Express/XBMC.vcxproj index 6c09174d3a..2609c25ea2 100644 --- a/project/VS2010Express/XBMC.vcxproj +++ b/project/VS2010Express/XBMC.vcxproj @@ -743,7 +743,6 @@ <ClCompile Include="..\..\xbmc\SortFileItem.cpp" /> <ClCompile Include="..\..\xbmc\storage\AutorunMediaJob.cpp" /> <ClCompile Include="..\..\xbmc\storage\cdioSupport.cpp" /> - <ClCompile Include="..\..\xbmc\storage\DetectDVDType.cpp" /> <ClCompile Include="..\..\xbmc\storage\IoSupport.cpp" /> <ClCompile Include="..\..\xbmc\storage\MediaManager.cpp" /> <ClCompile Include="..\..\xbmc\storage\windows\Win32StorageProvider.cpp" /> @@ -757,7 +756,6 @@ <ClCompile Include="..\..\xbmc\threads\platform\Implementation.cpp" /> <ClInclude Include="..\..\xbmc\cores\AudioRenderers\IAudioRenderer.h" /> <ClInclude Include="..\..\xbmc\filesystem\FileUPnP.h" /> - <ClInclude Include="..\..\xbmc\storage\DetectDVDType.h" /> <ClInclude Include="..\..\xbmc\threads\platform\win\Implementation.cpp" /> <ClCompile Include="..\..\xbmc\threads\SystemClock.cpp" /> <ClCompile Include="..\..\xbmc\threads\Thread.cpp" /> diff --git a/project/VS2010Express/XBMC.vcxproj.filters b/project/VS2010Express/XBMC.vcxproj.filters index f1bb61c85f..3e68763199 100644 --- a/project/VS2010Express/XBMC.vcxproj.filters +++ b/project/VS2010Express/XBMC.vcxproj.filters @@ -2565,9 +2565,6 @@ <ClCompile Include="..\..\xbmc\filesystem\FileUPnP.cpp"> <Filter>filesystem</Filter> </ClCompile> - <ClCompile Include="..\..\xbmc\storage\DetectDVDType.cpp"> - <Filter>storage</Filter> - </ClCompile> </ItemGroup> <ItemGroup> <ClInclude Include="..\..\xbmc\win32\pch.h"> @@ -5154,9 +5151,6 @@ <Filter>filesystem</Filter> </ClInclude> <ClInclude Include="..\..\xbmc\cores\AudioRenderers\IAudioRenderer.h" /> - <ClInclude Include="..\..\xbmc\storage\DetectDVDType.h"> - <Filter>storage</Filter> - </ClInclude> </ItemGroup> <ItemGroup> <ResourceCompile Include="..\..\xbmc\win32\XBMC_PC.rc"> diff --git a/tools/Linux/FEH.py b/tools/Linux/FEH.py index f01e45f161..cd2e09d841 100644 --- a/tools/Linux/FEH.py +++ b/tools/Linux/FEH.py @@ -35,7 +35,7 @@ def error(errorLine): try: print(errorLine) except: - print errorLine + print(errorLine) exit(1) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp index cedda60aaf..f920bdca2c 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -269,7 +269,6 @@ #ifdef TARGET_WINDOWS #include <shlobj.h> #include "win32util.h" -#include "storage/DetectDVDType.h" #endif #ifdef HAS_XRANDR #include "windowing/X11/XRandR.h" @@ -1023,19 +1022,6 @@ bool CApplication::InitDirectoriesWin32() // Expand the DLL search path with our directories CWIN32Util::ExtendDllPath(); - // check for a DVD drive - VECSOURCES vShare; - CWIN32Util::GetDrivesByType(vShare, DVD_DRIVES); - if(!vShare.empty()) - g_mediaManager.SetHasOpticalDrive(true); - - // Can be removed once the StorageHandler supports optical media - VECSOURCES::const_iterator it; - for(it=vShare.begin();it!=vShare.end();++it) - if(g_mediaManager.GetDriveStatus(it->strPath) == DRIVE_CLOSED_MEDIA_PRESENT) - CJobManager::GetInstance().AddJob(new CDetectDisc(it->strPath, false), NULL); - // remove end - return true; #else return false; @@ -1269,6 +1255,7 @@ bool CApplication::Initialize() // reset our screensaver (starts timers etc.) ResetScreenSaver(); + return true; } @@ -2260,7 +2247,7 @@ bool CApplication::OnKey(const CKey& key) if (!action.GetID()) { // keyboard entry - pass the keys through directly - if (key.GetFromHttpApi()) + if (key.GetFromService()) action = CAction(key.GetButtonCode() != KEY_INVALID ? key.GetButtonCode() : 0, key.GetUnicode()); else { // see if we've got an ascii key @@ -2277,7 +2264,7 @@ bool CApplication::OnKey(const CKey& key) return true; // failed to handle the keyboard action, drop down through to standard action } - if (key.GetFromHttpApi()) + if (key.GetFromService()) { if (key.GetButtonCode() != KEY_INVALID) action = CButtonTranslator::GetInstance().GetAction(iWin, key); @@ -2997,7 +2984,10 @@ bool CApplication::ProcessJsonRpcButtons() #ifdef HAS_JSONRPC CKey tempKey(JSONRPC::CInputOperations::GetKey()); if (tempKey.GetButtonCode() != KEY_INVALID) + { + tempKey.SetFromService(true); return OnKey(tempKey); + } #endif return false; } @@ -3069,6 +3059,7 @@ bool CApplication::ProcessEventServer(float frameTime) key = CKey(wKeyID, 0, 0, 0.0, 0.0, 0.0, -fAmount, frameTime); else key = CKey(wKeyID); + key.SetFromService(true); return OnKey(key); } } @@ -3689,7 +3680,10 @@ bool CApplication::PlayFile(const CFileItem& item, bool bRestart) if( item.HasProperty("StartPercent") ) { - options.startpercent = item.GetProperty("StartPercent").asDouble(); + double fallback = 0.0f; + if(item.GetProperty("StartPercent").isString()) + fallback = (double)atof(item.GetProperty("StartPercent").asString().c_str()); + options.startpercent = item.GetProperty("StartPercent").asDouble(fallback); } PLAYERCOREID eNewCore = EPC_NONE; diff --git a/xbmc/FileItem.cpp b/xbmc/FileItem.cpp index 27a9adf74b..9db1df6b4e 100644 --- a/xbmc/FileItem.cpp +++ b/xbmc/FileItem.cpp @@ -2361,6 +2361,8 @@ CStdString CFileItemList::GetDiscCacheFile(int windowID) const cacheFile.Format("special://temp/mdb-%08x.fi", (unsigned __int32)crc); else if (IsVideoDb()) cacheFile.Format("special://temp/vdb-%08x.fi", (unsigned __int32)crc); + else if (IsSmartPlayList()) + cacheFile.Format("special://temp/sp-%08x.fi", (unsigned __int32)crc); else if (windowID) cacheFile.Format("special://temp/%i-%08x.fi", windowID, (unsigned __int32)crc); else diff --git a/xbmc/Util.cpp b/xbmc/Util.cpp index 9a3cbe99df..6f5326c928 100644 --- a/xbmc/Util.cpp +++ b/xbmc/Util.cpp @@ -1576,7 +1576,7 @@ int CUtil::GetMatchingSource(const CStdString& strPath1, VECSOURCES& VECSOURCES, return GetMatchingSource(strPath, VECSOURCES, bDummy); } - CLog::Log(LOGWARNING,"CUtil::GetMatchingSource... no matching source found for [%s]", strPath1.c_str()); + CLog::Log(LOGDEBUG,"CUtil::GetMatchingSource: no matching source found for [%s]", strPath1.c_str()); } return iIndex; } @@ -1638,11 +1638,13 @@ CStdString CUtil::VideoPlaylistsLocation() void CUtil::DeleteMusicDatabaseDirectoryCache() { CUtil::DeleteDirectoryCache("mdb-"); + CUtil::DeleteDirectoryCache("sp-"); // overkill as it will delete video smartplaylists, but as we can't differentiate based on URL... } void CUtil::DeleteVideoDatabaseDirectoryCache() { CUtil::DeleteDirectoryCache("vdb-"); + CUtil::DeleteDirectoryCache("sp-"); // overkill as it will delete music smartplaylists, but as we can't differentiate based on URL... } void CUtil::DeleteDirectoryCache(const CStdString &prefix) @@ -2173,7 +2175,7 @@ CStdString CUtil::ResolveExecutablePath() CStdString strExecutablePath; #ifdef WIN32 wchar_t szAppPathW[MAX_PATH] = L""; - ::GetModuleFileNameW(0, szAppPathW, sizeof(szAppPathW) - 1); + ::GetModuleFileNameW(0, szAppPathW, sizeof(szAppPathW)/sizeof(szAppPathW[0]) - 1); CStdStringW strPathW = szAppPathW; g_charsetConverter.wToUTF8(strPathW,strExecutablePath); #elif defined(__APPLE__) diff --git a/xbmc/addons/GUIDialogAddonSettings.cpp b/xbmc/addons/GUIDialogAddonSettings.cpp index fc5f0ea816..a79c8ec6c3 100644 --- a/xbmc/addons/GUIDialogAddonSettings.cpp +++ b/xbmc/addons/GUIDialogAddonSettings.cpp @@ -320,9 +320,7 @@ bool CGUIDialogAddonSettings::ShowVirtualKeyboard(int iControl) { // setup the shares VECSOURCES *shares = NULL; - if (!source || strcmpi(source, "") == 0) - shares = g_settings.GetSourcesFromType(type); - else + if (source && strcmpi(source, "") != 0) shares = g_settings.GetSourcesFromType(source); VECSOURCES localShares; @@ -331,8 +329,7 @@ bool CGUIDialogAddonSettings::ShowVirtualKeyboard(int iControl) VECSOURCES networkShares; g_mediaManager.GetLocalDrives(localShares); if (!source || strcmpi(source, "local") != 0) - g_mediaManager.GetNetworkLocations(networkShares); - localShares.insert(localShares.end(), networkShares.begin(), networkShares.end()); + g_mediaManager.GetNetworkLocations(localShares); } else // always append local drives { diff --git a/xbmc/addons/GUIWindowAddonBrowser.cpp b/xbmc/addons/GUIWindowAddonBrowser.cpp index 8e585780df..7d968a300a 100644 --- a/xbmc/addons/GUIWindowAddonBrowser.cpp +++ b/xbmc/addons/GUIWindowAddonBrowser.cpp @@ -212,6 +212,7 @@ bool CGUIWindowAddonBrowser::OnClick(int iItem) // pop up filebrowser to grab an installed folder VECSOURCES shares = g_settings.m_fileSources; g_mediaManager.GetLocalDrives(shares); + g_mediaManager.GetNetworkLocations(shares); CStdString path; if (CGUIDialogFileBrowser::ShowAndGetFile(shares, "*.zip", g_localizeStrings.Get(24041), path)) CAddonInstaller::Get().InstallFromZip(path); diff --git a/xbmc/cores/AudioRenderers/ALSADirectSound.cpp b/xbmc/cores/AudioRenderers/ALSADirectSound.cpp index 1e766c365e..2ebacb3719 100644 --- a/xbmc/cores/AudioRenderers/ALSADirectSound.cpp +++ b/xbmc/cores/AudioRenderers/ALSADirectSound.cpp @@ -396,12 +396,20 @@ bool CALSADirectSound::Resume() if(state == SND_PCM_STATE_PAUSED) snd_pcm_pause(m_pPlayHandle,0); - if(state == SND_PCM_STATE_PREPARED) + else if(state == SND_PCM_STATE_PREPARED) { snd_pcm_sframes_t avail = snd_pcm_avail_update(m_pPlayHandle); if(avail >= 0 && avail < (snd_pcm_sframes_t)m_uiBufferSize) snd_pcm_start(m_pPlayHandle); } + else if(state == SND_PCM_STATE_RUNNING) + {} + else + { + CLog::Log(LOGWARNING, "CALSADirectSound::Resume - unexpected device state %d flushing", state); + Flush(); + snd_pcm_start(m_pPlayHandle); + } m_bPause = false; diff --git a/xbmc/cores/AudioRenderers/AudioRendererFactory.cpp b/xbmc/cores/AudioRenderers/AudioRendererFactory.cpp index 653370ed59..927e8ea8f1 100644 --- a/xbmc/cores/AudioRenderers/AudioRendererFactory.cpp +++ b/xbmc/cores/AudioRenderers/AudioRendererFactory.cpp @@ -86,11 +86,30 @@ return new rendererClass(); \ } +/* windows channel order */ +static const enum PCMChannels dsound_default_channel_layout[][8] = +{ + {PCM_FRONT_CENTER}, + {PCM_FRONT_LEFT, PCM_FRONT_RIGHT}, + {PCM_FRONT_LEFT, PCM_FRONT_RIGHT, PCM_LOW_FREQUENCY}, + {PCM_FRONT_LEFT, PCM_FRONT_RIGHT, PCM_BACK_LEFT, PCM_BACK_RIGHT}, + {PCM_FRONT_LEFT, PCM_FRONT_RIGHT, PCM_LOW_FREQUENCY, PCM_BACK_LEFT, PCM_BACK_RIGHT}, + {PCM_FRONT_LEFT, PCM_FRONT_RIGHT, PCM_FRONT_CENTER, PCM_LOW_FREQUENCY, PCM_BACK_LEFT, PCM_BACK_RIGHT}, + {PCM_FRONT_LEFT, PCM_FRONT_RIGHT, PCM_FRONT_CENTER, PCM_LOW_FREQUENCY, PCM_BACK_CENTER, PCM_BACK_LEFT, PCM_BACK_RIGHT}, + {PCM_FRONT_LEFT, PCM_FRONT_RIGHT, PCM_FRONT_CENTER, PCM_LOW_FREQUENCY, PCM_BACK_LEFT, PCM_BACK_RIGHT, PCM_SIDE_LEFT, PCM_SIDE_RIGHT} +}; + IAudioRenderer* CAudioRendererFactory::Create(IAudioCallback* pCallback, int iChannels, enum PCMChannels *channelMap, unsigned int uiSamplesPerSec, unsigned int uiBitsPerSample, bool bResample, bool bIsMusic, IAudioRenderer::EEncoded encoded) { IAudioRenderer* audioSink = NULL; CStdString renderer; + if(channelMap == NULL) + { + CLog::Log(LOGINFO, "CAudioRendererFactory: no input channel map specified assume windows\n"); + channelMap = (enum PCMChannels *)dsound_default_channel_layout[iChannels - 1]; + } + CStdString deviceString, device; if (encoded) { diff --git a/xbmc/cores/AudioRenderers/CoreAudioRenderer.cpp b/xbmc/cores/AudioRenderers/CoreAudioRenderer.cpp index 1cd5d5d358..a5b2b6e172 100644 --- a/xbmc/cores/AudioRenderers/CoreAudioRenderer.cpp +++ b/xbmc/cores/AudioRenderers/CoreAudioRenderer.cpp @@ -34,6 +34,7 @@ #include "threads/Atomics.h" #include "windowing/WindowingFactory.h" #include "utils/log.h" +#include "utils/SystemInfo.h" #include "utils/TimeUtils.h" const AudioChannelLabel g_LabelMap[] = @@ -58,6 +59,8 @@ const AudioChannelLabel g_LabelMap[] = kAudioChannelLabel_TopBackCenter // PCM_TOP_BACK_CENTER }; +#define MAX_AUDIO_CHANNEL_LABEL kAudioChannelLabel_CenterSurroundDirect + const AudioChannelLayoutTag g_LayoutMap[] = { kAudioChannelLayoutTag_Stereo, // PCM_LAYOUT_2_0 = 0, @@ -68,7 +71,7 @@ const AudioChannelLayoutTag g_LayoutMap[] = kAudioChannelLayoutTag_DVD_6, // PCM_LAYOUT_4_1, kAudioChannelLayoutTag_MPEG_5_0_A, // PCM_LAYOUT_5_0, kAudioChannelLayoutTag_MPEG_5_1_A, // PCM_LAYOUT_5_1, - kAudioChannelLayoutTag_AudioUnit_7_0, // PCM_LAYOUT_7_0, ** This layout may be incorrect...no content to testß˚ ** + kAudioChannelLayoutTag_AudioUnit_7_0, // PCM_LAYOUT_7_0, ** This layout may be incorrect...no content to test ** kAudioChannelLayoutTag_MPEG_7_1_A, // PCM_LAYOUT_7_1 }; @@ -337,16 +340,153 @@ void CCoreAudioPerformance::Reset() //*********************************************************************************************** // Surround Up/Down Mapping Class //*********************************************************************************************** +struct ChannelPatch +{ + AudioChannelLabel label; // Target Channel + Float32 coeff; // Output level +}; + +// TODO: There is not a lot of logic behind these mapping coefficients +// Routings for Explicit Mapping. These are in priority order. +// g_ChannelRoutings[channel][routing][patch] +// These are currently all down-mix routings +#define MAX_CHANNELS sizeof(g_LabelMap)/sizeof(AudioChannelLabel) +#define NO_ROUTINGS {{{kAudioChannelLabel_Unknown, 0.0f}}} +ChannelPatch g_ChannelRoutings[MAX_AUDIO_CHANNEL_LABEL+1][MAX_CHANNELS][MAX_CHANNELS] = +{ + NO_ROUTINGS, // kAudioChannelLabel_Unknown (0) + // kAudioChannelLabel_Left (1) + { + {{kAudioChannelLabel_Center, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_Right (2) + { + {{kAudioChannelLabel_Center, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_Center (3) + { + {{kAudioChannelLabel_Left, 0.707f},{kAudioChannelLabel_Right, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Left, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Right, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_LFEScreen (4) + { + {{kAudioChannelLabel_Left, 0.707f},{kAudioChannelLabel_Right, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Left, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Right, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_LeftSurround (5) + { + {{kAudioChannelLabel_LeftSurroundDirect, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Left, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_RightSurround (6) + { + {{kAudioChannelLabel_RightSurroundDirect, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Right, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_LeftCenter (7) + { + {{kAudioChannelLabel_Center, 0.707f},{kAudioChannelLabel_Left, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Left, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_RightCenter (8) + { + {{kAudioChannelLabel_Center, 0.707f},{kAudioChannelLabel_Right, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Right, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_CenterSurround (9) + { + {{kAudioChannelLabel_LeftSurround, 0.707f},{kAudioChannelLabel_RightSurround, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_LeftSurroundDirect, 0.707f},{kAudioChannelLabel_RightSurroundDirect, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Left, 0.707f},{kAudioChannelLabel_Right, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_LeftSurroundDirect (10) + { + {{kAudioChannelLabel_LeftSurround, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_CenterSurround, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_CenterSurroundDirect, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Left, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_RightSurroundDirect (11) + { + {{kAudioChannelLabel_RightSurround, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_CenterSurround, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_CenterSurroundDirect, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Right, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + NO_ROUTINGS, //kAudioChannelLabel_TopCenterSurround (12) + NO_ROUTINGS, //kAudioChannelLabel_VerticalHeightLeft (13) + NO_ROUTINGS, //kAudioChannelLabel_VerticalHeightCenter (14) + NO_ROUTINGS, //kAudioChannelLabel_VerticalHeightRight (15) + NO_ROUTINGS, //kAudioChannelLabel_TopBackLeft (16) + NO_ROUTINGS, //kAudioChannelLabel_TopBackCenter (17) + NO_ROUTINGS, //kAudioChannelLabel_VerticalHeightRight (18) + NO_ROUTINGS, // INVALID LABEL (19) + NO_ROUTINGS, // INVALID LABEL (20) + NO_ROUTINGS, // INVALID LABEL (21) + NO_ROUTINGS, // INVALID LABEL (22) + NO_ROUTINGS, // INVALID LABEL (23) + NO_ROUTINGS, // INVALID LABEL (24) + NO_ROUTINGS, // INVALID LABEL (25) + NO_ROUTINGS, // INVALID LABEL (26) + NO_ROUTINGS, // INVALID LABEL (27) + NO_ROUTINGS, // INVALID LABEL (28) + NO_ROUTINGS, // INVALID LABEL (29) + NO_ROUTINGS, // INVALID LABEL (30) + NO_ROUTINGS, // INVALID LABEL (31) + NO_ROUTINGS, // INVALID LABEL (32) + // kAudioChannelLabel_RearSurroundLeft (33) + { + {{kAudioChannelLabel_LeftSurround, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_LeftSurroundDirect, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_CenterSurround, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_CenterSurroundDirect, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Left, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + // kAudioChannelLabel_RearSurroundRight (34) + { + {{kAudioChannelLabel_RightSurround, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_RightSurroundDirect, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_CenterSurround, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_CenterSurroundDirect, 0.707f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Right, 1.0f},{kAudioChannelLabel_Unknown, 0.0f}}, + {{kAudioChannelLabel_Unknown, 0.0f}} + }, + NO_ROUTINGS, // kAudioChannelLabel_LeftWide (35) + NO_ROUTINGS, // kAudioChannelLabel_RightWide (36) + NO_ROUTINGS, // kAudioChannelLabel_LFE2 (37) + NO_ROUTINGS, // kAudioChannelLabel_LeftTotal (38) + NO_ROUTINGS, // kAudioChannelLabel_RightTotal (39) + NO_ROUTINGS, // kAudioChannelLabel_HearingImpaired (40) + NO_ROUTINGS, // kAudioChannelLabel_Narration (41) + NO_ROUTINGS, // kAudioChannelLabel_Mono (42) + NO_ROUTINGS, // kAudioChannelLabel_DialogCentricMix (43) + NO_ROUTINGS // kAudioChannelLabel_CenterSurroundDirect (44) +}; + CCoreAudioMixMap::CCoreAudioMixMap() : m_isValid(false) { - m_pMap = (Float32*)calloc(sizeof(AudioChannelLayout), 1); + m_pMap = (Float32*)calloc(sizeof(Float32), 2); } -CCoreAudioMixMap::CCoreAudioMixMap(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout) : +CCoreAudioMixMap::CCoreAudioMixMap(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout, bool forceExplicit/*=false*/) : m_isValid(false) { - Rebuild(inLayout, outLayout); + Rebuild(inLayout, outLayout, forceExplicit); } CCoreAudioMixMap::~CCoreAudioMixMap() @@ -354,11 +494,10 @@ CCoreAudioMixMap::~CCoreAudioMixMap() if (m_pMap) { free(m_pMap); - m_pMap = NULL; } } -void CCoreAudioMixMap::Rebuild(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout) +void CCoreAudioMixMap::Rebuild(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout, bool forceExplicit/*=false*/) { // map[in][out] = mix-level of input_channel[in] into output_channel[out] @@ -371,24 +510,116 @@ void CCoreAudioMixMap::Rebuild(AudioChannelLayout& inLayout, AudioChannelLayout& m_inChannels = CCoreAudioChannelLayout::GetChannelCountForLayout(inLayout); m_outChannels = CCoreAudioChannelLayout::GetChannelCountForLayout(outLayout); - // Try to find a 'well-known' matrix - const AudioChannelLayout* layouts[] = {&inLayout, &outLayout}; - UInt32 propSize = 0; - OSStatus ret = AudioFormatGetPropertyInfo(kAudioFormatProperty_MatrixMixMap, sizeof(layouts), layouts, &propSize); - m_pMap = (Float32*)calloc(1,propSize); - - // Try and get a predefined mixmap - ret = AudioFormatGetProperty(kAudioFormatProperty_MatrixMixMap, sizeof(layouts), layouts, &propSize, m_pMap); - if (!ret) + // If the caller allows it, try to find a 'well-known' matrix + if (!forceExplicit) { - m_isValid = true; - return; // Nothing else to do...a map already exists + const AudioChannelLayout* layouts[] = {&inLayout, &outLayout}; + UInt32 propSize = 0; + OSStatus ret = AudioFormatGetPropertyInfo(kAudioFormatProperty_MatrixMixMap, sizeof(layouts), layouts, &propSize); + m_pMap = (Float32*)calloc(1,propSize); + ret = AudioFormatGetProperty(kAudioFormatProperty_MatrixMixMap, sizeof(layouts), layouts, &propSize, m_pMap); + if (!ret) + { + m_isValid = true; + CLog::Log(LOGDEBUG, "CCoreAudioMixMap::Rebuild: Unable to locate pre-defined mixing matrix. Trying to build one explicitly..."); + return; // Nothing else to do...a map already exists + } + + // No predefined mixing matrix was available. Going to have to build it manually + CLog::Log(LOGDEBUG, "CCoreAudioMixMap::Rebuild: Unable to locate pre-defined mixing matrix. Trying to build one explicitly..."); } + else + CLog::Log(LOGINFO, "CCoreAudioMixMap::Rebuild: Building explicit mixing matrix [forceExplicit=true]"); + + // Try to build a mixing matrix from scratch + m_isValid = BuildExplicit(inLayout, outLayout); +} + +bool CCoreAudioMixMap::BuildExplicit(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout) +{ + // Initialize map + // map[in][out] = mix-level of input_channel[in] into output_channel[out] + m_pMap = (Float32*)calloc(sizeof(Float32), inLayout.mNumberChannelDescriptions * outLayout.mNumberChannelDescriptions); + int mappedChannels = 0; + + // Initialize array of output channel locations + int outPos[MAX_AUDIO_CHANNEL_LABEL + 1]; + for (UInt32 i = 0; i < (MAX_AUDIO_CHANNEL_LABEL + 1); i++) + outPos[i] = -1; - // No predefined mixmap was available. Going to have to build it manually - CLog::Log(LOGDEBUG, "CCoreAudioMixMap::CreateMap: Unable to locate pre-defined mixing matrix"); + // Map output channel order to output layout + for (UInt32 channel = 0; channel < outLayout.mNumberChannelDescriptions; channel++) + outPos[outLayout.mChannelDescriptions[channel].mChannelLabel] = channel; - m_isValid = false; + CLog::Log(LOGDEBUG, "CCoreAudioMixMap::BuildExplicit: Building mixing matrix [%d input channels, %d output channels]", inLayout.mNumberChannelDescriptions, outLayout.mNumberChannelDescriptions); + + // For each input channel, decide how to route/mix it + for (UInt32 channel = 0; channel < inLayout.mNumberChannelDescriptions; channel++) + { + AudioChannelDescription* pDesc = &inLayout.mChannelDescriptions[channel]; + + if (pDesc->mChannelLabel > MAX_AUDIO_CHANNEL_LABEL) + { + CLog::Log(LOGINFO, "CCoreAudioMixMap::BuildExplicit:\tUnrecognized input channel encountered (label=%d) - skipping.", pDesc->mChannelLabel); + continue; + } + + // Does the channel exist in the output? + int outIndex = outPos[pDesc->mChannelLabel]; + if (outIndex > -1) // If so, just pass it through + { + // map[in][out] = map[in * outCount + out] + CLog::Log(LOGDEBUG, "CCoreAudioMixMap::BuildExplicit:\tin[%d] -> out[%d] @ %0.02f", channel, outIndex, 1.0f); + m_pMap[channel * outLayout.mNumberChannelDescriptions + outIndex] = 1.0f; + mappedChannels++; + } + else // The input channel does not exist in the output layout. Decide where to route it... + { + // Loop through the pre-defined routings strategies for this channel. Use the first compatible one we find + for (UInt32 r = 0; r < MAX_CHANNELS; r++) + { + // If the first patch's label is kAudioChannelLabel_Unknown, this is the routing list terminator + if (g_ChannelRoutings[pDesc->mChannelLabel][r][0].label == kAudioChannelLabel_Unknown) + break; // No dice... + + // Check each patch in this routing to see if it is possible. If it is not, give up on this routing + bool validRouting = false; + for (UInt32 p = 0; ((p < MAX_CHANNELS) && !validRouting); p++) + { + ChannelPatch* patch = &g_ChannelRoutings[pDesc->mChannelLabel][r][p]; + if (patch->label == kAudioChannelLabel_Unknown) // End of this routing + validRouting = true; // Success...this routing should work. + else if (outPos[patch->label] == -1) + break; // The specified output channel is not available. Invalidate the whole routing + } + + // If this is a valid routing (all output channels are available), apply it... + if (validRouting) + { + for (UInt32 p = 0; p < MAX_CHANNELS; p++) + { + ChannelPatch* patch = &g_ChannelRoutings[pDesc->mChannelLabel][r][p]; + if (patch->label == kAudioChannelLabel_Unknown) // List terminator + break; + + int outIndex = outPos[patch->label]; + CLog::Log(LOGDEBUG, "CCoreAudioMixMap::BuildExplicit:\tin[%d] -> out[%d] @ %0.02f", channel, outIndex, patch->coeff); + m_pMap[channel * outLayout.mNumberChannelDescriptions + outIndex] = patch->coeff; + mappedChannels++; + } + break; + } + } + } + } + if (!mappedChannels) + { + CLog::Log(LOGINFO, "CCoreAudioMixMap::BuildExplicit: No valid patches found."); + return false; + } + + CLog::Log(LOGINFO, "CCoreAudioMixMap::BuildExplicit: Completed explicit channel map."); + return true; } //*********************************************************************************************** @@ -977,7 +1208,7 @@ bool CCoreAudioRenderer::InitializePCM(UInt32 channels, UInt32 samplesPerSecond, hasLFE = true; } - // HACK: Fix broken channel layouts coming from some aac sources that include rear channel but no side channels. + // HACK: Fix broken channel layouts coming from some aac sources that include rear channels but no side channels. // 5.1 streams should include front and side channels. Rear channels are added by 6.1 and 7.1, so any 5.1 // source that claims to have rear channels is wrong. if (inputFormat.mChannelsPerFrame == 6 && hasLFE) // Check for 5.1 configuration (as best we can without getting too silly) @@ -1010,7 +1241,15 @@ bool CCoreAudioRenderer::InitializePCM(UInt32 channels, UInt32 samplesPerSecond, // Get User-Configured (XBMC) Speaker Configuration AudioChannelLayout guiLayout; - guiLayout.mChannelLayoutTag = g_LayoutMap[(PCMLayout)g_guiSettings.GetInt("audiooutput.channellayout")]; + if (g_sysinfo.IsAppleTV()) + { + // Force ATV1 to a 2.0 layout (that is all it knows), since it does not provide a usable channel layout + CLog::Log(LOGDEBUG, "CCoreAudioRenderer::InitializePCM: AppleTV detected - Forcing channel layout to 2.0 (max available PCM channels)"); + guiLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo; + } + else + guiLayout.mChannelLayoutTag = g_LayoutMap[(PCMLayout)g_guiSettings.GetInt("audiooutput.channellayout")]; + CCoreAudioChannelLayout userLayout(guiLayout); CStdString strUserLayout; CLog::Log(LOGDEBUG, "CCoreAudioRenderer::InitializePCM: User-Configured Speaker Layout: %s", CCoreAudioChannelLayout::ChannelLayoutToString(*(AudioChannelLayout*)userLayout, strUserLayout)); @@ -1019,7 +1258,39 @@ bool CCoreAudioRenderer::InitializePCM(UInt32 channels, UInt32 samplesPerSecond, CCoreAudioChannelLayout deviceLayout; if (!m_AudioDevice.GetPreferredChannelLayout(deviceLayout)) return false; - + + // Detect devices with no Speaker Configuration + bool undefinedLayout = true; + for (UInt32 c = 0; c < deviceLayout.GetChannelCount(); c++) + { + // If this is a known channel, then we can't have an undefined layout + if (deviceLayout.GetChannelLabel(c) != kAudioChannelLabel_Unknown) + { + undefinedLayout = false; + break; + } + } + if (undefinedLayout) + { + if (!g_sysinfo.IsAppleTV()) // AppleTV users cannot do this... + { + CLog::Log(LOGERROR, "CCoreAudioRenderer::InitializePCM: The selected device (%s) does not have a speaker layout configured. Using the default layout.", m_AudioDevice.GetName()); + CLog::Log(LOGERROR, "CCoreAudioRenderer::InitializePCM: \tPlease go to Applications -> Utilities -> Audio MIDI Setup, and select 'Configure Speakers...'"); + } + // Pick a default layout based on the number of channels + AudioChannelLayoutTag newLayoutTag = GetDefaultLayout(deviceLayout.GetChannelCount()); + if (newLayoutTag == kAudioChannelLayoutTag_UseChannelBitmap) // Undefined, give up... + { + CLog::Log(LOGERROR, "CCoreAudioRenderer::InitializePCM: Unable to find a suitable default layout for this device."); + return false; + } + if (!deviceLayout.SetLayout(newLayoutTag)) + { + CLog::Log(LOGERROR, "CCoreAudioRenderer::InitializePCM: Unable to set channel layout from tag."); + return false; + } + } + CStdString strOutLayout; CLog::Log(LOGDEBUG, "CCoreAudioRenderer::InitializePCM: Output Device Layout: %s", CCoreAudioChannelLayout::ChannelLayoutToString(*(AudioChannelLayout*)deviceLayout, strOutLayout)); @@ -1036,7 +1307,7 @@ bool CCoreAudioRenderer::InitializePCM(UInt32 channels, UInt32 samplesPerSecond, // if (CCoreAudioChannelLayout::GetChannelCountForLayout(guiLayout) < CCoreAudioChannelLayout::GetChannelCountForLayout(deviceLayout)) // deviceLayout.CopyLayout(guiLayout); - // TODO: Skip matrix mixer if input/output are compatible + // TODO: Skip matrix mixer if input/output are compatible -> Add a IsPurePassthrough() method to the CCoreAudioMixMap class AudioChannelLayout* layoutCandidates[] = {(AudioChannelLayout*)deviceLayout, (AudioChannelLayout*)userLayout, NULL}; @@ -1125,11 +1396,14 @@ bool CCoreAudioRenderer::InitializePCM(UInt32 channels, UInt32 samplesPerSecond, } else { + CLog::Log(LOGERROR, "CCoreAudioRenderer::InitializePCM: No matrix mixer configuration available - unmapped channels will be dropped"); outputFormat = inputFormat; // We don't know how to map this...let CoreAudio handle it } } else { + if (allowMixing && !channelMap) + CLog::Log(LOGINFO, "CCoreAudioRenderer::InitializePCM: No channel map provided - extra channels will be dropped"); outputFormat = inputFormat; } @@ -1327,6 +1601,33 @@ void CCoreAudioRenderer::OnResetDevice() } } } + +AudioChannelLayoutTag CCoreAudioRenderer::GetDefaultLayout(UInt32 channelCount) +{ + switch(channelCount) + { + case 1: + return kAudioChannelLayoutTag_Mono; // 1.0 + case 2: + return kAudioChannelLayoutTag_Stereo; // 2.0 + case 3: + return kAudioChannelLayoutTag_DVD_4; // 2.1 + case 4: + return kAudioChannelLayoutTag_DVD_10; // 3.1 + case 5: + return kAudioChannelLayoutTag_DVD_6; // 4.1 + case 6: + return kAudioChannelLayoutTag_MPEG_5_1_A; // 5.1 + case 7: + return kAudioChannelLayoutTag_AudioUnit_7_0; // 7.0 + case 8: + return kAudioChannelLayoutTag_MPEG_7_1_A; // 7.1 + case 0: + default: + return kAudioChannelLayoutTag_UseChannelBitmap; // Basically 'Undefined' + } +} + #endif #endif diff --git a/xbmc/cores/AudioRenderers/CoreAudioRenderer.h b/xbmc/cores/AudioRenderers/CoreAudioRenderer.h index 7d653c3abc..3b06a518fb 100644 --- a/xbmc/cores/AudioRenderers/CoreAudioRenderer.h +++ b/xbmc/cores/AudioRenderers/CoreAudioRenderer.h @@ -104,15 +104,16 @@ class CCoreAudioMixMap { public: CCoreAudioMixMap(); - CCoreAudioMixMap(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout); + CCoreAudioMixMap(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout, bool forceExplicit=false); virtual ~CCoreAudioMixMap(); operator Float32*() const {return m_pMap;} const Float32* GetBuffer() {return m_pMap;} UInt32 GetInputChannels() {return m_inChannels;} UInt32 GetOutputChannels() {return m_outChannels;} bool IsValid() {return m_isValid;} - void Rebuild(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout); + void Rebuild(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout, bool forceExplicit=false); private: + bool BuildExplicit(AudioChannelLayout& inLayout, AudioChannelLayout& outLayout); Float32* m_pMap; UInt32 m_inChannels; UInt32 m_outChannels; @@ -164,8 +165,7 @@ private: bool InitializePCM(UInt32 channels, UInt32 samplesPerSecond, UInt32 bitsPerSample, enum PCMChannels *channelMap, bool allowMixing = true); bool InitializePCMEncoded(UInt32 sampleRate); - bool CreateMixMap(); - + AudioChannelLayoutTag GetDefaultLayout(UInt32 channelCount); static OSStatus HardwareListenerProc(AudioHardwarePropertyID property, void *clientref); static OSStatus DeviceListenerProc(AudioDeviceID inDevice, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, void *clientref); diff --git a/xbmc/cores/AudioRenderers/Win32DirectSound.cpp b/xbmc/cores/AudioRenderers/Win32DirectSound.cpp index 48399b000a..1ac873287a 100644 --- a/xbmc/cores/AudioRenderers/Win32DirectSound.cpp +++ b/xbmc/cores/AudioRenderers/Win32DirectSound.cpp @@ -87,12 +87,8 @@ bool CWin32DirectSound::Initialize(IAudioCallback* pCallback, const CStdString& { m_uiDataChannels = iChannels; - if(!bAudioPassthrough) + if(!bAudioPassthrough && channelMap) { - //If no channel map is specified, use the default. - if(!channelMap) - channelMap = (PCMChannels *)dsound_default_channel_layout[iChannels - 1]; - PCMChannels *outLayout = m_remap.SetInputFormat(iChannels, channelMap, uiBitsPerSample / 8, uiSamplesPerSec); for(iChannels = 0; outLayout[iChannels] != PCM_INVALID;) ++iChannels; diff --git a/xbmc/cores/AudioRenderers/Win32WASAPI.cpp b/xbmc/cores/AudioRenderers/Win32WASAPI.cpp index e7faecaf69..d5b383af5e 100644 --- a/xbmc/cores/AudioRenderers/Win32WASAPI.cpp +++ b/xbmc/cores/AudioRenderers/Win32WASAPI.cpp @@ -107,12 +107,8 @@ bool CWin32WASAPI::Initialize(IAudioCallback* pCallback, const CStdString& devic int layoutChannels = 0; - if(!bAudioPassthrough) + if(!bAudioPassthrough && channelMap) { - //If no channel map is specified, use the default. - if(!channelMap) - channelMap = (PCMChannels *)wasapi_default_channel_layout[iChannels - 1]; - PCMChannels *outLayout = m_remap.SetInputFormat(iChannels, channelMap, uiBitsPerSample / 8, uiSamplesPerSec); for(PCMChannels *channel = outLayout; *channel != PCM_INVALID; channel++) @@ -418,7 +414,7 @@ unsigned int CWin32WASAPI::AddPackets(const void* data, unsigned int len) { CSingleLock lock (m_critSection); - if (!m_bIsAllocated) + if (!m_bIsAllocated || m_bPause) return 0; DWORD dwFlags = m_bMuting || m_nCurrentVolume == VOLUME_MINIMUM ? AUDCLNT_BUFFERFLAGS_SILENT : 0; diff --git a/xbmc/cores/DllLoader/dll.cpp b/xbmc/cores/DllLoader/dll.cpp index fd7ef79077..dee70c10e6 100644 --- a/xbmc/cores/DllLoader/dll.cpp +++ b/xbmc/cores/DllLoader/dll.cpp @@ -277,6 +277,7 @@ extern "C" DWORD WINAPI dllGetModuleFileNameA(HMODULE hModule, LPSTR lpFilename, if (sName) { strncpy(lpFilename, sName, nSize); + lpFilename[nSize] = 0; return strlen(lpFilename); } diff --git a/xbmc/cores/DllLoader/exports/emu_socket/emu_socket.h b/xbmc/cores/DllLoader/exports/emu_socket/emu_socket.h index 5f3722b0f5..0558099a35 100644 --- a/xbmc/cores/DllLoader/exports/emu_socket/emu_socket.h +++ b/xbmc/cores/DllLoader/exports/emu_socket/emu_socket.h @@ -22,10 +22,6 @@ * */ -#ifdef _XBOX -#include <xtl.h> -#endif - #define SOCK_RAW 3 #define EAFNOSUPPORT WSAEAFNOSUPPORT @@ -40,21 +36,6 @@ struct mphostent { char **h_addr_list; /* list of addresses from name server */ }; -#ifdef _XBOX -typedef struct servent { - char FAR* s_name; - char FAR FAR** s_aliases; - short s_port; - char FAR* s_proto; -} servent; - -typedef struct protoent { - char FAR* p_name; - char FAR FAR** p_aliases; - short p_proto; -} protoent; -#endif - #ifndef IN_MULTICAST #define IN_MULTICAST(i) (((i) & 0xf0000000U) == 0xe0000000U) #endif diff --git a/xbmc/cores/DllLoader/exports/emu_socket/getaddrinfo.c b/xbmc/cores/DllLoader/exports/emu_socket/getaddrinfo.c index 5f0e4291a3..3cd8b1bdb7 100644 --- a/xbmc/cores/DllLoader/exports/emu_socket/getaddrinfo.c +++ b/xbmc/cores/DllLoader/exports/emu_socket/getaddrinfo.c @@ -45,12 +45,7 @@ * in ai_flags? */ -#ifdef _XBOX -#include <xtl.h> -#include <winsockx.h> -#else #include <windows.h> -#endif #include <stddef.h> #include "addrinfo.h" #include "emu_socket.h" @@ -62,19 +57,6 @@ #include <stdio.h> #include <errno.h> -#ifdef _XBOX -extern struct mphostent* __stdcall dllgethostbyname(const char* name); -#define gethostbyname(name) dllgethostbyname(name) - -extern struct mphostent* __stdcall dllgethostbyaddr(const char* addr, int len, int type); -#define gethostbyaddr(addr, len, type) dllgethostbyaddr(addr, len, type) - -extern struct servent* __stdcall dllgetservbyname(const char* name, const char* proto); -#define getservbyname(name, proto) dllgetservbyname(name, proto) - -#define hostent mphostent -#endif - #ifndef HAVE_U_INT32_T #include "bittypes.h" #endif @@ -333,18 +315,10 @@ getaddrinfo(const char*hostname, const char*servname, pai->ai_socktype = SOCK_STREAM; break; default: -#ifdef _XBOX - pai->ai_socktype = SOCK_STREAM; -#else pai->ai_socktype = SOCK_RAW; -#endif //_XBOX break; } break; -#ifndef _XBOX - case SOCK_RAW: - break; -#endif //_XBOX case SOCK_DGRAM: if (pai->ai_protocol != IPPROTO_UDP && pai->ai_protocol != GAI_ANY) diff --git a/xbmc/cores/DllLoader/exports/emu_socket/getnameinfo.c b/xbmc/cores/DllLoader/exports/emu_socket/getnameinfo.c index 0c8f426040..0df482a679 100644 --- a/xbmc/cores/DllLoader/exports/emu_socket/getnameinfo.c +++ b/xbmc/cores/DllLoader/exports/emu_socket/getnameinfo.c @@ -37,12 +37,7 @@ * modified). */ -#ifdef _XBOX -#include <xtl.h> -#include <winsockx.h> -#else #include <windows.h> -#endif #include <stddef.h> #include "addrinfo.h" #include "emu_socket.h" @@ -54,14 +49,6 @@ #include <stdio.h> #include <errno.h> -#ifdef _XBOX -extern struct mphostent* __stdcall dllgethostbyname(const char* name); -#define gethostbyname(name) dllgethostbyname(name) - -extern struct mphostent* __stdcall dllgethostbyaddr(const char* addr, int len, int type); -#define gethostbyaddr(addr, len, type) dllgethostbyaddr(addr, len, type) -#endif - extern struct servent* __stdcall dllgetservbyname(const char* name, const char* proto); #define getservbyname(name, proto) dllgetservbyname(name, proto) diff --git a/xbmc/cores/VideoRenderers/RenderManager.cpp b/xbmc/cores/VideoRenderers/RenderManager.cpp index 7da5eab280..b9178602cd 100644 --- a/xbmc/cores/VideoRenderers/RenderManager.cpp +++ b/xbmc/cores/VideoRenderers/RenderManager.cpp @@ -103,6 +103,7 @@ CXBMCRenderManager::CXBMCRenderManager() m_presentmethod = PRESENT_METHOD_SINGLE; m_bReconfigured = false; m_hasCaptures = false; + m_displayLatency = 0.0f; } CXBMCRenderManager::~CXBMCRenderManager() @@ -320,6 +321,8 @@ unsigned int CXBMCRenderManager::PreInit() #endif } + UpdateDisplayLatency(); + return m_pRenderer->PreInit(); } @@ -712,6 +715,17 @@ void CXBMCRenderManager::Recover() #if defined(HAS_GL) && !defined(TARGET_DARWIN) glFlush(); // attempt to have gpu done with pixmap and vdpau #endif + + UpdateDisplayLatency(); +} + +void CXBMCRenderManager::UpdateDisplayLatency() +{ + float refresh = g_graphicsContext.GetFPS(); + if (g_graphicsContext.GetVideoResolution() == RES_WINDOW) + refresh = 0; // No idea about refresh rate when windowed, just get the default latency + m_displayLatency = (double) g_advancedSettings.GetDisplayLatency(refresh); + CLog::Log(LOGDEBUG, "CRenderManager::UpdateDisplayLatency - Latency set to %1.0f msec", m_displayLatency * 1000.0f); } void CXBMCRenderManager::UpdateResolution() diff --git a/xbmc/cores/VideoRenderers/RenderManager.h b/xbmc/cores/VideoRenderers/RenderManager.h index 961b19fbd5..7f8dbce85e 100644 --- a/xbmc/cores/VideoRenderers/RenderManager.h +++ b/xbmc/cores/VideoRenderers/RenderManager.h @@ -108,6 +108,7 @@ public: float GetMaximumFPS(); inline bool Paused() { return m_bPauseDrawing; }; inline bool IsStarted() { return m_bIsStarted;} + double GetDisplayLatency() { return m_displayLatency; } bool Supports(ERENDERFEATURE feature) { @@ -216,6 +217,8 @@ protected: PRESENT_METHOD_BOB, }; + double m_displayLatency; + void UpdateDisplayLatency(); double m_presenttime; double m_presentcorr; diff --git a/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.cpp b/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.cpp index 9763ff2a4a..300cabcf3c 100644 --- a/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.cpp +++ b/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.cpp @@ -714,6 +714,27 @@ bool CConvolutionShaderSeparable::CreateIntermediateRenderTarget(unsigned int wi return true; } +bool CConvolutionShaderSeparable::ClearIntermediateRenderTarget() +{ + LPDIRECT3DDEVICE9 pD3DDevice = g_Windowing.Get3DDevice(); + + LPDIRECT3DSURFACE9 currentRT; + pD3DDevice->GetRenderTarget(0, ¤tRT); + + LPDIRECT3DSURFACE9 intermediateRT; + m_IntermediateTarget.GetSurfaceLevel(0, &intermediateRT); + + pD3DDevice->SetRenderTarget(0, intermediateRT); + + pD3DDevice->Clear(0L, NULL, D3DCLEAR_TARGET, 0L, 1.0f, 0L); + + pD3DDevice->SetRenderTarget(0, currentRT); + currentRT->Release(); + intermediateRT->Release(); + + return true; +} + void CConvolutionShaderSeparable::PrepareParameters(unsigned int sourceWidth, unsigned int sourceHeight, unsigned int destWidth, unsigned int destHeight, CRect sourceRect, @@ -723,6 +744,12 @@ void CConvolutionShaderSeparable::PrepareParameters(unsigned int sourceWidth, un || m_destWidth != destWidth || m_destHeight != destHeight || m_sourceRect != sourceRect || m_destRect != destRect) { + // fixme better: clearing the whole render target when changing the source/dest rect is not optimal. + // Problem is that the edges of the final picture may retain content when the rects change. + // For example when changing zoom value, the edges can retain content from the previous zoom value. + // Playing with coordinates was unsuccessful so far, this is a quick fix for release. + ClearIntermediateRenderTarget(); + m_sourceWidth = sourceWidth; m_sourceHeight = sourceHeight; m_destWidth = destWidth; diff --git a/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.h b/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.h index aa2a4f2334..d6199e58fc 100644 --- a/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.h +++ b/xbmc/cores/VideoRenderers/VideoShaders/WinVideoFilter.h @@ -164,6 +164,7 @@ public: protected: virtual bool ChooseIntermediateD3DFormat(); virtual bool CreateIntermediateRenderTarget(unsigned int width, unsigned int height); + virtual bool ClearIntermediateRenderTarget(); virtual void PrepareParameters(unsigned int sourceWidth, unsigned int sourceHeight, unsigned int destWidth, unsigned int destHeight, CRect sourceRect, diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlaySpu.h b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlaySpu.h index 1dd1e78802..1db47cf12f 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlaySpu.h +++ b/xbmc/cores/dvdplayer/DVDCodecs/Overlay/DVDOverlaySpu.h @@ -72,7 +72,7 @@ public: memcpy(alpha , src.alpha , sizeof(alpha)); memcpy(color , src.color , sizeof(color)); memcpy(highlight_alpha, src.highlight_alpha, sizeof(highlight_alpha)); - memcpy(highlight_color, src.highlight_alpha, sizeof(highlight_color)); + memcpy(highlight_color, src.highlight_color, sizeof(highlight_color)); } BYTE result[2*65536 + 20]; // rle data diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp index 5bfb733fb5..b4e14511bd 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp @@ -449,8 +449,8 @@ int CDVDVideoCodecFFmpeg::Decode(BYTE* pData, int iSize, double dts, double pts) avpkt.flags = AV_PKT_FLAG_KEY; len = m_dllAvCodec.avcodec_decode_video2(m_pCodecContext, m_pFrame, &iGotPicture, &avpkt); - if(m_iLastKeyframe < m_pCodecContext->has_b_frames + 1) - m_iLastKeyframe = m_pCodecContext->has_b_frames + 1; + if(m_iLastKeyframe < m_pCodecContext->has_b_frames + 2) + m_iLastKeyframe = m_pCodecContext->has_b_frames + 2; if (len < 0) { @@ -467,9 +467,17 @@ int CDVDVideoCodecFFmpeg::Decode(BYTE* pData, int iSize, double dts, double pts) if(m_pFrame->key_frame) { m_started = true; - m_iLastKeyframe = m_pCodecContext->has_b_frames + 1; + m_iLastKeyframe = m_pCodecContext->has_b_frames + 2; } + /* put a limit on convergence count to avoid huge mem usage on streams without keyframes */ + if(m_iLastKeyframe > 300) + m_iLastKeyframe = 300; + + /* h264 doesn't always have keyframes + won't output before first keyframe anyway */ + if(m_pCodecContext->codec_id == CODEC_ID_H264) + m_started = true; + if(m_pCodecContext->pix_fmt != PIX_FMT_YUV420P && m_pCodecContext->pix_fmt != PIX_FMT_YUVJ420P && m_pHardware == NULL) diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp index 2e885f8574..5b6ce25913 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVDA.cpp @@ -669,6 +669,13 @@ bool CDVDVideoCodecVDA::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options) extrasize = hints.extrasize; extradata = (uint8_t*)hints.extradata; + if (width <= 0 || height <= 0 || profile <= 0 || level <= 0) + { + CLog::Log(LOGNOTICE, "%s - bailing with bogus hints, width(%d), height(%d), profile(%d), level(%d)", + __FUNCTION__, width, height, profile, level); + return false; + } + if (Cocoa_GPUForDisplayIsNvidiaPureVideo3() && !CDVDCodecUtils::IsVP3CompatibleWidth(width)) { CLog::Log(LOGNOTICE, "%s - Nvidia 9400 GPU hardware limitation, cannot decode a width of %d", __FUNCTION__, width); diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVideoToolBox.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVideoToolBox.cpp index 703c296293..31b07ee9b6 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVideoToolBox.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecVideoToolBox.cpp @@ -1071,6 +1071,13 @@ bool CDVDVideoCodecVideoToolBox::Open(CDVDStreamInfo &hints, CDVDCodecOptions &o extrasize = hints.extrasize; extradata = (uint8_t*)hints.extradata; + if (width <= 0 || height <= 0 || profile <= 0 || level <= 0) + { + CLog::Log(LOGNOTICE, "%s - bailing with bogus hints, width(%d), height(%d), profile(%d), level(%d)", + __FUNCTION__, width, height, profile, level); + return false; + } + switch (hints.codec) { case CODEC_ID_MPEG4: diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp index 867f4a7343..ea1f0bda8e 100644 --- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp @@ -413,9 +413,11 @@ int CVDPAU::Check(AVCodecContext* avctx) if (!m_DisplayEvent.WaitMSec(2000)) { CLog::Log(LOGERROR, "CVDPAU::Check - device didn't reset in reasonable time"); - return VC_ERROR; + state = VDPAU_RESET; } - { CSharedLock lock(m_DisplaySection); + else + { + CSharedLock lock(m_DisplaySection); state = m_DisplayState; } } @@ -1612,7 +1614,10 @@ bool CVDPAU::CheckStatus(VdpStatus vdp_st, int line) if(m_DisplayState == VDPAU_OPEN) { if (vdp_st == VDP_STATUS_DISPLAY_PREEMPTED) + { + m_DisplayEvent.Reset(); m_DisplayState = VDPAU_LOST; + } else m_DisplayState = VDPAU_ERROR; } diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h index d717d48550..dd8d977892 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemux.h @@ -156,6 +156,7 @@ public: iLevel = 0; iProfile = 0; bPTSInvalid = false; + bForcedAspect = false; type = STREAM_VIDEO; } @@ -169,7 +170,7 @@ public: int iLevel; // encoder level of the stream reported by the decoder. used to qualify hw decoders. int iProfile; // encoder profile of the stream reported by the decoder. used to qualify hw decoders. bool bPTSInvalid; // pts cannot be trusted (avi's). - + bool bForcedAspect; // aspect is forced from container }; class CDemuxStreamAudio : public CDemuxStream diff --git a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp index a27f052aa0..46287a858c 100644 --- a/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp +++ b/xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp @@ -952,14 +952,16 @@ int CDVDDemuxFFmpeg::GetNrOfStreams() return i; } -static double SelectAspect(AVStream* st) +static double SelectAspect(AVStream* st, bool* forced) { + *forced = false; /* if stream aspect is 1:1 or 0:0 use codec aspect */ if((st->sample_aspect_ratio.den == 1 || st->sample_aspect_ratio.den == 0) && (st->sample_aspect_ratio.num == 1 || st->sample_aspect_ratio.num == 0) && st->codec->sample_aspect_ratio.num != 0) return av_q2d(st->codec->sample_aspect_ratio); + *forced = true; if(st->sample_aspect_ratio.num != 0) return av_q2d(st->sample_aspect_ratio); @@ -1031,7 +1033,7 @@ void CDVDDemuxFFmpeg::AddStream(int iId) st->iWidth = pStream->codec->width; st->iHeight = pStream->codec->height; - st->fAspect = SelectAspect(pStream) * pStream->codec->width / pStream->codec->height; + st->fAspect = SelectAspect(pStream, &st->bForcedAspect) * pStream->codec->width / pStream->codec->height; st->iLevel = pStream->codec->level; st->iProfile = pStream->codec->profile; @@ -1188,7 +1190,7 @@ void CDVDDemuxFFmpeg::AddStream(int iId) std::string CDVDDemuxFFmpeg::GetFileName() { - if(m_pInput && m_pInput) + if(m_pInput) return m_pInput->GetFileName(); else return ""; diff --git a/xbmc/cores/dvdplayer/DVDFileInfo.cpp b/xbmc/cores/dvdplayer/DVDFileInfo.cpp index 8cc4898a2d..064a76b242 100644 --- a/xbmc/cores/dvdplayer/DVDFileInfo.cpp +++ b/xbmc/cores/dvdplayer/DVDFileInfo.cpp @@ -202,7 +202,9 @@ bool CDVDFileInfo::ExtractThumb(const CStdString &strPath, const CStdString &str { { int nWidth = g_advancedSettings.m_thumbSize; - double aspect = (double)picture.iWidth / (double)picture.iHeight; + double aspect = (double)picture.iDisplayWidth / (double)picture.iDisplayHeight; + if(hint.forced_aspect) + aspect = hint.aspect; int nHeight = (int)((double)g_advancedSettings.m_thumbSize / aspect); DllSwScale dllSwScale; diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp index 7780f1c825..9c1e852468 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamFile.cpp @@ -44,18 +44,15 @@ bool CDVDInputStreamFile::IsEOF() bool CDVDInputStreamFile::Open(const char* strFile, const std::string& content) { - if (!CDVDInputStream::Open(strFile, content)) return false; + if (!CDVDInputStream::Open(strFile, content)) + return false; m_pFile = new CFile(); - if (!m_pFile) return false; - - unsigned int flags = READ_TRUNCATED | READ_BITRATE | READ_CHUNKED; - - if ( URIUtils::IsInternetStream( CStdString(strFile) ) ) - flags |= READ_CACHED; + if (!m_pFile) + return false; // open file in binary mode - if (!m_pFile->Open(strFile, flags)) + if (!m_pFile->Open(strFile, READ_TRUNCATED | READ_BITRATE | READ_CHUNKED)) { delete m_pFile; m_pFile = NULL; diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp index a2ca1807b0..b9b271e6b8 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -703,6 +703,15 @@ void CDVDPlayer::OpenDefaultStreams() CLog::Log(LOGWARNING, "%s - failed to restore selected subtitle stream (%d)", __FUNCTION__, g_settings.m_currentVideoSettings.m_SubtitleStream); } + // check if there are external subtitles available + for(int i = 0;i<count && !valid; i++) + { + SelectionStream& s = m_SelectionStreams.Get(STREAM_SUBTITLE, i); + if ((s.source == STREAM_SOURCE_DEMUX_SUB || s.source == STREAM_SOURCE_TEXT) + && OpenSubtitleStream(s.id, s.source)) + valid = true; + } + // select default if(!valid && m_SelectionStreams.Get(STREAM_SUBTITLE, CDemuxStream::FLAG_DEFAULT, st)) @@ -2424,7 +2433,7 @@ void CDVDPlayer::GetGeneralInfo(CStdString& strGeneralInfo) { if (!m_bStop) { - double dDelay = (double)m_dvdPlayerVideo.GetDelay() / DVD_TIME_BASE; + double dDelay = m_dvdPlayerVideo.GetDelay() / DVD_TIME_BASE - g_renderManager.GetDisplayLatency(); double apts = m_dvdPlayerAudio.GetCurrentPts(); double vpts = m_dvdPlayerVideo.GetCurrentPts(); @@ -2731,7 +2740,10 @@ bool CDVDPlayer::OpenVideoStream(int iStream, int source) /* set aspect ratio as requested by navigator for dvd's */ float aspect = static_cast<CDVDInputStreamNavigator*>(m_pInputStream)->GetVideoAspectRatio(); if(aspect != 0.0) + { hint.aspect = aspect; + hint.forced_aspect = true; + } hint.software = true; hint.stills = static_cast<CDVDInputStreamNavigator*>(m_pInputStream)->IsInMenu(); } diff --git a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp index 95d47b689e..e28faaf368 100644 --- a/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp @@ -220,7 +220,7 @@ void CDVDPlayerVideo::OpenStream(CDVDStreamInfo &hint, CDVDVideoCodec* codec) m_bFpsInvalid = (hint.fpsrate == 0 || hint.fpsscale == 0); m_bCalcFrameRate = g_guiSettings.GetBool("videoplayer.usedisplayasclock") || - g_guiSettings.GetBool("videoplayer.adjustrefreshrate"); + g_guiSettings.GetBool("videoplayer.adjustrefreshrate"); ResetFrameRateCalc(); m_iDroppedRequest = 0; @@ -234,7 +234,10 @@ void CDVDPlayerVideo::OpenStream(CDVDStreamInfo &hint, CDVDVideoCodec* codec) } // use aspect in stream if available - m_fForcedAspectRatio = hint.aspect; + if(hint.forced_aspect) + m_fForcedAspectRatio = hint.aspect; + else + m_fForcedAspectRatio = 0.0; if (m_pVideoCodec) delete m_pVideoCodec; @@ -1108,8 +1111,8 @@ int CDVDPlayerVideo::OutputPicture(const DVDVideoPicture* src, double pts) pts -= DVD_TIME_BASE * interval; } - //User set delay - pts += m_iVideoDelay; + // Correct pts by user set delay and rendering delay + pts += m_iVideoDelay - DVD_SEC_TO_TIME(g_renderManager.GetDisplayLatency()); // calculate the time we need to delay this picture before displaying double iSleepTime, iClockSleep, iFrameSleep, iPlayingClock, iCurrentClock, iFrameDuration; @@ -1464,9 +1467,11 @@ void CDVDPlayerVideo::ResetFrameRateCalc() { m_fStableFrameRate = 0.0; m_iFrameRateCount = 0; - m_bAllowDrop = !m_bCalcFrameRate && g_settings.m_currentVideoSettings.m_ScalingMethod != VS_SCALINGMETHOD_AUTO; m_iFrameRateLength = 1; m_iFrameRateErr = 0; + + m_bAllowDrop = (!m_bCalcFrameRate && g_settings.m_currentVideoSettings.m_ScalingMethod != VS_SCALINGMETHOD_AUTO) || + g_advancedSettings.m_videoFpsDetect == 0; } #define MAXFRAMERATEDIFF 0.01 @@ -1474,8 +1479,8 @@ void CDVDPlayerVideo::ResetFrameRateCalc() void CDVDPlayerVideo::CalcFrameRate() { - if (m_iFrameRateLength >= 128) - return; //we're done calculating + if (m_iFrameRateLength >= 128 || g_advancedSettings.m_videoFpsDetect == 0) + return; //don't calculate the fps //only calculate the framerate if sync playback to display is on, adjust refreshrate is on, //or scaling method is set to auto @@ -1492,7 +1497,8 @@ void CDVDPlayerVideo::CalcFrameRate() //and is able to calculate the correct frame duration from it double frameduration = m_pullupCorrection.GetFrameDuration(); - if (frameduration == DVD_NOPTS_VALUE || m_pullupCorrection.GetPatternLength() > 1) + if (frameduration == DVD_NOPTS_VALUE || + (g_advancedSettings.m_videoFpsDetect == 1 && m_pullupCorrection.GetPatternLength() > 1)) { //reset the stored framerates if no good framerate was detected m_fStableFrameRate = 0.0; diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.cpp b/xbmc/cores/dvdplayer/DVDStreamInfo.cpp index 70f7021107..d269eac291 100644 --- a/xbmc/cores/dvdplayer/DVDStreamInfo.cpp +++ b/xbmc/cores/dvdplayer/DVDStreamInfo.cpp @@ -94,6 +94,7 @@ bool CDVDStreamInfo::Equal(const CDVDStreamInfo& right, bool withextradata) || level != right.level || profile != right.profile || ptsinvalid != right.ptsinvalid + || forced_aspect != right.forced_aspect || vfr != right.vfr) return false; // AUDIO @@ -148,6 +149,7 @@ void CDVDStreamInfo::Assign(const CDVDStreamInfo& right, bool withextradata) level = right.level; profile = right.profile; ptsinvalid = right.ptsinvalid; + forced_aspect = right.forced_aspect; // AUDIO channels = right.channels; @@ -196,6 +198,7 @@ void CDVDStreamInfo::Assign(const CDemuxStream& right, bool withextradata) level = stream->iLevel; profile = stream->iProfile; ptsinvalid = stream->bPTSInvalid; + forced_aspect = stream->bForcedAspect; } else if( right.type == STREAM_SUBTITLE ) { diff --git a/xbmc/cores/dvdplayer/DVDStreamInfo.h b/xbmc/cores/dvdplayer/DVDStreamInfo.h index afbf563aa6..9a706581e2 100644 --- a/xbmc/cores/dvdplayer/DVDStreamInfo.h +++ b/xbmc/cores/dvdplayer/DVDStreamInfo.h @@ -76,6 +76,7 @@ public: int level; // encoder level of the stream reported by the decoder. used to qualify hw decoders. int profile; // encoder profile of the stream reported by the decoder. used to qualify hw decoders. bool ptsinvalid; // pts cannot be trusted (avi's). + bool forced_aspect; // aspect is forced from container // AUDIO int channels; diff --git a/xbmc/dbwrappers/mysqldataset.cpp b/xbmc/dbwrappers/mysqldataset.cpp index 14c1c490de..458f353261 100644 --- a/xbmc/dbwrappers/mysqldataset.cpp +++ b/xbmc/dbwrappers/mysqldataset.cpp @@ -1198,9 +1198,9 @@ MYSQL* MysqlDataset::handle(){ void MysqlDataset::make_query(StringList &_sql) { string query; int result = 0; + if (db == NULL) throw DbErrors("No Database Connection"); try { - if (db == NULL) throw DbErrors("No Database Connection"); if (autocommit) db->start_transaction(); for (list<string>::iterator i =_sql.begin(); i!=_sql.end(); i++) diff --git a/xbmc/dbwrappers/sqlitedataset.cpp b/xbmc/dbwrappers/sqlitedataset.cpp index 9d4fa8a866..80ffbc7e8f 100644 --- a/xbmc/dbwrappers/sqlitedataset.cpp +++ b/xbmc/dbwrappers/sqlitedataset.cpp @@ -444,10 +444,10 @@ sqlite3* SqliteDataset::handle(){ void SqliteDataset::make_query(StringList &_sql) { string query; + if (db == NULL) throw DbErrors("No Database Connection"); try { - if (db == NULL) throw DbErrors("No Database Connection"); if (autocommit) db->start_transaction(); diff --git a/xbmc/dialogs/GUIDialogMediaSource.cpp b/xbmc/dialogs/GUIDialogMediaSource.cpp index a10575cef4..64d9337a87 100644 --- a/xbmc/dialogs/GUIDialogMediaSource.cpp +++ b/xbmc/dialogs/GUIDialogMediaSource.cpp @@ -237,30 +237,10 @@ void CGUIDialogMediaSource::OnPathBrowse(int item) share1.m_ignore = true; extraShares.push_back(share1); -#ifdef HAS_FILESYSTEM_SMB - share1.strPath = "smb://"; - share1.strName = g_localizeStrings.Get(20171); - extraShares.push_back(share1); -#endif - -#ifdef HAS_FILESYSTEM_NFS - share1.strPath = "nfs://"; - share1.strName = g_localizeStrings.Get(20259); - extraShares.push_back(share1); -#endif// HAS_FILESYSTEM_NFS - - share1.strPath = "upnp://"; - share1.strName = "UPnP Devices"; - extraShares.push_back(share1); - share1.strPath = "sap://"; share1.strName = "SAP Streams"; extraShares.push_back(share1); - share1.strPath = "zeroconf://"; - share1.strName = "Zeroconf Browser"; - extraShares.push_back(share1); - if (g_guiSettings.GetString("audiocds.recordingpath",false) != "") { share1.strPath = "special://recordings/"; @@ -287,18 +267,6 @@ void CGUIDialogMediaSource::OnPathBrowse(int item) share1.strName = "ReplayTV Devices"; extraShares.push_back(share1); -#ifdef HAS_FILESYSTEM_SMB - share1.strPath = "smb://"; - share1.strName = g_localizeStrings.Get(20171); - extraShares.push_back(share1); -#endif - -#ifdef HAS_FILESYSTEM_NFS - share1.strPath = "nfs://"; - share1.strName = g_localizeStrings.Get(20259); - extraShares.push_back(share1); -#endif// HAS_FILESYSTEM_NFS - share1.strPath = "hdhomerun://"; share1.strName = "HDHomerun Devices"; extraShares.push_back(share1); @@ -306,14 +274,6 @@ void CGUIDialogMediaSource::OnPathBrowse(int item) share1.strPath = "sap://"; share1.strName = "SAP Streams"; extraShares.push_back(share1); - - share1.strPath = "upnp://"; - share1.strName = "UPnP Devices"; - extraShares.push_back(share1); - - share1.strPath = "zeroconf://"; - share1.strName = "Zeroconf Browser"; - extraShares.push_back(share1); } else if (m_type == "pictures") { @@ -325,26 +285,6 @@ void CGUIDialogMediaSource::OnPathBrowse(int item) share1.strName = g_localizeStrings.Get(20008); extraShares.push_back(share1); } - -#ifdef HAS_FILESYSTEM_SMB - share1.strPath = "smb://"; - share1.strName = g_localizeStrings.Get(20171); - extraShares.push_back(share1); -#endif - -#ifdef HAS_FILESYSTEM_NFS - share1.strPath = "nfs://"; - share1.strName = g_localizeStrings.Get(20259); - extraShares.push_back(share1); -#endif// HAS_FILESYSTEM_NFS - - share1.strPath = "upnp://"; - share1.strName = "UPnP Devices"; - extraShares.push_back(share1); - - share1.strPath = "zeroconf://"; - share1.strName = "Zeroconf Browser"; - extraShares.push_back(share1); } else if (m_type == "programs") { diff --git a/xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp b/xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp index 43e34389f2..8dfe1beeae 100644 --- a/xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp +++ b/xbmc/dialogs/GUIDialogSmartPlaylistRule.cpp @@ -185,6 +185,13 @@ void CGUIDialogSmartPlaylistRule::OnBrowse() if (m_type.Equals("songs") || m_type.Equals("albums")) path = "special://musicplaylists/"; XFILE::CDirectory::GetDirectory(path, items, ".xsp",false,false,XFILE::DIR_CACHE_ONCE,true,true); + for (int i = 0; i < items.Size(); i++) + { + CFileItemPtr item = items[i]; + CSmartPlaylist playlist; + if (playlist.OpenAndReadName(item->GetPath())) + item->SetLabel(playlist.GetName()); + } iLabel = 559; } else if (m_rule.m_field == CSmartPlaylistRule::FIELD_PATH) diff --git a/xbmc/filesystem/File.cpp b/xbmc/filesystem/File.cpp index ef1625526f..6bfe7dac07 100644 --- a/xbmc/filesystem/File.cpp +++ b/xbmc/filesystem/File.cpp @@ -227,7 +227,7 @@ bool CFile::Open(const CStdString& strFileName, unsigned int flags) } CURL url(URIUtils::SubstitutePath(strFileName)); - if ( (flags & READ_NO_CACHE) == 0 && URIUtils::IsInternetStream(url) && !CUtil::IsPicture(strFileName) ) + if ( (flags & READ_NO_CACHE) == 0 && URIUtils::IsInternetStream(url, true) && !CUtil::IsPicture(strFileName) ) m_flags |= READ_CACHED; if (m_flags & READ_CACHED) @@ -827,8 +827,9 @@ bool CFile::SetHidden(const CStdString& fileName, bool hidden) int CFile::IoControl(EIoControl request, void* param) { int result = -1; - if (m_pFile) - result = m_pFile->IoControl(request, param); + if (m_pFile == NULL) + return -1; + result = m_pFile->IoControl(request, param); if(result == -1 && request == IOCTRL_SEEK_POSSIBLE) { diff --git a/xbmc/filesystem/SmartPlaylistDirectory.cpp b/xbmc/filesystem/SmartPlaylistDirectory.cpp index 449e26b365..aa6668f888 100644 --- a/xbmc/filesystem/SmartPlaylistDirectory.cpp +++ b/xbmc/filesystem/SmartPlaylistDirectory.cpp @@ -27,6 +27,7 @@ #include "Directory.h" #include "File.h" #include "FileItem.h" +#include "utils/URIUtils.h" namespace XFILE { @@ -137,15 +138,25 @@ namespace XFILE CFileItemList list; bool filesExist = false; if (playlistType == "songs" || playlistType == "albums") - filesExist = CDirectory::GetDirectory("special://musicplaylists/", list, "*.xsp"); + filesExist = CDirectory::GetDirectory("special://musicplaylists/", list, ".xsp", false); else // all others are video - filesExist = CDirectory::GetDirectory("special://videoplaylists/", list, "*.xsp"); + filesExist = CDirectory::GetDirectory("special://videoplaylists/", list, ".xsp", false); if (filesExist) { for (int i = 0; i < list.Size(); i++) { CFileItemPtr item = list[i]; - if (item->GetLabel().CompareNoCase(name) == 0) + CSmartPlaylist playlist; + if (playlist.OpenAndReadName(item->GetPath())) + { + if (playlist.GetName().CompareNoCase(name) == 0) + return item->GetPath(); + } + } + for (int i = 0; i < list.Size(); i++) + { // check based on filename + CFileItemPtr item = list[i]; + if (URIUtils::GetFileName(item->GetPath()) == name) { // found :) return item->GetPath(); } diff --git a/xbmc/filesystem/UPnPDirectory.cpp b/xbmc/filesystem/UPnPDirectory.cpp index fa8a3f25f7..98f95ca85d 100644 --- a/xbmc/filesystem/UPnPDirectory.cpp +++ b/xbmc/filesystem/UPnPDirectory.cpp @@ -161,15 +161,21 @@ bool CUPnPDirectory::GetResource(const CURL& path, CFileItem &item) CURL::Decode(object); PLT_DeviceDataReference device; - if(!FindDeviceWait(upnp, uuid.c_str(), device)) + if(!FindDeviceWait(upnp, uuid.c_str(), device)) { + CLog::Log(LOGERROR, "CUPnPDirectory::GetResource - unable to find uuid %s", uuid.c_str()); return false; + } PLT_MediaObjectListReference list; - if (NPT_FAILED(upnp->m_MediaBrowser->BrowseSync(device, object.c_str(), list, true))) + if (NPT_FAILED(upnp->m_MediaBrowser->BrowseSync(device, object.c_str(), list, true))) { + CLog::Log(LOGERROR, "CUPnPDirectory::GetResource - unable to find object %s", object.c_str()); return false; + } - if (list.IsNull() || !list->GetItemCount()) + if (list.IsNull() || !list->GetItemCount()) { + CLog::Log(LOGERROR, "CUPnPDirectory::GetResource - no items returned for object %s", object.c_str()); return false; + } PLT_MediaObjectList::Iterator entry = list->GetFirstItem(); if (entry == 0) @@ -183,8 +189,10 @@ bool CUPnPDirectory::GetResource(const CURL& path, CFileItem &item) CProtocolFinder("xbmc-get"), resource))) { if((*entry)->m_Resources.GetItemCount()) resource = (*entry)->m_Resources[0]; - else + else { + CLog::Log(LOGERROR, "CUPnPDirectory::GetResource - no resources returned for object %s", object.c_str()); return false; + } } // store original path so we remember it diff --git a/xbmc/guilib/GUIAction.cpp b/xbmc/guilib/GUIAction.cpp index da6345f53c..3543f01aef 100644 --- a/xbmc/guilib/GUIAction.cpp +++ b/xbmc/guilib/GUIAction.cpp @@ -105,7 +105,7 @@ bool CGUIAction::HasActionsMeetingCondition() const { for (ciActions it = m_actions.begin() ; it != m_actions.end() ; it++) { - if (it->condition.IsEmpty() || g_infoManager.EvaluateBool(it->action)) + if (it->condition.IsEmpty() || g_infoManager.EvaluateBool(it->condition)) return true; } return false; diff --git a/xbmc/guilib/GUIBaseContainer.cpp b/xbmc/guilib/GUIBaseContainer.cpp index c5b390c157..5a5030c24b 100644 --- a/xbmc/guilib/GUIBaseContainer.cpp +++ b/xbmc/guilib/GUIBaseContainer.cpp @@ -830,6 +830,8 @@ void CGUIBaseContainer::UpdateVisibility(const CGUIListItem *item) { // update our item list with our new content, but only add those items that should // be visible. Save the previous item and keep it if we are adding that one. CGUIListItem *lastItem = m_lastItem; + int selected = GetSelectedItem(); + CGUIListItem* selectedItem = (selected >= 0 && (unsigned int)selected < m_items.size()) ? m_items[selected].get() : NULL; Reset(); bool updateItems = false; if (!m_staticUpdateTime) @@ -849,6 +851,9 @@ void CGUIBaseContainer::UpdateVisibility(const CGUIListItem *item) m_items.push_back(item); if (item.get() == lastItem) m_lastItem = lastItem; + // if item is selected and it changed position, re-select it + if (item.get() == selectedItem && selected != (int)m_items.size() - 1) + SelectItem(m_items.size() - 1); } // update any properties if (updateItems) diff --git a/xbmc/guilib/GUIWindow.cpp b/xbmc/guilib/GUIWindow.cpp index d50147ae0b..c287ba6274 100644 --- a/xbmc/guilib/GUIWindow.cpp +++ b/xbmc/guilib/GUIWindow.cpp @@ -354,9 +354,9 @@ void CGUIWindow::Close_Internal(bool forceClose /*= false*/, int nextWindowID /* return; } + m_closing = false; CGUIMessage msg(GUI_MSG_WINDOW_DEINIT, 0, 0); OnMessage(msg); - m_closing = false; } void CGUIWindow::Close(bool forceClose /*= false*/, int nextWindowID /*= 0*/, bool enableSound /*= true*/) diff --git a/xbmc/guilib/Key.cpp b/xbmc/guilib/Key.cpp index a20eb37c13..53be47f2c0 100644 --- a/xbmc/guilib/Key.cpp +++ b/xbmc/guilib/Key.cpp @@ -79,7 +79,7 @@ void CKey::Reset() m_rightThumbX = 0.0f; m_rightThumbY = 0.0f; m_repeat = 0.0f; - m_fromHttpApi = false; + m_fromService = false; m_buttonCode = KEY_INVALID; m_vkey = 0; m_unicode = 0; @@ -98,7 +98,7 @@ const CKey& CKey::operator=(const CKey& key) m_rightThumbX = key.m_rightThumbX; m_rightThumbY = key.m_rightThumbY; m_repeat = key.m_repeat; - m_fromHttpApi = key.m_fromHttpApi; + m_fromService = key.m_fromService; m_buttonCode = key.m_buttonCode; m_vkey = key.m_vkey; m_unicode = key.m_unicode; @@ -164,19 +164,12 @@ float CKey::GetRepeat() const return m_repeat; } -bool CKey::GetFromHttpApi() const +void CKey::SetFromService(bool fromService) { - return m_fromHttpApi; -} - -void CKey::SetFromHttpApi(bool bFromHttpApi) -{ - if(bFromHttpApi && (m_buttonCode & KEY_ASCII) ) - { - m_unicode = m_buttonCode - KEY_ASCII; - } + if (fromService && (m_buttonCode & KEY_ASCII)) + m_unicode = m_buttonCode - KEY_ASCII; - m_fromHttpApi = bFromHttpApi; + m_fromService = fromService; } CAction::CAction(int actionID, float amount1 /* = 1.0f */, float amount2 /* = 0.0f */, const CStdString &name /* = "" */) diff --git a/xbmc/guilib/Key.h b/xbmc/guilib/Key.h index aa0e7ae51b..31980847e4 100644 --- a/xbmc/guilib/Key.h +++ b/xbmc/guilib/Key.h @@ -543,8 +543,8 @@ public: bool FromKeyboard() const; bool IsAnalogButton() const; bool IsIRRemote() const; - void SetFromHttpApi(bool); - bool GetFromHttpApi() const; + void SetFromService(bool fromService); + bool GetFromService() const { return m_fromService; } inline uint32_t GetButtonCode() const { return m_buttonCode; } inline uint8_t GetVKey() const { return m_vkey; } @@ -578,7 +578,7 @@ private: float m_rightThumbX; float m_rightThumbY; float m_repeat; // time since last keypress - bool m_fromHttpApi; + bool m_fromService; }; #endif diff --git a/xbmc/interfaces/Builtins.cpp b/xbmc/interfaces/Builtins.cpp index 8533669c5c..958692cbdf 100644 --- a/xbmc/interfaces/Builtins.cpp +++ b/xbmc/interfaces/Builtins.cpp @@ -824,7 +824,11 @@ int CBuiltins::Execute(const CStdString& execString) } else if (execute.Equals("setvolume")) { - g_application.SetVolume(atoi(parameter.c_str())); + int oldVolume = g_application.GetVolume(); + int volume = atoi(parameter.c_str()); + + g_application.SetVolume(volume); + g_application.getApplicationMessenger().ShowVolumeBar(oldVolume < volume); } else if (execute.Equals("playlist.playoffset")) { diff --git a/xbmc/interfaces/http-api/XBMChttp.cpp b/xbmc/interfaces/http-api/XBMChttp.cpp index 49b214ae66..6ba71bdd0e 100644 --- a/xbmc/interfaces/http-api/XBMChttp.cpp +++ b/xbmc/interfaces/http-api/XBMChttp.cpp @@ -2085,7 +2085,7 @@ int CXbmcHttp::xbmcSetKey(int numParas, CStdString paras[]) } } CKey tempKey(buttonCode, leftTrigger, rightTrigger, fLeftThumbX, fLeftThumbY, fRightThumbX, fRightThumbY) ; - tempKey.SetFromHttpApi(true); + tempKey.SetFromService(true); key = tempKey; lastKey = key; return SetResponse(openTag+"OK"); diff --git a/xbmc/interfaces/json-rpc/FileItemHandler.cpp b/xbmc/interfaces/json-rpc/FileItemHandler.cpp index 097ea31adb..7cc3e4878c 100644 --- a/xbmc/interfaces/json-rpc/FileItemHandler.cpp +++ b/xbmc/interfaces/json-rpc/FileItemHandler.cpp @@ -260,8 +260,8 @@ bool CFileItemHandler::FillFileItemList(const CVariant ¶meterObject, CFileIt if (item->IsPicture()) { CPictureInfoTag picture; - if (picture.Load(item->GetPath())) - *item->GetPictureInfoTag() = picture; + picture.Load(item->GetPath()); + *item->GetPictureInfoTag() = picture; } if (item->GetLabel().IsEmpty()) item->SetLabel(CUtil::GetTitleFromPath(file, false)); diff --git a/xbmc/interfaces/json-rpc/PlayerOperations.cpp b/xbmc/interfaces/json-rpc/PlayerOperations.cpp index b05bea023e..0b7da61f43 100644 --- a/xbmc/interfaces/json-rpc/PlayerOperations.cpp +++ b/xbmc/interfaces/json-rpc/PlayerOperations.cpp @@ -485,7 +485,7 @@ JSON_STATUS CPlayerOperations::Open(const CStdString &method, ITransportLayer *t bool slideshow = true; for (int index = 0; index < list.Size(); index++) { - if (!list[index]->HasPictureInfoTag()) + if (!list[index]->IsPicture()) { slideshow = false; break; @@ -819,7 +819,7 @@ int CPlayerOperations::GetPlaylist(PlayerType player) JSON_STATUS CPlayerOperations::StartSlideshow() { CGUIWindowSlideShow *slideshow = (CGUIWindowSlideShow*)g_windowManager.GetWindow(WINDOW_SLIDESHOW); - if (!slideshow && slideshow->NumSlides() <= 0) + if (!slideshow || slideshow->NumSlides() <= 0) return FailedToExecute; if (g_application.IsPlayingVideo()) diff --git a/xbmc/interfaces/json-rpc/ServiceDescription.h b/xbmc/interfaces/json-rpc/ServiceDescription.h index facaef1d5a..1d68689d14 100644 --- a/xbmc/interfaces/json-rpc/ServiceDescription.h +++ b/xbmc/interfaces/json-rpc/ServiceDescription.h @@ -23,8 +23,8 @@ namespace JSONRPC { const char* const JSONRPC_SERVICE_ID = "http://www.xbmc.org/jsonrpc/ServiceDescription.json"; - const int JSONRPC_SERVICE_VERSION = 3; - const char* const JSONRPC_SERVICE_DESCRIPTION = "JSON RPC API of XBMC"; + const int JSONRPC_SERVICE_VERSION = 4; + const char* const JSONRPC_SERVICE_DESCRIPTION = "JSON-RPC API of XBMC"; const char* const JSONRPC_SERVICE_TYPES[] = { "\"Optional.Boolean\": {" @@ -645,7 +645,7 @@ namespace JSONRPC "\"type\": \"object\"," "\"properties\": {" "\"start\": { \"type\": \"integer\", \"minimum\": 0, \"default\": 0 }," - "\"end\": { \"type\": \"integer\", \"minimum\": 0, \"default\": -1 }" + "\"end\": { \"type\": \"integer\", \"minimum\": 0, \"default\": -1, \"description\": \"The number of items in the list being returned\" }" "}," "\"additionalProperties\": false" "}", diff --git a/xbmc/interfaces/json-rpc/types.json b/xbmc/interfaces/json-rpc/types.json index 24fd9f836c..976fc17c55 100644 --- a/xbmc/interfaces/json-rpc/types.json +++ b/xbmc/interfaces/json-rpc/types.json @@ -617,7 +617,7 @@ "type": "object", "properties": { "start": { "type": "integer", "minimum": 0, "default": 0 }, - "end": { "type": "integer", "minimum": 0, "default": -1 } + "end": { "type": "integer", "minimum": 0, "default": -1, "description": "The number of items in the list being returned" } }, "additionalProperties": false }, diff --git a/xbmc/interfaces/python/XBPyThread.cpp b/xbmc/interfaces/python/XBPyThread.cpp index c9f0a12e4c..d3c616f9f5 100644 --- a/xbmc/interfaces/python/XBPyThread.cpp +++ b/xbmc/interfaces/python/XBPyThread.cpp @@ -375,6 +375,13 @@ void XBPyThread::Process() PyThreadState_Swap(NULL); PyEval_ReleaseLock(); + //set stopped event - this allows ::stop to run and kill remaining threads + //this event has to be fired without holding m_pExecuter->m_critSection + //before + //Also the GIL (PyEval_AcquireLock) must not be held + //if not obeyed there is still no deadlock because ::stop waits with timeout (smart one!) + stoppedEvent.Set(); + { CSingleLock lock(m_pExecuter->m_critSection); m_threadState = NULL; } @@ -428,6 +435,17 @@ void XBPyThread::stop() if(!m || PyObject_SetAttrString(m, (char*)"abortRequested", PyBool_FromLong(1))) CLog::Log(LOGERROR, "XBPyThread::stop - failed to set abortRequested"); + PyThreadState_Swap(old); + PyEval_ReleaseLock(); + + if(!stoppedEvent.WaitMSec(5000))//let the script 5 secs for shut stuff down + { + CLog::Log(LOGERROR, "XBPyThread::stop - script didn't stop in proper time - lets kill it"); + } + + //everything which didn't exit by now gets killed + PyEval_AcquireLock(); + old = PyThreadState_Swap((PyThreadState*)m_threadState); for(PyThreadState* state = ((PyThreadState*)m_threadState)->interp->tstate_head; state; state = state->next) { Py_XDECREF(state->async_exc); diff --git a/xbmc/interfaces/python/XBPyThread.h b/xbmc/interfaces/python/XBPyThread.h index 2b83b52e46..55a6fbd216 100644 --- a/xbmc/interfaces/python/XBPyThread.h +++ b/xbmc/interfaces/python/XBPyThread.h @@ -23,6 +23,7 @@ #define XBPYTHREAD_H_ #include "threads/Thread.h" +#include "threads/Event.h" #include "addons/IAddon.h" class XBPython; @@ -42,6 +43,7 @@ public: protected: XBPython *m_pExecuter; + CEvent stoppedEvent; void *m_threadState; char m_type; diff --git a/xbmc/music/karaoke/GUIWindowKaraokeLyrics.cpp b/xbmc/music/karaoke/GUIWindowKaraokeLyrics.cpp index 99db6b498d..dbc604d3c9 100644 --- a/xbmc/music/karaoke/GUIWindowKaraokeLyrics.cpp +++ b/xbmc/music/karaoke/GUIWindowKaraokeLyrics.cpp @@ -132,8 +132,7 @@ void CGUIWindowKaraokeLyrics::newSong(CKaraokeLyrics * lyrics) CSingleLock lock (m_CritSection); m_Lyrics = lyrics; - if ( m_Lyrics ) - m_Lyrics->InitGraphics(); + m_Lyrics->InitGraphics(); // Set up current background mode if ( m_Lyrics->HasVideo() ) diff --git a/xbmc/music/karaoke/karaokelyricscdg.cpp b/xbmc/music/karaoke/karaokelyricscdg.cpp index 4b499bc301..0bf10923e0 100644 --- a/xbmc/music/karaoke/karaokelyricscdg.cpp +++ b/xbmc/music/karaoke/karaokelyricscdg.cpp @@ -76,7 +76,7 @@ BYTE CKaraokeLyricsCDG::getPixel( int x, int y ) if ( x >= (int) CDG_FULL_WIDTH || y >= (int) CDG_FULL_HEIGHT ) return m_borderColor; - if ( x < 0 || y < 0 || offset > CDG_FULL_HEIGHT * CDG_FULL_WIDTH ) + if ( x < 0 || y < 0 || offset >= CDG_FULL_HEIGHT * CDG_FULL_WIDTH ) { CLog::Log( LOGERROR, "CDG renderer: requested pixel (%d,%d) is out of boundary", x, y ); return 0; diff --git a/xbmc/music/tags/FlacTag.cpp b/xbmc/music/tags/FlacTag.cpp index dc9bf591cb..51201094d4 100644 --- a/xbmc/music/tags/FlacTag.cpp +++ b/xbmc/music/tags/FlacTag.cpp @@ -182,7 +182,8 @@ int CFlacTag::ReadFlacHeader(void) m_file->Read(buffer, 8); // read 64 bits of data int iFreq = (buffer[0] << 12) | (buffer[1] << 4) | (buffer[2] >> 4); int64_t iNumSamples = ( (int64_t) (buffer[3] & 0x0F) << 32) | ( (int64_t) buffer[4] << 24) | (buffer[5] << 16) | (buffer[6] << 8) | buffer[7]; - m_musicInfoTag.SetDuration((int)((iNumSamples) / iFreq)); + if (iFreq != 0) + m_musicInfoTag.SetDuration((int)((iNumSamples) / iFreq)); return iPos + 38; } diff --git a/xbmc/music/windows/GUIWindowMusicNav.cpp b/xbmc/music/windows/GUIWindowMusicNav.cpp index b8f1a05375..9a8ccef752 100644 --- a/xbmc/music/windows/GUIWindowMusicNav.cpp +++ b/xbmc/music/windows/GUIWindowMusicNav.cpp @@ -559,6 +559,9 @@ bool CGUIWindowMusicNav::OnContextButton(int itemNumber, CONTEXT_BUTTON button) if (idArtist == -1) return false; CStdString path; path.Format("musicdb://2/%ld/", idArtist); + CArtist artist; + m_musicdatabase.GetArtistInfo(idArtist,artist,false); + *item = CFileItem(artist); item->SetPath(path); CGUIWindowMusicBase::OnContextButton(itemNumber,button); Update(m_vecItems->GetPath()); @@ -573,6 +576,9 @@ bool CGUIWindowMusicNav::OnContextButton(int itemNumber, CONTEXT_BUTTON button) if (idAlbum == -1) return false; CStdString path; path.Format("musicdb://3/%ld/", idAlbum); + CAlbum album; + m_musicdatabase.GetAlbumInfo(idAlbum,album,NULL); + *item = CFileItem(path,album); item->SetPath(path); CGUIWindowMusicBase::OnContextButton(itemNumber,button); Update(m_vecItems->GetPath()); diff --git a/xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp b/xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp index 3db7d598ac..71cfbf4efc 100644 --- a/xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp +++ b/xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp @@ -170,6 +170,9 @@ void CGUIWindowMusicPlaylistEditor::OnPrepareFileItems(CFileItemList &items) { RetrieveMusicInfo(); + // set fanart + SetupFanart(items); + items.SetCachedMusicThumbs(); } diff --git a/xbmc/network/AirPlayServer.cpp b/xbmc/network/AirPlayServer.cpp index bfbf1f1041..49f2315459 100644 --- a/xbmc/network/AirPlayServer.cpp +++ b/xbmc/network/AirPlayServer.cpp @@ -679,6 +679,31 @@ int CAirPlayServer::CTCPClient::ProcessRequest( CStdString& responseHeader, } } } + + // The volume command is used to change playback volume. + // A value argument should be supplied which indicates how loud we should get. + // 0.000000 => silent + // 1.000000 => loud + else if (uri == "/volume") + { + const char* found = strstr(queryString.c_str(), "volume="); + double volume = found ? (double)(atof(found + strlen("volume="))) : 0; + + CLog::Log(LOGDEBUG, "AIRPLAY: got request %s with volume %f", uri.c_str(), volume); + + if (needAuth && !checkAuthorization(authorization, method, uri)) + { + status = AIRPLAY_STATUS_NEED_AUTH; + } + else if (volume >= 0 && volume <= 1) + { + int oldVolume = g_application.GetVolume(); + volume *= 100; + g_application.SetVolume(volume); + g_application.getApplicationMessenger().ShowVolumeBar(oldVolume < volume); + } + } + // Contains a header like format in the request body which should contain a // Content-Location and optionally a Start-Position diff --git a/xbmc/network/AirTunesServer.cpp b/xbmc/network/AirTunesServer.cpp index 8779c7c85c..f092bb41f2 100644 --- a/xbmc/network/AirTunesServer.cpp +++ b/xbmc/network/AirTunesServer.cpp @@ -115,9 +115,6 @@ ao_device* CAirTunesServer::AudioOutputFunctions::ao_open_live(int driver_id, ao CFileItem item; item.SetPath(device->pipe->GetName()); item.SetMimeType("audio/x-xbmc-pcm"); - item.SetProperty("isradio", true); - item.SetProperty("no-skip", true); - item.SetProperty("no-pause", true); if (ao_get_option(option, "artist")) item.GetMusicInfoTag()->SetArtist(ao_get_option(option, "artist")); diff --git a/xbmc/network/EventPacket.cpp b/xbmc/network/EventPacket.cpp index 2546b488d8..81ad974c78 100644 --- a/xbmc/network/EventPacket.cpp +++ b/xbmc/network/EventPacket.cpp @@ -98,8 +98,8 @@ bool CEventPacket::Parse(int datasize, const void *data) } memcpy(m_pPayload, buf, (size_t)m_iPayloadSize); } - - return (m_bValid = true); + m_bValid = true; + return true; } #endif // HAS_EVENT_SERVER diff --git a/xbmc/network/UPnP.cpp b/xbmc/network/UPnP.cpp index 8eee7d72d2..7d18ced2bc 100644 --- a/xbmc/network/UPnP.cpp +++ b/xbmc/network/UPnP.cpp @@ -929,14 +929,15 @@ CUPnPServer::Build(CFileItemPtr item, } } - // remap Root virtualpath://upnproot/ to id "0" - if (object->m_ObjectID == "virtualpath://upnproot/") - object->m_ObjectID = "0"; - - // remap Parent Root virtualpath://upnproot/ to id "0" - if (object->m_ParentID == "virtualpath://upnproot/") - object->m_ParentID = "0"; + if (object) { + // remap Root virtualpath://upnproot/ to id "0" + if (object->m_ObjectID == "virtualpath://upnproot/") + object->m_ObjectID = "0"; + // remap Parent Root virtualpath://upnproot/ to id "0" + if (object->m_ParentID == "virtualpath://upnproot/") + object->m_ParentID = "0"; + } return object; failure: diff --git a/xbmc/network/cddb.cpp b/xbmc/network/cddb.cpp index 238111dffd..b517e259a3 100644 --- a/xbmc/network/cddb.cpp +++ b/xbmc/network/cddb.cpp @@ -417,12 +417,14 @@ void Xcddb::addTitle(const char *buffer) { strncpy(artist, value, index); artist[index] = '\0'; - strcpy(title, value + index + 3); + strncpy(title, value + index + 3, sizeof(title)); + title[0] = '\0'; } else { artist[0] = '\0'; - strcpy(title, value); + strncpy(title, value, sizeof(title)); + title[0] = '\0'; } CStdString strArtist=artist; diff --git a/xbmc/osx/CocoaInterface.mm b/xbmc/osx/CocoaInterface.mm index a3ef2d3361..2b29cdf755 100644 --- a/xbmc/osx/CocoaInterface.mm +++ b/xbmc/osx/CocoaInterface.mm @@ -40,6 +40,8 @@ #import "AutoPool.h" +#import "CoreAudio.h" + // hack for Cocoa_GL_ResizeWindow //extern "C" void SDL_SetWidthHeight(int w, int h); @@ -670,170 +672,50 @@ OSStatus SendAppleEventToSystemProcess(AEEventID EventToSend) return(error); } -// All this just to reset all audio devices to default :) -static AudioStreamBasicDescription* FormatsAudioList(AudioStreamID s) -{ - OSStatus ret; - UInt32 listSize; - AudioDevicePropertyID p; - AudioStreamBasicDescription *list; - - // This is deprecated for kAudioStreamPropertyAvailablePhysicalFormats, - // but compiling on 10.3 requires the older constant - p = kAudioStreamPropertyPhysicalFormats; - - // Retrieve all the stream formats supported by this output stream - ret = AudioStreamGetPropertyInfo(s, 0, p, &listSize, NULL); - if (ret != noErr) - { - CLog::Log(LOGERROR, "CCoreAudioHardware::FormatsList: " - "could not get list size: Error = 0x%08x", - (unsigned int)ret); - return NULL; - } - - // Space for a terminating ID: - listSize += sizeof(AudioStreamBasicDescription); - list = (AudioStreamBasicDescription *)malloc(listSize); - - if (list == NULL) - { - CLog::Log(LOGERROR, "CCoreAudioHardware::FormatsList(): out of memory?"); - return NULL; - } - - ret = AudioStreamGetProperty(s, 0, p, &listSize, list); - if (ret != noErr) - { - CLog::Log(LOGERROR, "CCoreAudioHardware::FormatsList: " - "could not get list: Error = 0x%08x", - (unsigned int)ret); - free(list); - return NULL; - } - - // Add a terminating ID: - list[listSize/sizeof(AudioStreamID)].mFormatID = 0; - - return list; -} - -static void ResetAudioStream(AudioStreamID s) +void Cocoa_ResetAudioDevices() { - OSStatus ret; - UInt32 paramSize; - AudioStreamBasicDescription currentFormat; - - // Find the streams current physical format - paramSize = sizeof(currentFormat); - AudioStreamGetProperty(s, 0, - kAudioStreamPropertyPhysicalFormat, ¶mSize, ¤tFormat); - - // If it's currently AC-3/SPDIF then reset it to some mixable format - if (currentFormat.mFormatID == 'IAC3' || - currentFormat.mFormatID == kAudioFormat60958AC3) + // Reset any devices with an AC3/DTS/SPDIF stream back to a Linear PCM + // so that they can become a default output device + CoreAudioDeviceList deviceList; + CCoreAudioHardware::GetOutputDevices(&deviceList); + for (CoreAudioDeviceList::iterator d = deviceList.begin(); d != deviceList.end(); d++) { - bool streamReset = false; - AudioStreamBasicDescription *formats = FormatsAudioList(s); - - if (!formats) - return; - - for (int i = 0; !streamReset && formats[i].mFormatID != 0; i++) + CCoreAudioDevice device(*d); + AudioStreamIdList streamList; + if (device.GetStreams(&streamList)) { - if (formats[i].mFormatID == kAudioFormatLinearPCM) + for (AudioStreamIdList::iterator s = streamList.begin(); s != streamList.end(); s++) { - ret = AudioStreamSetProperty(s, NULL, 0, - kAudioStreamPropertyPhysicalFormat, sizeof(formats[i]), &(formats[i])); - if (ret != noErr) - { - CLog::Log(LOGWARNING, "ResetAudioStream: " - "could not set physical format: Error = 0x%08x", - (unsigned int)ret); - continue; - } - else + CCoreAudioStream stream; + if (stream.Open(*s)) { - streamReset = true; - sleep(1); // For the change to take effect + AudioStreamBasicDescription currentFormat; + if (stream.GetPhysicalFormat(¤tFormat)) + { + if (currentFormat.mFormatID == 'IAC3' || currentFormat.mFormatID == kAudioFormat60958AC3) + { + StreamFormatList formatList; + if (stream.GetAvailablePhysicalFormats(&formatList)) + { + for (StreamFormatList::iterator f = formatList.begin(); f != formatList.end(); f++) + { + if ((*f).mFormat.mFormatID == kAudioFormatLinearPCM) + { + if (stream.SetPhysicalFormat(&(*f).mFormat)) + { + sleep(1); + break; + } + } + } + } + } + } + stream.Close(); } } } - free(formats); - } -} - -static AudioStreamID* AudioStreamsList(AudioDeviceID d) -{ - OSStatus ret; - UInt32 listSize; - AudioStreamID *list; - - ret = AudioDeviceGetPropertyInfo(d, 0, FALSE, - kAudioDevicePropertyStreams, &listSize, NULL); - if (ret != noErr) - { - CLog::Log(LOGERROR, "CCoreAudioHardware::StreamsList: " - "could not get list size: Error = 0x%08x", - (unsigned int)ret); - return NULL; - } - - // Space for a terminating ID: - listSize += sizeof(AudioStreamID); - list = (AudioStreamID *)malloc(listSize); - - if (list == NULL) - { - CLog::Log(LOGERROR, "CCoreAudioHardware::StreamsList(): out of memory?"); - return NULL; - } - - ret = AudioDeviceGetProperty(d, 0, FALSE, - kAudioDevicePropertyStreams, &listSize, list); - if (ret != noErr) - { - CLog::Log(LOGERROR, "CCoreAudioHardware::StreamsList: " - "could not get list: Error = 0x%08x", - (unsigned int)ret); - return NULL; - } - // Add a terminating ID: - list[listSize/sizeof(AudioStreamID)] = kAudioHardwareBadStreamError; - - return list; -} - -void Cocoa_ResetAudioDevices() -{ - // Reset any devices with an AC3/DTS/SPDIF stream back to a Linear PCM - // so that they can become a default output device - UInt32 size; - int numDevices; - AudioDeviceID *devices; - - AudioHardwareGetPropertyInfo(kAudioHardwarePropertyDevices, &size, NULL); - devices = (AudioDeviceID*)malloc(size); - if (!devices) - { - CLog::Log(LOGERROR, "ResetAudioDevices: out of memory?"); - return; - } - numDevices = size / sizeof(AudioDeviceID); - AudioHardwareGetProperty(kAudioHardwarePropertyDevices, &size, devices); - - for (int i = 0; i < numDevices; i++) - { - AudioStreamID *streams; - streams = AudioStreamsList(devices[i]); - if (!streams) - continue; - for (int j = 0; streams[j] != kAudioHardwareBadStreamError; j++) - ResetAudioStream(streams[j]); - - free(streams); - } - free(devices); + } } #endif diff --git a/xbmc/osx/CoreAudio.cpp b/xbmc/osx/CoreAudio.cpp index ca682a0583..81ce999cb8 100644 --- a/xbmc/osx/CoreAudio.cpp +++ b/xbmc/osx/CoreAudio.cpp @@ -149,7 +149,25 @@ bool CCoreAudioChannelLayout::CopyLayout(AudioChannelLayout& layout) return (ret == noErr); } - + +bool CCoreAudioChannelLayout::SetLayout(AudioChannelLayoutTag layoutTag) +{ + UInt32 propSize = 0; + AudioFormatGetPropertyInfo(kAudioFormatProperty_ChannelLayoutForTag, sizeof(layoutTag), &layoutTag, &propSize); + m_pLayout = (AudioChannelLayout*)malloc(propSize); + OSStatus ret = AudioFormatGetProperty(kAudioFormatProperty_ChannelLayoutForTag, sizeof(layoutTag), &layoutTag, &propSize, m_pLayout); + m_pLayout->mChannelLayoutTag = kAudioChannelLayoutTag_UseChannelDescriptions; + return (ret == noErr); +} + +AudioChannelLabel CCoreAudioChannelLayout::GetChannelLabel(UInt32 index) +{ + if (!m_pLayout || (index >= m_pLayout->mNumberChannelDescriptions)) + return kAudioChannelLabel_Unknown; + + return m_pLayout->mChannelDescriptions[index].mChannelLabel; +} + UInt32 CCoreAudioChannelLayout::GetChannelCountForLayout(AudioChannelLayout& layout) { UInt32 channels = 0; @@ -171,6 +189,13 @@ UInt32 CCoreAudioChannelLayout::GetChannelCountForLayout(AudioChannelLayout& lay return channels; } +UInt32 CCoreAudioChannelLayout::GetChannelCount() +{ + if (m_pLayout) + return GetChannelCountForLayout(*m_pLayout); + return 0; +} + const char* CCoreAudioChannelLayout::ChannelLabelToString(UInt32 label) { if (label > MAX_CHANNEL_LABEL) @@ -501,6 +526,13 @@ const char* CCoreAudioDevice::GetName(CStdString& name) return name.c_str(); } +const char* CCoreAudioDevice::GetName() +{ + // Use internal storage + return GetName(m_Name); +} + + UInt32 CCoreAudioDevice::GetTotalOutputChannels() { if (!m_DeviceId) diff --git a/xbmc/osx/CoreAudio.h b/xbmc/osx/CoreAudio.h index d8ff928957..73764a06d9 100644 --- a/xbmc/osx/CoreAudio.h +++ b/xbmc/osx/CoreAudio.h @@ -76,6 +76,9 @@ public: virtual ~CCoreAudioChannelLayout(); operator AudioChannelLayout*() {return m_pLayout;} bool CopyLayout(AudioChannelLayout& layout); + bool SetLayout(AudioChannelLayoutTag layoutTag); + UInt32 GetChannelCount(); + AudioChannelLabel GetChannelLabel(UInt32 index); static UInt32 GetChannelCountForLayout(AudioChannelLayout& layout); static const char* ChannelLabelToString(UInt32 label); static const char* ChannelLayoutToString(AudioChannelLayout& layout, CStdString& str); @@ -100,6 +103,7 @@ public: AudioDeviceID GetId() {return m_DeviceId;} const char* GetName(CStdString& name); + const char* GetName(); UInt32 GetTotalOutputChannels(); bool GetStreams(AudioStreamIdList* pList); bool IsRunning(); @@ -122,6 +126,7 @@ protected: AudioDeviceIOProc m_IoProc; Float64 m_SampleRateRestore; UInt32 m_BufferSizeRestore; + CStdString m_Name; }; typedef std::list<AudioStreamRangedDescription> StreamFormatList; diff --git a/xbmc/peripherals/devices/Peripheral.cpp b/xbmc/peripherals/devices/Peripheral.cpp index cc046dc606..d07acaf13e 100644 --- a/xbmc/peripherals/devices/Peripheral.cpp +++ b/xbmc/peripherals/devices/Peripheral.cpp @@ -64,7 +64,7 @@ CPeripheral::CPeripheral(void) : CPeripheral::~CPeripheral(void) { - PersistSettings(); + PersistSettings(true); for (unsigned int iSubdevicePtr = 0; iSubdevicePtr < m_subDevices.size(); iSubdevicePtr++) delete m_subDevices.at(iSubdevicePtr); @@ -323,7 +323,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, bool bValue) bool bChanged(boolSetting->GetData() != bValue); boolSetting->SetData(bValue); if (bChanged && m_bInitialised) - OnSettingChanged(strKey); + m_changedSettings.push_back(strKey); } } } @@ -339,7 +339,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, int iValue) bool bChanged(intSetting->GetData() != iValue); intSetting->SetData(iValue); if (bChanged && m_bInitialised) - OnSettingChanged(strKey); + m_changedSettings.push_back(strKey); } } } @@ -355,7 +355,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, float fValue) bool bChanged(floatSetting->GetData() != fValue); floatSetting->SetData(fValue); if (bChanged && m_bInitialised) - OnSettingChanged(strKey); + m_changedSettings.push_back(strKey); } } } @@ -373,7 +373,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, const CStdString &strValu bool bChanged(!stringSetting->GetData().Equals(strValue)); stringSetting->SetData(strValue); if (bChanged && m_bInitialised) - OnSettingChanged(strKey); + m_changedSettings.push_back(strKey); } } else if ((*it).second->GetType() == SETTINGS_TYPE_INT) @@ -385,7 +385,7 @@ void CPeripheral::SetSetting(const CStdString &strKey, const CStdString &strValu } } -void CPeripheral::PersistSettings(void) const +void CPeripheral::PersistSettings(bool bExiting /* = false */) { TiXmlDocument doc; TiXmlElement node("settings"); @@ -433,6 +433,13 @@ void CPeripheral::PersistSettings(void) const } doc.SaveFile(m_strSettingsFile); + + if (!bExiting) + { + for (vector<CStdString>::iterator it = m_changedSettings.begin(); it != m_changedSettings.end(); it++) + OnSettingChanged(*it); + } + m_changedSettings.clear(); } void CPeripheral::LoadPersistedSettings(void) @@ -456,26 +463,24 @@ void CPeripheral::ResetDefaultSettings(void) { ClearSettings(); g_peripherals.GetSettingsFromMapping(*this); - OnSettingsChanged(); -} -void CPeripheral::ClearSettings(void) -{ map<CStdString, CSetting *>::iterator it = m_settings.begin(); while (it != m_settings.end()) { - delete (*it).second; + m_changedSettings.push_back((*it).first); ++it; } - m_settings.clear(); + + PersistSettings(); } -void CPeripheral::OnSettingsChanged(void) +void CPeripheral::ClearSettings(void) { map<CStdString, CSetting *>::iterator it = m_settings.begin(); while (it != m_settings.end()) { - OnSettingChanged((*it).first); + delete (*it).second; ++it; } + m_settings.clear(); } diff --git a/xbmc/peripherals/devices/Peripheral.h b/xbmc/peripherals/devices/Peripheral.h index e7860e47af..7851554049 100644 --- a/xbmc/peripherals/devices/Peripheral.h +++ b/xbmc/peripherals/devices/Peripheral.h @@ -87,11 +87,6 @@ namespace PERIPHERALS virtual void OnSettingChanged(const CStdString &strChangedSetting) {}; /*! - * @brief Called when one or more settings changed. Calls OnSettingChanged for every setting. - */ - virtual void OnSettingsChanged(void); - - /*! * @brief Get all subdevices if this device is multifunctional. * @param subDevices The subdevices. */ @@ -143,7 +138,7 @@ namespace PERIPHERALS virtual float GetSettingFloat(const CStdString &strKey) const; virtual void SetSetting(const CStdString &strKey, float fValue); - virtual void PersistSettings(void) const; + virtual void PersistSettings(bool bExiting = false); virtual void LoadPersistedSettings(void); virtual void ResetDefaultSettings(void); @@ -168,5 +163,6 @@ namespace PERIPHERALS std::vector<PeripheralFeature> m_features; std::vector<CPeripheral *> m_subDevices; std::map<CStdString, CSetting *> m_settings; + std::vector<CStdString> m_changedSettings; }; } diff --git a/xbmc/peripherals/dialogs/GUIDialogPeripheralSettings.cpp b/xbmc/peripherals/dialogs/GUIDialogPeripheralSettings.cpp index f272d00081..c79f9617cb 100644 --- a/xbmc/peripherals/dialogs/GUIDialogPeripheralSettings.cpp +++ b/xbmc/peripherals/dialogs/GUIDialogPeripheralSettings.cpp @@ -176,6 +176,8 @@ void CGUIDialogPeripheralSettings::UpdatePeripheralSettings(void) peripheral->SetSetting((*stringItr).first, (*stringItr).second); ++stringItr; } + + peripheral->PersistSettings(); } bool CGUIDialogPeripheralSettings::OnMessage(CGUIMessage &message) diff --git a/xbmc/playlists/PlayListM3U.cpp b/xbmc/playlists/PlayListM3U.cpp index fdf6dae9b4..4aba8d9a5c 100644 --- a/xbmc/playlists/PlayListM3U.cpp +++ b/xbmc/playlists/PlayListM3U.cpp @@ -83,7 +83,8 @@ bool CPlayListM3U::Load(const CStdString& strFileName) while (file.ReadString(szLine, 1024)) { strLine = szLine; - StringUtils::RemoveCRLF(strLine); + strLine.TrimRight(" \t\r\n"); + strLine.TrimLeft(" \t"); if (strLine.Left( (int)strlen(M3U_INFO_MARKER) ) == M3U_INFO_MARKER) { @@ -105,6 +106,9 @@ bool CPlayListM3U::Load(const CStdString& strFileName) { CStdString strFileName = strLine; + if (strFileName.size() > 0 && strFileName[0] == '#') + continue; // assume a comment or something else we don't support + // Skip self - do not load playlist recursively if (URIUtils::GetFileName(strFileName).Equals(m_strPlayListName)) continue; diff --git a/xbmc/playlists/SmartPlayList.cpp b/xbmc/playlists/SmartPlayList.cpp index 37a6755112..f5d1ffa3a2 100644 --- a/xbmc/playlists/SmartPlayList.cpp +++ b/xbmc/playlists/SmartPlayList.cpp @@ -663,7 +663,7 @@ CStdString CSmartPlaylistRule::GetDatabaseField(DATABASE_FIELD field, const CStd else if (field == FIELD_PLOTOUTLINE) result.Format("c%02d", VIDEODB_ID_PLOTOUTLINE); else if (field == FIELD_TAGLINE) result.Format("c%02d", VIDEODB_ID_TAGLINE); else if (field == FIELD_VOTES) result.Format("c%02d", VIDEODB_ID_VOTES); - else if (field == FIELD_RATING) result.Format("c%02d", VIDEODB_ID_RATING); + else if (field == FIELD_RATING) result.Format("CAST(c%02d as DECIMAL(5,3))", VIDEODB_ID_RATING); else if (field == FIELD_TIME) result.Format("c%02d", VIDEODB_ID_RUNTIME); else if (field == FIELD_WRITER) result.Format("c%02d", VIDEODB_ID_CREDITS); // join required else if (field == FIELD_PLAYCOUNT) result = "playCount"; diff --git a/xbmc/rendering/gl/RenderSystemGL.cpp b/xbmc/rendering/gl/RenderSystemGL.cpp index 177bd606d3..be7dfea347 100644 --- a/xbmc/rendering/gl/RenderSystemGL.cpp +++ b/xbmc/rendering/gl/RenderSystemGL.cpp @@ -385,6 +385,8 @@ void CRenderSystemGL::CaptureStateBlock() { if (!m_bRenderCreated) return; + + glGetIntegerv(GL_VIEWPORT, m_viewPort); glMatrixMode(GL_PROJECTION); glPushMatrix(); @@ -405,6 +407,7 @@ void CRenderSystemGL::ApplyStateBlock() if (!m_bRenderCreated) return; + glViewport(m_viewPort[0], m_viewPort[1], m_viewPort[2], m_viewPort[3]); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_TEXTURE); diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp index 63b6a34eef..d14b1396e9 100644 --- a/xbmc/settings/AdvancedSettings.cpp +++ b/xbmc/settings/AdvancedSettings.cpp @@ -99,6 +99,7 @@ void CAdvancedSettings::Initialize() m_DXVACheckCompatibility = false; m_DXVACheckCompatibilityPresent = false; m_DXVAForceProcessorRenderer = true; + m_videoFpsDetect = 1; m_musicUseTimeSeeking = true; m_musicTimeSeekForward = 10; @@ -537,6 +538,46 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file) m_DXVACheckCompatibilityPresent = XMLUtils::GetBoolean(pElement,"checkdxvacompatibility", m_DXVACheckCompatibility); XMLUtils::GetBoolean(pElement,"forcedxvarenderer", m_DXVAForceProcessorRenderer); + //0 = disable fps detect, 1 = only detect on timestamps with uniform spacing, 2 detect on all timestamps + XMLUtils::GetInt(pElement, "fpsdetect", m_videoFpsDetect, 0, 2); + + // Store global display latency settings + m_videoDefaultLatency = 0; + TiXmlElement* pVideoLatency = pElement->FirstChildElement("latency"); + if (pVideoLatency) + { + float refresh, refreshmin, refreshmax, delay; + TiXmlElement* pRefreshVideoLatency = pVideoLatency->FirstChildElement("refresh"); + + while (pRefreshVideoLatency) + { + RefreshVideoLatency videolatency = {0}; + + if (XMLUtils::GetFloat(pRefreshVideoLatency, "rate", refresh)) + { + videolatency.refreshmin = refresh - 0.01f; + videolatency.refreshmax = refresh + 0.01f; + } + else if (XMLUtils::GetFloat(pRefreshVideoLatency, "min", refreshmin) && + XMLUtils::GetFloat(pRefreshVideoLatency, "max", refreshmax)) + { + videolatency.refreshmin = refreshmin; + videolatency.refreshmax = refreshmax; + } + if (XMLUtils::GetFloat(pRefreshVideoLatency, "delay", delay, -600.0f, 600.0f)) + videolatency.delay = delay; + + if (videolatency.refreshmin > 0.0f && videolatency.refreshmax >= videolatency.refreshmin) + m_videoRefreshLatency.push_back(videolatency); + else + CLog::Log(LOGWARNING, "Ignoring malformed display latency <refresh> entry, min:%f max:%f", videolatency.refreshmin, videolatency.refreshmax); + + pRefreshVideoLatency = pRefreshVideoLatency->NextSiblingElement("refresh"); + } + + // Get default global display latency + XMLUtils::GetFloat(pVideoLatency, "delay", m_videoDefaultLatency, -600.0f, 600.0f); + } } pElement = pRootElement->FirstChildElement("musiclibrary"); @@ -1046,3 +1087,16 @@ void CAdvancedSettings::AddSettingsFile(const CStdString &filename) { m_settingsFiles.push_back(filename); } + +float CAdvancedSettings::GetDisplayLatency(float refreshrate) +{ + float delay = m_videoDefaultLatency / 1000.0f; + for (int i = 0; i < (int) m_videoRefreshLatency.size(); i++) + { + RefreshVideoLatency& videolatency = m_videoRefreshLatency[i]; + if (refreshrate >= videolatency.refreshmin && refreshrate <= videolatency.refreshmax) + delay = videolatency.delay / 1000.0f; + } + + return delay; // in seconds +} diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h index a232185409..0a8ad03054 100644 --- a/xbmc/settings/AdvancedSettings.h +++ b/xbmc/settings/AdvancedSettings.h @@ -59,6 +59,15 @@ struct RefreshOverride bool fallback; }; + +struct RefreshVideoLatency +{ + float refreshmin; + float refreshmax; + + float delay; +}; + typedef std::vector<TVShowRegexp> SETTINGS_TVSHOWLIST; class CAdvancedSettings @@ -125,11 +134,14 @@ class CAdvancedSettings bool m_videoAllowMpeg4VDPAU; bool m_videoAllowMpeg4VAAPI; std::vector<RefreshOverride> m_videoAdjustRefreshOverrides; + std::vector<RefreshVideoLatency> m_videoRefreshLatency; + float m_videoDefaultLatency; bool m_videoDisableBackgroundDeinterlace; int m_videoCaptureUseOcclusionQuery; bool m_DXVACheckCompatibility; bool m_DXVACheckCompatibilityPresent; bool m_DXVAForceProcessorRenderer; + int m_videoFpsDetect; CStdString m_videoDefaultPlayer; CStdString m_videoDefaultDVDPlayer; @@ -302,6 +314,8 @@ class CAdvancedSettings bool m_enableMultimediaKeys; std::vector<CStdString> m_settingsFiles; void ParseSettingsFile(const CStdString &file); + + float GetDisplayLatency(float refreshrate); }; XBMC_GLOBAL(CAdvancedSettings,g_advancedSettings); diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp index eda98f45c9..599b61bf6c 100644 --- a/xbmc/settings/Settings.cpp +++ b/xbmc/settings/Settings.cpp @@ -57,6 +57,7 @@ #include "utils/URIUtils.h" #include "input/MouseStat.h" #include "filesystem/File.h" +#include "filesystem/DirectoryCache.h" using namespace std; using namespace XFILE; @@ -979,8 +980,8 @@ bool CSettings::LoadProfile(unsigned int index) CGUIMessage msg(GUI_MSG_NOTIFY_ALL,0,0,GUI_MSG_WINDOW_RESET); g_windowManager.SendMessage(msg); - CUtil::DeleteMusicDatabaseDirectoryCache(); - CUtil::DeleteVideoDatabaseDirectoryCache(); + CUtil::DeleteDirectoryCache(); + g_directoryCache.Clear(); return true; } diff --git a/xbmc/storage/DetectDVDType.cpp b/xbmc/storage/DetectDVDType.cpp index 64ba1c54af..f74303795d 100644 --- a/xbmc/storage/DetectDVDType.cpp +++ b/xbmc/storage/DetectDVDType.cpp @@ -51,7 +51,6 @@ #include "Application.h" #include "IoSupport.h" #include "cdioSupport.h" -#include "storage/MediaManager.h" using namespace XFILE; @@ -529,27 +528,4 @@ const CStdString &CDetectDVDMedia::GetDVDPath() { return m_diskPath; } - -CDetectDisc::CDetectDisc(const CStdString &strPath, const bool bautorun) - : m_strPath(strPath), m_bautorun(bautorun) -{ -} - -bool CDetectDisc::DoWork() -{ - CMediaSource share; - share.strPath = m_strPath; - share.strStatus = g_mediaManager.GetDiskLabel(share.strPath); - share.strDiskUniqueId = g_mediaManager.GetDiskUniqueId(share.strPath); - if(g_mediaManager.IsAudio(share.strPath)) - share.strStatus = "Audio-CD"; - else if(share.strStatus == "") - share.strStatus = g_localizeStrings.Get(446); - share.strName = share.strPath; - share.m_ignore = true; - share.m_iDriveType = CMediaSource::SOURCE_TYPE_DVD; - g_mediaManager.AddAutoSource(share, m_bautorun); - return true; -} - #endif diff --git a/xbmc/storage/DetectDVDType.h b/xbmc/storage/DetectDVDType.h index c3b444b2d1..250991da4e 100644 --- a/xbmc/storage/DetectDVDType.h +++ b/xbmc/storage/DetectDVDType.h @@ -37,7 +37,6 @@ #include "threads/Thread.h" #include "utils/StdString.h" -#include "utils/Job.h" namespace MEDIA_DETECT { @@ -93,16 +92,4 @@ private: CLibcdio* m_cdio; }; } - -class CDetectDisc : public CJob -{ -public: - CDetectDisc(const CStdString &strPath, const bool bautorun); - bool DoWork(); - -private: - CStdString m_strPath; - bool m_bautorun; -}; - #endif diff --git a/xbmc/storage/IoSupport.cpp b/xbmc/storage/IoSupport.cpp index a1eeaceca5..809273d776 100644 --- a/xbmc/storage/IoSupport.cpp +++ b/xbmc/storage/IoSupport.cpp @@ -494,7 +494,7 @@ VOID CIoSupport::GetXbePath(char* szDest) #if WIN32 wchar_t szAppPathW[MAX_PATH] = L""; - ::GetModuleFileNameW(0, szAppPathW, sizeof(szAppPathW) - 1); + ::GetModuleFileNameW(0, szAppPathW, sizeof(szAppPathW)/sizeof(szAppPathW[0]) - 1); CStdStringW strPathW = szAppPathW; CStdString strPath; g_charsetConverter.wToUTF8(strPathW,strPath); diff --git a/xbmc/storage/MediaManager.cpp b/xbmc/storage/MediaManager.cpp index fe918849ca..ced4ad0e7d 100644 --- a/xbmc/storage/MediaManager.cpp +++ b/xbmc/storage/MediaManager.cpp @@ -170,7 +170,7 @@ void CMediaManager::GetRemovableDrives(VECSOURCES &removableDrives) m_platformStorage->GetRemovableDrives(removableDrives); } -void CMediaManager::GetNetworkLocations(VECSOURCES &locations) +void CMediaManager::GetNetworkLocations(VECSOURCES &locations, bool autolocations) { // Load our xml file LoadSources(); @@ -182,6 +182,30 @@ void CMediaManager::GetNetworkLocations(VECSOURCES &locations) share.strName = url.GetWithoutUserDetails(); locations.push_back(share); } + if (autolocations) + { + CMediaSource share; + share.m_ignore = true; +#ifdef HAS_FILESYSTEM_SMB + share.strPath = "smb://"; + share.strName = g_localizeStrings.Get(20171); + locations.push_back(share); +#endif + +#ifdef HAS_FILESYSTEM_NFS + share.strPath = "nfs://"; + share.strName = g_localizeStrings.Get(20259); + locations.push_back(share); +#endif// HAS_FILESYSTEM_NFS + + share.strPath = "upnp://"; + share.strName = "UPnP Devices"; + locations.push_back(share); + + share.strPath = "zeroconf://"; + share.strName = "Zeroconf Browser"; + locations.push_back(share); + } } bool CMediaManager::AddNetworkLocation(const CStdString &path) diff --git a/xbmc/storage/MediaManager.h b/xbmc/storage/MediaManager.h index 7b204bdfcb..a5d13456e9 100644 --- a/xbmc/storage/MediaManager.h +++ b/xbmc/storage/MediaManager.h @@ -55,7 +55,7 @@ public: void GetLocalDrives(VECSOURCES &localDrives, bool includeQ = true); void GetRemovableDrives(VECSOURCES &removableDrives); - void GetNetworkLocations(VECSOURCES &locations); + void GetNetworkLocations(VECSOURCES &locations, bool autolocations = true); bool AddNetworkLocation(const CStdString &path); bool HasLocation(const CStdString& path) const; diff --git a/xbmc/storage/windows/Win32StorageProvider.cpp b/xbmc/storage/windows/Win32StorageProvider.cpp index 2e5a2bc9fd..c57837d8c8 100644 --- a/xbmc/storage/windows/Win32StorageProvider.cpp +++ b/xbmc/storage/windows/Win32StorageProvider.cpp @@ -22,9 +22,27 @@ #include "WIN32Util.h" #include "guilib/LocalizeStrings.h" #include "filesystem/SpecialProtocol.h" +#include "storage/MediaManager.h" +#include "utils/JobManager.h" bool CWin32StorageProvider::event = false; +void CWin32StorageProvider::Initialize() +{ + // check for a DVD drive + VECSOURCES vShare; + CWIN32Util::GetDrivesByType(vShare, DVD_DRIVES); + if(!vShare.empty()) + g_mediaManager.SetHasOpticalDrive(true); + + // Can be removed once the StorageHandler supports optical media + VECSOURCES::const_iterator it; + for(it=vShare.begin();it!=vShare.end();++it) + if(g_mediaManager.GetDriveStatus(it->strPath) == DRIVE_CLOSED_MEDIA_PRESENT) + CJobManager::GetInstance().AddJob(new CDetectDisc(it->strPath, false), NULL); + // remove end +} + void CWin32StorageProvider::GetLocalDrives(VECSOURCES &localDrives) { CMediaSource share; @@ -62,3 +80,25 @@ bool CWin32StorageProvider::PumpDriveChangeEvents(IStorageEventsCallback *callba event = false; return b; } + +CDetectDisc::CDetectDisc(const CStdString &strPath, const bool bautorun) + : m_strPath(strPath), m_bautorun(bautorun) +{ +} + +bool CDetectDisc::DoWork() +{ + CMediaSource share; + share.strPath = m_strPath; + share.strStatus = g_mediaManager.GetDiskLabel(share.strPath); + share.strDiskUniqueId = g_mediaManager.GetDiskUniqueId(share.strPath); + if(g_mediaManager.IsAudio(share.strPath)) + share.strStatus = "Audio-CD"; + else if(share.strStatus == "") + share.strStatus = g_localizeStrings.Get(446); + share.strName = share.strPath; + share.m_ignore = true; + share.m_iDriveType = CMediaSource::SOURCE_TYPE_DVD; + g_mediaManager.AddAutoSource(share, m_bautorun); + return true; +} diff --git a/xbmc/storage/windows/Win32StorageProvider.h b/xbmc/storage/windows/Win32StorageProvider.h index be4f2f2670..088a060d99 100644 --- a/xbmc/storage/windows/Win32StorageProvider.h +++ b/xbmc/storage/windows/Win32StorageProvider.h @@ -20,13 +20,14 @@ * */ #include "storage/IStorageProvider.h" +#include "utils/Job.h" class CWin32StorageProvider : public IStorageProvider { public: virtual ~CWin32StorageProvider() { } - virtual void Initialize() { } + virtual void Initialize(); virtual void Stop() { } virtual void GetLocalDrives(VECSOURCES &localDrives); @@ -41,3 +42,15 @@ public: static void SetEvent() { event = true; } static bool event; }; + +class CDetectDisc : public CJob +{ +public: + CDetectDisc(const CStdString &strPath, const bool bautorun); + bool DoWork(); + +private: + CStdString m_strPath; + bool m_bautorun; +}; + diff --git a/xbmc/system.h b/xbmc/system.h index c838dc8950..b10ebae4bf 100644 --- a/xbmc/system.h +++ b/xbmc/system.h @@ -222,8 +222,6 @@ // ARM does not support certain features... disable them here! #ifdef _ARMEL -#undef HAS_AVAHI -#undef HAS_ZEROCONF #undef HAS_VISUALISATION #undef HAS_FILESYSTEM_HTSP #endif diff --git a/xbmc/utils/LCDFactory.cpp b/xbmc/utils/LCDFactory.cpp index dd0e7dd956..232e75cb56 100644 --- a/xbmc/utils/LCDFactory.cpp +++ b/xbmc/utils/LCDFactory.cpp @@ -31,23 +31,6 @@ CLCDFactory::~CLCDFactory(void) ILCD* CLCDFactory::Create() { -#ifdef _XBOX - switch (g_guiSettings.GetInt("lcd.modchip")) - { - case MODCHIP_XENIUM: - return new CXeniumLCD(); - break; - - case MODCHIP_SMARTXX: - return new CSmartXXLCD(); - break; - - case MODCHIP_XECUTER3: - return new CX3LCD(); - break; - } - return new CSmartXXLCD(); -#endif #ifdef _LINUX return new XLCDproc(); #endif diff --git a/xbmc/utils/URIUtils.cpp b/xbmc/utils/URIUtils.cpp index b32ab10346..1f2f180460 100644 --- a/xbmc/utils/URIUtils.cpp +++ b/xbmc/utils/URIUtils.cpp @@ -361,7 +361,12 @@ CStdString URIUtils::SubstitutePath(const CStdString& strPath) i != g_advancedSettings.m_pathSubstitutions.end(); i++) { if (strncmp(strPath.c_str(), i->first.c_str(), i->first.size()) == 0) - return URIUtils::AddFileToFolder(i->second, strPath.Mid(i->first.size())); + { + if (strPath.size() > i->first.size()) + return URIUtils::AddFileToFolder(i->second, strPath.Mid(i->first.size())); + else + return i->second; + } } return strPath; } diff --git a/xbmc/utils/log.cpp b/xbmc/utils/log.cpp index bdfa6be8e6..6f660dbaaf 100644 --- a/xbmc/utils/log.cpp +++ b/xbmc/utils/log.cpp @@ -170,7 +170,7 @@ void CLog::MemDump(char *pData, int length) for (int j=0; j < 4 && i + 4*k + j < length; j++) { CStdString strFormat; - strFormat.Format(" %02x", *pData++); + strFormat.Format(" %02x", (unsigned char)*pData++); strLine += strFormat; } strLine += " "; diff --git a/xbmc/video/GUIViewStateVideo.cpp b/xbmc/video/GUIViewStateVideo.cpp index 0a0ca9be62..63a94b548f 100644 --- a/xbmc/video/GUIViewStateVideo.cpp +++ b/xbmc/video/GUIViewStateVideo.cpp @@ -268,17 +268,20 @@ CGUIViewStateWindowVideoNav::CGUIViewStateWindowVideoNav(const CFileItemList& it else AddSortMethod(SORT_METHOD_VIDEO_SORT_TITLE, 551, LABEL_MASKS("%T", "%R")); - AddSortMethod(SORT_METHOD_VIDEO_RATING, 563, LABEL_MASKS("%T", "%R")); // Filename, Duration | Foldername, empty - AddSortMethod(SORT_METHOD_MPAA_RATING, 20074, LABEL_MASKS("%T", "%O")); AddSortMethod(SORT_METHOD_YEAR,562, LABEL_MASKS("%T", "%Y")); } + AddSortMethod(SORT_METHOD_VIDEO_RATING, 563, LABEL_MASKS("%T", "%R")); // Filename, Duration | Foldername, empty + AddSortMethod(SORT_METHOD_MPAA_RATING, 20074, LABEL_MASKS("%T", "%O")); AddSortMethod(SORT_METHOD_VIDEO_RUNTIME,2050, LABEL_MASKS("%T", "%D")); AddSortMethod(SORT_METHOD_DATEADDED, 570, LABEL_MASKS("%T", "%R")); if (g_settings.GetWatchMode(items.GetContent()) == VIDEO_SHOW_ALL) AddSortMethod(SORT_METHOD_PLAYCOUNT, 576, LABEL_MASKS("%T", "%V")); - SetSortMethod(g_settings.m_viewStateVideoNavTitles.m_sortMethod); + if (params.GetSetId() > -1) + SetSortMethod(SORT_METHOD_YEAR); + else + SetSortMethod(g_settings.m_viewStateVideoNavTitles.m_sortMethod); SetViewAsControl(g_settings.m_viewStateVideoNavTitles.m_viewMode); @@ -364,6 +367,8 @@ void CGUIViewStateWindowVideoNav::SaveViewState() if (m_items.IsVideoDb()) { NODE_TYPE NodeType = CVideoDatabaseDirectory::GetDirectoryChildType(m_items.GetPath()); + CQueryParams params; + CVideoDatabaseDirectory::GetQueryParams(m_items.GetPath(),params); switch (NodeType) { case NODE_TYPE_ACTOR: @@ -376,7 +381,7 @@ void CGUIViewStateWindowVideoNav::SaveViewState() SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavGenres); break; case NODE_TYPE_TITLE_MOVIES: - SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavTitles); + SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, params.GetSetId() > -1 ? NULL : &g_settings.m_viewStateVideoNavTitles); break; case NODE_TYPE_EPISODES: SaveViewToDb(m_items.GetPath(), WINDOW_VIDEO_NAV, &g_settings.m_viewStateVideoNavEpisodes); diff --git a/xbmc/video/VideoDatabase.cpp b/xbmc/video/VideoDatabase.cpp index 06d6812c59..451ad917f0 100644 --- a/xbmc/video/VideoDatabase.cpp +++ b/xbmc/video/VideoDatabase.cpp @@ -468,7 +468,7 @@ bool CVideoDatabase::GetPaths(set<CStdString> &paths) return false; } -bool CVideoDatabase::GetPathsForTvShow(int idShow, vector<int>& paths) +bool CVideoDatabase::GetPathsForTvShow(int idShow, set<int>& paths) { CStdString strSQL; try @@ -479,7 +479,7 @@ bool CVideoDatabase::GetPathsForTvShow(int idShow, vector<int>& paths) m_pDS->query(strSQL.c_str()); while (!m_pDS->eof()) { - paths.push_back(m_pDS->fv(0).get_asInt()); + paths.insert(m_pDS->fv(0).get_asInt()); m_pDS->next(); } m_pDS->close(); @@ -6421,7 +6421,7 @@ void CVideoDatabase::GetMusicVideoDirectorsByName(const CStdString& strSearch, C } } -void CVideoDatabase::CleanDatabase(IVideoInfoScannerObserver* pObserver, const vector<int>* paths) +void CVideoDatabase::CleanDatabase(IVideoInfoScannerObserver* pObserver, const set<int>* paths) { CGUIDialogProgress *progress=NULL; try @@ -6445,8 +6445,8 @@ void CVideoDatabase::CleanDatabase(IVideoInfoScannerObserver* pObserver, const v } CStdString strPaths; - for (unsigned int i=0;i<paths->size();++i ) - strPaths.Format("%s,%i",strPaths.Mid(0).c_str(),paths->at(i)); + for (std::set<int>::const_iterator i = paths->begin(); i != paths->end(); ++i) + strPaths.AppendFormat(",%i",*i); sql = PrepareSQL("select * from files,path where files.idPath=path.idPath and path.idPath in (%s)",strPaths.Mid(1).c_str()); } else @@ -6684,13 +6684,12 @@ void CVideoDatabase::CleanDatabase(IVideoInfoScannerObserver* pObserver, const v while (!m_pDS->eof()) { if (!CDirectory::Exists(m_pDS->fv("path.strPath").get_asString())) - strIds.Format("%s %i,",strIds.Mid(0),m_pDS->fv("path.idPath").get_asInt()); // mid since we cannot format the same string + strIds.AppendFormat("%i,", m_pDS->fv("path.idPath").get_asInt()); m_pDS->next(); } m_pDS->close(); if (!strIds.IsEmpty()) { - strIds.TrimLeft(" "); strIds.TrimRight(","); sql = PrepareSQL("delete from path where idPath in (%s)",strIds.c_str()); m_pDS->exec(sql.c_str()); diff --git a/xbmc/video/VideoDatabase.h b/xbmc/video/VideoDatabase.h index 5b1ec90176..367d882738 100644 --- a/xbmc/video/VideoDatabase.h +++ b/xbmc/video/VideoDatabase.h @@ -471,7 +471,7 @@ public: bool SetPathHash(const CStdString &path, const CStdString &hash); bool GetPathHash(const CStdString &path, CStdString &hash); bool GetPaths(std::set<CStdString> &paths); - bool GetPathsForTvShow(int idShow, std::vector<int>& paths); + bool GetPathsForTvShow(int idShow, std::set<int>& paths); /*! \brief retrieve subpaths of a given path. Assumes a heirarchical folder structure \param basepath the root path to retrieve subpaths for @@ -548,7 +548,7 @@ public: bool HasContent(VIDEODB_CONTENT_TYPE type); bool HasSets() const; - void CleanDatabase(VIDEO::IVideoInfoScannerObserver* pObserver=NULL, const std::vector<int>* paths=NULL); + void CleanDatabase(VIDEO::IVideoInfoScannerObserver* pObserver=NULL, const std::set<int>* paths=NULL); /*! \brief Add a file to the database, if necessary If the file is already in the database, we simply return its id. diff --git a/xbmc/video/VideoInfoScanner.cpp b/xbmc/video/VideoInfoScanner.cpp index 5cf75a99a9..1b680f3651 100644 --- a/xbmc/video/VideoInfoScanner.cpp +++ b/xbmc/video/VideoInfoScanner.cpp @@ -247,7 +247,7 @@ namespace VIDEO if (hash.IsEmpty() && !dbHash.IsEmpty()) { CLog::Log(LOGDEBUG, "VideoInfoScanner: Skipping dir '%s' as it's empty or doesn't exist - adding to clean list", strDirectory.c_str()); - m_pathsToClean.push_back(m_database.GetPathId(strDirectory)); + m_pathsToClean.insert(m_database.GetPathId(strDirectory)); } else CLog::Log(LOGDEBUG, "VideoInfoScanner: Skipping dir '%s' due to no change", strDirectory.c_str()); @@ -296,13 +296,13 @@ namespace VIDEO if (!m_bStop && (content == CONTENT_MOVIES || content == CONTENT_MUSICVIDEOS)) { m_database.SetPathHash(strDirectory, hash); - m_pathsToClean.push_back(m_database.GetPathId(strDirectory)); + m_pathsToClean.insert(m_database.GetPathId(strDirectory)); CLog::Log(LOGDEBUG, "VideoInfoScanner: Finished adding information from dir %s", strDirectory.c_str()); } } else { - m_pathsToClean.push_back(m_database.GetPathId(strDirectory)); + m_pathsToClean.insert(m_database.GetPathId(strDirectory)); CLog::Log(LOGDEBUG, "VideoInfoScanner: No (new) information was found in dir %s", strDirectory.c_str()); } } @@ -417,7 +417,7 @@ namespace VIDEO for (vector<int>::iterator i = libPaths.begin(); i < libPaths.end(); ++i) { if (find(seenPaths.begin(), seenPaths.end(), *i) == seenPaths.end()) - m_pathsToClean.push_back(*i); + m_pathsToClean.insert(*i); } } if(pDlgProgress) @@ -651,7 +651,7 @@ namespace VIDEO } return; } - m_pathsToClean.push_back(m_database.GetPathId(item->GetPath())); + m_pathsToClean.insert(m_database.GetPathId(item->GetPath())); m_database.GetPathsForTvShow(m_database.GetTvShowId(item->GetPath()), m_pathsToClean); item->SetProperty("hash", hash); } diff --git a/xbmc/video/VideoInfoScanner.h b/xbmc/video/VideoInfoScanner.h index 57e2965b6d..2af3ea5bd0 100644 --- a/xbmc/video/VideoInfoScanner.h +++ b/xbmc/video/VideoInfoScanner.h @@ -252,7 +252,7 @@ namespace VIDEO CVideoDatabase m_database; std::set<CStdString> m_pathsToScan; std::set<CStdString> m_pathsToCount; - std::vector<int> m_pathsToClean; + std::set<int> m_pathsToClean; CNfoFile m_nfoReader; }; } diff --git a/xbmc/video/windows/GUIWindowVideoBase.cpp b/xbmc/video/windows/GUIWindowVideoBase.cpp index c10f68e6fd..86aa5f3632 100644 --- a/xbmc/video/windows/GUIWindowVideoBase.cpp +++ b/xbmc/video/windows/GUIWindowVideoBase.cpp @@ -278,7 +278,7 @@ void CGUIWindowVideoBase::OnInfo(CFileItem* pItem, const ADDON::ScraperPtr& scra if (item.m_bIsFolder && scraper && scraper->Content() != CONTENT_TVSHOWS) { CFileItemList items; - CDirectory::GetDirectory(item.GetPath(), items,"",true,false,DIR_CACHE_ONCE,true,true); + CDirectory::GetDirectory(item.GetPath(), items, g_settings.m_videoExtensions,true,false,DIR_CACHE_ONCE,true,true); items.Stack(); // check for media files @@ -1127,7 +1127,7 @@ void CGUIWindowVideoBase::GetContextButtons(int itemNumber, CContextButtons &but { buttons.Add(CONTEXT_BUTTON_RESUME_ITEM, GetResumeString(*(item.get()))); // Resume Video } - if (item->HasVideoInfoTag() && !item->m_bIsFolder && item->GetVideoInfoTag()->m_iEpisode > -1) + if (item->HasVideoInfoTag() && !item->m_bIsFolder && m_vecItems->Size() > 1 && itemNumber < m_vecItems->Size()-1) { buttons.Add(CONTEXT_BUTTON_PLAY_AND_QUEUE, 13412); } @@ -1468,6 +1468,7 @@ void CGUIWindowVideoBase::OnDeleteItem(int iItem) OnDeleteItem(m_vecItems->Get(iItem)); + m_vecItems->RemoveDiscCache(GetID()); Update(m_vecItems->GetPath()); m_viewControl.SetSelectedItem(iItem); } diff --git a/xbmc/video/windows/GUIWindowVideoNav.cpp b/xbmc/video/windows/GUIWindowVideoNav.cpp index 7c44ed3fbd..a43b689fd9 100644 --- a/xbmc/video/windows/GUIWindowVideoNav.cpp +++ b/xbmc/video/windows/GUIWindowVideoNav.cpp @@ -405,7 +405,8 @@ bool CGUIWindowVideoNav::GetDirectory(const CStdString &strDirectory, CFileItemL CStdString label; if (items.GetLabel().IsEmpty() && m_rootDir.IsSource(items.GetPath(), g_settings.GetSourcesFromType("video"), &label)) items.SetLabel(label); - LoadVideoInfo(items); + if (!items.IsSourcesPath()) + LoadVideoInfo(items); } } return bResult; @@ -484,10 +485,6 @@ void CGUIWindowVideoNav::LoadVideoInfo(CFileItemList &items) // set the watched overlay if (pItem->IsVideo()) pItem->SetOverlayImage(CGUIListItem::ICON_OVERLAY_UNWATCHED, pItem->HasVideoInfoTag() && pItem->GetVideoInfoTag()->m_playCount > 0); - - // Since the item is not in our db but the user wants a clean label we should clean it up (stacking may do some cleaning as well) - if (replaceLabels) - pItem->CleanString(); } } } @@ -1504,10 +1501,12 @@ CStdString CGUIWindowVideoNav::GetStartFolder(const CStdString &dir) return "videodb://3/3/"; else if (dir.Equals("MusicVideoArtists")) return "videodb://3/4/"; - else if (dir.Equals("MusicVideoDirectors")) + else if (dir.Equals("MusicVideoAlbums")) return "videodb://3/5/"; - else if (dir.Equals("MusicVideoStudios")) + else if (dir.Equals("MusicVideoDirectors")) return "videodb://3/6/"; + else if (dir.Equals("MusicVideoStudios")) + return "videodb://3/7/"; else if (dir.Equals("MusicVideos")) return "videodb://3/"; else if (dir.Equals("RecentlyAddedMovies")) diff --git a/xbmc/visualizations/XBMCProjectM/Main.cpp b/xbmc/visualizations/XBMCProjectM/Main.cpp index d4e50194b7..8b2299b07a 100644 --- a/xbmc/visualizations/XBMCProjectM/Main.cpp +++ b/xbmc/visualizations/XBMCProjectM/Main.cpp @@ -59,6 +59,7 @@ d4rk@xbmc.org #include <GL/glew.h> #include "libprojectM/projectM.hpp" #include <string> +#include <utils/log.h> projectM *globalPM = NULL; @@ -77,6 +78,7 @@ bool g_UserPackFolder; char lastPresetDir[1024]; bool lastLockStatus; int lastPresetIdx; +int lastLoggedPresetIdx; //-- Create ------------------------------------------------------------------- // Called once when the visualisation is created by XBMC. Do any setup here. @@ -99,6 +101,7 @@ extern "C" ADDON_STATUS ADDON_Create(void* hdl, void* props) g_configPM.easterEgg = 0.0; g_configPM.windowLeft = visprops->x; g_configPM.windowBottom = visprops->y; + lastLoggedPresetIdx = lastPresetIdx; return ADDON_STATUS_NEED_SAVEDSETTINGS; } @@ -126,7 +129,13 @@ extern "C" void AudioData(const short* pAudioData, int iAudioDataLength, float * extern "C" void Render() { if (globalPM) + { globalPM->renderFrame(); + unsigned preset; + globalPM->selectedPresetIndex(preset); + if (lastLoggedPresetIdx != preset) CLog::Log(LOGDEBUG,"PROJECTM - Changed preset to: %s",g_presets[preset]); + lastLoggedPresetIdx = preset; + } } //-- GetInfo ------------------------------------------------------------------ diff --git a/xbmc/windowing/osx/WinEventsIOS.mm b/xbmc/windowing/osx/WinEventsIOS.mm index b016aa738f..635c9cc362 100644 --- a/xbmc/windowing/osx/WinEventsIOS.mm +++ b/xbmc/windowing/osx/WinEventsIOS.mm @@ -73,7 +73,7 @@ bool CWinEventsIOS::MessagePump() // the user.code will be the keyID to translate using joystick.AppleRemote.xml std::string joystickName = "AppleRemote"; bool isAxis = false; - float fAmount = 0.0; + float fAmount = 1.0; unsigned short wKeyID = pumpEvent.user.code; CLog::Log(LOGDEBUG,"CWinEventsIOS: Button press keyID = %i", wKeyID); diff --git a/xbmc/windowing/windows/WinEventsWin32.cpp b/xbmc/windowing/windows/WinEventsWin32.cpp index ece372e878..ae49c88b13 100644 --- a/xbmc/windowing/windows/WinEventsWin32.cpp +++ b/xbmc/windowing/windows/WinEventsWin32.cpp @@ -39,7 +39,6 @@ #include "settings/Settings.h" #include "settings/AdvancedSettings.h" #include "peripherals/Peripherals.h" -#include "storage/DetectDVDType.h" #include "utils/JobManager.h" #ifdef _WIN32 diff --git a/xbmc/windows/GUIMediaWindow.cpp b/xbmc/windows/GUIMediaWindow.cpp index 6a9c905613..e0f65cb9b2 100644 --- a/xbmc/windows/GUIMediaWindow.cpp +++ b/xbmc/windows/GUIMediaWindow.cpp @@ -217,6 +217,10 @@ bool CGUIMediaWindow::OnMessage(CGUIMessage& message) m_iSelectedItem = m_viewControl.GetSelectedItem(); m_iLastControl = GetFocusedControlID(); CGUIWindow::OnMessage(message); + CGUIDialogContextMenu* pDlg = (CGUIDialogContextMenu*)g_windowManager.GetWindow(WINDOW_DIALOG_CONTEXT_MENU); + if (pDlg && pDlg->IsActive()) + pDlg->Close(); + // Call ClearFileItems() after our window has finished doing any WindowClose // animations ClearFileItems(); diff --git a/xbmc/windows/GUIWindowWeather.cpp b/xbmc/windows/GUIWindowWeather.cpp index ee6de01455..a172873b60 100644 --- a/xbmc/windows/GUIWindowWeather.cpp +++ b/xbmc/windows/GUIWindowWeather.cpp @@ -145,7 +145,7 @@ void CGUIWindowWeather::UpdateLocations() { if (!IsActive()) return; m_maxLocation = strtol(GetProperty("Locations").asString().c_str(),0,10); - + if (m_maxLocation < 1) return; CGUIMessage msg(GUI_MSG_LABEL_RESET,GetID(),CONTROL_SELECTLOCATION); g_windowManager.SendMessage(msg); CGUIMessage msg2(GUI_MSG_LABEL_ADD,GetID(),CONTROL_SELECTLOCATION); |