diff --git a/.gitignore b/.gitignore index 2f7896d1..54c77670 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,151 @@ +# +# .gitignore +# Libresonic/libresonic +# +# Project-wide gitignores +# +# +# Sourced from https://github.com/github/gitignore/ +# Redistributed under GPLv3+, as allowed by LICENSE found there +# Copyright (c) 2014 Github, Inc. +# +## Windows.gitignore +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + + +## OSX.gitignore +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear on external disk +.Spotlight-V100 +.Trashes + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + + +## vim.gitignore +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +*.un~ +Session.vim +.netrwhist +*~ + + +## NotepadPP.gitignore +# Notepad++ backups # +*.bak + + +## Java.gitignore +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + + +## Maven.gitignore target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties + +## Eclipse.gitignore +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# Eclipse Core +.project + +# Intellij +*.iml +.idea + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..64fdcf2a --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +language: java +sudo: required +jdk: + - oraclejdk8 +cache: + directories: + - $HOME/.m2 +install: + - sudo apt-get -qq update + - sudo apt-get -y install lintian fakeroot rpm python-rpm + - git clone https://github.com/rpm-software-management/rpmlint -o rpmlint-1.9 + - sudo make -C rpmlint install +script: + - mvn -Pfull,rpm package install + - mvn -Pfull -pl libresonic-assembly assembly:single diff --git a/BUILD.md b/BUILD.md new file mode 100644 index 00000000..d4f639f9 --- /dev/null +++ b/BUILD.md @@ -0,0 +1,92 @@ + +Requirements +------------ + + * Recent version of [Maven](http://maven.apache.org/). + * A JDK installation. 1.8.x series of OpenJDK or Oracle JDK 8+ should work. + * Optional: lintian and fakeroot, for .deb package + * Optional: rpm and rpmlint, for .rpm package + * Test as follows: + +``` +$ which mvn +/usr/local/bin/mvn +$ echo $JAVA_HOME +/usr/lib/jvm/java-1.8.0-openjdk.x86_64 +$ +``` + +Now you can clone a copy of this repository: + +``` +$ git clone git://github.com/Libresonic/libresonic.git +$ cd libresonic +$ +``` + +Standalone WAR +-------------- + +At this point you are ready to build the basic Libresonic WAR. This is required for all the other build targets, so you should do it before proceeding. + +``` +$ mvn package + +[INFO] Building war: /path/to/repo/libresonic/libresonic-main/target/libresonic.war + +$ +``` + +Tomcat Installation +------------------- + +The WAR may be copied directly to a Tomcat server's webapps/ directory and deployed. + +``` +$ cp libresonic-main/target/libresonic.war /var/lib/tomcat6/webapps/ +$ +``` + + +Packaged .deb +------------- + +You can furthermore go ahead to create a .deb suitable for installation on +Debian or Ubuntu. + +``` +$ mvn -P full -pl libresonic-booter -am install +$ mvn -P full -pl libresonic-installer-debian -am install +$ sudo dpkg -i ./libresonic-installer-debian/target/libresonic-*.deb +``` + +Packaged RPM +------------ + +Building a RPM package is very similar : + +``` +$ mvn -P full -pl libresonic-booter -am install +$ mvn -P full,rpm -pl libresonic-installer-rpm -am install +$ sudo rpm -ivh libresonic-installer-rpm/target/libresonic-*.rpm +``` + +Additional release archives +--------------------------- + +Additional release archives can be built using the following commands : + +``` +$ mvn -Pfull -pl libresonic-assembly assembly:single +``` + +These archives are built in `libresonic-assembly/targets` and include : + +* The source distribution +* The standalone archive (for use without a WAR container) +* The WAR archive (for WAR containers) + +Good luck! diff --git a/CHANGELOG.md b/CHANGELOG.md index aa021909..f72934f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,27 @@ # Libresonic/libresonic # --> +v6.1.rc1 +-------- + + * Metaproject: Jenkins builds! + * More documentation + * Translation updates + * Improve shuffling behaviour + * Lots of small fixes, many more to come + +v6.1.beta1 +---------- + + * Meant as a release candidate; failed to make it past the Primary election. + +v6.1-alpha1 +----------- + + * Search+replace subsonic-->libresonic + * Move out of org.sourceforge.subsonic namespace + * Develop becomes horribly unstable, you shouldn't be using this. + v6.0.1 ------ diff --git a/INSTALL.md b/INSTALL.md index ad4e24b0..b4dfcf15 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -2,7 +2,110 @@ # INSTALL.md # Libresonic/libresonic --> -Libresonic Installation ------------------------ -At present, building from the `stable` branch is not recommended. See the `develop` branch for more information. You can download the [Stable WAR](https://github.com/Libresonic/libresonic/releases) and [deploy using Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/deployer-howto.html). +# Installing Libresonic + +This document is designed to explain how to install LibreSonic as a Tomcat module, on a computer running Linux. As the project expands, this guide will also expand to include other operating systems. + +## Installing From Pre-Compiled Package + +### Prerequisites + +In order to install and run Libresonic, you will need: + + * A JDK installation. 1.8.x series of OpenJDK or Oracle JDK 8+ should work. + * A running [Tomcat](http://tomcat.apache.org/) server. If you're unfamiliar with Tomcat, there are many [guides](https://www.linode.com/docs/websites/frameworks/apache-tomcat-on-ubuntu-16-04) on it. + + +### Download Libresonic + +Daily WAR files are built by Jenkins and available [here](https://jenkins.zifnab.net/job/libresonic/), curtesy of [zifnab06](https://github.com/zifnab06). + +1. Download the latest war file: + + wget https://jenkins.zifnab.net/job/libresonic/lastSuccessfulBuild/artifact/.repository/org/libresonic/player/libresonic-main/6.1.rc1/libresonic-main-6.1.rc1.war -O /var/lib/tomcat8/webapps/libresonic.war + + Note that this command copies the war file directly to the Tomcat webapps directory, and renames it to `libresonic.war`. + +2. Create the libresonic directory and assign ownership to the Tomcat system user (if running tomcat as a service): + + mkdir /var/libresonic + chown tomcat8:tomcat8 /var/libresonic/ + +3. Start Tomcat, or restart it if running as a service, as in the example below using Systemd: + + systemctl restart tomcat8.service + + Note that it may take ~30 seconds after the service restarts for Tomcat to fully deploy the app. You can monitor /var/log/tomcat8/catalina.out for the following message: + + INFO: Deployment of web application archive /var/lib/tomcat8/webapps/libresonic.war has finished in 46,192 ms + +4. In your web browser, navigate to `192.0.2.10:8080/libresonic/`, replacing `192.0.2.0` with your server's IP address, or `127.0.0.1` if installing locally. + +## Installing From Source + +### Prerequisites + +In order to build, install, and run Libresonic, you will need: + + * A recent version of [Maven](http://maven.apache.org/). + * A JDK installation. 1.8.x series of OpenJDK or Oracle JDK 8+ should work. + * A running [Tomcat](http://tomcat.apache.org/) server. If you're unfamiliar with Tomcat, there are many [guides](https://www.linode.com/docs/websites/frameworks/apache-tomcat-on-ubuntu-16-04) on it. + +On a Debian-based system, you can install all these prerequisites at once with: + + apt-get update; apt-get install tomcat8 openjdk-7-jdk maven + +### Test Your System + +1. Confirm your Maven installation: + + which mvn + +2. Confirm that the $JAVA_HOME environment variable is set: + + echo $JAVA_HOME + +3. If Java is installed, but the `JAVA_HOME` variable not set, be sure to [set it](http://www.cyberciti.biz/faq/linux-unix-set-java_home-path-variable/) before you continue. + + +### Download and Build Libresonic + +1. Clone the Libresonic repo: + + git clone git://github.com/Libresonic/libresonic.git + cd libresonic + + If you don't have a GitHub account, use https://github.com/Libresonic/libresonic.git instead. + +2. At the time of this writing, we reccomend building from the development branch, as Libresonic has not had a stable release since being forked. + + git checkout develop + +3. Using Maven, build Subsonic: + + mvn package + +4. You should know have a war file: + + ls libresonic-main/target/libresonic.war + libresonic-main/target/libresonic.war + +5. Copy the war file to the Tomcat webapps directory: + + cp libresonic-main/target/libresonic.war /var/lib/tomcat8/webapps + +6. Create the libresonic directory and assign ownership to the Tomcat system user (if running tomcat as a service): + + mkdir /var/libresonic + chown tomcat8:tomcat8 /var/libresonic/ + +7. Start Tomcat, or restart it if running as a service, as in the example below using Systemd: + + systemctl restart tomcat8.service + + Note that it may take ~30 seconds after the service restarts for Tomcat to fully deploy the app. You can monitor /var/log/tomcat8/catalina.out for the following message: + + INFO: Deployment of web application archive /var/lib/tomcat8/webapps/libresonic.war has finished in 46,192 ms + +8. In your web browser, navigate to `192.0.2.10:8080/libresonic/`, replacing `192.0.2.0` with your server's IP address, or `127.0.0.1` if installing locally. \ No newline at end of file diff --git a/MIGRATE.md b/MIGRATE.md new file mode 100644 index 00000000..3f1e2990 --- /dev/null +++ b/MIGRATE.md @@ -0,0 +1,36 @@ +Upgrade to Libresonic from Subsonic +================ + +This guide helps you to migrate your data from Subsonic to Libresonic. It has been tested with Subsonic 5 to Libresonic 6. + +Install Libresonic as described in INSTALL.md. The author of this guide used the standalone solution without Java Tomcat. + +After installation of Libresonic, the database needs to be migrated. In preperation for that, stop the Libresonic service + + sudo service libresonic stop + +If you ran Subsonic before, your data will be (by default) stored in `/var/subsonic`. Assuming you did not use Libresonic before, we will delete all data from Libresonic + + sudo rm -r /var/libresonic # WARNING: DELETES all Libresonic data (Subsonic data will be kept) + +We then copy Subsonic data to Libresonic location. Be aware that a couple of files need to be renamed: + + sudo cp -a /var/subsonic /var/libresonic + sudo mv /var/libresonic/subsonic_sh.log libresonic_sh.log + sudo mv /var/libresonic/subsonic.log libresonic.log + sudo mv /var/libresonic/subsonic.properties libresonic.properties + sudo mv /var/libresonic/db/subsonic.backup /var/libresonic/db/libresonic.backup + sudo mv /var/libresonic/db/subsonic.data /var/libresonic/db/libresonic.data + sudo mv /var/libresonic/db/subsonic.lck /var/libresonic/db/libresonic.lck + sudo mv /var/libresonic/db/subsonic.log /var/libresonic/db/libresonic.log + sudo mv /var/libresonic/db/subsonic.properties /var/libresonic/db/libresonic.properties + sudo mv /var/libresonic/db/subsonic.script /var/libresonic/db/libresonic.script + +Then start Libresonic service again. + + sudo service libresonic start + +Your old settings will be there. If you wish, you can delete subsonic data + + sudo rm -r /var/subsonic # Optional, THIS WILL DELETE SUBSONIC DATA + diff --git a/contrib/deploy.sh b/contrib/deploy.sh new file mode 100755 index 00000000..84eeda63 --- /dev/null +++ b/contrib/deploy.sh @@ -0,0 +1,12 @@ +#!/bin/bash +# contrib/deploy.sh +# Libresonic/libresonic +# +# Helper script to shorten dev/build/deployment +# + +sudo systemctl stop tomcat +sudo rm /var/lib/tomcat/webapps/libresonic* -rf +sudo cp libresonic-main/target/libresonic.war /var/lib/tomcat/webapps/ +sudo systemctl start tomcat + diff --git a/documentation/FreeBSD-FreeNAS-Install.md b/documentation/FreeBSD-FreeNAS-Install.md new file mode 100644 index 00000000..5606cc96 --- /dev/null +++ b/documentation/FreeBSD-FreeNAS-Install.md @@ -0,0 +1,143 @@ +# Installing Libresonic on FreeBSD 10.3 and FreeNAS 9.10 + +### Preamble +This guide will wallk you through the process of deploying Libresonic on FreeBSD either in a Jail on on the main system. The prerequisites are you have root access on your FreeBSD machine (or jail), the ip address of the machine (or jail) and the Libresonic war available at the [Libresonic github page](https://github.com/Libresonic/libresonic/releases) + +If on FreeNAS create a standard jail in the web interface and enter the shell. + +### 1. Install Tomcat +To run Libresonic we need a server to run it in. Log into your machine and then run these commands either as root or with sudo + + #pkg install tomcat8 nano + +Hit y on all prompts to complete installation of Tomcat + +### 2.Configure Tomcat +Edit Tomcat's user configuration file with your favourite text editor. We installed nano in step 1. + + #rm /usr/local/apache-tomcat-8.0/conf/tomcat-users.xml + #nano /usr/local/apache-tomcat-8.0/conf/tomcat-users.xml + + +Copy this + + + + + + + + + + + + + +Use Ctrl-O to save and y to confirm. Ctrl-X to exit Nano. + +If you wish to use a different username and password please append the second last line to contain your preferred username and password. + + + +### 3. Start and test Tomcat + #echo tomcat8_enable="YES" >> /etc/rc.conf + #service tomcat8 start + +Test Tomcat is listening on port 8080 + + # netstat -an | grep 8080 +It should return a line containing the IP address of your system (or jail). ie mine returns + + tcp4 0 0 10.0.0.10.8080 *.* LISTEN +If in a jail it may also return the line "netstat: kvm not available: /dev/mem: No such file or directory" This can be ignored. + +### 4. Create directories and set up permissions + #mkdir /var/libresonic + #chown -R www:www /var/libresonic + #chown -R www:www /usr/local/apache-tomcat-8.0/webapps + +### 5. Deploy Libresonic +Open a web browser and enter your servers IP address in the url bar followed by :8080 eg + + 10.0.0.10:8080 + +You should be greeted by the Apache Tomcat page. Click on the Manager App button on the right of the page and enter the username and password used in step 3. Default was username: admin and password: admin + +Scroll down to Deploy and the subheading "WAR file to deploy" hit choose file and select the libresonic.war downloaded in the preamble. After selecting press the deploy button. Scroll up and press start. When the page refreshes a message "OK - Started application at context path /libresonic-v6.1.rc1" should be visible. + +### 6. Navigate to Libresonic + +In a browser. Take your server IP address and port and append the the context path from above + +ie if the War deployed was called libresonic-v6.1.rc1.war navigate to: + + 10.0.0.10:8080/libresonic-v6.1.rc1/ + +### 7. Log into Libresonic + +Log in. The default is username: admin password: admin +Follow the prompts on the web page to change the password. This will log you out. Please re-login with your new password + +### 8. Set up media +If you are on FreeBSD in a jail, consult the documentation for your Jail Manager tool on how to pass through storage. If using FreeNAS please use the FreeNAS webui to pass through the dataset containing your music. + +In Libresonic click 2. Setup Media folders. + +Name your media folder and put in the path to your music. Then click "Scan media folders now" + +Congratulations you have set up Libresonic + +##Transcoding Support + +If you want transcoding and DON'T need mp3 support + + #pkg install ffmpeg + #ln -s /usr/local/bin/ffmpeg /var/libresonic/transcode/ffmpeg + #service tomcat8 restart + +Congratulations you have transcoding enabled + +If you need mp3 support and most likely you will the process is more arduous as FreeBSD's ffmpeg doesn't contain mp3 support by default and must be configured and compiled by the user. + +### 1. Install ffmpeg dependencies and Ports Tree + +Install the dependencies required to build and use ffmpeg + + #pkg install yasm binutils texi2html frei0r v4l_compat gmake pkgconf perl5 fontconfig freetype2 opencv-core schroedinger libtheora libv4l libva libvdpau libvorbis libvpx libx264 xvid gnutls libiconv + +Now install the FreeBSD Ports Tree + + #portsnap fetch + #portsnap extract + + +### 2. Build ffmpeg +Navigate to the ffmpeg port directory + + #cd /usr/ports/multimedia/ffmpeg + +Configure ffmpeg build + + #make configure + +This will bring up a menu. Scroll down using arrow keys to "LAME" and hit the spacebar to enable it. Press enter to continue. +The ffmpeg source files will automatically be downloaded then you will be presented with an additional prompt to install documentation. I uncheck with spacebar then press enter to continue. + +Commence build and installation of ffmpeg + + #make install clean + +Building ffmpeg will take some time depending on the capabilities of your machine, please be patient. + +Link ffmpeg to where Libresonic expects the transcoder to be. + + #ln -s /usr/local/bin/ffmpeg /var/libresonic/transcode/ffmpeg + +Finally restart tomcat + + #service tomcat8 restart + +Congratulations you have ffmpeg with mp3 support installed ready for Libresonic to use. diff --git a/documentation/INSTALL.md b/documentation/INSTALL.md new file mode 100644 index 00000000..b4dfcf15 --- /dev/null +++ b/documentation/INSTALL.md @@ -0,0 +1,111 @@ + + +# Installing Libresonic + +This document is designed to explain how to install LibreSonic as a Tomcat module, on a computer running Linux. As the project expands, this guide will also expand to include other operating systems. + +## Installing From Pre-Compiled Package + +### Prerequisites + +In order to install and run Libresonic, you will need: + + * A JDK installation. 1.8.x series of OpenJDK or Oracle JDK 8+ should work. + * A running [Tomcat](http://tomcat.apache.org/) server. If you're unfamiliar with Tomcat, there are many [guides](https://www.linode.com/docs/websites/frameworks/apache-tomcat-on-ubuntu-16-04) on it. + + +### Download Libresonic + +Daily WAR files are built by Jenkins and available [here](https://jenkins.zifnab.net/job/libresonic/), curtesy of [zifnab06](https://github.com/zifnab06). + +1. Download the latest war file: + + wget https://jenkins.zifnab.net/job/libresonic/lastSuccessfulBuild/artifact/.repository/org/libresonic/player/libresonic-main/6.1.rc1/libresonic-main-6.1.rc1.war -O /var/lib/tomcat8/webapps/libresonic.war + + Note that this command copies the war file directly to the Tomcat webapps directory, and renames it to `libresonic.war`. + +2. Create the libresonic directory and assign ownership to the Tomcat system user (if running tomcat as a service): + + mkdir /var/libresonic + chown tomcat8:tomcat8 /var/libresonic/ + +3. Start Tomcat, or restart it if running as a service, as in the example below using Systemd: + + systemctl restart tomcat8.service + + Note that it may take ~30 seconds after the service restarts for Tomcat to fully deploy the app. You can monitor /var/log/tomcat8/catalina.out for the following message: + + INFO: Deployment of web application archive /var/lib/tomcat8/webapps/libresonic.war has finished in 46,192 ms + +4. In your web browser, navigate to `192.0.2.10:8080/libresonic/`, replacing `192.0.2.0` with your server's IP address, or `127.0.0.1` if installing locally. + +## Installing From Source + +### Prerequisites + +In order to build, install, and run Libresonic, you will need: + + * A recent version of [Maven](http://maven.apache.org/). + * A JDK installation. 1.8.x series of OpenJDK or Oracle JDK 8+ should work. + * A running [Tomcat](http://tomcat.apache.org/) server. If you're unfamiliar with Tomcat, there are many [guides](https://www.linode.com/docs/websites/frameworks/apache-tomcat-on-ubuntu-16-04) on it. + +On a Debian-based system, you can install all these prerequisites at once with: + + apt-get update; apt-get install tomcat8 openjdk-7-jdk maven + +### Test Your System + +1. Confirm your Maven installation: + + which mvn + +2. Confirm that the $JAVA_HOME environment variable is set: + + echo $JAVA_HOME + +3. If Java is installed, but the `JAVA_HOME` variable not set, be sure to [set it](http://www.cyberciti.biz/faq/linux-unix-set-java_home-path-variable/) before you continue. + + +### Download and Build Libresonic + +1. Clone the Libresonic repo: + + git clone git://github.com/Libresonic/libresonic.git + cd libresonic + + If you don't have a GitHub account, use https://github.com/Libresonic/libresonic.git instead. + +2. At the time of this writing, we reccomend building from the development branch, as Libresonic has not had a stable release since being forked. + + git checkout develop + +3. Using Maven, build Subsonic: + + mvn package + +4. You should know have a war file: + + ls libresonic-main/target/libresonic.war + libresonic-main/target/libresonic.war + +5. Copy the war file to the Tomcat webapps directory: + + cp libresonic-main/target/libresonic.war /var/lib/tomcat8/webapps + +6. Create the libresonic directory and assign ownership to the Tomcat system user (if running tomcat as a service): + + mkdir /var/libresonic + chown tomcat8:tomcat8 /var/libresonic/ + +7. Start Tomcat, or restart it if running as a service, as in the example below using Systemd: + + systemctl restart tomcat8.service + + Note that it may take ~30 seconds after the service restarts for Tomcat to fully deploy the app. You can monitor /var/log/tomcat8/catalina.out for the following message: + + INFO: Deployment of web application archive /var/lib/tomcat8/webapps/libresonic.war has finished in 46,192 ms + +8. In your web browser, navigate to `192.0.2.10:8080/libresonic/`, replacing `192.0.2.0` with your server's IP address, or `127.0.0.1` if installing locally. \ No newline at end of file diff --git a/subsonic-assembly/pom.xml b/libresonic-assembly/pom.xml similarity index 80% rename from subsonic-assembly/pom.xml rename to libresonic-assembly/pom.xml index e8674e75..a3edd0d9 100644 --- a/subsonic-assembly/pom.xml +++ b/libresonic-assembly/pom.xml @@ -2,21 +2,20 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - net.sourceforge.subsonic - subsonic-assembly + libresonic-assembly pom - Subsonic Assembly + Libresonic Assembly - net.sourceforge.subsonic - subsonic - 6.0.1 + org.libresonic.player + libresonic + 6.1.rc1 - net.sourceforge.subsonic - subsonic-main + org.libresonic.player + libresonic-main ${project.version} war @@ -24,7 +23,7 @@ - subsonic-${project.version} + libresonic-${project.version} diff --git a/subsonic-assembly/src/main/assembly/src.xml b/libresonic-assembly/src/main/assembly/src.xml similarity index 78% rename from subsonic-assembly/src/main/assembly/src.xml rename to libresonic-assembly/src/main/assembly/src.xml index d1e88c97..6fe8be51 100644 --- a/subsonic-assembly/src/main/assembly/src.xml +++ b/libresonic-assembly/src/main/assembly/src.xml @@ -22,7 +22,7 @@ - ../subsonic-main + ../libresonic-main src/** pom.xml @@ -31,25 +31,25 @@ README.TXT Getting Started.html - subsonic-main + libresonic-main - ../subsonic-rest-api + ../libresonic-rest-api src/** pom.xml - subsonic-rest-api + libresonic-rest-api - ../subsonic-sonos-api + ../libresonic-sonos-api src/** pom.xml - subsonic-sonos-api + libresonic-sonos-api diff --git a/subsonic-assembly/src/main/assembly/standalone.xml b/libresonic-assembly/src/main/assembly/standalone.xml similarity index 68% rename from subsonic-assembly/src/main/assembly/standalone.xml rename to libresonic-assembly/src/main/assembly/standalone.xml index 7be83f08..8e5562cb 100644 --- a/subsonic-assembly/src/main/assembly/standalone.xml +++ b/libresonic-assembly/src/main/assembly/standalone.xml @@ -8,7 +8,7 @@ false - ../subsonic-main + ../libresonic-main README.TXT @@ -17,25 +17,25 @@ - ../subsonic-main/target + ../libresonic-main/target *.war - ../subsonic-booter/target + ../libresonic-booter/target - subsonic-booter-jar-with-dependencies.jar + libresonic-booter-jar-with-dependencies.jar - ../subsonic-booter/src/main/script + ../libresonic-booter/src/main/script - subsonic.sh - subsonic.bat + libresonic.sh + libresonic.bat 0777 diff --git a/subsonic-assembly/src/main/assembly/war.xml b/libresonic-assembly/src/main/assembly/war.xml similarity index 84% rename from subsonic-assembly/src/main/assembly/war.xml rename to libresonic-assembly/src/main/assembly/war.xml index aa10ac4c..9f0d478c 100644 --- a/subsonic-assembly/src/main/assembly/war.xml +++ b/libresonic-assembly/src/main/assembly/war.xml @@ -8,7 +8,7 @@ false - ../subsonic-main + ../libresonic-main README.TXT @@ -17,7 +17,7 @@ - ../subsonic-main/target + ../libresonic-main/target *.war diff --git a/subsonic-booter/pom.xml b/libresonic-booter/pom.xml similarity index 90% rename from subsonic-booter/pom.xml rename to libresonic-booter/pom.xml index d8760a3c..f7d12845 100644 --- a/subsonic-booter/pom.xml +++ b/libresonic-booter/pom.xml @@ -2,14 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - net.sourceforge.subsonic - subsonic-booter - Subsonic Booter + libresonic-booter + Libresonic Booter - net.sourceforge.subsonic - subsonic - 6.0.1 + org.libresonic.player + libresonic + 6.1.rc1 @@ -68,7 +67,7 @@ - subsonic-booter + libresonic-booter diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/Main.java similarity index 87% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/Main.java index b7879e12..cce64830 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/Main.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/Main.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic.booter; +package org.libresonic.player.booter; import java.util.Arrays; import java.util.List; @@ -7,11 +7,11 @@ import javax.swing.JOptionPane; import org.springframework.context.support.ClassPathXmlApplicationContext; -import net.sourceforge.subsonic.booter.agent.SettingsPanel; -import net.sourceforge.subsonic.booter.agent.SubsonicAgent; +import org.libresonic.player.booter.agent.SettingsPanel; +import org.libresonic.player.booter.agent.LibresonicAgent; /** - * Application entry point for Subsonic booter. + * Application entry point for Libresonic booter. *

* Use command line argument "-agent" to start the Windows service monitoring agent, * or "-mac" to start the Mac version of the deployer. @@ -25,7 +25,7 @@ public class Main { if ("-agent".equals(contextName)) { - SubsonicAgent agent = (SubsonicAgent) context.getBean("agent"); + LibresonicAgent agent = (LibresonicAgent) context.getBean("agent"); SettingsPanel settingsPanel = (SettingsPanel) context.getBean("settingsPanel"); agent.setElevated(args.contains("-elevated")); diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicAgent.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicAgent.java similarity index 83% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicAgent.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicAgent.java index a9bb526e..9fda03b4 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicAgent.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicAgent.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic.booter.agent; +package org.libresonic.player.booter.agent; import java.awt.Desktop; import java.net.URI; @@ -16,35 +16,35 @@ import org.apache.commons.io.IOUtils; import com.jgoodies.looks.plastic.PlasticXPLookAndFeel; -import net.sourceforge.subsonic.booter.deployer.DeploymentStatus; -import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService; +import org.libresonic.player.booter.deployer.DeploymentStatus; +import org.libresonic.player.booter.deployer.LibresonicDeployerService; /** - * Responsible for deploying the Subsonic web app in + * Responsible for deploying the Libresonic web app in * the embedded Jetty container. * * @author Sindre Mehus */ -public class SubsonicAgent { +public class LibresonicAgent { - private final List listeners = new ArrayList(); + private final List listeners = new ArrayList(); private final TrayController trayController; - private SubsonicFrame frame; - private final SubsonicDeployerService service; + private LibresonicFrame frame; + private final LibresonicDeployerService service; private static final int POLL_INTERVAL_DEPLOYMENT_INFO_SECONDS = 5; private static final int POLL_INTERVAL_SERVICE_STATUS_SECONDS = 5; private String url; private boolean serviceStatusPollingEnabled; private boolean elevated; - public SubsonicAgent(SubsonicDeployerService service) { + public LibresonicAgent(LibresonicDeployerService service) { this.service = service; setLookAndFeel(); trayController = new TrayController(this); startPolling(); } - public void setFrame(SubsonicFrame frame) { + public void setFrame(LibresonicFrame frame) { this.frame = frame; } @@ -85,7 +85,7 @@ public class SubsonicAgent { } private String getServiceStatus() throws Exception { - Process process = Runtime.getRuntime().exec("subsonic-service.exe -status"); + Process process = Runtime.getRuntime().exec("libresonic-service.exe -status"); return IOUtils.toString(process.getInputStream()); } @@ -95,7 +95,7 @@ public class SubsonicAgent { public void startOrStopService(boolean start) { try { - String cmd = "subsonic-service.exe " + (start ? "-start" : "-stop"); + String cmd = "libresonic-service.exe " + (start ? "-start" : "-stop"); System.err.println("Executing: " + cmd); Runtime.getRuntime().exec(cmd); @@ -114,7 +114,7 @@ public class SubsonicAgent { List command = new ArrayList(); command.add("cmd"); command.add("/c"); - command.add("subsonic-agent-elevated.exe"); + command.add("libresonic-agent-elevated.exe"); command.addAll(Arrays.asList(args)); ProcessBuilder builder = new ProcessBuilder(); @@ -123,7 +123,7 @@ public class SubsonicAgent { builder.start(); System.exit(0); } catch (Exception x) { - JOptionPane.showMessageDialog(frame, "Failed to elevate Subsonic Control Panel. " + x, "Error", JOptionPane.WARNING_MESSAGE); + JOptionPane.showMessageDialog(frame, "Failed to elevate Libresonic Control Panel. " + x, "Error", JOptionPane.WARNING_MESSAGE); x.printStackTrace(); } } @@ -154,7 +154,7 @@ public class SubsonicAgent { } } - public void addListener(SubsonicListener listener) { + public void addListener(LibresonicListener listener) { listeners.add(listener); } @@ -163,13 +163,13 @@ public class SubsonicAgent { url = status.getURL(); } - for (SubsonicListener listener : listeners) { + for (LibresonicListener listener : listeners) { listener.notifyDeploymentStatus(status); } } private void notifyServiceStatus(String status) { - for (SubsonicListener listener : listeners) { + for (LibresonicListener listener : listeners) { listener.notifyServiceStatus(status); } } diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicFrame.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicFrame.java similarity index 83% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicFrame.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicFrame.java index 32ee5230..b11832d4 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicFrame.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicFrame.java @@ -1,8 +1,8 @@ -package net.sourceforge.subsonic.booter.agent; +package org.libresonic.player.booter.agent; import com.jgoodies.forms.factories.Borders; import com.jgoodies.forms.factories.ButtonBarFactory; -import net.sourceforge.subsonic.booter.Main; +import org.libresonic.player.booter.Main; import javax.swing.*; import java.awt.*; @@ -17,18 +17,18 @@ import java.util.Arrays; * * @author Sindre Mehus */ -public class SubsonicFrame extends JFrame { +public class LibresonicFrame extends JFrame { - private final SubsonicAgent subsonicAgent; + private final LibresonicAgent libresonicAgent; private final StatusPanel statusPanel; private final SettingsPanel settingsPanel; private JTabbedPane tabbedPane; private JButton closeButton; - public SubsonicFrame(SubsonicAgent subsonicAgent, StatusPanel statusPanel, SettingsPanel settingsPanel) { - super("Subsonic Control Panel"); - this.subsonicAgent = subsonicAgent; + public LibresonicFrame(LibresonicAgent libresonicAgent, StatusPanel statusPanel, SettingsPanel settingsPanel) { + super("Libresonic Control Panel"); + this.libresonicAgent = libresonicAgent; this.statusPanel = statusPanel; this.settingsPanel = settingsPanel; createComponents(); @@ -43,18 +43,18 @@ public class SubsonicFrame extends JFrame { private void setupIcons() { Toolkit toolkit = Toolkit.getDefaultToolkit(); - // Window.setIconImages() was added in Java 1.6. Since Subsonic only requires 1.5, we + // Window.setIconImages() was added in Java 1.6. Since Libresonic only requires 1.5, we // use reflection to invoke it. try { Method method = Window.class.getMethod("setIconImages", java.util.List.class); java.util.List images = Arrays.asList( - toolkit.createImage(Main.class.getResource("/images/subsonic-16.png")), - toolkit.createImage(Main.class.getResource("/images/subsonic-32.png")), - toolkit.createImage(Main.class.getResource("/images/subsonic-512.png"))); + toolkit.createImage(Main.class.getResource("/images/libresonic-16.png")), + toolkit.createImage(Main.class.getResource("/images/libresonic-32.png")), + toolkit.createImage(Main.class.getResource("/images/libresonic-512.png"))); method.invoke(this, images); } catch (Throwable x) { // Fallback to old method. - setIconImage(toolkit.createImage(Main.class.getResource("/images/subsonic-32.png"))); + setIconImage(toolkit.createImage(Main.class.getResource("/images/libresonic-32.png"))); } } @@ -92,7 +92,7 @@ public class SubsonicFrame extends JFrame { @Override public void setVisible(boolean b) { super.setVisible(b); - subsonicAgent.setServiceStatusPollingEnabled(b); + libresonicAgent.setServiceStatusPollingEnabled(b); } public void showStatusPanel() { diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicListener.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicListener.java similarity index 62% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicListener.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicListener.java index d6239c0d..a985a8df 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SubsonicListener.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/LibresonicListener.java @@ -1,17 +1,17 @@ -package net.sourceforge.subsonic.booter.agent; +package org.libresonic.player.booter.agent; -import net.sourceforge.subsonic.booter.deployer.DeploymentStatus; +import org.libresonic.player.booter.deployer.DeploymentStatus; /** * Callback interface implemented by GUI classes that wants to be notified when - * the state of the Subsonic deployment changes. + * the state of the Libresonic deployment changes. * * @author Sindre Mehus */ -public interface SubsonicListener { +public interface LibresonicListener { /** - * Invoked when new information about the Subsonic deployment is available. + * Invoked when new information about the Libresonic deployment is available. * * @param deploymentStatus The new deployment status, or null if an * error occurred while retrieving the status. @@ -19,7 +19,7 @@ public interface SubsonicListener { void notifyDeploymentStatus(DeploymentStatus deploymentStatus); /** - * Invoked when new information about the Subsonic Windows service is available. + * Invoked when new information about the Libresonic Windows service is available. * * @param serviceStatus The new service status, or null if an * error occurred while retrieving the status. diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SettingsPanel.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/SettingsPanel.java similarity index 83% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SettingsPanel.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/agent/SettingsPanel.java index c225410f..6b13aeef 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/SettingsPanel.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/SettingsPanel.java @@ -1,11 +1,11 @@ -package net.sourceforge.subsonic.booter.agent; +package org.libresonic.player.booter.agent; import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.factories.Borders; import com.jgoodies.forms.factories.ButtonBarFactory; import com.jgoodies.forms.layout.FormLayout; -import net.sourceforge.subsonic.booter.deployer.DeploymentStatus; -import net.sourceforge.subsonic.booter.deployer.SubsonicDeployer; +import org.libresonic.player.booter.deployer.DeploymentStatus; +import org.libresonic.player.booter.deployer.LibresonicDeployer; import javax.swing.*; import java.awt.*; @@ -29,15 +29,15 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * Panel displaying the settings of the Subsonic service. + * Panel displaying the settings of the Libresonic service. * * @author Sindre Mehus */ -public class SettingsPanel extends JPanel implements SubsonicListener { +public class SettingsPanel extends JPanel implements LibresonicListener { private static final Format INTEGER_FORMAT = new DecimalFormat("0", DecimalFormatSymbols.getInstance(Locale.UK)); - private final SubsonicAgent subsonicAgent; + private final LibresonicAgent libresonicAgent; private JFormattedTextField portTextField; private JCheckBox httpsPortCheckBox; private JFormattedTextField httpsPortTextField; @@ -45,14 +45,14 @@ public class SettingsPanel extends JPanel implements SubsonicListener { private JFormattedTextField memoryTextField; private JButton defaultButton; private JButton saveButton; - public SettingsPanel(SubsonicAgent subsonicAgent) { - this.subsonicAgent = subsonicAgent; + public SettingsPanel(LibresonicAgent libresonicAgent) { + this.libresonicAgent = libresonicAgent; createComponents(); configureComponents(); layoutComponents(); addBehaviour(); readValues(); - subsonicAgent.addListener(this); + libresonicAgent.addListener(this); } public void readValues() { @@ -68,21 +68,21 @@ public class SettingsPanel extends JPanel implements SubsonicListener { private int getHttpsPortFromOptionsFile() { try { - String s = grep("-Dsubsonic.httpsPort=(\\d+)"); + String s = grep("-Dlibresonic.httpsPort=(\\d+)"); return Integer.parseInt(s); } catch (Exception x) { x.printStackTrace(); - return SubsonicDeployer.DEFAULT_HTTPS_PORT; + return LibresonicDeployer.DEFAULT_HTTPS_PORT; } } private int getPortFromOptionsFile() { try { - String s = grep("-Dsubsonic.port=(\\d+)"); + String s = grep("-Dlibresonic.port=(\\d+)"); return Integer.parseInt(s); } catch (Exception x) { x.printStackTrace(); - return SubsonicDeployer.DEFAULT_PORT; + return LibresonicDeployer.DEFAULT_PORT; } } @@ -92,20 +92,20 @@ public class SettingsPanel extends JPanel implements SubsonicListener { return Integer.parseInt(s); } catch (Exception x) { x.printStackTrace(); - return SubsonicDeployer.DEFAULT_MEMORY_LIMIT; + return LibresonicDeployer.DEFAULT_MEMORY_LIMIT; } } private String getContextPathFromOptionsFile() { try { - String s = grep("-Dsubsonic.contextPath=(.*)"); + String s = grep("-Dlibresonic.contextPath=(.*)"); if (s == null) { throw new NullPointerException(); } return s; } catch (Exception x) { x.printStackTrace(); - return SubsonicDeployer.DEFAULT_CONTEXT_PATH; + return LibresonicDeployer.DEFAULT_CONTEXT_PATH; } } @@ -122,7 +122,7 @@ public class SettingsPanel extends JPanel implements SubsonicListener { private void configureComponents() { contextPathComboBox.setEditable(true); contextPathComboBox.addItem("/"); - contextPathComboBox.addItem("/subsonic"); + contextPathComboBox.addItem("/libresonic"); contextPathComboBox.addItem("/music"); } @@ -145,7 +145,7 @@ public class SettingsPanel extends JPanel implements SubsonicListener { saveButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { - subsonicAgent.checkElevation("-settings", getMemoryLimit() + "," + getPort() + "," + getHttpsPort() + "," + getContextPath()); + libresonicAgent.checkElevation("-settings", getMemoryLimit() + "," + getPort() + "," + getHttpsPort() + "," + getContextPath()); saveSettings(getMemoryLimit(), getPort(), getHttpsPort(), getContextPath()); } catch (Exception x) { JOptionPane.showMessageDialog(SettingsPanel.this, x.getMessage(), "Error", JOptionPane.WARNING_MESSAGE); @@ -155,12 +155,12 @@ public class SettingsPanel extends JPanel implements SubsonicListener { defaultButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - portTextField.setValue(SubsonicDeployer.DEFAULT_PORT); + portTextField.setValue(LibresonicDeployer.DEFAULT_PORT); httpsPortTextField.setValue(4443); httpsPortTextField.setEnabled(false); httpsPortCheckBox.setSelected(false); - memoryTextField.setValue(SubsonicDeployer.DEFAULT_MEMORY_LIMIT); - contextPathComboBox.setSelectedItem(SubsonicDeployer.DEFAULT_CONTEXT_PATH); + memoryTextField.setValue(LibresonicDeployer.DEFAULT_MEMORY_LIMIT); + contextPathComboBox.setSelectedItem(LibresonicDeployer.DEFAULT_CONTEXT_PATH); } }); @@ -237,14 +237,14 @@ public class SettingsPanel extends JPanel implements SubsonicListener { if (line.startsWith("-Xmx")) { newLines.add("-Xmx" + memoryLimit + "m"); memoryLimitAdded = true; - } else if (line.startsWith("-Dsubsonic.port=")) { - newLines.add("-Dsubsonic.port=" + port); + } else if (line.startsWith("-Dlibresonic.port=")) { + newLines.add("-Dlibresonic.port=" + port); portAdded = true; - } else if (line.startsWith("-Dsubsonic.httpsPort=")) { - newLines.add("-Dsubsonic.httpsPort=" + httpsPort); + } else if (line.startsWith("-Dlibresonic.httpsPort=")) { + newLines.add("-Dlibresonic.httpsPort=" + httpsPort); httpsPortAdded = true; - } else if (line.startsWith("-Dsubsonic.contextPath=")) { - newLines.add("-Dsubsonic.contextPath=" + contextPath); + } else if (line.startsWith("-Dlibresonic.contextPath=")) { + newLines.add("-Dlibresonic.contextPath=" + contextPath); contextPathAdded = true; } else { newLines.add(line); @@ -255,25 +255,25 @@ public class SettingsPanel extends JPanel implements SubsonicListener { newLines.add("-Xmx" + memoryLimit + "m"); } if (!portAdded) { - newLines.add("-Dsubsonic.port=" + port); + newLines.add("-Dlibresonic.port=" + port); } if (!httpsPortAdded) { - newLines.add("-Dsubsonic.httpsPort=" + httpsPort); + newLines.add("-Dlibresonic.httpsPort=" + httpsPort); } if (!contextPathAdded) { - newLines.add("-Dsubsonic.contextPath=" + contextPath); + newLines.add("-Dlibresonic.contextPath=" + contextPath); } writeLines(file, newLines); JOptionPane.showMessageDialog(SettingsPanel.this, - "Please restart Subsonic for the new settings to take effect.", + "Please restart Libresonic for the new settings to take effect.", "Settings changed", JOptionPane.INFORMATION_MESSAGE); } private File getOptionsFile() throws SettingsException { - File file = new File("subsonic-service.exe.vmoptions"); + File file = new File("libresonic-service.exe.vmoptions"); if (!file.isFile() || !file.exists()) { throw new SettingsException("File " + file.getAbsolutePath() + " not found."); } diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/StatusPanel.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/StatusPanel.java similarity index 83% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/StatusPanel.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/agent/StatusPanel.java index 91625f19..f46769ee 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/StatusPanel.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/StatusPanel.java @@ -1,10 +1,10 @@ -package net.sourceforge.subsonic.booter.agent; +package org.libresonic.player.booter.agent; import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.factories.Borders; import com.jgoodies.forms.factories.ButtonBarFactory; import com.jgoodies.forms.layout.FormLayout; -import net.sourceforge.subsonic.booter.deployer.DeploymentStatus; +import org.libresonic.player.booter.deployer.DeploymentStatus; import javax.swing.*; import java.awt.*; @@ -14,15 +14,15 @@ import java.text.DateFormat; import java.util.Locale; /** - * Panel displaying the status of the Subsonic service. + * Panel displaying the status of the Libresonic service. * * @author Sindre Mehus */ -public class StatusPanel extends JPanel implements SubsonicListener { +public class StatusPanel extends JPanel implements LibresonicListener { private static final DateFormat DATE_FORMAT = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US); - private final SubsonicAgent subsonicAgent; + private final LibresonicAgent libresonicAgent; private JTextField statusTextField; private JTextField startedTextField; @@ -32,13 +32,13 @@ public class StatusPanel extends JPanel implements SubsonicListener { private JButton stopButton; private JButton urlButton; - public StatusPanel(SubsonicAgent subsonicAgent) { - this.subsonicAgent = subsonicAgent; + public StatusPanel(LibresonicAgent libresonicAgent) { + this.libresonicAgent = libresonicAgent; createComponents(); configureComponents(); layoutComponents(); addBehaviour(); - subsonicAgent.addListener(this); + libresonicAgent.addListener(this); } private void createComponents() { @@ -86,19 +86,19 @@ public class StatusPanel extends JPanel implements SubsonicListener { private void addBehaviour() { urlButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - subsonicAgent.openBrowser(); + libresonicAgent.openBrowser(); } }); startButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - subsonicAgent.checkElevation("-start"); - subsonicAgent.startOrStopService(true); + libresonicAgent.checkElevation("-start"); + libresonicAgent.startOrStopService(true); } }); stopButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - subsonicAgent.checkElevation("-stop"); - subsonicAgent.startOrStopService(false); + libresonicAgent.checkElevation("-stop"); + libresonicAgent.startOrStopService(false); } }); } diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/TrayController.java similarity index 72% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/agent/TrayController.java index 2be918e8..2306f8f4 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/agent/TrayController.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic.booter.agent; +package org.libresonic.player.booter.agent; import java.awt.Image; import java.awt.MenuItem; @@ -12,16 +12,16 @@ import java.net.URL; import javax.swing.AbstractAction; import javax.swing.Action; -import net.sourceforge.subsonic.booter.deployer.DeploymentStatus; +import org.libresonic.player.booter.deployer.DeploymentStatus; /** - * Controls the Subsonic tray icon. + * Controls the Libresonic tray icon. * * @author Sindre Mehus */ -public class TrayController implements SubsonicListener { +public class TrayController implements LibresonicListener { - private final SubsonicAgent subsonicAgent; + private final LibresonicAgent libresonicAgent; private TrayIcon trayIcon; private Action openAction; @@ -30,48 +30,48 @@ public class TrayController implements SubsonicListener { private Image startedImage; private Image stoppedImage; - public TrayController(SubsonicAgent subsonicAgent) { - this.subsonicAgent = subsonicAgent; + public TrayController(LibresonicAgent libresonicAgent) { + this.libresonicAgent = libresonicAgent; try { createActions(); createComponents(); addBehaviour(); installComponents(); - subsonicAgent.addListener(this); + libresonicAgent.addListener(this); } catch (Throwable x) { System.err.println("Disabling tray support."); } } public void showMessage() { - trayIcon.displayMessage("Subsonic", "Subsonic is now running. Click this balloon to get started.", + trayIcon.displayMessage("Libresonic", "Libresonic is now running. Click this balloon to get started.", TrayIcon.MessageType.INFO); } private void createActions() { - openAction = new AbstractAction("Open Subsonic in Browser") { + openAction = new AbstractAction("Open Libresonic in Browser") { public void actionPerformed(ActionEvent e) { - subsonicAgent.openBrowser(); + libresonicAgent.openBrowser(); } }; - controlPanelAction = new AbstractAction("Subsonic Control Panel") { + controlPanelAction = new AbstractAction("Libresonic Control Panel") { public void actionPerformed(ActionEvent e) { - subsonicAgent.showStatusPanel(); + libresonicAgent.showStatusPanel(); } }; hideAction = new AbstractAction("Hide Tray Icon") { public void actionPerformed(ActionEvent e) { - subsonicAgent.exit(); + libresonicAgent.exit(); } }; } private void createComponents() { - startedImage = createImage("/images/subsonic-started-16.png"); - stoppedImage = createImage("/images/subsonic-stopped-16.png"); + startedImage = createImage("/images/libresonic-started-16.png"); + stoppedImage = createImage("/images/libresonic-stopped-16.png"); PopupMenu menu = new PopupMenu(); menu.add(createMenuItem(openAction)); @@ -79,7 +79,7 @@ public class TrayController implements SubsonicListener { menu.addSeparator(); menu.add(createMenuItem(hideAction)); - trayIcon = new TrayIcon(stoppedImage, "Subsonic Music Streamer", menu); + trayIcon = new TrayIcon(stoppedImage, "Libresonic Music Streamer", menu); } private Image createImage(String resourceName) { diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/DeploymentStatus.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/DeploymentStatus.java similarity index 94% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/DeploymentStatus.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/DeploymentStatus.java index 3b237dc1..40bd9fbd 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/DeploymentStatus.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/DeploymentStatus.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic.booter.deployer; +package org.libresonic.player.booter.deployer; import java.util.Date; import java.io.Serializable; diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/SubsonicDeployer.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/LibresonicDeployer.java similarity index 76% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/SubsonicDeployer.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/LibresonicDeployer.java index 779d5073..829116de 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/SubsonicDeployer.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/LibresonicDeployer.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic.booter.deployer; +package org.libresonic.player.booter.deployer; import java.io.File; import java.io.FileInputStream; @@ -20,42 +20,42 @@ import org.mortbay.jetty.security.SslSocketConnector; import org.mortbay.jetty.webapp.WebAppContext; /** - * Responsible for deploying the Subsonic web app in + * Responsible for deploying the Libresonic web app in * the embedded Jetty container. *

* The following system properties may be used to customize the behaviour: *

    - *
  • subsonic.contextPath - The context path at which Subsonic is deployed. Default "/".
  • - *
  • subsonic.port - The port Subsonic will listen to. Default 4040.
  • - *
  • subsonic.httpsPort - The port Subsonic will listen to for HTTPS. Default 0, which disables HTTPS.
  • - *
  • subsonic.war - Subsonic WAR file, or exploded directory. Default "subsonic.war".
  • - *
  • subsonic.createLinkFile - If set to "true", a Subsonic.url file is created in the working directory.
  • - *
  • subsonic.ssl.keystore - Path to an alternate SSL keystore.
  • - *
  • subsonic.ssl.password - Password of the alternate SSL keystore.
  • + *
  • libresonic.contextPath - The context path at which Libresonic is deployed. Default "/".
  • + *
  • libresonic.port - The port Libresonic will listen to. Default 4040.
  • + *
  • libresonic.httpsPort - The port Libresonic will listen to for HTTPS. Default 0, which disables HTTPS.
  • + *
  • libresonic.war - Libresonic WAR file, or exploded directory. Default "libresonic.war".
  • + *
  • libresonic.createLinkFile - If set to "true", a Libresonic.url file is created in the working directory.
  • + *
  • libresonic.ssl.keystore - Path to an alternate SSL keystore.
  • + *
  • libresonic.ssl.password - Password of the alternate SSL keystore.
  • *
* * @author Sindre Mehus */ -public class SubsonicDeployer implements SubsonicDeployerService { +public class LibresonicDeployer implements LibresonicDeployerService { public static final String DEFAULT_HOST = "0.0.0.0"; public static final int DEFAULT_PORT = 4040; public static final int DEFAULT_HTTPS_PORT = 0; public static final int DEFAULT_MEMORY_LIMIT = 150; public static final String DEFAULT_CONTEXT_PATH = "/"; - public static final String DEFAULT_WAR = "subsonic.war"; + public static final String DEFAULT_WAR = "libresonic.war"; private static final int MAX_IDLE_TIME_MILLIS = 7 * 24 * 60 * 60 * 1000; // One week. private static final int HEADER_BUFFER_SIZE = 64 * 1024; - // Subsonic home directory. - private static final File SUBSONIC_HOME_WINDOWS = new File("c:/subsonic"); - private static final File SUBSONIC_HOME_OTHER = new File("/var/subsonic"); + // Libresonic home directory. + private static final File LIBRESONIC_HOME_WINDOWS = new File("c:/libresonic"); + private static final File LIBRESONIC_HOME_OTHER = new File("/var/libresonic"); private Throwable exception; - private File subsonicHome; + private File libresonicHome; private final Date startTime; - public SubsonicDeployer() { + public LibresonicDeployer() { // Enable shutdown hook for Ehcache. System.setProperty("net.sf.ehcache.enableShutdownHook", "true"); @@ -66,16 +66,16 @@ public class SubsonicDeployer implements SubsonicDeployerService { } private void createLinkFile() { - if ("true".equals(System.getProperty("subsonic.createLinkFile"))) { + if ("true".equals(System.getProperty("libresonic.createLinkFile"))) { Writer writer = null; try { - writer = new FileWriter("subsonic.url"); + writer = new FileWriter("libresonic.url"); writer.append("[InternetShortcut]"); writer.append(System.getProperty("line.separator")); writer.append("URL=").append(getUrl()); writer.flush(); } catch (Throwable x) { - System.err.println("Failed to create subsonic.url."); + System.err.println("Failed to create libresonic.url."); x.printStackTrace(); } finally { if (writer != null) { @@ -108,8 +108,8 @@ public class SubsonicDeployer implements SubsonicDeployerService { sslConnector.setHeaderBufferSize(HEADER_BUFFER_SIZE); sslConnector.setHost(getHost()); sslConnector.setPort(getHttpsPort()); - sslConnector.setKeystore(System.getProperty("subsonic.ssl.keystore", getClass().getResource("/subsonic.keystore").toExternalForm())); - sslConnector.setPassword(System.getProperty("subsonic.ssl.password", "subsonic")); + sslConnector.setKeystore(System.getProperty("libresonic.ssl.keystore", getClass().getResource("/libresonic.keystore").toExternalForm())); + sslConnector.setPassword(System.getProperty("libresonic.ssl.password", "libresonic")); server.addConnector(sslConnector); } @@ -134,7 +134,7 @@ public class SubsonicDeployer implements SubsonicDeployerService { server.addHandler(context); server.start(); - System.err.println("Subsonic running on: " + getUrl()); + System.err.println("Libresonic running on: " + getUrl()); if (isHttpsEnabled()) { System.err.println(" and: " + getHttpsUrl()); } @@ -155,8 +155,8 @@ public class SubsonicDeployer implements SubsonicDeployerService { } private File getJettyDirectory() { - File dir = new File(getSubsonicHome(), "jetty"); - String buildNumber = getSubsonicBuildNumber(); + File dir = new File(getLibresonicHome(), "jetty"); + String buildNumber = getLibresonicBuildNumber(); if (buildNumber != null) { dir = new File(dir, buildNumber); } @@ -169,7 +169,7 @@ public class SubsonicDeployer implements SubsonicDeployerService { return dir; } - private String getSubsonicBuildNumber() { + private String getLibresonicBuildNumber() { File war = new File(getWar()); InputStream in = null; try { @@ -194,12 +194,12 @@ public class SubsonicDeployer implements SubsonicDeployerService { } private String getContextPath() { - return System.getProperty("subsonic.contextPath", DEFAULT_CONTEXT_PATH); + return System.getProperty("libresonic.contextPath", DEFAULT_CONTEXT_PATH); } private String getWar() { - String war = System.getProperty("subsonic.war"); + String war = System.getProperty("libresonic.war"); if (war == null) { war = DEFAULT_WAR; } @@ -215,19 +215,19 @@ public class SubsonicDeployer implements SubsonicDeployerService { } private String getHost() { - return System.getProperty("subsonic.host", DEFAULT_HOST); + return System.getProperty("libresonic.host", DEFAULT_HOST); } private int getPort() { int port = DEFAULT_PORT; - String portString = System.getProperty("subsonic.port"); + String portString = System.getProperty("libresonic.port"); if (portString != null) { port = Integer.parseInt(portString); } // Also set it so that the webapp can read it. - System.setProperty("subsonic.port", String.valueOf(port)); + System.setProperty("libresonic.port", String.valueOf(port)); return port; } @@ -235,13 +235,13 @@ public class SubsonicDeployer implements SubsonicDeployerService { private int getHttpsPort() { int port = DEFAULT_HTTPS_PORT; - String portString = System.getProperty("subsonic.httpsPort"); + String portString = System.getProperty("libresonic.httpsPort"); if (portString != null) { port = Integer.parseInt(portString); } // Also set it so that the webapp can read it. - System.setProperty("subsonic.httpsPort", String.valueOf(port)); + System.setProperty("libresonic.httpsPort", String.valueOf(port)); return port; } @@ -293,40 +293,40 @@ public class SubsonicDeployer implements SubsonicDeployerService { } /** - * Returns the Subsonic home directory. + * Returns the Libresonic home directory. * - * @return The Subsonic home directory, if it exists. + * @return The Libresonic home directory, if it exists. * @throws RuntimeException If directory doesn't exist. */ - private File getSubsonicHome() { + private File getLibresonicHome() { - if (subsonicHome != null) { - return subsonicHome; + if (libresonicHome != null) { + return libresonicHome; } File home; - String overrideHome = System.getProperty("subsonic.home"); + String overrideHome = System.getProperty("libresonic.home"); if (overrideHome != null) { home = new File(overrideHome); } else { boolean isWindows = System.getProperty("os.name", "Windows").toLowerCase().startsWith("windows"); - home = isWindows ? SUBSONIC_HOME_WINDOWS : SUBSONIC_HOME_OTHER; + home = isWindows ? LIBRESONIC_HOME_WINDOWS : LIBRESONIC_HOME_OTHER; } // Attempt to create home directory if it doesn't exist. if (!home.exists() || !home.isDirectory()) { boolean success = home.mkdirs(); if (success) { - subsonicHome = home; + libresonicHome = home; } else { String message = "The directory " + home + " does not exist. Please create it and make it writable. " + - "(You can override the directory location by specifying -Dsubsonic.home=... when " + + "(You can override the directory location by specifying -Dlibresonic.home=... when " + "starting the servlet container.)"; System.err.println("ERROR: " + message); } } else { - subsonicHome = home; + libresonicHome = home; } return home; diff --git a/libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/LibresonicDeployerService.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/LibresonicDeployerService.java new file mode 100644 index 00000000..b480e783 --- /dev/null +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/deployer/LibresonicDeployerService.java @@ -0,0 +1,17 @@ +package org.libresonic.player.booter.deployer; + +/** + * RMI interface implemented by the Libresonic deployer and used by the agent. + * + * @author Sindre Mehus + */ +public interface LibresonicDeployerService { + + /** + * Returns information about the Libresonic deployment, such + * as URL, memory consumption, start time etc. + * + * @return Deployment information. + */ + DeploymentStatus getDeploymentInfo(); +} diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/SubsonicController.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/mac/LibresonicController.java similarity index 73% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/SubsonicController.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/mac/LibresonicController.java index 65731f31..0d97bf1d 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/SubsonicController.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/mac/LibresonicController.java @@ -1,6 +1,6 @@ -package net.sourceforge.subsonic.booter.mac; +package org.libresonic.player.booter.mac; -import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService; +import org.libresonic.player.booter.deployer.LibresonicDeployerService; import javax.swing.*; import java.awt.*; @@ -13,15 +13,15 @@ import java.net.URI; * * @author Sindre Mehus */ -public class SubsonicController { +public class LibresonicController { - private final SubsonicDeployerService deployer; - private final SubsonicFrame frame; + private final LibresonicDeployerService deployer; + private final LibresonicFrame frame; private Action openAction; private Action controlPanelAction; private Action quitAction; - public SubsonicController(SubsonicDeployerService deployer, SubsonicFrame frame) { + public LibresonicController(LibresonicDeployerService deployer, LibresonicFrame frame) { this.deployer = deployer; this.frame = frame; createActions(); @@ -29,20 +29,20 @@ public class SubsonicController { } private void createActions() { - openAction = new AbstractAction("Open Subsonic Web Page") { + openAction = new AbstractAction("Open Libresonic Web Page") { public void actionPerformed(ActionEvent e) { openBrowser(); } }; - controlPanelAction = new AbstractAction("Subsonic Control Panel") { + controlPanelAction = new AbstractAction("Libresonic Control Panel") { public void actionPerformed(ActionEvent e) { frame.setActive(false); frame.setActive(true); } }; - quitAction = new AbstractAction("Quit Subsonic") { + quitAction = new AbstractAction("Quit Libresonic") { public void actionPerformed(ActionEvent e) { System.exit(0); } @@ -56,9 +56,9 @@ public class SubsonicController { menu.addSeparator(); menu.add(createMenuItem(quitAction)); - URL url = getClass().getResource("/images/subsonic-21.png"); + URL url = getClass().getResource("/images/libresonic-21.png"); Image image = Toolkit.getDefaultToolkit().createImage(url); - TrayIcon trayIcon = new TrayIcon(image, "Subsonic Music Streamer", menu); + TrayIcon trayIcon = new TrayIcon(image, "Libresonic Music Streamer", menu); trayIcon.setImageAutoSize(false); try { diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/SubsonicFrame.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/mac/LibresonicFrame.java similarity index 80% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/SubsonicFrame.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/mac/LibresonicFrame.java index 2a492e45..e0f34cec 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/SubsonicFrame.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/mac/LibresonicFrame.java @@ -1,9 +1,9 @@ -package net.sourceforge.subsonic.booter.mac; +package org.libresonic.player.booter.mac; import com.jgoodies.forms.factories.Borders; import com.jgoodies.forms.factories.ButtonBarFactory; -import net.sourceforge.subsonic.booter.Main; -import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService; +import org.libresonic.player.booter.Main; +import org.libresonic.player.booter.deployer.LibresonicDeployerService; import javax.swing.*; import java.awt.*; @@ -12,25 +12,25 @@ import java.awt.event.ActionListener; import java.net.URL; /** - * Frame with Subsonic status. Used on Mac installs. + * Frame with Libresonic status. Used on Mac installs. * * @author Sindre Mehus */ -public class SubsonicFrame extends JFrame { +public class LibresonicFrame extends JFrame { - private final SubsonicDeployerService deployer; + private final LibresonicDeployerService deployer; private StatusPanel statusPanel; private JButton hideButton; private JButton exitButton; - public SubsonicFrame(SubsonicDeployerService deployer) { - super("Subsonic"); + public LibresonicFrame(LibresonicDeployerService deployer) { + super("Libresonic"); this.deployer = deployer; createComponents(); layoutComponents(); addBehaviour(); - URL url = Main.class.getResource("/images/subsonic-512.png"); + URL url = Main.class.getResource("/images/libresonic-512.png"); setIconImage(Toolkit.getDefaultToolkit().createImage(url)); } diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/StatusPanel.java b/libresonic-booter/src/main/java/org/libresonic/player/booter/mac/StatusPanel.java similarity index 90% rename from subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/StatusPanel.java rename to libresonic-booter/src/main/java/org/libresonic/player/booter/mac/StatusPanel.java index f20671f8..d64965bd 100644 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/mac/StatusPanel.java +++ b/libresonic-booter/src/main/java/org/libresonic/player/booter/mac/StatusPanel.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic.booter.mac; +package org.libresonic.player.booter.mac; import java.awt.Color; import java.awt.Desktop; @@ -19,11 +19,11 @@ import com.jgoodies.forms.builder.DefaultFormBuilder; import com.jgoodies.forms.factories.Borders; import com.jgoodies.forms.layout.FormLayout; -import net.sourceforge.subsonic.booter.deployer.DeploymentStatus; -import net.sourceforge.subsonic.booter.deployer.SubsonicDeployerService; +import org.libresonic.player.booter.deployer.DeploymentStatus; +import org.libresonic.player.booter.deployer.LibresonicDeployerService; /** - * Panel displaying the status of the Subsonic service. + * Panel displaying the status of the Libresonic service. * * @author Sindre Mehus */ @@ -31,14 +31,14 @@ public class StatusPanel extends JPanel { private static final DateFormat DATE_FORMAT = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US); - private final SubsonicDeployerService deployer; + private final LibresonicDeployerService deployer; private JTextField startedTextField; private JTextField memoryTextField; private JTextArea errorTextField; private JButton urlButton; - public StatusPanel(SubsonicDeployerService deployer) { + public StatusPanel(LibresonicDeployerService deployer) { this.deployer = deployer; createComponents(); configureComponents(); diff --git a/libresonic-booter/src/main/resources/META-INF/MANIFEST.MF b/libresonic-booter/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 00000000..76e121cd --- /dev/null +++ b/libresonic-booter/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 +Main-Class: org.libresonic.player.booter.Main diff --git a/subsonic-booter/src/main/resources/applicationContext-agent.xml b/libresonic-booter/src/main/resources/applicationContext-agent.xml similarity index 65% rename from subsonic-booter/src/main/resources/applicationContext-agent.xml rename to libresonic-booter/src/main/resources/applicationContext-agent.xml index a08e1111..2b2e4856 100644 --- a/subsonic-booter/src/main/resources/applicationContext-agent.xml +++ b/libresonic-booter/src/main/resources/applicationContext-agent.xml @@ -5,28 +5,28 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - - + + - + - + - + - + diff --git a/subsonic-booter/src/main/resources/applicationContext-deployer.xml b/libresonic-booter/src/main/resources/applicationContext-deployer.xml similarity index 63% rename from subsonic-booter/src/main/resources/applicationContext-deployer.xml rename to libresonic-booter/src/main/resources/applicationContext-deployer.xml index 26dca501..07932bb8 100644 --- a/subsonic-booter/src/main/resources/applicationContext-deployer.xml +++ b/libresonic-booter/src/main/resources/applicationContext-deployer.xml @@ -4,12 +4,12 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - + - + - + \ No newline at end of file diff --git a/subsonic-booter/src/main/resources/applicationContext-mac.xml b/libresonic-booter/src/main/resources/applicationContext-mac.xml similarity index 62% rename from subsonic-booter/src/main/resources/applicationContext-mac.xml rename to libresonic-booter/src/main/resources/applicationContext-mac.xml index 1ca20178..629d9632 100644 --- a/subsonic-booter/src/main/resources/applicationContext-mac.xml +++ b/libresonic-booter/src/main/resources/applicationContext-mac.xml @@ -4,13 +4,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - + - + - + diff --git a/subsonic-booter/src/main/resources/images/subsonic-16.png b/libresonic-booter/src/main/resources/images/libresonic-16.png similarity index 100% rename from subsonic-booter/src/main/resources/images/subsonic-16.png rename to libresonic-booter/src/main/resources/images/libresonic-16.png diff --git a/subsonic-booter/src/main/resources/images/subsonic-21.png b/libresonic-booter/src/main/resources/images/libresonic-21.png similarity index 100% rename from subsonic-booter/src/main/resources/images/subsonic-21.png rename to libresonic-booter/src/main/resources/images/libresonic-21.png diff --git a/subsonic-booter/src/main/resources/images/subsonic-32.png b/libresonic-booter/src/main/resources/images/libresonic-32.png similarity index 100% rename from subsonic-booter/src/main/resources/images/subsonic-32.png rename to libresonic-booter/src/main/resources/images/libresonic-32.png diff --git a/subsonic-booter/src/main/resources/images/subsonic-512.png b/libresonic-booter/src/main/resources/images/libresonic-512.png similarity index 100% rename from subsonic-booter/src/main/resources/images/subsonic-512.png rename to libresonic-booter/src/main/resources/images/libresonic-512.png diff --git a/subsonic-booter/src/main/resources/images/subsonic-started-16.png b/libresonic-booter/src/main/resources/images/libresonic-started-16.png similarity index 100% rename from subsonic-booter/src/main/resources/images/subsonic-started-16.png rename to libresonic-booter/src/main/resources/images/libresonic-started-16.png diff --git a/subsonic-booter/src/main/resources/images/subsonic-stopped-16.png b/libresonic-booter/src/main/resources/images/libresonic-stopped-16.png similarity index 100% rename from subsonic-booter/src/main/resources/images/subsonic-stopped-16.png rename to libresonic-booter/src/main/resources/images/libresonic-stopped-16.png diff --git a/subsonic-booter/src/main/resources/subsonic.keystore b/libresonic-booter/src/main/resources/libresonic.keystore similarity index 82% rename from subsonic-booter/src/main/resources/subsonic.keystore rename to libresonic-booter/src/main/resources/libresonic.keystore index 54e1589c..95861d24 100644 Binary files a/subsonic-booter/src/main/resources/subsonic.keystore and b/libresonic-booter/src/main/resources/libresonic.keystore differ diff --git a/subsonic-booter/src/main/resources/web-jetty.xml b/libresonic-booter/src/main/resources/web-jetty.xml similarity index 78% rename from subsonic-booter/src/main/resources/web-jetty.xml rename to libresonic-booter/src/main/resources/web-jetty.xml index 0282119f..0ea23153 100644 --- a/subsonic-booter/src/main/resources/web-jetty.xml +++ b/libresonic-booter/src/main/resources/web-jetty.xml @@ -1,24 +1,24 @@ - diff --git a/libresonic-booter/src/main/script/libresonic.bat b/libresonic-booter/src/main/script/libresonic.bat new file mode 100644 index 00000000..68a89009 --- /dev/null +++ b/libresonic-booter/src/main/script/libresonic.bat @@ -0,0 +1,24 @@ +@echo off + +REM The directory where Libresonic will create files. Make sure it is writable. +set LIBRESONIC_HOME=c:\libresonic + +REM The host name or IP address on which to bind Libresonic. Only relevant if you have +REM multiple network interfaces and want to make Libresonic available on only one of them. +REM The default value 0.0.0.0 will bind Libresonic to all available network interfaces. +set LIBRESONIC_HOST=0.0.0.0 + +REM The port on which Libresonic will listen for incoming HTTP traffic. +set LIBRESONIC_PORT=4040 + +REM The port on which Libresonic will listen for incoming HTTPS traffic (0 to disable). +set LIBRESONIC_HTTPS_PORT=0 + +REM The context path (i.e., the last part of the Libresonic URL). Typically "/" or "/libresonic". +set LIBRESONIC_CONTEXT_PATH=/ + +REM The memory limit (max Java heap size) in megabytes. +set MAX_MEMORY=150 + +java -Xmx%MAX_MEMORY%m -Dlibresonic.home=%LIBRESONIC_HOME% -Dlibresonic.host=%LIBRESONIC_HOST% -Dlibresonic.port=%LIBRESONIC_PORT% -Dlibresonic.httpsPort=%LIBRESONIC_HTTPS_PORT% -Dlibresonic.contextPath=%LIBRESONIC_CONTEXT_PATH% -jar libresonic-booter-jar-with-dependencies.jar + diff --git a/libresonic-booter/src/main/script/libresonic.sh b/libresonic-booter/src/main/script/libresonic.sh new file mode 100755 index 00000000..2d058beb --- /dev/null +++ b/libresonic-booter/src/main/script/libresonic.sh @@ -0,0 +1,134 @@ +#!/bin/sh + +################################################################################### +# Shell script for starting Libresonic. See http://libresonic.org. +# +# Author: Sindre Mehus +################################################################################### + +LIBRESONIC_HOME=/var/libresonic +LIBRESONIC_HOST=0.0.0.0 +LIBRESONIC_PORT=4040 +LIBRESONIC_HTTPS_PORT=0 +LIBRESONIC_CONTEXT_PATH=/ +LIBRESONIC_MAX_MEMORY=150 +LIBRESONIC_PIDFILE= +LIBRESONIC_DEFAULT_MUSIC_FOLDER=/var/music +LIBRESONIC_DEFAULT_PODCAST_FOLDER=/var/music/Podcast +LIBRESONIC_DEFAULT_PLAYLIST_FOLDER=/var/playlists + +quiet=0 + +usage() { + echo "Usage: libresonic.sh [options]" + echo " --help This small usage guide." + echo " --home=DIR The directory where Libresonic will create files." + echo " Make sure it is writable. Default: /var/libresonic" + echo " --host=HOST The host name or IP address on which to bind Libresonic." + echo " Only relevant if you have multiple network interfaces and want" + echo " to make Libresonic available on only one of them. The default value" + echo " will bind Libresonic to all available network interfaces. Default: 0.0.0.0" + echo " --port=PORT The port on which Libresonic will listen for" + echo " incoming HTTP traffic. Default: 4040" + echo " --https-port=PORT The port on which Libresonic will listen for" + echo " incoming HTTPS traffic. Default: 0 (disabled)" + echo " --context-path=PATH The context path, i.e., the last part of the Libresonic" + echo " URL. Typically '/' or '/libresonic'. Default '/'" + echo " --max-memory=MB The memory limit (max Java heap size) in megabytes." + echo " Default: 100" + echo " --pidfile=PIDFILE Write PID to this file. Default not created." + echo " --quiet Don't print anything to standard out. Default false." + echo " --default-music-folder=DIR Configure Libresonic to use this folder for music. This option " + echo " only has effect the first time Libresonic is started. Default '/var/music'" + echo " --default-podcast-folder=DIR Configure Libresonic to use this folder for Podcasts. This option " + echo " only has effect the first time Libresonic is started. Default '/var/music/Podcast'" + echo " --default-playlist-folder=DIR Configure Libresonic to use this folder for playlists. This option " + echo " only has effect the first time Libresonic is started. Default '/var/playlists'" + exit 1 +} + +# Parse arguments. +while [ $# -ge 1 ]; do + case $1 in + --help) + usage + ;; + --home=?*) + LIBRESONIC_HOME=${1#--home=} + ;; + --host=?*) + LIBRESONIC_HOST=${1#--host=} + ;; + --port=?*) + LIBRESONIC_PORT=${1#--port=} + ;; + --https-port=?*) + LIBRESONIC_HTTPS_PORT=${1#--https-port=} + ;; + --context-path=?*) + LIBRESONIC_CONTEXT_PATH=${1#--context-path=} + ;; + --max-memory=?*) + LIBRESONIC_MAX_MEMORY=${1#--max-memory=} + ;; + --pidfile=?*) + LIBRESONIC_PIDFILE=${1#--pidfile=} + ;; + --quiet) + quiet=1 + ;; + --default-music-folder=?*) + LIBRESONIC_DEFAULT_MUSIC_FOLDER=${1#--default-music-folder=} + ;; + --default-podcast-folder=?*) + LIBRESONIC_DEFAULT_PODCAST_FOLDER=${1#--default-podcast-folder=} + ;; + --default-playlist-folder=?*) + LIBRESONIC_DEFAULT_PLAYLIST_FOLDER=${1#--default-playlist-folder=} + ;; + *) + usage + ;; + esac + shift +done + +# Use JAVA_HOME if set, otherwise assume java is in the path. +JAVA=java +if [ -e "${JAVA_HOME}" ] + then + JAVA=${JAVA_HOME}/bin/java +fi + +# Create Libresonic home directory. +mkdir -p ${LIBRESONIC_HOME} +LOG=${LIBRESONIC_HOME}/libresonic_sh.log +rm -f ${LOG} + +cd $(dirname $0) +if [ -L $0 ] && ([ -e /bin/readlink ] || [ -e /usr/bin/readlink ]); then + cd $(dirname $(readlink $0)) +fi + +${JAVA} -Xmx${LIBRESONIC_MAX_MEMORY}m \ + -Dlibresonic.home=${LIBRESONIC_HOME} \ + -Dlibresonic.host=${LIBRESONIC_HOST} \ + -Dlibresonic.port=${LIBRESONIC_PORT} \ + -Dlibresonic.httpsPort=${LIBRESONIC_HTTPS_PORT} \ + -Dlibresonic.contextPath=${LIBRESONIC_CONTEXT_PATH} \ + -Dlibresonic.defaultMusicFolder=${LIBRESONIC_DEFAULT_MUSIC_FOLDER} \ + -Dlibresonic.defaultPodcastFolder=${LIBRESONIC_DEFAULT_PODCAST_FOLDER} \ + -Dlibresonic.defaultPlaylistFolder=${LIBRESONIC_DEFAULT_PLAYLIST_FOLDER} \ + -Djava.awt.headless=true \ + -verbose:gc \ + -jar libresonic-booter-jar-with-dependencies.jar > ${LOG} 2>&1 & + +# Write pid to pidfile if it is defined. +if [ $LIBRESONIC_PIDFILE ]; then + echo $! > ${LIBRESONIC_PIDFILE} +fi + +if [ $quiet = 0 ]; then + echo Started Libresonic [PID $!, ${LOG}] +fi + diff --git a/subsonic-installer-debian/pom.xml b/libresonic-installer-debian/pom.xml similarity index 71% rename from subsonic-installer-debian/pom.xml rename to libresonic-installer-debian/pom.xml index ca15cbb5..4dd8b5b1 100644 --- a/subsonic-installer-debian/pom.xml +++ b/libresonic-installer-debian/pom.xml @@ -2,15 +2,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - net.sourceforge.subsonic - subsonic-installer-debian + libresonic-installer-debian pom - Subsonic Installer for Debian + Libresonic Installer for Debian - net.sourceforge.subsonic - subsonic - 6.0.1 + org.libresonic.player + libresonic + 6.1.rc1 @@ -41,11 +40,11 @@ - - - - - + + + + + @@ -53,10 +52,10 @@ - - - - + + + + @@ -65,10 +64,10 @@ - + - + diff --git a/libresonic-installer-debian/src/DEBIAN/conffiles b/libresonic-installer-debian/src/DEBIAN/conffiles new file mode 100644 index 00000000..01b33bee --- /dev/null +++ b/libresonic-installer-debian/src/DEBIAN/conffiles @@ -0,0 +1 @@ +/etc/default/libresonic diff --git a/subsonic-installer-debian/src/DEBIAN/control b/libresonic-installer-debian/src/DEBIAN/control similarity index 60% rename from subsonic-installer-debian/src/DEBIAN/control rename to libresonic-installer-debian/src/DEBIAN/control index 21caa735..08e6f05d 100644 --- a/subsonic-installer-debian/src/DEBIAN/control +++ b/libresonic-installer-debian/src/DEBIAN/control @@ -1,18 +1,18 @@ -Package: subsonic +Package: libresonic Version: @VERSION@ Section: Multimedia Priority: optional Recommends: ffmpeg Architecture: all -Maintainer: Sindre Mehus +Maintainer: Eugene E. Kashpureff Jr Description: A web-based music streamer, jukebox and Podcast receiver - Subsonic is a web-based music streamer, jukebox and Podcast receiver, + Libresonic is a web-based music streamer, jukebox and Podcast receiver, providing access to your music collection wherever you are. Use it to share your music with friends, or to listen to your music while away from home. . Apps for Android, iPhone and Windows Phone are also available. . - Java 1.6 or higher is required to run Subsonic. + Java 1.6 or higher is required to run Libresonic. . - Subsonic can be found at http://subsonic.org + Libresonic can be found at http://libresonic.org diff --git a/libresonic-installer-debian/src/DEBIAN/postinst b/libresonic-installer-debian/src/DEBIAN/postinst new file mode 100644 index 00000000..30abebda --- /dev/null +++ b/libresonic-installer-debian/src/DEBIAN/postinst @@ -0,0 +1,16 @@ +#! /bin/sh + +set -e + +ln -sf /usr/share/libresonic/libresonic.sh /usr/bin/libresonic + +chmod 750 /var/libresonic + +# Clear jetty cache. +rm -rf /var/libresonic/jetty + +# Configure Libresonic service. +update-rc.d libresonic defaults 99 + +# Start Libresonic service. +invoke-rc.d libresonic start diff --git a/subsonic-installer-debian/src/DEBIAN/postrm b/libresonic-installer-debian/src/DEBIAN/postrm similarity index 52% rename from subsonic-installer-debian/src/DEBIAN/postrm rename to libresonic-installer-debian/src/DEBIAN/postrm index 1ecc392d..2bfccda9 100644 --- a/subsonic-installer-debian/src/DEBIAN/postrm +++ b/libresonic-installer-debian/src/DEBIAN/postrm @@ -3,7 +3,7 @@ set -e # Remove symlink. -rm -f /usr/bin/subsonic +rm -f /usr/bin/libresonic # Remove startup scripts. -update-rc.d -f subsonic remove +update-rc.d -f libresonic remove diff --git a/libresonic-installer-debian/src/DEBIAN/preinst b/libresonic-installer-debian/src/DEBIAN/preinst new file mode 100644 index 00000000..1b32b446 --- /dev/null +++ b/libresonic-installer-debian/src/DEBIAN/preinst @@ -0,0 +1,15 @@ +#! /bin/sh + +set -e + +# Stop Libresonic service. +if [ -e /etc/init.d/libresonic ]; then + invoke-rc.d libresonic stop +fi + +# Backup database. +if [ -e /var/libresonic/db ]; then + rm -rf /var/libresonic/db.backup + cp -R /var/libresonic/db /var/libresonic/db.backup +fi + diff --git a/libresonic-installer-debian/src/DEBIAN/prerm b/libresonic-installer-debian/src/DEBIAN/prerm new file mode 100644 index 00000000..786b645e --- /dev/null +++ b/libresonic-installer-debian/src/DEBIAN/prerm @@ -0,0 +1,8 @@ +#! /bin/sh + +set -e + +# Stop Libresonic service. +if [ -e /etc/init.d/libresonic ]; then + invoke-rc.d libresonic stop +fi diff --git a/libresonic-installer-debian/src/etc/default/libresonic b/libresonic-installer-debian/src/etc/default/libresonic new file mode 100644 index 00000000..df01c916 --- /dev/null +++ b/libresonic-installer-debian/src/etc/default/libresonic @@ -0,0 +1,25 @@ +# +# This is the configuration file for the Libresonic service +# (/etc/init.d/libresonic) +# +# To change the startup parameters of Libresonic, modify +# the LIBRESONIC_ARGS variable below. +# +# Type "/usr/share/libresonic/libresonic.sh --help" on the command line to read an +# explanation of the different options. +# +# For example, to specify that Libresonic should use port 80 (for http) +# and 443 (for https), and use a Java memory heap size of 200 MB, use +# the following: +# +# LIBRESONIC_ARGS="--port=80 --https-port=443 --max-memory=200" + +LIBRESONIC_ARGS="--max-memory=150" + + +# The user which should run the Libresonic process. Default "root". +# Note that non-root users are by default not allowed to use ports +# below 1024. Also make sure to grant the user write permissions in +# the music directories, otherwise changing album art and tags will fail. + +LIBRESONIC_USER=root \ No newline at end of file diff --git a/subsonic-installer-debian/src/etc/init.d/subsonic b/libresonic-installer-debian/src/etc/init.d/libresonic similarity index 72% rename from subsonic-installer-debian/src/etc/init.d/subsonic rename to libresonic-installer-debian/src/etc/init.d/libresonic index b45c1ed9..bcb1c4d9 100644 --- a/subsonic-installer-debian/src/etc/init.d/subsonic +++ b/libresonic-installer-debian/src/etc/init.d/libresonic @@ -1,37 +1,37 @@ #! /bin/sh ### BEGIN INIT INFO -# Provides: subsonic +# Provides: libresonic # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 -# Short-Description: Subsonic daemon -# Description: Starts the Subsonic daemon. Subsonic is a web-based +# Short-Description: Libresonic daemon +# Description: Starts the Libresonic daemon. Libresonic is a web-based # music streamer, jukebox and Podcast receiver. -# See http://subsonic.org for more details. +# See http://libresonic.org for more details. ### END INIT INFO # Author: Sindre Mehus -# To change the startup parameters of Subsonic, modify the service -# configuration file /etc/default/subsonic rather than this file. -[ -r /etc/default/subsonic ] && . /etc/default/subsonic +# To change the startup parameters of Libresonic, modify the service +# configuration file /etc/default/libresonic rather than this file. +[ -r /etc/default/libresonic ] && . /etc/default/libresonic PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="Subsonic Daemon" -NAME=subsonic +DESC="Libresonic Daemon" +NAME=libresonic PIDFILE=/var/run/$NAME.pid DAEMON=/usr/bin/$NAME -DAEMON_ARGS="--pidfile=$PIDFILE $SUBSONIC_ARGS" +DAEMON_ARGS="--pidfile=$PIDFILE $LIBRESONIC_ARGS" SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 -# Run as root if SUBSONIC_USER is not set. -[ "$SUBSONIC_USER" = "" ] && SUBSONIC_USER=root +# Run as root if LIBRESONIC_USER is not set. +[ "$LIBRESONIC_USER" = "" ] && LIBRESONIC_USER=root -# Make sure Subsonic is started with system locale +# Make sure Libresonic is started with system locale if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG @@ -61,11 +61,11 @@ do_start() fi touch $PIDFILE - chown $SUBSONIC_USER $PIDFILE - [ -e /var/subsonic ] && chown -R $SUBSONIC_USER /var/subsonic - [ -e /tmp/subsonic ] && chown -R $SUBSONIC_USER /tmp/subsonic + chown $LIBRESONIC_USER $PIDFILE + [ -e /var/libresonic ] && chown -R $LIBRESONIC_USER /var/libresonic + [ -e /tmp/libresonic ] && chown -R $LIBRESONIC_USER /tmp/libresonic - start-stop-daemon --start -c $SUBSONIC_USER --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2 + start-stop-daemon --start -c $LIBRESONIC_USER --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2 } # diff --git a/subsonic-installer-mac/pom.xml b/libresonic-installer-mac/pom.xml similarity index 65% rename from subsonic-installer-mac/pom.xml rename to libresonic-installer-mac/pom.xml index 4ccf67f1..29a30211 100644 --- a/subsonic-installer-mac/pom.xml +++ b/libresonic-installer-mac/pom.xml @@ -2,29 +2,28 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - net.sourceforge.subsonic - subsonic-installer-mac + libresonic-installer-mac pom - Subsonic Installer for Mac + Libresonic Installer for Mac - net.sourceforge.subsonic - subsonic - 6.0.1 + org.libresonic.player + libresonic + 6.1.rc1 - net.sourceforge.subsonic - subsonic-main + org.libresonic.player + libresonic-main ${project.version} war - net.sourceforge.subsonic - subsonic-booter + org.libresonic.player + libresonic-booter ${project.version} @@ -52,41 +51,41 @@ + mainclassname="org.libresonic.player.booter.Main"> - - + + - - + - + - - + + diff --git a/subsonic-installer-mac/src/subsonic.icns b/libresonic-installer-mac/src/libresonic.icns similarity index 100% rename from subsonic-installer-mac/src/subsonic.icns rename to libresonic-installer-mac/src/libresonic.icns diff --git a/subsonic-installer-mac/src/subsonic.pkgproj b/libresonic-installer-mac/src/libresonic.pkgproj similarity index 98% rename from subsonic-installer-mac/src/subsonic.pkgproj rename to libresonic-installer-mac/src/libresonic.pkgproj index f8240032..c2c75fe2 100755 --- a/subsonic-installer-mac/src/subsonic.pkgproj +++ b/libresonic-installer-mac/src/libresonic.pkgproj @@ -22,7 +22,7 @@ GID 80 PATH - ../target/Subsonic.app + ../target/Libresonic.app PATH_TYPE 1 PERMISSIONS @@ -80,7 +80,7 @@ GID 80 PATH - ../../subsonic-transcode/mac/ffmpeg + ../../libresonic-transcode/mac/ffmpeg PATH_TYPE 1 PERMISSIONS @@ -108,7 +108,7 @@ GID 80 PATH - Subsonic + Libresonic PATH_TYPE 0 PERMISSIONS @@ -546,9 +546,9 @@ CONCLUSION_ACTION 0 IDENTIFIER - net.sourceforge.subsonic + org.libresonic.player NAME - subsonic + libresonic OVERWRITE_PERMISSIONS VERSION @@ -586,7 +586,7 @@ BACKGROUND_PATH PATH - subsonic.png + libresonic.png PATH_TYPE 1 @@ -672,7 +672,7 @@ LANGUAGE English VALUE - Subsonic + Libresonic @@ -872,7 +872,7 @@ NAME - subsonic + libresonic TYPE diff --git a/subsonic-installer-mac/src/subsonic.png b/libresonic-installer-mac/src/libresonic.png similarity index 100% rename from subsonic-installer-mac/src/subsonic.png rename to libresonic-installer-mac/src/libresonic.png diff --git a/libresonic-installer-mac/src/postinstall.sh b/libresonic-installer-mac/src/postinstall.sh new file mode 100644 index 00000000..a01c068b --- /dev/null +++ b/libresonic-installer-mac/src/postinstall.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +LIBRESONIC_HOME="/Library/Application Support/Libresonic" + +chmod oug+rwx "$LIBRESONIC_HOME" +chown root:admin "$LIBRESONIC_HOME" + +chmod oug+rx "$LIBRESONIC_HOME/transcode" +chown root:admin "$LIBRESONIC_HOME/transcode" + +rm -rf "$LIBRESONIC_HOME/jetty" + +echo Libresonic installation done diff --git a/libresonic-installer-mac/src/preinstall.sh b/libresonic-installer-mac/src/preinstall.sh new file mode 100755 index 00000000..3846ca0a --- /dev/null +++ b/libresonic-installer-mac/src/preinstall.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +LIBRESONIC_HOME="/Library/Application Support/Libresonic" + +# Backup database. + +if [ -e "$LIBRESONIC_HOME/db" ]; then + rm -rf "$LIBRESONIC_HOME/db.backup" + cp -R "$LIBRESONIC_HOME/db" "$LIBRESONIC_HOME/db.backup" +fi + diff --git a/subsonic-installer-rpm/pom.xml b/libresonic-installer-rpm/pom.xml similarity index 80% rename from subsonic-installer-rpm/pom.xml rename to libresonic-installer-rpm/pom.xml index 89837d66..708ebbef 100644 --- a/subsonic-installer-rpm/pom.xml +++ b/libresonic-installer-rpm/pom.xml @@ -2,15 +2,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - net.sourceforge.subsonic - subsonic-installer-rpm + libresonic-installer-rpm pom - Subsonic Installer for RPM + Libresonic Installer for RPM - net.sourceforge.subsonic - subsonic - 6.0.1 + org.libresonic.player + libresonic + 6.1.rc1 @@ -52,7 +51,7 @@ Creating RPM package... - @@ -61,7 +60,7 @@ - + .beta1 .beta2 .beta3 @@ -70,20 +69,20 @@ - - - - - - - + + + + + @@ -93,17 +92,17 @@ - + - + - + diff --git a/subsonic-installer-rpm/src/etc/init.d/subsonic b/libresonic-installer-rpm/src/etc/init.d/libresonic similarity index 61% rename from subsonic-installer-rpm/src/etc/init.d/subsonic rename to libresonic-installer-rpm/src/etc/init.d/libresonic index 8c17ea44..d58df0a4 100644 --- a/subsonic-installer-rpm/src/etc/init.d/subsonic +++ b/libresonic-installer-rpm/src/etc/init.d/libresonic @@ -1,41 +1,41 @@ #!/bin/bash # -# subsonic This shell script takes care of starting and stopping Subsonic +# libresonic This shell script takes care of starting and stopping Libresonic # # chkconfig: - 80 20 # ### BEGIN INIT INFO -# Provides: subsonic +# Provides: libresonic # Required-Start: $network $syslog # Required-Stop: $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 -# Short-Description: Subsonic daemon -# Description: Starts the Subsonic daemon. Subsonic is a web-based +# Short-Description: Libresonic daemon +# Description: Starts the Libresonic daemon. Libresonic is a web-based # music streamer, jukebox and Podcast receiver. -# See http://subsonic.org for more details. +# See http://libresonic.org for more details. ### END INIT INFO # Author: Sindre Mehus -# To change the startup parameters of Subsonic, modify the service -# configuration file /etc/sysconfig/subsonic rather than this file. -[ -r /etc/sysconfig/subsonic ] && . /etc/sysconfig/subsonic +# To change the startup parameters of Libresonic, modify the service +# configuration file /etc/sysconfig/libresonic rather than this file. +[ -r /etc/sysconfig/libresonic ] && . /etc/sysconfig/libresonic PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="Subsonic Daemon" -NAME=subsonic +DESC="Libresonic Daemon" +NAME=libresonic PIDFILE=/var/run/$NAME.pid LOCKFILE=/var/lock/subsys/$NAME DAEMON=/usr/bin/$NAME -DAEMON_ARGS="--pidfile=$PIDFILE $SUBSONIC_ARGS" +DAEMON_ARGS="--pidfile=$PIDFILE $LIBRESONIC_ARGS" SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed. [ -x "$DAEMON" ] || exit 0 -# Run as root if SUBSONIC_USER is not set. -[ "$SUBSONIC_USER" = "" ] && SUBSONIC_USER=root +# Run as root if LIBRESONIC_USER is not set. +[ "$LIBRESONIC_USER" = "" ] && LIBRESONIC_USER=root # Source function library. . /etc/init.d/functions @@ -53,12 +53,12 @@ do_start() fi touch $PIDFILE - chown $SUBSONIC_USER $PIDFILE - [ -e /var/subsonic ] && chown -R $SUBSONIC_USER /var/subsonic - [ -e /tmp/subsonic ] && chown -R $SUBSONIC_USER /tmp/subsonic + chown $LIBRESONIC_USER $PIDFILE + [ -e /var/libresonic ] && chown -R $LIBRESONIC_USER /var/libresonic + [ -e /tmp/libresonic ] && chown -R $LIBRESONIC_USER /tmp/libresonic echo $"Starting $NAME ..." - su -c "$DAEMON $DAEMON_ARGS" $SUBSONIC_USER + su -c "$DAEMON $DAEMON_ARGS" $LIBRESONIC_USER RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $LOCKFILE diff --git a/libresonic-installer-rpm/src/etc/sysconfig/libresonic b/libresonic-installer-rpm/src/etc/sysconfig/libresonic new file mode 100644 index 00000000..919b31d1 --- /dev/null +++ b/libresonic-installer-rpm/src/etc/sysconfig/libresonic @@ -0,0 +1,25 @@ +# +# This is the configuration file for the Libresonic service +# (/etc/init.d/libresonic) +# +# To change the startup parameters of Libresonic, modify +# the LIBRESONIC_ARGS variable below. +# +# Type "/usr/share/libresonic/libresonic.sh --help" on the command line to read an +# explanation of the different options. +# +# For example, to specify that Libresonic should use port 80 (for http) +# and 443 (for https), and use a Java memory heap size of 200 MB, use +# the following: +# +# LIBRESONIC_ARGS="--port=80 --https-port=443 --max-memory=200" + +LIBRESONIC_ARGS="--max-memory=150" + + +# The user which should run the Libresonic process. Default "root". +# Note that non-root users are by default not allowed to use ports +# below 1024. Also make sure to grant the user write permissions in +# the music directories, otherwise changing album art and tags will fail. + +LIBRESONIC_USER=root diff --git a/libresonic-installer-rpm/src/libresonic.spec b/libresonic-installer-rpm/src/libresonic.spec new file mode 100644 index 00000000..2818f059 --- /dev/null +++ b/libresonic-installer-rpm/src/libresonic.spec @@ -0,0 +1,78 @@ +Name: libresonic +Version: @VERSION@ +Release: @BUILD_NUMBER@ +Summary: A web-based music streamer, jukebox and Podcast receiver + +Group: Applications/Multimedia +License: GPLv3 +URL: http://libresonic.org + +%description +Libresonic is a web-based music streamer, jukebox and Podcast receiver, +providing access to your music collection wherever you are. Use it +to share your music with friends, or to listen to your music while away +from home. + +Apps for Android, iPhone and Windows Phone are also available. + +Java 1.6 or higher is required to run Libresonic. + +Libresonic can be found at http://libresonic.org + +%files +%defattr(644,root,root,755) +/usr/share/libresonic/libresonic-booter-jar-with-dependencies.jar +/usr/share/libresonic/libresonic.war +%attr(755,root,root) /usr/share/libresonic/libresonic.sh +%attr(755,root,root) /etc/init.d/libresonic +%attr(755,root,root) /var/libresonic/transcode/ffmpeg +%attr(755,root,root) /var/libresonic/transcode/lame +%config(noreplace) /etc/sysconfig/libresonic + +%pre +# Stop Libresonic service. +if [ -e /etc/init.d/libresonic ]; then + service libresonic stop +fi + +# Backup database. +if [ -e /var/libresonic/db ]; then + rm -rf /var/libresonic/db.backup + cp -R /var/libresonic/db /var/libresonic/db.backup +fi + +exit 0 + +%post +ln -sf /usr/share/libresonic/libresonic.sh /usr/bin/libresonic +chmod 750 /var/libresonic + +# Clear jetty cache. +rm -rf /var/libresonic/jetty + +# For SELinux: Set security context +chcon -t java_exec_t /etc/init.d/libresonic 2>/dev/null + +# Configure and start Libresonic service. +chkconfig --add libresonic +service libresonic start + +exit 0 + +%preun +# Only do it if uninstalling, not upgrading. +if [ $1 = 0 ] ; then + + # Stop the service. + [ -e /etc/init.d/libresonic ] && service libresonic stop + + # Remove symlink. + rm -f /usr/bin/libresonic + + # Remove startup scripts. + chkconfig --del libresonic + +fi + +exit 0 + diff --git a/subsonic-installer-windows/pom.xml b/libresonic-installer-windows/pom.xml similarity index 79% rename from subsonic-installer-windows/pom.xml rename to libresonic-installer-windows/pom.xml index ce5417c6..e400c512 100644 --- a/subsonic-installer-windows/pom.xml +++ b/libresonic-installer-windows/pom.xml @@ -2,15 +2,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - net.sourceforge.subsonic - subsonic-installer-windows + libresonic-installer-windows pom - Subsonic Installer for Windows + Libresonic Installer for Windows - net.sourceforge.subsonic - subsonic - 6.0.1 + org.libresonic.player + libresonic + 6.1.rc1 @@ -21,15 +20,15 @@ - net.sourceforge.subsonic - subsonic-main + org.libresonic.player + libresonic-main ${project.version} war - net.sourceforge.subsonic - subsonic-booter + org.libresonic.player + libresonic-booter ${project.version} @@ -56,20 +55,20 @@ Compiling exe4j... - - - + + + - + - + - + @@ -86,8 +85,8 @@ Compiling NSIS script... - - + + diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-16.ico b/libresonic-installer-windows/src/main/exe4j/libresonic-16.ico similarity index 100% rename from subsonic-installer-windows/src/main/exe4j/subsonic-16.ico rename to libresonic-installer-windows/src/main/exe4j/libresonic-16.ico diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe.vmoptions b/libresonic-installer-windows/src/main/exe4j/libresonic-agent-elevated.exe.vmoptions similarity index 100% rename from subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe.vmoptions rename to libresonic-installer-windows/src/main/exe4j/libresonic-agent-elevated.exe.vmoptions diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe4j b/libresonic-installer-windows/src/main/exe4j/libresonic-agent-elevated.exe4j similarity index 53% rename from subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe4j rename to libresonic-installer-windows/src/main/exe4j/libresonic-agent-elevated.exe4j index b6c2d9a3..7b213300 100644 --- a/subsonic-installer-windows/src/main/exe4j/subsonic-agent-elevated.exe4j +++ b/libresonic-installer-windows/src/main/exe4j/libresonic-agent-elevated.exe4j @@ -1,12 +1,12 @@ - + - + @@ -18,14 +18,14 @@ - + - + diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe.vmoptions b/libresonic-installer-windows/src/main/exe4j/libresonic-agent.exe.vmoptions similarity index 100% rename from subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe.vmoptions rename to libresonic-installer-windows/src/main/exe4j/libresonic-agent.exe.vmoptions diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe4j b/libresonic-installer-windows/src/main/exe4j/libresonic-agent.exe4j similarity index 66% rename from subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe4j rename to libresonic-installer-windows/src/main/exe4j/libresonic-agent.exe4j index 5611e45f..da39f532 100644 --- a/subsonic-installer-windows/src/main/exe4j/subsonic-agent.exe4j +++ b/libresonic-installer-windows/src/main/exe4j/libresonic-agent.exe4j @@ -1,12 +1,12 @@ - + - + @@ -24,14 +24,14 @@ - + - + diff --git a/libresonic-installer-windows/src/main/exe4j/libresonic-service.exe.vmoptions b/libresonic-installer-windows/src/main/exe4j/libresonic-service.exe.vmoptions new file mode 100644 index 00000000..7196e9ae --- /dev/null +++ b/libresonic-installer-windows/src/main/exe4j/libresonic-service.exe.vmoptions @@ -0,0 +1,6 @@ +-Xmx150m +-verbose:gc +-Dlibresonic.host=0.0.0.0 +-Dlibresonic.port=4040 +-Dlibresonic.httpsPort=0 +-Dlibresonic.contextPath=/ diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe4j b/libresonic-installer-windows/src/main/exe4j/libresonic-service.exe4j similarity index 65% rename from subsonic-installer-windows/src/main/exe4j/subsonic-service.exe4j rename to libresonic-installer-windows/src/main/exe4j/libresonic-service.exe4j index 2b870b59..6bfb2327 100644 --- a/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe4j +++ b/libresonic-installer-windows/src/main/exe4j/libresonic-service.exe4j @@ -1,12 +1,12 @@ - + - + @@ -24,14 +24,14 @@ - + - + diff --git a/subsonic-installer-windows/src/main/nsis/jre-8u31-windows-i586-iftw.exe b/libresonic-installer-windows/src/main/nsis/jre-8u31-windows-i586-iftw.exe similarity index 100% rename from subsonic-installer-windows/src/main/nsis/jre-8u31-windows-i586-iftw.exe rename to libresonic-installer-windows/src/main/nsis/jre-8u31-windows-i586-iftw.exe diff --git a/libresonic-installer-windows/src/main/nsis/libresonic.nsi b/libresonic-installer-windows/src/main/nsis/libresonic.nsi new file mode 100644 index 00000000..b7ef37fe --- /dev/null +++ b/libresonic-installer-windows/src/main/nsis/libresonic.nsi @@ -0,0 +1,213 @@ +# libresonic.nsi + +!include "WordFunc.nsh" +!include "MUI.nsh" + +!insertmacro VersionCompare + +# The name of the installer +Name "Libresonic" + +# The default installation directory +InstallDir $PROGRAMFILES\Libresonic + +# Registry key to check for directory (so if you install again, it will +# overwrite the old one automatically) +InstallDirRegKey HKLM "Software\Libresonic" "Install_Dir" + +#-------------------------------- +#Interface Configuration + +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange.bmp" +!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Getting Started.html" +!define MUI_FINISHPAGE_SHOWREADME_TEXT "View Getting Started document" + +#-------------------------------- +# Pages + +# This page checks for JRE +Page custom CheckInstalledJRE + +!insertmacro MUI_PAGE_WELCOME +!insertmacro MUI_PAGE_DIRECTORY +!insertmacro MUI_PAGE_INSTFILES +!insertmacro MUI_PAGE_FINISH + +!insertmacro MUI_UNPAGE_WELCOME +!insertmacro MUI_UNPAGE_CONFIRM +!insertmacro MUI_UNPAGE_INSTFILES + +# Languages +!insertmacro MUI_LANGUAGE "English" + +Section "Libresonic" + + SectionIn RO + + # Install for all users + SetShellVarContext "all" + + # Take backup of existing libresonic-service.exe.vmoptions + CopyFiles /SILENT $INSTDIR\libresonic-service.exe.vmoptions $TEMP\libresonic-service.exe.vmoptions + + # Silently uninstall existing version. + ExecWait '"$INSTDIR\uninstall.exe" /S _?=$INSTDIR' + + # Remove previous Jetty temp directory. + RMDir /r "c:\libresonic\jetty" + + # Backup database. + RMDir /r "c:\libresonic\db.backup" + CreateDirectory "c:\libresonic\db.backup" + CopyFiles /SILENT "c:\libresonic\db\*" "c:\libresonic\db.backup" + + # Set output path to the installation directory. + SetOutPath $INSTDIR + + # Write files. + File ..\..\..\target\libresonic-agent.exe + File ..\..\..\target\libresonic-agent.exe.vmoptions + File ..\..\..\target\libresonic-agent-elevated.exe + File ..\..\..\target\libresonic-agent-elevated.exe.vmoptions + File ..\..\..\target\libresonic-service.exe + File ..\..\..\target\libresonic-service.exe.vmoptions + File ..\..\..\..\libresonic-booter\target\libresonic-booter-jar-with-dependencies.jar + File ..\..\..\..\libresonic-main\README.TXT + File ..\..\..\..\libresonic-main\LICENSE.TXT + File "..\..\..\..\libresonic-main\Getting Started.html" + File ..\..\..\..\libresonic-main\target\libresonic.war + File ..\..\..\..\libresonic-main\target\classes\version.txt + File ..\..\..\..\libresonic-main\target\classes\build_number.txt + + # Write the installation path into the registry + WriteRegStr HKLM SOFTWARE\Libresonic "Install_Dir" "$INSTDIR" + + # Write the uninstall keys for Windows + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" "DisplayName" "Libresonic" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" "UninstallString" '"$INSTDIR\uninstall.exe"' + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" "NoModify" 1 + WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" "NoRepair" 1 + WriteUninstaller "uninstall.exe" + + # Restore libresonic-service.exe.vmoptions + CopyFiles /SILENT $TEMP\libresonic-service.exe.vmoptions $INSTDIR\libresonic-service.exe.vmoptions + Delete $TEMP\libresonic-service.exe.vmoptions + + # Write transcoding pack files. + SetOutPath "c:\libresonic\transcode" + File ..\..\..\..\libresonic-transcode\windows\*.* + + # Add Windows Firewall exception. + # (Requires NSIS plugin found on http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin to be installed + # as NSIS_HOME/Plugins/SimpleFC.dll) + + SimpleFC::AdvAddRule "Libresonic Service (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\libresonic-service.exe" "" "" "Libresonic" "" "" "" "" + SimpleFC::AdvAddRule "Libresonic Service (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\libresonic-service.exe" "" "" "Libresonic" "" "" "" "" + SimpleFC::AdvAddRule "Libresonic Agent (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\libresonic-agent.exe" "" "" "Libresonic" "" "" "" "" + SimpleFC::AdvAddRule "Libresonic Agent (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\libresonic-agent.exe" "" "" "Libresonic" "" "" "" "" + SimpleFC::AdvAddRule "Libresonic Agent Elevated (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\libresonic-agent-elevated.exe" "" "" "Libresonic" "" "" "" "" + SimpleFC::AdvAddRule "Libresonic Agent Elevated (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\libresonic-agent-elevated.exe" "" "" "Libresonic" "" "" "" "" + + # Install and start service. + ExecWait '"$INSTDIR\libresonic-service.exe" -install' + ExecWait '"$INSTDIR\libresonic-service.exe" -start' + + # Start agent. + Exec '"$INSTDIR\libresonic-agent-elevated.exe" -balloon' + +SectionEnd + + +Section "Start Menu Shortcuts" + + CreateDirectory "$SMPROGRAMS\Libresonic" + CreateShortCut "$SMPROGRAMS\Libresonic\Open Libresonic.lnk" "$INSTDIR\libresonic.url" "" "$INSTDIR\libresonic-agent.exe" 0 + CreateShortCut "$SMPROGRAMS\Libresonic\Libresonic Tray Icon.lnk" "$INSTDIR\libresonic-agent.exe" "-balloon" "$INSTDIR\libresonic-agent.exe" 0 + CreateShortCut "$SMPROGRAMS\Libresonic\Start Libresonic Service.lnk" "$INSTDIR\libresonic-service.exe" "-start" "$INSTDIR\libresonic-service.exe" 0 + CreateShortCut "$SMPROGRAMS\Libresonic\Stop Libresonic Service.lnk" "$INSTDIR\libresonic-service.exe" "-stop" "$INSTDIR\libresonic-service.exe" 0 + CreateShortCut "$SMPROGRAMS\Libresonic\Uninstall Libresonic.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 + CreateShortCut "$SMPROGRAMS\Libresonic\Getting Started.lnk" "$INSTDIR\Getting Started.html" "" "$INSTDIR\Getting Started.html" 0 + + CreateShortCut "$SMSTARTUP\Libresonic.lnk" "$INSTDIR\libresonic-agent.exe" "" "$INSTDIR\libresonic-agent.exe" 0 + +SectionEnd + + +# Uninstaller + +Section "Uninstall" + + # Uninstall for all users + SetShellVarContext "all" + + # Stop and uninstall service if present. + ExecWait '"$INSTDIR\libresonic-service.exe" -stop' + ExecWait '"$INSTDIR\libresonic-service.exe" -uninstall' + + # Stop agent by killing it. + # (Requires NSIS plugin found on http://nsis.sourceforge.net/Processes_plug-in to be installed + # as NSIS_HOME/Plugins/Processes.dll) + Processes::KillProcess "libresonic-agent" + Processes::KillProcess "libresonic-agent-elevated" + Processes::KillProcess "ffmpeg" + + # Remove registry keys + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Libresonic" + DeleteRegKey HKLM SOFTWARE\Libresonic + + # Remove files. + Delete "$SMSTARTUP\Libresonic.lnk" + RMDir /r "$SMPROGRAMS\Libresonic" + Delete "$INSTDIR\build_number.txt" + Delete "$INSTDIR\elevate.exe" + Delete "$INSTDIR\Getting Started.html" + Delete "$INSTDIR\LICENSE.TXT" + Delete "$INSTDIR\README.TXT" + Delete "$INSTDIR\libresonic.url" + Delete "$INSTDIR\libresonic.war" + Delete "$INSTDIR\libresonic-agent.exe" + Delete "$INSTDIR\libresonic-agent.exe.vmoptions" + Delete "$INSTDIR\libresonic-agent-elevated.exe" + Delete "$INSTDIR\libresonic-agent-elevated.exe.vmoptions" + Delete "$INSTDIR\libresonic-booter-jar-with-dependencies.jar" + Delete "$INSTDIR\libresonic-service.exe" + Delete "$INSTDIR\libresonic-service.exe.vmoptions" + Delete "$INSTDIR\uninstall.exe" + Delete "$INSTDIR\version.txt" + RMDir /r "$INSTDIR\log" + RMDir "$INSTDIR" + + # Remove Windows Firewall exception. + # (Requires NSIS plugin found on http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin to be installed + # as NSIS_HOME/Plugins/SimpleFC.dll) + SimpleFC::AdvRemoveRule "Libresonic Service (TCP)" + SimpleFC::AdvRemoveRule "Libresonic Service (UDP)" + SimpleFC::AdvRemoveRule "Libresonic Agent (TCP)" + SimpleFC::AdvRemoveRule "Libresonic Agent (UDP)" + SimpleFC::AdvRemoveRule "Libresonic Agent Elevated (TCP)" + SimpleFC::AdvRemoveRule "Libresonic Agent Elevated (UDP)" + +SectionEnd + + +Function CheckInstalledJRE + # Read the value from the registry into the $0 register + ReadRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion + + # Check JRE version. At least 1.6 is required. + # $1=0 Versions are equal + # $1=1 Installed version is newer + # $1=2 Installed version is older (or non-existent) + ${VersionCompare} $0 "1.6" $1 + IntCmp $1 2 InstallJRE 0 0 + Return + + InstallJRE: + # Launch Java web installer. + MessageBox MB_OK "Java was not found and will now be installed." + File /oname=$TEMP\jre-setup.exe jre-8u31-windows-i586-iftw.exe + ExecWait '"$TEMP\jre-setup.exe"' $0 + Delete "$TEMP\jre-setup.exe" + +FunctionEnd diff --git a/libresonic-main/Getting Started.html b/libresonic-main/Getting Started.html new file mode 100644 index 00000000..b0c9f829 --- /dev/null +++ b/libresonic-main/Getting Started.html @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/subsonic-main/LICENSE.TXT b/libresonic-main/LICENSE.TXT similarity index 100% rename from subsonic-main/LICENSE.TXT rename to libresonic-main/LICENSE.TXT diff --git a/subsonic-main/dreamplug.txt b/libresonic-main/dreamplug.txt similarity index 84% rename from subsonic-main/dreamplug.txt rename to libresonic-main/dreamplug.txt index cbf4ccab..30dcbcce 100644 --- a/subsonic-main/dreamplug.txt +++ b/libresonic-main/dreamplug.txt @@ -84,19 +84,19 @@ java version "1.6.0_18" OpenJDK Runtime Environment (IcedTea6 1.8.2) (6b18-1.8.2-4ubuntu1~9.04.1) OpenJDK Zero VM (build 14.0-b16, mixed mode) -root@ubuntu:/tmp# dpkg -i subsonic-4.4.deb -Selecting previously deselected package subsonic. +root@ubuntu:/tmp# dpkg -i libresonic-4.4.deb +Selecting previously deselected package libresonic. (Reading database ... 21622 files and directories currently installed.) -Unpacking subsonic (from subsonic-4.4.deb) ... -Setting up subsonic (4.4) ... - Adding system startup for /etc/init.d/subsonic ... - /etc/rc0.d/K99subsonic -> ../init.d/subsonic - /etc/rc1.d/K99subsonic -> ../init.d/subsonic - /etc/rc6.d/K99subsonic -> ../init.d/subsonic - /etc/rc2.d/S99subsonic -> ../init.d/subsonic - /etc/rc3.d/S99subsonic -> ../init.d/subsonic - /etc/rc4.d/S99subsonic -> ../init.d/subsonic - /etc/rc5.d/S99subsonic -> ../init.d/subsonic -Started Subsonic [PID 2596, /var/subsonic/subsonic_sh.log] +Unpacking libresonic (from libresonic-4.4.deb) ... +Setting up libresonic (4.4) ... + Adding system startup for /etc/init.d/libresonic ... + /etc/rc0.d/K99libresonic -> ../init.d/libresonic + /etc/rc1.d/K99libresonic -> ../init.d/libresonic + /etc/rc6.d/K99libresonic -> ../init.d/libresonic + /etc/rc2.d/S99libresonic -> ../init.d/libresonic + /etc/rc3.d/S99libresonic -> ../init.d/libresonic + /etc/rc4.d/S99libresonic -> ../init.d/libresonic + /etc/rc5.d/S99libresonic -> ../init.d/libresonic +Started Libresonic [PID 2596, /var/libresonic/libresonic_sh.log] http://192.168.0.100:4040 \ No newline at end of file diff --git a/subsonic-main/pom.xml b/libresonic-main/pom.xml similarity index 93% rename from subsonic-main/pom.xml rename to libresonic-main/pom.xml index 6c8b44fa..9172db2d 100644 --- a/subsonic-main/pom.xml +++ b/libresonic-main/pom.xml @@ -2,28 +2,27 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - net.sourceforge.subsonic - subsonic-main + libresonic-main war - Subsonic Main + Libresonic Main - net.sourceforge.subsonic + org.libresonic.player libresonic - 6.0.1 + 6.1.rc1 - net.sourceforge.subsonic - subsonic-rest-api + org.libresonic.player + libresonic-rest-api ${project.version} - net.sourceforge.subsonic - subsonic-sonos-api + org.libresonic.player + libresonic-sonos-api ${project.version} @@ -254,6 +253,12 @@ runtime + + javax.mail + javax.mail-api + 1.5.5 + + taglibs standard @@ -280,6 +285,7 @@ test + org.fourthline.cling cling-core @@ -295,7 +301,7 @@ org.seamless seamless-util - 1.0-alpha2 + 1.1.0 @@ -310,6 +316,7 @@ 0.1.2 + org.apache.cxf cxf-rt-transports-http @@ -382,10 +389,11 @@ - subsonic + libresonic + org.apache.maven.plugins maven-antrun-plugin @@ -393,8 +401,8 @@ - + ${buildNumber} ${DSTAMP} ${project.version} diff --git a/subsonic-main/src/main/java/org/json/CDL.java b/libresonic-main/src/main/java/org/json/CDL.java similarity index 100% rename from subsonic-main/src/main/java/org/json/CDL.java rename to libresonic-main/src/main/java/org/json/CDL.java diff --git a/subsonic-main/src/main/java/org/json/Cookie.java b/libresonic-main/src/main/java/org/json/Cookie.java similarity index 100% rename from subsonic-main/src/main/java/org/json/Cookie.java rename to libresonic-main/src/main/java/org/json/Cookie.java diff --git a/subsonic-main/src/main/java/org/json/CookieList.java b/libresonic-main/src/main/java/org/json/CookieList.java similarity index 100% rename from subsonic-main/src/main/java/org/json/CookieList.java rename to libresonic-main/src/main/java/org/json/CookieList.java diff --git a/subsonic-main/src/main/java/org/json/HTTP.java b/libresonic-main/src/main/java/org/json/HTTP.java similarity index 100% rename from subsonic-main/src/main/java/org/json/HTTP.java rename to libresonic-main/src/main/java/org/json/HTTP.java diff --git a/subsonic-main/src/main/java/org/json/HTTPTokener.java b/libresonic-main/src/main/java/org/json/HTTPTokener.java similarity index 100% rename from subsonic-main/src/main/java/org/json/HTTPTokener.java rename to libresonic-main/src/main/java/org/json/HTTPTokener.java diff --git a/subsonic-main/src/main/java/org/json/JSONArray.java b/libresonic-main/src/main/java/org/json/JSONArray.java similarity index 100% rename from subsonic-main/src/main/java/org/json/JSONArray.java rename to libresonic-main/src/main/java/org/json/JSONArray.java diff --git a/subsonic-main/src/main/java/org/json/JSONException.java b/libresonic-main/src/main/java/org/json/JSONException.java similarity index 100% rename from subsonic-main/src/main/java/org/json/JSONException.java rename to libresonic-main/src/main/java/org/json/JSONException.java diff --git a/subsonic-main/src/main/java/org/json/JSONML.java b/libresonic-main/src/main/java/org/json/JSONML.java similarity index 100% rename from subsonic-main/src/main/java/org/json/JSONML.java rename to libresonic-main/src/main/java/org/json/JSONML.java diff --git a/subsonic-main/src/main/java/org/json/JSONObject.java b/libresonic-main/src/main/java/org/json/JSONObject.java similarity index 100% rename from subsonic-main/src/main/java/org/json/JSONObject.java rename to libresonic-main/src/main/java/org/json/JSONObject.java diff --git a/subsonic-main/src/main/java/org/json/JSONString.java b/libresonic-main/src/main/java/org/json/JSONString.java similarity index 100% rename from subsonic-main/src/main/java/org/json/JSONString.java rename to libresonic-main/src/main/java/org/json/JSONString.java diff --git a/subsonic-main/src/main/java/org/json/JSONStringer.java b/libresonic-main/src/main/java/org/json/JSONStringer.java similarity index 100% rename from subsonic-main/src/main/java/org/json/JSONStringer.java rename to libresonic-main/src/main/java/org/json/JSONStringer.java diff --git a/subsonic-main/src/main/java/org/json/JSONTokener.java b/libresonic-main/src/main/java/org/json/JSONTokener.java similarity index 100% rename from subsonic-main/src/main/java/org/json/JSONTokener.java rename to libresonic-main/src/main/java/org/json/JSONTokener.java diff --git a/subsonic-main/src/main/java/org/json/JSONWriter.java b/libresonic-main/src/main/java/org/json/JSONWriter.java similarity index 100% rename from subsonic-main/src/main/java/org/json/JSONWriter.java rename to libresonic-main/src/main/java/org/json/JSONWriter.java diff --git a/subsonic-main/src/main/java/org/json/XML.java b/libresonic-main/src/main/java/org/json/XML.java similarity index 100% rename from subsonic-main/src/main/java/org/json/XML.java rename to libresonic-main/src/main/java/org/json/XML.java diff --git a/subsonic-main/src/main/java/org/json/XMLTokener.java b/libresonic-main/src/main/java/org/json/XMLTokener.java similarity index 100% rename from subsonic-main/src/main/java/org/json/XMLTokener.java rename to libresonic-main/src/main/java/org/json/XMLTokener.java diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java b/libresonic-main/src/main/java/org/libresonic/player/Logger.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java rename to libresonic-main/src/main/java/org/libresonic/player/Logger.java index c8ccfd9d..d764bf5d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/Logger.java +++ b/libresonic-main/src/main/java/org/libresonic/player/Logger.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic; +package org.libresonic.player; -import net.sourceforge.subsonic.domain.Version; -import net.sourceforge.subsonic.service.*; -import net.sourceforge.subsonic.util.*; +import org.libresonic.player.domain.Version; +import org.libresonic.player.service.*; +import org.libresonic.player.util.*; import org.apache.commons.lang.exception.*; import java.io.*; @@ -28,7 +29,7 @@ import java.text.*; import java.util.*; /** - * Logger implementation which logs to SUBSONIC_HOME/subsonic.log. + * Logger implementation which logs to LIBRESONIC_HOME/libresonic.log. *
* Note: Third party logging libraries (such as log4j and Commons logging) are intentionally not * used. These libraries causes a lot of headache when deploying to some application servers @@ -167,7 +168,7 @@ public class Logger { try { getPrintWriter().println(entry); } catch (IOException x) { - System.err.println("Failed to write to subsonic.log. " + x); + System.err.println("Failed to write to libresonic.log. " + x); } entries.add(entry); } @@ -180,8 +181,8 @@ public class Logger { } public static File getLogFile() { - File subsonicHome = SettingsService.getSubsonicHome(); - return new File(subsonicHome, "subsonic.log"); + File libresonicHome = SettingsService.getLibresonicHome(); + return new File(libresonicHome, "libresonic.log"); } /** diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ArtistInfo.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/ArtistInfo.java similarity index 78% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ArtistInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/ArtistInfo.java index f2c0e85d..c2828fd9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ArtistInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/ArtistInfo.java @@ -1,27 +1,27 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.util.List; -import net.sourceforge.subsonic.domain.ArtistBio; +import org.libresonic.player.domain.ArtistBio; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ChatService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/ChatService.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ChatService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/ChatService.java index 8905c8a6..d5c0858e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ChatService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/ChatService.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.util.BoundedList; +import org.libresonic.player.Logger; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.util.BoundedList; import org.apache.commons.lang.StringUtils; import org.directwebremoting.WebContext; import org.directwebremoting.WebContextFactory; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/CoverArtInfo.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/CoverArtInfo.java similarity index 72% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/CoverArtInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/CoverArtInfo.java index c9160f26..c6ffeb41 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/CoverArtInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/CoverArtInfo.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; /** * Contains info about cover art images for an album. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/CoverArtService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/CoverArtService.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/CoverArtService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/CoverArtService.java index 2d9b801d..9464ecdc 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/CoverArtService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/CoverArtService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.io.File; import java.io.FileOutputStream; @@ -30,11 +31,11 @@ import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.HttpConnectionParams; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.util.StringUtil; /** * Provides AJAX-enabled services for changing cover art images. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/LyricsInfo.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/LyricsInfo.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/LyricsInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/LyricsInfo.java index 2d8b62b1..96e99ccd 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/LyricsInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/LyricsInfo.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; /** * Contains lyrics info for a song. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/LyricsService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/LyricsService.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/LyricsService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/LyricsService.java index ce683b98..9ccc46a6 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/LyricsService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/LyricsService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.io.IOException; import java.io.StringReader; @@ -34,8 +35,8 @@ import org.jdom.Element; import org.jdom.Namespace; import org.jdom.input.SAXBuilder; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.util.StringUtil; /** * Provides AJAX-enabled services for retrieving song lyrics from chartlyrics.com. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/MultiService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/MultiService.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/MultiService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/MultiService.java index de04b4a7..4351994d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/MultiService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/MultiService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.util.ArrayList; import java.util.Arrays; @@ -27,16 +28,16 @@ import javax.servlet.http.HttpServletRequest; import org.directwebremoting.WebContextFactory; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.ArtistBio; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.LastFmService; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.NetworkService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.ArtistBio; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.LastFmService; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.NetworkService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Provides miscellaneous AJAX-enabled services. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NetworkStatus.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/NetworkStatus.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NetworkStatus.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/NetworkStatus.java index 8634af26..2e1c3355 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NetworkStatus.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/NetworkStatus.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NowPlayingInfo.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/NowPlayingInfo.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NowPlayingInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/NowPlayingInfo.java index 0167d212..e89501f4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NowPlayingInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/NowPlayingInfo.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; /** * Details about what a user is currently listening to. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NowPlayingService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/NowPlayingService.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NowPlayingService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/NowPlayingService.java index b29c8491..dcbe68e4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/NowPlayingService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/NowPlayingService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.io.File; import java.util.ArrayList; @@ -29,17 +30,17 @@ import org.apache.commons.lang.StringUtils; import org.directwebremoting.WebContext; import org.directwebremoting.WebContextFactory; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.AvatarScheme; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PlayStatus; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.MediaScannerService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.StatusService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.AvatarScheme; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PlayStatus; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.MediaScannerService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.StatusService; +import org.libresonic.player.util.StringUtil; /** * Provides AJAX-enabled services for retrieving the currently playing file and directory. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlayQueueInfo.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueInfo.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlayQueueInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueInfo.java index cc34e7ec..8d522cc4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlayQueueInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueInfo.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.util.List; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.util.StringUtil; /** * The playlist of a player. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlayQueueService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueService.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlayQueueService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueService.java index 3fbabbe6..73a91d69 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlayQueueService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlayQueueService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.util.ArrayList; import java.util.Arrays; @@ -35,29 +36,29 @@ import org.springframework.web.servlet.support.RequestContextUtils; import com.google.common.base.Function; import com.google.common.collect.Lists; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.dao.PlayQueueDao; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.PodcastEpisode; -import net.sourceforge.subsonic.domain.PodcastStatus; -import net.sourceforge.subsonic.domain.SavedPlayQueue; -import net.sourceforge.subsonic.domain.UrlRedirectType; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.JukeboxService; -import net.sourceforge.subsonic.service.LastFmService; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.PodcastService; -import net.sourceforge.subsonic.service.RatingService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.dao.PlayQueueDao; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.PodcastEpisode; +import org.libresonic.player.domain.PodcastStatus; +import org.libresonic.player.domain.SavedPlayQueue; +import org.libresonic.player.domain.UrlRedirectType; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.JukeboxService; +import org.libresonic.player.service.LastFmService; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.service.RatingService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.util.StringUtil; /** * Provides AJAX-enabled services for manipulating the play queue of a player. @@ -78,7 +79,7 @@ public class PlayQueueService { private SearchService searchService; private RatingService ratingService; private PodcastService podcastService; - private net.sourceforge.subsonic.service.PlaylistService playlistService; + private org.libresonic.player.service.PlaylistService playlistService; private MediaFileDao mediaFileDao; private PlayQueueDao playQueueDao; @@ -141,7 +142,7 @@ public class PlayQueueService { List ids = MediaFile.toIdList(playQueue.getFiles()); Integer currentId = currentSongIndex == -1 ? null : playQueue.getFile(currentSongIndex).getId(); - SavedPlayQueue savedPlayQueue = new SavedPlayQueue(null, username, ids, currentId, positionMillis, new Date(), "Subsonic"); + SavedPlayQueue savedPlayQueue = new SavedPlayQueue(null, username, ids, currentId, positionMillis, new Date(), "Libresonic"); playQueueDao.savePlayQueue(savedPlayQueue); } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlaylistInfo.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlaylistInfo.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlaylistInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/PlaylistInfo.java index dec2f57e..1aad3371 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlaylistInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlaylistInfo.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import java.util.List; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Playlist; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Playlist; /** * The playlist of a player. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlaylistService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlaylistService.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlaylistService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/PlaylistService.java index 16005240..4acea50b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/PlaylistService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/PlaylistService.java @@ -1,33 +1,34 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; - -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.i18n.SubsonicLocaleResolver; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +package org.libresonic.player.ajax; + +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.i18n.LibresonicLocaleResolver; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; import org.directwebremoting.WebContextFactory; import javax.servlet.http.HttpServletRequest; @@ -50,11 +51,11 @@ public class PlaylistService { private MediaFileService mediaFileService; private SecurityService securityService; - private net.sourceforge.subsonic.service.PlaylistService playlistService; + private org.libresonic.player.service.PlaylistService playlistService; private MediaFileDao mediaFileDao; private SettingsService settingsService; private PlayerService playerService; - private SubsonicLocaleResolver localeResolver; + private LibresonicLocaleResolver localeResolver; public List getReadablePlaylists() { HttpServletRequest request = WebContextFactory.get().getHttpServletRequest(); @@ -139,7 +140,7 @@ public class PlaylistService { playlist.setChanged(now); playlist.setShared(false); - ResourceBundle bundle = ResourceBundle.getBundle("net.sourceforge.subsonic.i18n.ResourceBundle", locale); + ResourceBundle bundle = ResourceBundle.getBundle("org.libresonic.player.i18n.ResourceBundle", locale); playlist.setName(bundle.getString("top.starred") + " " + dateFormat.format(now)); playlistService.createPlaylist(playlist); @@ -236,7 +237,7 @@ public class PlaylistService { return getPlaylist(id); } - public void setPlaylistService(net.sourceforge.subsonic.service.PlaylistService playlistService) { + public void setPlaylistService(org.libresonic.player.service.PlaylistService playlistService) { this.playlistService = playlistService; } @@ -260,7 +261,7 @@ public class PlaylistService { this.playerService = playerService; } - public void setLocaleResolver(SubsonicLocaleResolver localeResolver) { + public void setLocaleResolver(LibresonicLocaleResolver localeResolver) { this.localeResolver = localeResolver; } } \ No newline at end of file diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ScanInfo.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/ScanInfo.java similarity index 69% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ScanInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/ScanInfo.java index d984069e..99afe0f1 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/ScanInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/ScanInfo.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; /** * Media folder scanning status. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/SimilarArtist.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/SimilarArtist.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/SimilarArtist.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/SimilarArtist.java index 09d6cd1f..53125fd2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/SimilarArtist.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/SimilarArtist.java @@ -1,22 +1,22 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; /** * Contains info about a similar artist. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/StarService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/StarService.java similarity index 73% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/StarService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/StarService.java index 5d014e06..56f462a6 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/StarService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/StarService.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.SecurityService; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.SecurityService; import org.directwebremoting.WebContext; import org.directwebremoting.WebContextFactory; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TagService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/TagService.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TagService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/TagService.java index 6814e89e..a43a0d0f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TagService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/TagService.java @@ -1,33 +1,34 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.metadata.MetaData; -import net.sourceforge.subsonic.service.metadata.MetaDataParser; -import net.sourceforge.subsonic.service.metadata.MetaDataParserFactory; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.metadata.MetaData; +import org.libresonic.player.service.metadata.MetaDataParser; +import org.libresonic.player.service.metadata.MetaDataParserFactory; /** * Provides AJAX-enabled services for editing tags in music files. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TopSong.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/TopSong.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TopSong.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/TopSong.java index 8e28fcfe..acced94e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TopSong.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/TopSong.java @@ -1,22 +1,22 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; /** * See {@link ArtistInfo}. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TransferService.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/TransferService.java similarity index 73% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TransferService.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/TransferService.java index 19309348..171414b4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/TransferService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/TransferService.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; -import net.sourceforge.subsonic.domain.*; -import net.sourceforge.subsonic.controller.*; +import org.libresonic.player.domain.*; +import org.libresonic.player.controller.*; import org.directwebremoting.*; import javax.servlet.http.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/UploadInfo.java b/libresonic-main/src/main/java/org/libresonic/player/ajax/UploadInfo.java similarity index 74% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/UploadInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/ajax/UploadInfo.java index 47f9de99..4f1b72fd 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ajax/UploadInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ajax/UploadInfo.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ajax; +package org.libresonic.player.ajax; /** * Contains status for a file upload. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/cache/CacheFactory.java b/libresonic-main/src/main/java/org/libresonic/player/cache/CacheFactory.java similarity index 71% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/cache/CacheFactory.java rename to libresonic-main/src/main/java/org/libresonic/player/cache/CacheFactory.java index 00f656b1..d8606281 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/cache/CacheFactory.java +++ b/libresonic-main/src/main/java/org/libresonic/player/cache/CacheFactory.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.cache; +package org.libresonic.player.cache; import java.io.File; @@ -28,8 +29,8 @@ import net.sf.ehcache.CacheManager; import net.sf.ehcache.Ehcache; import net.sf.ehcache.config.Configuration; import net.sf.ehcache.config.ConfigurationFactory; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.Logger; +import org.libresonic.player.service.SettingsService; /** * Initializes Ehcache and creates caches. @@ -45,8 +46,8 @@ public class CacheFactory implements InitializingBean { public void afterPropertiesSet() throws Exception { Configuration configuration = ConfigurationFactory.parseConfiguration(); - // Override configuration to make sure cache is stored in Subsonic home dir. - File cacheDir = new File(SettingsService.getSubsonicHome(), "cache"); + // Override configuration to make sure cache is stored in Libresonic home dir. + File cacheDir = new File(SettingsService.getLibresonicHome(), "cache"); configuration.getDiskStoreConfiguration().setPath(cacheDir.getPath()); cacheManager = CacheManager.create(configuration); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/AdvancedSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/AdvancedSettingsCommand.java similarity index 63% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/AdvancedSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/AdvancedSettingsCommand.java index 402bd3bb..eaad28af 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/AdvancedSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/AdvancedSettingsCommand.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; -import net.sourceforge.subsonic.controller.AdvancedSettingsController; +import org.libresonic.player.controller.AdvancedSettingsController; /** * Command used in {@link AdvancedSettingsController}. @@ -39,6 +40,13 @@ public class AdvancedSettingsCommand { private boolean isReloadNeeded; private boolean toast; + private String smtpServer; + private String smtpEncryption; + private String smtpPort; + private String smtpUser; + private String smtpPassword; + private String smtpFrom; + public String getDownloadLimit() { return downloadLimit; } @@ -126,4 +134,52 @@ public class AdvancedSettingsCommand { public void setToast(boolean toast) { this.toast = toast; } + + public String getSmtpServer() { + return smtpServer; + } + + public void setSmtpServer(String smtpServer) { + this.smtpServer = smtpServer; + } + + public String getSmtpEncryption() { + return smtpEncryption; + } + + public void setSmtpEncryption(String smtpEncryption) { + this.smtpEncryption = smtpEncryption; + } + + public String getSmtpPort() { + return smtpPort; + } + + public void setSmtpPort(String smtpPort) { + this.smtpPort = smtpPort; + } + + public String getSmtpUser() { + return smtpUser; + } + + public void setSmtpUser(String smtpUser) { + this.smtpUser = smtpUser; + } + + public String getSmtpPassword() { + return smtpPassword; + } + + public void setSmtpPassword(String smtpPassword) { + this.smtpPassword = smtpPassword; + } + + public String getSmtpFrom() { + return smtpFrom; + } + + public void setSmtpFrom(String smtpFrom) { + this.smtpFrom = smtpFrom; + } } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/EnumHolder.java b/libresonic-main/src/main/java/org/libresonic/player/command/EnumHolder.java similarity index 70% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/EnumHolder.java rename to libresonic-main/src/main/java/org/libresonic/player/command/EnumHolder.java index bb1fc5ff..7a25abaa 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/EnumHolder.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/EnumHolder.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; /** * Holds the name and description of an enum value. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/GeneralSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/GeneralSettingsCommand.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/GeneralSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/GeneralSettingsCommand.java index ade1c501..52ffbd47 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/GeneralSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/GeneralSettingsCommand.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; -import net.sourceforge.subsonic.controller.GeneralSettingsController; -import net.sourceforge.subsonic.domain.Theme; +import org.libresonic.player.controller.GeneralSettingsController; +import org.libresonic.player.domain.Theme; /** * Command used in {@link GeneralSettingsController}. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/MusicFolderSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/MusicFolderSettingsCommand.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/MusicFolderSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/MusicFolderSettingsCommand.java index 8fcfa72c..1c45816e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/MusicFolderSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/MusicFolderSettingsCommand.java @@ -1,29 +1,30 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; import java.io.File; import java.util.Date; import java.util.List; -import net.sourceforge.subsonic.controller.MusicFolderSettingsController; -import net.sourceforge.subsonic.domain.MusicFolder; +import org.libresonic.player.controller.MusicFolderSettingsController; +import org.libresonic.player.domain.MusicFolder; import org.apache.commons.lang.StringUtils; /** diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/NetworkSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/NetworkSettingsCommand.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/NetworkSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/NetworkSettingsCommand.java index 3b9b3aa7..67fe762b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/NetworkSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/NetworkSettingsCommand.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; -import net.sourceforge.subsonic.domain.LicenseInfo; +import org.libresonic.player.domain.LicenseInfo; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PasswordSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/PasswordSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java index 21986023..8f12e554 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PasswordSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; -import net.sourceforge.subsonic.controller.*; +import org.libresonic.player.controller.*; /** * Command used in {@link PasswordSettingsController}. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PersonalSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PersonalSettingsCommand.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/PersonalSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/PersonalSettingsCommand.java index 28098f9a..bea8cd23 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PersonalSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/PersonalSettingsCommand.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; import java.util.List; -import net.sourceforge.subsonic.controller.PersonalSettingsController; -import net.sourceforge.subsonic.domain.AlbumListType; -import net.sourceforge.subsonic.domain.Avatar; -import net.sourceforge.subsonic.domain.Theme; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; +import org.libresonic.player.controller.PersonalSettingsController; +import org.libresonic.player.domain.AlbumListType; +import org.libresonic.player.domain.Avatar; +import org.libresonic.player.domain.Theme; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; /** * Command used in {@link PersonalSettingsController}. @@ -56,6 +57,7 @@ public class PersonalSettingsCommand { private boolean songNotificationEnabled; private boolean queueFollowingSongs; private boolean lastFmEnabled; + private int listReloadDelay; private String lastFmUsername; private String lastFmPassword; private boolean isReloadNeeded; @@ -236,6 +238,14 @@ public class PersonalSettingsCommand { this.lastFmEnabled = lastFmEnabled; } + public int getListReloadDelay() { + return listReloadDelay; + } + + public void setListReloadDelay(int listReloadDelay) { + this.listReloadDelay = listReloadDelay; + } + public String getLastFmUsername() { return lastFmUsername; } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PlayerSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PlayerSettingsCommand.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/PlayerSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/PlayerSettingsCommand.java index 9ee354ec..89260232 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PlayerSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/PlayerSettingsCommand.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; import java.util.Date; import java.util.List; -import net.sourceforge.subsonic.controller.PlayerSettingsController; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.PlayerTechnology; -import net.sourceforge.subsonic.domain.TranscodeScheme; -import net.sourceforge.subsonic.domain.Transcoding; +import org.libresonic.player.controller.PlayerSettingsController; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.PlayerTechnology; +import org.libresonic.player.domain.TranscodeScheme; +import org.libresonic.player.domain.Transcoding; /** * Command used in {@link PlayerSettingsController}. @@ -40,6 +41,7 @@ public class PlayerSettingsCommand { private Date lastSeen; private boolean isDynamicIp; private boolean isAutoControlEnabled; + private boolean isM3uBomEnabled; private String technologyName; private String transcodeSchemeName; private boolean transcodingSupported; @@ -108,6 +110,14 @@ public class PlayerSettingsCommand { isAutoControlEnabled = autoControlEnabled; } + public boolean isM3uBomEnabled() { + return isM3uBomEnabled; + } + + public void setM3uBomEnabled(boolean m3uBomEnabled) { + isM3uBomEnabled = m3uBomEnabled; + } + public String getTranscodeSchemeName() { return transcodeSchemeName; } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PodcastSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PodcastSettingsCommand.java similarity index 78% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/PodcastSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/PodcastSettingsCommand.java index 3a07cd14..bfe5a136 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PodcastSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/PodcastSettingsCommand.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; -import net.sourceforge.subsonic.controller.PodcastSettingsController; +import org.libresonic.player.controller.PodcastSettingsController; /** * Command used in {@link PodcastSettingsController}. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PremiumSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/PremiumSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java index 92b10c67..f20014dc 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/PremiumSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java @@ -1,28 +1,29 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; import org.apache.commons.lang.StringUtils; -import net.sourceforge.subsonic.controller.PremiumSettingsController; -import net.sourceforge.subsonic.domain.LicenseInfo; -import net.sourceforge.subsonic.domain.User; +import org.libresonic.player.controller.PremiumSettingsController; +import org.libresonic.player.domain.LicenseInfo; +import org.libresonic.player.domain.User; /** * Command used in {@link PremiumSettingsController}. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/SearchCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/SearchCommand.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/SearchCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/SearchCommand.java index 0dacfbd4..109dbee8 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/SearchCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/SearchCommand.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; -import net.sourceforge.subsonic.domain.*; -import net.sourceforge.subsonic.controller.*; +import org.libresonic.player.domain.*; +import org.libresonic.player.controller.*; import java.util.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/UserSettingsCommand.java b/libresonic-main/src/main/java/org/libresonic/player/command/UserSettingsCommand.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/command/UserSettingsCommand.java rename to libresonic-main/src/main/java/org/libresonic/player/command/UserSettingsCommand.java index 2acff8be..e10bbc7c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/command/UserSettingsCommand.java +++ b/libresonic-main/src/main/java/org/libresonic/player/command/UserSettingsCommand.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.command; +package org.libresonic.player.command; -import net.sourceforge.subsonic.controller.UserSettingsController; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.TranscodeScheme; -import net.sourceforge.subsonic.domain.User; +import org.libresonic.player.controller.UserSettingsController; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.TranscodeScheme; +import org.libresonic.player.domain.User; import java.util.List; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AbstractChartController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AbstractChartController.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AbstractChartController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/AbstractChartController.java index f163f82d..eb5f9eed 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AbstractChartController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AbstractChartController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import org.springframework.web.servlet.support.*; import org.springframework.web.servlet.mvc.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AdvancedSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java similarity index 69% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AdvancedSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java index 0228a6fb..3622bedc 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AdvancedSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AdvancedSettingsController.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.command.AdvancedSettingsCommand; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.command.AdvancedSettingsCommand; +import org.libresonic.player.service.SettingsService; import org.springframework.web.servlet.mvc.SimpleFormController; import org.apache.commons.lang.StringUtils; @@ -46,6 +47,12 @@ public class AdvancedSettingsController extends SimpleFormController { command.setLdapAutoShadowing(settingsService.isLdapAutoShadowing()); command.setBrand(settingsService.getBrand()); + command.setSmtpServer(settingsService.getSmtpServer()); + command.setSmtpEncryption(settingsService.getSmtpEncryption()); + command.setSmtpPort(settingsService.getSmtpPort()); + command.setSmtpUser(settingsService.getSmtpUser()); + command.setSmtpFrom(settingsService.getSmtpFrom()); + return command; } @@ -73,6 +80,16 @@ public class AdvancedSettingsController extends SimpleFormController { settingsService.setLdapManagerPassword(command.getLdapManagerPassword()); } + settingsService.setSmtpServer(command.getSmtpServer()); + settingsService.setSmtpEncryption(command.getSmtpEncryption()); + settingsService.setSmtpPort(command.getSmtpPort()); + settingsService.setSmtpUser(command.getSmtpUser()); + settingsService.setSmtpFrom(command.getSmtpFrom()); + + if (StringUtils.isNotEmpty(command.getSmtpPassword())) { + settingsService.setSmtpPassword(command.getSmtpPassword()); + } + settingsService.save(); } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AllmusicController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AllmusicController.java similarity index 73% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AllmusicController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/AllmusicController.java index 8b34f383..ec1d1012 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AllmusicController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AllmusicController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import org.springframework.web.servlet.*; import org.springframework.web.servlet.mvc.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AutoCoverDemo.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AutoCoverDemo.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AutoCoverDemo.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/AutoCoverDemo.java index e110c438..0992634b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AutoCoverDemo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AutoCoverDemo.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2013 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2013 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.awt.Color; import java.awt.Dimension; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AvatarController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AvatarController.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AvatarController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/AvatarController.java index 2d4f9d3d..a8f10951 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AvatarController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AvatarController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -26,10 +27,10 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import org.springframework.web.servlet.mvc.LastModified; -import net.sourceforge.subsonic.domain.Avatar; -import net.sourceforge.subsonic.domain.AvatarScheme; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.Avatar; +import org.libresonic.player.domain.AvatarScheme; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.SettingsService; /** * Controller which produces avatar images. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AvatarUploadController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/AvatarUploadController.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AvatarUploadController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/AvatarUploadController.java index a22cd9a9..1c829ba9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/AvatarUploadController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/AvatarUploadController.java @@ -1,28 +1,29 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.Avatar; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.Avatar; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.util.StringUtil; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ChangeCoverArtController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/ChangeCoverArtController.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ChangeCoverArtController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/ChangeCoverArtController.java index 94c88656..9e977ea2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ChangeCoverArtController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/ChangeCoverArtController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.Map; @@ -28,8 +29,8 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.service.MediaFileService; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.service.MediaFileService; /** * Controller for changing cover art. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/CoverArtController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/CoverArtController.java similarity index 94% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/CoverArtController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/CoverArtController.java index 22f386d5..239bc225 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/CoverArtController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/CoverArtController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.awt.Color; import java.awt.Font; @@ -49,24 +50,24 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import org.springframework.web.servlet.mvc.LastModified; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.AlbumDao; -import net.sourceforge.subsonic.dao.ArtistDao; -import net.sourceforge.subsonic.domain.Album; -import net.sourceforge.subsonic.domain.Artist; -import net.sourceforge.subsonic.domain.CoverArtScheme; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.PodcastChannel; -import net.sourceforge.subsonic.domain.Transcoding; -import net.sourceforge.subsonic.domain.VideoTranscodingSettings; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.PodcastService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.service.metadata.JaudiotaggerParser; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.AlbumDao; +import org.libresonic.player.dao.ArtistDao; +import org.libresonic.player.domain.Album; +import org.libresonic.player.domain.Artist; +import org.libresonic.player.domain.CoverArtScheme; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.PodcastChannel; +import org.libresonic.player.domain.Transcoding; +import org.libresonic.player.domain.VideoTranscodingSettings; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.service.metadata.JaudiotaggerParser; +import org.libresonic.player.util.StringUtil; /** * Controller which produces cover art images. @@ -298,7 +299,7 @@ public class CoverArtController implements Controller, LastModified { } private synchronized File getImageCacheDirectory(int size) { - File dir = new File(SettingsService.getSubsonicHome(), "thumbs"); + File dir = new File(SettingsService.getLibresonicHome(), "thumbs"); dir = new File(dir, String.valueOf(size)); if (!dir.exists()) { if (dir.mkdirs()) { diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DBController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/DBController.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DBController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/DBController.java index 17d06497..594221f8 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DBController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/DBController.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.dao.DaoHelper; +import org.libresonic.player.dao.DaoHelper; import org.apache.commons.lang.exception.ExceptionUtils; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.ColumnMapRowMapper; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DLNASettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/DLNASettingsController.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DLNASettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/DLNASettingsController.java index 5eaa45d2..8995c462 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DLNASettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/DLNASettingsController.java @@ -1,22 +1,22 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2013 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.Map; @@ -29,8 +29,8 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.UPnPService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.UPnPService; /** * Controller for the page used to administrate the UPnP/DLNA server settings. @@ -75,7 +75,7 @@ public class DLNASettingsController extends ParameterizableViewController { boolean dlnaEnabled = ServletRequestUtils.getBooleanParameter(request, "dlnaEnabled", false); String dlnaServerName = StringUtils.trimToNull(request.getParameter("dlnaServerName")); if (dlnaServerName == null) { - dlnaServerName = "Subsonic"; + dlnaServerName = "Libresonic"; } upnpService.setMediaServerEnabled(false); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DownloadController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/DownloadController.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DownloadController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/DownloadController.java index f207feb4..86650bfb 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/DownloadController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/DownloadController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.BufferedInputStream; import java.io.File; @@ -43,23 +44,23 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import org.springframework.web.servlet.mvc.LastModified; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.TransferStatus; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.io.RangeOutputStream; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.StatusService; -import net.sourceforge.subsonic.util.FileUtil; -import net.sourceforge.subsonic.util.HttpRange; -import net.sourceforge.subsonic.util.Util; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.TransferStatus; +import org.libresonic.player.domain.User; +import org.libresonic.player.io.RangeOutputStream; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.StatusService; +import org.libresonic.player.util.FileUtil; +import org.libresonic.player.util.HttpRange; +import org.libresonic.player.util.Util; /** * A controller used for downloading files to a remote client. If the requested path refers to a file, the diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/EditTagsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/EditTagsController.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/EditTagsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/EditTagsController.java index 9b7befd9..19f5365d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/EditTagsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/EditTagsController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.ArrayList; import java.util.HashMap; @@ -31,11 +32,11 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.metadata.JaudiotaggerParser; -import net.sourceforge.subsonic.service.metadata.MetaDataParser; -import net.sourceforge.subsonic.service.metadata.MetaDataParserFactory; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.metadata.JaudiotaggerParser; +import org.libresonic.player.service.metadata.MetaDataParser; +import org.libresonic.player.service.metadata.MetaDataParserFactory; /** * Controller for the page used to edit MP3 tags. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ExternalPlayerController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/ExternalPlayerController.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ExternalPlayerController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/ExternalPlayerController.java index 31a20209..a58dbe5d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ExternalPlayerController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/ExternalPlayerController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.IOException; import java.util.ArrayList; @@ -31,14 +32,14 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Share; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.ShareService; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Share; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.ShareService; /** * Controller for the page used to play shared music (Twitter, Facebook etc). diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/GeneralSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/GeneralSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java index e3e43432..9c1b5ffb 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/GeneralSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.Locale; @@ -24,9 +25,9 @@ import javax.servlet.http.HttpServletRequest; import org.springframework.web.servlet.mvc.SimpleFormController; -import net.sourceforge.subsonic.command.GeneralSettingsCommand; -import net.sourceforge.subsonic.domain.Theme; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.command.GeneralSettingsCommand; +import org.libresonic.player.domain.Theme; +import org.libresonic.player.service.SettingsService; /** * Controller for the page used to administrate general settings. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HLSController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/HLSController.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HLSController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/HLSController.java index 13b1b19b..04cf4f52 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HLSController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/HLSController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.awt.Dimension; import java.io.PrintWriter; @@ -33,13 +34,13 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.util.Pair; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Player; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.util.Pair; +import org.libresonic.player.util.StringUtil; /** * Controller which produces the HLS (Http Live Streaming) playlist. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HelpController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/HelpController.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HelpController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/HelpController.java index 276c0f27..24f0c27a 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HelpController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/HelpController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.Map; @@ -27,10 +28,10 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.VersionService; +import org.libresonic.player.Logger; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.VersionService; /** * Controller for the help page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HomeController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/HomeController.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HomeController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/HomeController.java index 4ef59d2c..c6b0ef68 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/HomeController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/HomeController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.IOException; import java.util.ArrayList; @@ -34,19 +35,19 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; import org.springframework.web.servlet.view.RedirectView; -import net.sourceforge.subsonic.domain.AlbumListType; -import net.sourceforge.subsonic.domain.CoverArtScheme; -import net.sourceforge.subsonic.domain.Genre; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.MediaScannerService; -import net.sourceforge.subsonic.service.RatingService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.AlbumListType; +import org.libresonic.player.domain.CoverArtScheme; +import org.libresonic.player.domain.Genre; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.MediaScannerService; +import org.libresonic.player.service.RatingService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; import static org.springframework.web.bind.ServletRequestUtils.getIntParameter; import static org.springframework.web.bind.ServletRequestUtils.getStringParameter; @@ -75,8 +76,8 @@ public class HomeController extends ParameterizableViewController { } int listOffset = getIntParameter(request, "listOffset", 0); AlbumListType listType = AlbumListType.fromId(getStringParameter(request, "listType")); + UserSettings userSettings = settingsService.getUserSettings(user.getUsername()); if (listType == null) { - UserSettings userSettings = settingsService.getUserSettings(user.getUsername()); listType = userSettings.getDefaultAlbumList(); } @@ -139,6 +140,7 @@ public class HomeController extends ParameterizableViewController { map.put("coverArtSize", CoverArtScheme.MEDIUM.getSize()); map.put("listOffset", listOffset); map.put("musicFolder", selectedMusicFolder); + map.put("listReloadDelay", userSettings.getListReloadDelay()); ModelAndView result = super.handleRequestInternal(request, response); result.addObject("model", map); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ImportPlaylistController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/ImportPlaylistController.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ImportPlaylistController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/ImportPlaylistController.java index 2c59a386..3f44959a 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ImportPlaylistController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/ImportPlaylistController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.List; @@ -34,9 +35,9 @@ import org.apache.commons.lang.StringUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SecurityService; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SecurityService; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/InternetRadioSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/InternetRadioSettingsController.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/InternetRadioSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/InternetRadioSettingsController.java index 13026147..649605b9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/InternetRadioSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/InternetRadioSettingsController.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.domain.InternetRadio; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.InternetRadio; +import org.libresonic.player.service.SettingsService; import org.apache.commons.lang.StringUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/JAXBWriter.java b/libresonic-main/src/main/java/org/libresonic/player/controller/JAXBWriter.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/JAXBWriter.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/JAXBWriter.java index 79b063d5..7a6c8579 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/JAXBWriter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/JAXBWriter.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.InputStream; import java.io.StringWriter; @@ -36,13 +37,13 @@ import org.eclipse.persistence.jaxb.MarshallerProperties; import org.jdom.Attribute; import org.jdom.Document; import org.jdom.input.SAXBuilder; -import org.subsonic.restapi.Error; -import org.subsonic.restapi.ObjectFactory; -import org.subsonic.restapi.Response; -import org.subsonic.restapi.ResponseStatus; +import org.libresonic.restapi.Error; +import org.libresonic.restapi.ObjectFactory; +import org.libresonic.restapi.Response; +import org.libresonic.restapi.ResponseStatus; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.util.StringUtil; import static org.springframework.web.bind.ServletRequestUtils.getStringParameter; @@ -87,7 +88,7 @@ public class JAXBWriter { private String getRESTProtocolVersion() throws Exception { InputStream in = null; try { - in = StringUtil.class.getResourceAsStream("/subsonic-rest-api.xsd"); + in = StringUtil.class.getResourceAsStream("/libresonic-rest-api.xsd"); Document document = new SAXBuilder().build(in); Attribute version = document.getRootElement().getAttribute("version"); return version.getValue(); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/LeftController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/LeftController.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/LeftController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/LeftController.java index 881f98a8..c78490b5 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/LeftController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/LeftController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.File; import java.util.Arrays; @@ -34,18 +35,18 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; import org.springframework.web.servlet.support.RequestContextUtils; -import net.sourceforge.subsonic.domain.InternetRadio; -import net.sourceforge.subsonic.domain.MediaLibraryStatistics; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.MusicFolderContent; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.MediaScannerService; -import net.sourceforge.subsonic.service.MusicIndexService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.util.FileUtil; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.InternetRadio; +import org.libresonic.player.domain.MediaLibraryStatistics; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.MusicFolderContent; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.MediaScannerService; +import org.libresonic.player.service.MusicIndexService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.util.FileUtil; +import org.libresonic.player.util.StringUtil; /** * Controller for the left index frame. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/LyricsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/LyricsController.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/LyricsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/LyricsController.java index d47ad233..838dcae0 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/LyricsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/LyricsController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import org.springframework.web.servlet.mvc.ParameterizableViewController; import org.springframework.web.servlet.ModelAndView; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/M3UController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/M3UController.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/M3UController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/M3UController.java index 63d27611..e04cd4ad 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/M3UController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/M3UController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.IOException; import java.io.PrintWriter; @@ -28,13 +29,13 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.util.StringUtil; /** * Controller which produces the M3U playlist. @@ -73,6 +74,9 @@ public class M3UController implements Controller { } private void createClientSidePlaylist(PrintWriter out, Player player, String url) throws Exception { + if (player.isM3uBomEnabled()) { + out.print("\ufeff"); + } out.println("#EXTM3U"); List result; synchronized (player.getPlayQueue()) { @@ -98,8 +102,11 @@ public class M3UController implements Controller { url += "&suffix=." + suffix; } + if (player.isM3uBomEnabled()) { + out.print("\ufeff"); + } out.println("#EXTM3U"); - out.println("#EXTINF:-1,Subsonic"); + out.println("#EXTINF:-1,Libresonic"); out.println(url); } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MainController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MainController.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MainController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/MainController.java index a70025bb..68217c85 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MainController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MainController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.IOException; import java.util.ArrayList; @@ -36,18 +37,18 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import org.springframework.web.servlet.view.RedirectView; -import net.sourceforge.subsonic.domain.CoverArtScheme; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MediaFileComparator; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.AdService; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.RatingService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.CoverArtScheme; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MediaFileComparator; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.AdService; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.RatingService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the main page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MoreController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MoreController.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MoreController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/MoreController.java index 1361e1c9..5b7a3c99 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MoreController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MoreController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.File; import java.util.Calendar; @@ -30,14 +31,14 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.util.StringUtil; /** * Controller for the "more" page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MultiController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java similarity index 70% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MultiController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java index efb97464..883e7670 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MultiController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MultiController.java @@ -1,54 +1,56 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Properties; +import java.util.Date; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.mail.Message; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; + import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; -import org.apache.http.NameValuePair; -import org.apache.http.client.HttpClient; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.impl.client.DefaultHttpClient; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.params.HttpConnectionParams; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import org.springframework.web.servlet.view.RedirectView; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.util.StringUtil; import net.tanesha.recaptcha.ReCaptcha; import net.tanesha.recaptcha.ReCaptchaFactory; import net.tanesha.recaptcha.ReCaptchaResponse; @@ -135,33 +137,65 @@ public class MultiController extends MultiActionController { return new ModelAndView("recover", "model", map); } + /* + * e-mail user new password via configured Smtp server + */ private boolean emailPassword(String password, String username, String email) { - HttpClient client = new DefaultHttpClient(); + /* Default to protocol smtp when SmtpEncryption is set to "None" */ + String prot = "smtp"; + + if (settingsService.getSmtpServer() == null || settingsService.getSmtpServer().isEmpty()) { + LOG.warn("Can not send email; no Smtp server configured."); + return false; + } + + Properties props = new Properties(); + if (settingsService.getSmtpEncryption().equals("SSL/TLS")) { + prot = "smtps"; + props.put("mail." + prot + ".ssl.enable", "true"); + } else if (settingsService.getSmtpEncryption().equals("STARTTLS")) { + prot = "smtp"; + props.put("mail." + prot + ".starttls.enable", "true"); + } + props.put("mail." + prot + ".host", settingsService.getSmtpServer()); + props.put("mail." + prot + ".port", settingsService.getSmtpPort()); + /* use authentication when SmtpUser is configured */ + if (settingsService.getSmtpUser() != null && !settingsService.getSmtpUser().isEmpty()) { + props.put("mail." + prot + ".auth", "true"); + } + + Session session = Session.getInstance(props, null); + try { - HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); - HttpConnectionParams.setSoTimeout(client.getParams(), 10000); - HttpPost method = new HttpPost("http://subsonic.org/backend/sendMail.view"); - - List params = new ArrayList(); - params.add(new BasicNameValuePair("from", "noreply@subsonic.org")); - params.add(new BasicNameValuePair("to", email)); - params.add(new BasicNameValuePair("subject", "Subsonic Password")); - params.add(new BasicNameValuePair("text", - "Hi there!\n\n" + - "You have requested to reset your Subsonic password. Please find your new login details below.\n\n" + - "Username: " + username + "\n" + - "Password: " + password + "\n\n" + - "--\n" + - "The Subsonic Team\n" + - "subsonic.org")); - method.setEntity(new UrlEncodedFormEntity(params, StringUtil.ENCODING_UTF8)); - client.execute(method); + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress(settingsService.getSmtpFrom())); + message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(email)); + message.setSubject("Libresonic Password"); + message.setText("Hi there!\n\n" + + "You have requested to reset your Libresonic password. Please find your new login details below.\n\n" + + "Username: " + username + "\n" + + "Password: " + password + "\n\n" + + "--\n" + + "Your Libresonic server\n" + + "libresonic.org"); + message.setSentDate(new Date()); + + Transport trans = session.getTransport(prot); + try { + if (props.get("mail." + prot + ".auth") != null && props.get("mail." + prot + ".auth").equals("true")) { + trans.connect(settingsService.getSmtpServer(), settingsService.getSmtpUser(), settingsService.getSmtpPassword()); + } else { + trans.connect(); + } + trans.sendMessage(message, message.getAllRecipients()); + } finally { + trans.close(); + } return true; + } catch (Exception x) { LOG.warn("Failed to send email.", x); return false; - } finally { - client.getConnectionManager().shutdown(); } } @@ -205,6 +239,7 @@ public class MultiController extends MultiActionController { Map map = new HashMap(); map.put("showRight", userSettings.isShowNowPlayingEnabled() || userSettings.isShowChatEnabled()); map.put("autoHidePlayQueue", userSettings.isAutoHidePlayQueue()); + map.put("listReloadDelay", userSettings.getListReloadDelay()); map.put("showSideBar", userSettings.isShowSideBar()); map.put("brand", settingsService.getBrand()); return new ModelAndView("index", "model", map); @@ -228,8 +263,8 @@ public class MultiController extends MultiActionController { private void updatePortAndContextPath(HttpServletRequest request) { - int port = Integer.parseInt(System.getProperty("subsonic.port", String.valueOf(request.getLocalPort()))); - int httpsPort = Integer.parseInt(System.getProperty("subsonic.httpsPort", "0")); + int port = Integer.parseInt(System.getProperty("libresonic.port", String.valueOf(request.getLocalPort()))); + int httpsPort = Integer.parseInt(System.getProperty("libresonic.httpsPort", "0")); String contextPath = request.getContextPath().replace("/", ""); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MusicFolderSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MusicFolderSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java index 60f00ac4..eaef1b65 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/MusicFolderSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java @@ -1,30 +1,31 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; - -import net.sourceforge.subsonic.command.MusicFolderSettingsCommand; -import net.sourceforge.subsonic.dao.AlbumDao; -import net.sourceforge.subsonic.dao.ArtistDao; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.service.MediaScannerService; -import net.sourceforge.subsonic.service.SettingsService; +package org.libresonic.player.controller; + +import org.libresonic.player.command.MusicFolderSettingsCommand; +import org.libresonic.player.dao.AlbumDao; +import org.libresonic.player.dao.ArtistDao; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.service.MediaScannerService; +import org.libresonic.player.service.SettingsService; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/NetworkSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/NetworkSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java index 76a043fa..08824ccf 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/NetworkSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.Random; @@ -25,10 +26,10 @@ import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.springframework.web.servlet.mvc.SimpleFormController; -import net.sourceforge.subsonic.command.NetworkSettingsCommand; -import net.sourceforge.subsonic.domain.UrlRedirectType; -import net.sourceforge.subsonic.service.NetworkService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.command.NetworkSettingsCommand; +import org.libresonic.player.domain.UrlRedirectType; +import org.libresonic.player.service.NetworkService; +import org.libresonic.player.service.SettingsService; /** * Controller for the page used to change the network settings. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/NowPlayingController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/NowPlayingController.java similarity index 75% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/NowPlayingController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/NowPlayingController.java index 93e2131e..1a634bde 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/NowPlayingController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/NowPlayingController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.List; @@ -27,12 +28,12 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import org.springframework.web.servlet.view.RedirectView; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.TransferStatus; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.StatusService; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.TransferStatus; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.StatusService; /** * Controller for showing what's currently playing. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PasswordSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java similarity index 76% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PasswordSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java index b30e510f..3fb1e1ce 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PasswordSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import org.springframework.web.servlet.mvc.*; -import net.sourceforge.subsonic.service.*; -import net.sourceforge.subsonic.command.*; -import net.sourceforge.subsonic.domain.*; +import org.libresonic.player.service.*; +import org.libresonic.player.command.*; +import org.libresonic.player.domain.*; import javax.servlet.http.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PersonalSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PersonalSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java index 5348493e..e772c224 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PersonalSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.Date; import java.util.Locale; @@ -26,14 +27,14 @@ import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.springframework.web.servlet.mvc.SimpleFormController; -import net.sourceforge.subsonic.command.PersonalSettingsCommand; -import net.sourceforge.subsonic.domain.AlbumListType; -import net.sourceforge.subsonic.domain.AvatarScheme; -import net.sourceforge.subsonic.domain.Theme; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.command.PersonalSettingsCommand; +import org.libresonic.player.domain.AlbumListType; +import org.libresonic.player.domain.AvatarScheme; +import org.libresonic.player.domain.Theme; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the page used to administrate per-user settings. @@ -72,6 +73,7 @@ public class PersonalSettingsController extends SimpleFormController { command.setBetaVersionNotificationEnabled(userSettings.isBetaVersionNotificationEnabled()); command.setSongNotificationEnabled(userSettings.isSongNotificationEnabled()); command.setAutoHidePlayQueue(userSettings.isAutoHidePlayQueue()); + command.setListReloadDelay(userSettings.getListReloadDelay()); command.setLastFmEnabled(userSettings.isLastFmEnabled()); command.setLastFmUsername(userSettings.getLastFmUsername()); command.setLastFmPassword(userSettings.getLastFmPassword()); @@ -134,6 +136,7 @@ public class PersonalSettingsController extends SimpleFormController { settings.setBetaVersionNotificationEnabled(command.isBetaVersionNotificationEnabled()); settings.setSongNotificationEnabled(command.isSongNotificationEnabled()); settings.setAutoHidePlayQueue(command.isAutoHidePlayQueue()); + settings.setListReloadDelay(command.getListReloadDelay()); settings.setLastFmEnabled(command.isLastFmEnabled()); settings.setLastFmUsername(command.getLastFmUsername()); settings.setSystemAvatarId(getSystemAvatarId(command)); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlayQueueController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PlayQueueController.java similarity index 78% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlayQueueController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PlayQueueController.java index 8952bb6b..069660e4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlayQueueController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PlayQueueController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.Map; @@ -27,12 +28,12 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the playlist frame. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlayerSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlayerSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java index ef2a7598..2a6d5d28 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlayerSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.ArrayList; import java.util.List; @@ -26,15 +27,15 @@ import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.springframework.web.servlet.mvc.SimpleFormController; -import net.sourceforge.subsonic.command.PlayerSettingsCommand; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.PlayerTechnology; -import net.sourceforge.subsonic.domain.TranscodeScheme; -import net.sourceforge.subsonic.domain.Transcoding; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.TranscodingService; +import org.libresonic.player.command.PlayerSettingsCommand; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.PlayerTechnology; +import org.libresonic.player.domain.TranscodeScheme; +import org.libresonic.player.domain.Transcoding; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.TranscodingService; /** * Controller for the player settings page. @@ -71,6 +72,7 @@ public class PlayerSettingsController extends SimpleFormController { command.setLastSeen(player.getLastSeen()); command.setDynamicIp(player.isDynamicIp()); command.setAutoControlEnabled(player.isAutoControlEnabled()); + command.setM3uBomEnabled(player.isM3uBomEnabled()); command.setTranscodeSchemeName(player.getTranscodeScheme().name()); command.setTechnologyName(player.getTechnology().name()); command.setAllTranscodings(transcodingService.getAllTranscodings()); @@ -98,6 +100,7 @@ public class PlayerSettingsController extends SimpleFormController { Player player = playerService.getPlayerById(command.getPlayerId()); player.setAutoControlEnabled(command.isAutoControlEnabled()); + player.setM3uBomEnabled(command.isM3uBomEnabled()); player.setDynamicIp(command.isDynamicIp()); player.setName(StringUtils.trimToNull(command.getName())); player.setTranscodeScheme(TranscodeScheme.valueOf(command.getTranscodeSchemeName())); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlaylistController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PlaylistController.java similarity index 78% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlaylistController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PlaylistController.java index 6cf24405..138ba550 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlaylistController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PlaylistController.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; - -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +package org.libresonic.player.controller; + +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlaylistsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PlaylistsController.java similarity index 73% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlaylistsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PlaylistsController.java index d00322cb..3afbb1f1 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PlaylistsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PlaylistsController.java @@ -1,22 +1,22 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.List; @@ -30,14 +30,14 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; import org.springframework.web.servlet.view.RedirectView; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the playlists page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastChannelController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastChannelController.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastChannelController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PodcastChannelController.java index 4ef0d92b..8ddbb583 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastChannelController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastChannelController.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.Map; @@ -29,8 +29,8 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.service.PodcastService; -import net.sourceforge.subsonic.service.SecurityService; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.service.SecurityService; /** * Controller for the "Podcast channel" page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastChannelsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastChannelsController.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastChannelsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PodcastChannelsController.java index 2e044ef2..1dff8955 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastChannelsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastChannelsController.java @@ -1,22 +1,22 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.LinkedHashMap; @@ -29,11 +29,11 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.PodcastChannel; -import net.sourceforge.subsonic.domain.PodcastEpisode; -import net.sourceforge.subsonic.service.PodcastService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.PodcastChannel; +import org.libresonic.player.domain.PodcastEpisode; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the "Podcast channels" page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastController.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PodcastController.java index a3f1467b..929f679e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastController.java @@ -1,29 +1,30 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; - -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.util.StringUtil; +package org.libresonic.player.controller; + +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.util.StringUtil; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastReceiverAdminController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastReceiverAdminController.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastReceiverAdminController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PodcastReceiverAdminController.java index 20224823..7c7858c2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastReceiverAdminController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastReceiverAdminController.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.domain.PodcastEpisode; -import net.sourceforge.subsonic.domain.PodcastStatus; -import net.sourceforge.subsonic.service.PodcastService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.PodcastEpisode; +import org.libresonic.player.domain.PodcastStatus; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.util.StringUtil; import org.apache.commons.lang.StringUtils; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java index 85be43d8..3608b2f2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PodcastSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import org.springframework.web.servlet.mvc.SimpleFormController; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.PodcastService; -import net.sourceforge.subsonic.command.PodcastSettingsCommand; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.command.PodcastSettingsCommand; import javax.servlet.http.HttpServletRequest; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PremiumSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PremiumSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java index 9add5d32..39c29a6c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/PremiumSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.Date; @@ -27,9 +28,9 @@ import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; -import net.sourceforge.subsonic.command.PremiumSettingsCommand; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.command.PremiumSettingsCommand; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the Subsonic Premium page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ProxyController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/ProxyController.java similarity index 85% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ProxyController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/ProxyController.java index 9535e059..06691f1e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ProxyController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/ProxyController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.InputStream; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RESTController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RESTController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java index 255608bc..6d99031f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RESTController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/RESTController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.ArrayList; import java.util.Collections; @@ -37,109 +38,109 @@ import org.apache.commons.lang.StringUtils; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; -import org.subsonic.restapi.AlbumID3; -import org.subsonic.restapi.AlbumList; -import org.subsonic.restapi.AlbumList2; -import org.subsonic.restapi.AlbumWithSongsID3; -import org.subsonic.restapi.ArtistID3; -import org.subsonic.restapi.ArtistInfo; -import org.subsonic.restapi.ArtistInfo2; -import org.subsonic.restapi.ArtistWithAlbumsID3; -import org.subsonic.restapi.ArtistsID3; -import org.subsonic.restapi.Bookmarks; -import org.subsonic.restapi.ChatMessage; -import org.subsonic.restapi.ChatMessages; -import org.subsonic.restapi.Child; -import org.subsonic.restapi.Directory; -import org.subsonic.restapi.Genres; -import org.subsonic.restapi.Index; -import org.subsonic.restapi.IndexID3; -import org.subsonic.restapi.Indexes; -import org.subsonic.restapi.InternetRadioStation; -import org.subsonic.restapi.InternetRadioStations; -import org.subsonic.restapi.JukeboxPlaylist; -import org.subsonic.restapi.JukeboxStatus; -import org.subsonic.restapi.License; -import org.subsonic.restapi.Lyrics; -import org.subsonic.restapi.MediaType; -import org.subsonic.restapi.MusicFolders; -import org.subsonic.restapi.NewestPodcasts; -import org.subsonic.restapi.NowPlaying; -import org.subsonic.restapi.NowPlayingEntry; -import org.subsonic.restapi.PlaylistWithSongs; -import org.subsonic.restapi.Playlists; -import org.subsonic.restapi.PodcastStatus; -import org.subsonic.restapi.Podcasts; -import org.subsonic.restapi.Response; -import org.subsonic.restapi.SearchResult2; -import org.subsonic.restapi.SearchResult3; -import org.subsonic.restapi.Shares; -import org.subsonic.restapi.SimilarSongs; -import org.subsonic.restapi.SimilarSongs2; -import org.subsonic.restapi.Songs; -import org.subsonic.restapi.Starred; -import org.subsonic.restapi.Starred2; -import org.subsonic.restapi.TopSongs; -import org.subsonic.restapi.Users; -import org.subsonic.restapi.Videos; - -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.ajax.ChatService; -import net.sourceforge.subsonic.ajax.LyricsInfo; -import net.sourceforge.subsonic.ajax.LyricsService; -import net.sourceforge.subsonic.ajax.PlayQueueService; -import net.sourceforge.subsonic.command.UserSettingsCommand; -import net.sourceforge.subsonic.dao.AlbumDao; -import net.sourceforge.subsonic.dao.ArtistDao; -import net.sourceforge.subsonic.dao.BookmarkDao; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.dao.PlayQueueDao; -import net.sourceforge.subsonic.domain.Album; -import net.sourceforge.subsonic.domain.Artist; -import net.sourceforge.subsonic.domain.ArtistBio; -import net.sourceforge.subsonic.domain.Bookmark; -import net.sourceforge.subsonic.domain.Genre; -import net.sourceforge.subsonic.domain.InternetRadio; -import net.sourceforge.subsonic.domain.LicenseInfo; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.MusicFolderContent; -import net.sourceforge.subsonic.domain.MusicIndex; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.PlayStatus; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.PlayerTechnology; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.PodcastChannel; -import net.sourceforge.subsonic.domain.PodcastEpisode; -import net.sourceforge.subsonic.domain.RandomSearchCriteria; -import net.sourceforge.subsonic.domain.SavedPlayQueue; -import net.sourceforge.subsonic.domain.SearchCriteria; -import net.sourceforge.subsonic.domain.SearchResult; -import net.sourceforge.subsonic.domain.Share; -import net.sourceforge.subsonic.domain.TranscodeScheme; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.AudioScrobblerService; -import net.sourceforge.subsonic.service.JukeboxService; -import net.sourceforge.subsonic.service.LastFmService; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.MusicIndexService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.PodcastService; -import net.sourceforge.subsonic.service.RatingService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.ShareService; -import net.sourceforge.subsonic.service.StatusService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.util.Pair; -import net.sourceforge.subsonic.util.StringUtil; -import net.sourceforge.subsonic.util.Util; - -import static net.sourceforge.subsonic.security.RESTRequestParameterProcessingFilter.decrypt; +import org.libresonic.restapi.AlbumID3; +import org.libresonic.restapi.AlbumList; +import org.libresonic.restapi.AlbumList2; +import org.libresonic.restapi.AlbumWithSongsID3; +import org.libresonic.restapi.ArtistID3; +import org.libresonic.restapi.ArtistInfo; +import org.libresonic.restapi.ArtistInfo2; +import org.libresonic.restapi.ArtistWithAlbumsID3; +import org.libresonic.restapi.ArtistsID3; +import org.libresonic.restapi.Bookmarks; +import org.libresonic.restapi.ChatMessage; +import org.libresonic.restapi.ChatMessages; +import org.libresonic.restapi.Child; +import org.libresonic.restapi.Directory; +import org.libresonic.restapi.Genres; +import org.libresonic.restapi.Index; +import org.libresonic.restapi.IndexID3; +import org.libresonic.restapi.Indexes; +import org.libresonic.restapi.InternetRadioStation; +import org.libresonic.restapi.InternetRadioStations; +import org.libresonic.restapi.JukeboxPlaylist; +import org.libresonic.restapi.JukeboxStatus; +import org.libresonic.restapi.License; +import org.libresonic.restapi.Lyrics; +import org.libresonic.restapi.MediaType; +import org.libresonic.restapi.MusicFolders; +import org.libresonic.restapi.NewestPodcasts; +import org.libresonic.restapi.NowPlaying; +import org.libresonic.restapi.NowPlayingEntry; +import org.libresonic.restapi.PlaylistWithSongs; +import org.libresonic.restapi.Playlists; +import org.libresonic.restapi.PodcastStatus; +import org.libresonic.restapi.Podcasts; +import org.libresonic.restapi.Response; +import org.libresonic.restapi.SearchResult2; +import org.libresonic.restapi.SearchResult3; +import org.libresonic.restapi.Shares; +import org.libresonic.restapi.SimilarSongs; +import org.libresonic.restapi.SimilarSongs2; +import org.libresonic.restapi.Songs; +import org.libresonic.restapi.Starred; +import org.libresonic.restapi.Starred2; +import org.libresonic.restapi.TopSongs; +import org.libresonic.restapi.Users; +import org.libresonic.restapi.Videos; + +import org.libresonic.player.Logger; +import org.libresonic.player.ajax.ChatService; +import org.libresonic.player.ajax.LyricsInfo; +import org.libresonic.player.ajax.LyricsService; +import org.libresonic.player.ajax.PlayQueueService; +import org.libresonic.player.command.UserSettingsCommand; +import org.libresonic.player.dao.AlbumDao; +import org.libresonic.player.dao.ArtistDao; +import org.libresonic.player.dao.BookmarkDao; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.dao.PlayQueueDao; +import org.libresonic.player.domain.Album; +import org.libresonic.player.domain.Artist; +import org.libresonic.player.domain.ArtistBio; +import org.libresonic.player.domain.Bookmark; +import org.libresonic.player.domain.Genre; +import org.libresonic.player.domain.InternetRadio; +import org.libresonic.player.domain.LicenseInfo; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.MusicFolderContent; +import org.libresonic.player.domain.MusicIndex; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.PlayStatus; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.PlayerTechnology; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.PodcastChannel; +import org.libresonic.player.domain.PodcastEpisode; +import org.libresonic.player.domain.RandomSearchCriteria; +import org.libresonic.player.domain.SavedPlayQueue; +import org.libresonic.player.domain.SearchCriteria; +import org.libresonic.player.domain.SearchResult; +import org.libresonic.player.domain.Share; +import org.libresonic.player.domain.TranscodeScheme; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.AudioScrobblerService; +import org.libresonic.player.service.JukeboxService; +import org.libresonic.player.service.LastFmService; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.MusicIndexService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.service.RatingService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.ShareService; +import org.libresonic.player.service.StatusService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.util.Pair; +import org.libresonic.player.util.StringUtil; +import org.libresonic.player.util.Util; + +import static org.libresonic.player.security.RESTRequestParameterProcessingFilter.decrypt; import static org.springframework.web.bind.ServletRequestUtils.*; /** @@ -230,7 +231,7 @@ public class RESTController extends MultiActionController { MusicFolders musicFolders = new MusicFolders(); String username = securityService.getCurrentUsername(request); for (MusicFolder musicFolder : settingsService.getMusicFoldersForUser(username)) { - org.subsonic.restapi.MusicFolder mf = new org.subsonic.restapi.MusicFolder(); + org.libresonic.restapi.MusicFolder mf = new org.libresonic.restapi.MusicFolder(); mf.setId(musicFolder.getId()); mf.setName(musicFolder.getName()); musicFolders.getMusicFolder().add(mf); @@ -284,7 +285,7 @@ public class RESTController extends MultiActionController { for (MediaFile mediaFile : artist.getMediaFiles()) { if (mediaFile.isDirectory()) { Date starredDate = mediaFileDao.getMediaFileStarredDate(mediaFile.getId(), username); - org.subsonic.restapi.Artist a = new org.subsonic.restapi.Artist(); + org.libresonic.restapi.Artist a = new org.libresonic.restapi.Artist(); index.getArtist().add(a); a.setId(String.valueOf(mediaFile.getId())); a.setName(artist.getName()); @@ -316,7 +317,7 @@ public class RESTController extends MultiActionController { Genres genres = new Genres(); for (Genre genre : mediaFileDao.getGenres(false)) { - org.subsonic.restapi.Genre g = new org.subsonic.restapi.Genre(); + org.libresonic.restapi.Genre g = new org.libresonic.restapi.Genre(); genres.getGenre().add(g); g.setContent(genre.getName()); g.setAlbumCount(genre.getAlbumCount()); @@ -536,8 +537,8 @@ public class RESTController extends MultiActionController { return jaxbArtist; } - private org.subsonic.restapi.Artist createJaxbArtist(MediaFile artist, String username) { - org.subsonic.restapi.Artist result = new org.subsonic.restapi.Artist(); + private org.libresonic.restapi.Artist createJaxbArtist(MediaFile artist, String username) { + org.libresonic.restapi.Artist result = new org.libresonic.restapi.Artist(); result.setId(String.valueOf(artist.getId())); result.setName(artist.getArtist()); Date starred = mediaFileDao.getMediaFileStarredDate(artist.getId(), username); @@ -589,7 +590,7 @@ public class RESTController extends MultiActionController { return jaxbAlbum; } - private T createJaxbPlaylist(T jaxbPlaylist, Playlist playlist) { + private T createJaxbPlaylist(T jaxbPlaylist, Playlist playlist) { jaxbPlaylist.setId(String.valueOf(playlist.getId())); jaxbPlaylist.setName(playlist.getName()); jaxbPlaylist.setComment(playlist.getComment()); @@ -728,7 +729,7 @@ public class RESTController extends MultiActionController { List musicFolders = settingsService.getMusicFoldersForUser(username); SearchResult result = searchService.search(criteria, musicFolders, SearchService.IndexType.SONG); - org.subsonic.restapi.SearchResult searchResult = new org.subsonic.restapi.SearchResult(); + org.libresonic.restapi.SearchResult searchResult = new org.libresonic.restapi.SearchResult(); searchResult.setOffset(result.getOffset()); searchResult.setTotalHits(result.getTotalHits()); @@ -836,7 +837,7 @@ public class RESTController extends MultiActionController { Playlists result = new Playlists(); for (Playlist playlist : playlistService.getReadablePlaylistsForUser(requestedUsername)) { - result.getPlaylist().add(createJaxbPlaylist(new org.subsonic.restapi.Playlist(), playlist)); + result.getPlaylist().add(createJaxbPlaylist(new org.libresonic.restapi.Playlist(), playlist)); } Response res = createResponse(); @@ -1577,7 +1578,7 @@ public class RESTController extends MultiActionController { for (PodcastChannel channel : podcastService.getAllChannels()) { if (channelId == null || channelId.equals(channel.getId())) { - org.subsonic.restapi.PodcastChannel c = new org.subsonic.restapi.PodcastChannel(); + org.libresonic.restapi.PodcastChannel c = new org.libresonic.restapi.PodcastChannel(); result.getChannel().add(c); c.setId(String.valueOf(channel.getId())); @@ -1620,13 +1621,13 @@ public class RESTController extends MultiActionController { jaxbWriter.writeResponse(request, response, res); } - private org.subsonic.restapi.PodcastEpisode createJaxbPodcastEpisode(Player player, String username, PodcastEpisode episode) { - org.subsonic.restapi.PodcastEpisode e = new org.subsonic.restapi.PodcastEpisode(); + private org.libresonic.restapi.PodcastEpisode createJaxbPodcastEpisode(Player player, String username, PodcastEpisode episode) { + org.libresonic.restapi.PodcastEpisode e = new org.libresonic.restapi.PodcastEpisode(); String path = episode.getPath(); if (path != null) { MediaFile mediaFile = mediaFileService.getMediaFile(path); - e = createJaxbChild(new org.subsonic.restapi.PodcastEpisode(), player, mediaFile, username); + e = createJaxbChild(new org.libresonic.restapi.PodcastEpisode(), player, mediaFile, username); e.setStreamId(String.valueOf(mediaFile.getId())); } @@ -1739,7 +1740,7 @@ public class RESTController extends MultiActionController { Bookmarks result = new Bookmarks(); for (Bookmark bookmark : bookmarkDao.getBookmarks(username)) { - org.subsonic.restapi.Bookmark b = new org.subsonic.restapi.Bookmark(); + org.libresonic.restapi.Bookmark b = new org.libresonic.restapi.Bookmark(); result.getBookmark().add(b); b.setPosition(bookmark.getPositionMillis()); b.setUsername(bookmark.getUsername()); @@ -1795,7 +1796,7 @@ public class RESTController extends MultiActionController { return; } - org.subsonic.restapi.PlayQueue restPlayQueue = new org.subsonic.restapi.PlayQueue(); + org.libresonic.restapi.PlayQueue restPlayQueue = new org.libresonic.restapi.PlayQueue(); restPlayQueue.setUsername(playQueue.getUsername()); restPlayQueue.setCurrent(playQueue.getCurrentMediaFileId()); restPlayQueue.setPosition(playQueue.getPositionMillis()); @@ -1844,7 +1845,7 @@ public class RESTController extends MultiActionController { Shares result = new Shares(); for (Share share : shareService.getSharesForUser(user)) { - org.subsonic.restapi.Share s = createJaxbShare(share); + org.libresonic.restapi.Share s = createJaxbShare(share); result.getShare().add(s); for (MediaFile mediaFile : shareService.getSharedFiles(share.getId(), musicFolders)) { @@ -1869,7 +1870,7 @@ public class RESTController extends MultiActionController { } if (!settingsService.isUrlRedirectionEnabled()) { - error(request, response, ErrorCode.GENERIC, "Sharing is only supported for *.subsonic.org domain names."); + error(request, response, ErrorCode.GENERIC, "Sharing is only supported for *.libresonic.org domain names."); return; } @@ -1887,7 +1888,7 @@ public class RESTController extends MultiActionController { shareService.updateShare(share); Shares result = new Shares(); - org.subsonic.restapi.Share s = createJaxbShare(share); + org.libresonic.restapi.Share s = createJaxbShare(share); result.getShare().add(s); List musicFolders = settingsService.getMusicFoldersForUser(username); @@ -1947,8 +1948,8 @@ public class RESTController extends MultiActionController { writeEmptyResponse(request, response); } - private org.subsonic.restapi.Share createJaxbShare(Share share) { - org.subsonic.restapi.Share result = new org.subsonic.restapi.Share(); + private org.libresonic.restapi.Share createJaxbShare(Share share) { + org.libresonic.restapi.Share result = new org.libresonic.restapi.Share(); result.setId(String.valueOf(share.getId())); result.setUrl(shareService.getShareUrl(share)); result.setUsername(share.getUsername()); @@ -2073,10 +2074,10 @@ public class RESTController extends MultiActionController { jaxbWriter.writeResponse(request, response, res); } - private org.subsonic.restapi.User createJaxbUser(User user) { + private org.libresonic.restapi.User createJaxbUser(User user) { UserSettings userSettings = settingsService.getUserSettings(user.getUsername()); - org.subsonic.restapi.User result = new org.subsonic.restapi.User(); + org.libresonic.restapi.User result = new org.libresonic.restapi.User(); result.setUsername(user.getUsername()); result.setEmail(user.getEmail()); result.setScrobblingEnabled(userSettings.isLastFmEnabled()); @@ -2484,11 +2485,11 @@ public class RESTController extends MultiActionController { GENERIC(0, "A generic error."), MISSING_PARAMETER(10, "Required parameter is missing."), - PROTOCOL_MISMATCH_CLIENT_TOO_OLD(20, "Incompatible Subsonic REST protocol version. Client must upgrade."), - PROTOCOL_MISMATCH_SERVER_TOO_OLD(30, "Incompatible Subsonic REST protocol version. Server must upgrade."), + PROTOCOL_MISMATCH_CLIENT_TOO_OLD(20, "Incompatible Libresonic REST protocol version. Client must upgrade."), + PROTOCOL_MISMATCH_SERVER_TOO_OLD(30, "Incompatible Libresonic REST protocol version. Server must upgrade."), NOT_AUTHENTICATED(40, "Wrong username or password."), NOT_AUTHORIZED(50, "User is not authorized for the given operation."), - NOT_LICENSED(60, "The trial period for the Subsonic server is over. Please upgrade to Subsonic Premium. Visit subsonic.org for details."), + NOT_LICENSED(60, "The trial period for the Libresonic server is over. Please upgrade to Subsonic Premium. Visit libresonic.org for details."), NOT_FOUND(70, "Requested data was not found."); private final int code; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RandomPlayQueueController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/RandomPlayQueueController.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RandomPlayQueueController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/RandomPlayQueueController.java index 6dd7f7b2..6c813199 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RandomPlayQueueController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/RandomPlayQueueController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.Arrays; import java.util.Collections; @@ -33,14 +34,14 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.RandomSearchCriteria; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.RandomSearchCriteria; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the creating a random play queue. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ReloadFrame.java b/libresonic-main/src/main/java/org/libresonic/player/controller/ReloadFrame.java similarity index 68% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ReloadFrame.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/ReloadFrame.java index 093b7fa1..1c321fb1 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ReloadFrame.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/ReloadFrame.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; /** - * Used in subsonic-servlet.xml to specify frame reloading. + * Used in libresonic-servlet.xml to specify frame reloading. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RightController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/RightController.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RightController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/RightController.java index 74bc6c9c..769765e0 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/RightController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/RightController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.Map; @@ -27,10 +28,10 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.VersionService; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.VersionService; /** * Controller for the right frame. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SearchController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java similarity index 78% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SearchController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java index db08d88a..a357b120 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SearchController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.List; @@ -28,16 +29,16 @@ import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; -import net.sourceforge.subsonic.command.SearchCommand; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.SearchCriteria; -import net.sourceforge.subsonic.domain.SearchResult; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.command.SearchCommand; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.SearchCriteria; +import org.libresonic.player.domain.SearchResult; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the search page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SetMusicFileInfoController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/SetMusicFileInfoController.java similarity index 76% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SetMusicFileInfoController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/SetMusicFileInfoController.java index 50bec647..d7edb47d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SetMusicFileInfoController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/SetMusicFileInfoController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -26,9 +27,9 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import org.springframework.web.servlet.view.RedirectView; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.util.StringUtil; /** * Controller for updating music file metadata. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SetRatingController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/SetRatingController.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SetRatingController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/SetRatingController.java index 653ebaad..d7962dfc 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SetRatingController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/SetRatingController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -26,10 +27,10 @@ import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import org.springframework.web.servlet.view.RedirectView; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.RatingService; -import net.sourceforge.subsonic.service.SecurityService; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.RatingService; +import org.libresonic.player.service.SecurityService; /** * Controller for updating music file ratings. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/SettingsController.java similarity index 74% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/SettingsController.java index ed0c21c5..ce4910bf 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/SettingsController.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.domain.*; -import net.sourceforge.subsonic.service.*; +import org.libresonic.player.domain.*; +import org.libresonic.player.service.*; import org.springframework.web.servlet.*; import org.springframework.web.servlet.view.*; import org.springframework.web.servlet.mvc.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareManagementController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/ShareManagementController.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareManagementController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/ShareManagementController.java index 1b4b5bad..f1bab574 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareManagementController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/ShareManagementController.java @@ -1,33 +1,34 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; - -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Share; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.ShareService; +package org.libresonic.player.controller; + +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Share; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.ShareService; import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/ShareSettingsController.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/ShareSettingsController.java index 2d95df1c..19113a73 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/ShareSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/ShareSettingsController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.ArrayList; import java.util.Calendar; @@ -33,14 +34,14 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Share; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.ShareService; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Share; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.ShareService; /** * Controller for the page used to administrate the set of shared media. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SonosSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/SonosSettingsController.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SonosSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/SonosSettingsController.java index 59567130..eb8226b6 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/SonosSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/SonosSettingsController.java @@ -1,22 +1,22 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.Map; @@ -29,8 +29,8 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.SonosService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.SonosService; /** * Controller for the page used to administrate the Sonos music service settings. @@ -75,7 +75,7 @@ public class SonosSettingsController extends ParameterizableViewController { boolean sonosEnabled = ServletRequestUtils.getBooleanParameter(request, "sonosEnabled", false); String sonosServiceName = StringUtils.trimToNull(request.getParameter("sonosServiceName")); if (sonosServiceName == null) { - sonosServiceName = "Subsonic"; + sonosServiceName = "Libresonic"; } settingsService.setSonosEnabled(sonosEnabled); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StarredController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/StarredController.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StarredController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/StarredController.java index 90701383..20818b97 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StarredController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/StarredController.java @@ -1,33 +1,34 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; - -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.domain.CoverArtScheme; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +package org.libresonic.player.controller; + +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.domain.CoverArtScheme; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StatusChartController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/StatusChartController.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StatusChartController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/StatusChartController.java index 878b8ae8..bd0366dd 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StatusChartController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/StatusChartController.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.domain.*; -import net.sourceforge.subsonic.service.*; +import org.libresonic.player.domain.*; +import org.libresonic.player.service.*; import org.jfree.chart.*; import org.jfree.chart.axis.*; import org.jfree.chart.plot.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StatusController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/StatusController.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StatusController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/StatusController.java index 964e7810..5cf59354 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StatusController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/StatusController.java @@ -1,28 +1,29 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.TransferStatus; -import net.sourceforge.subsonic.service.StatusService; -import net.sourceforge.subsonic.util.FileUtil; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.TransferStatus; +import org.libresonic.player.service.StatusService; +import org.libresonic.player.util.FileUtil; +import org.libresonic.player.util.StringUtil; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; import org.springframework.web.servlet.support.RequestContextUtils; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StreamController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/StreamController.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StreamController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/StreamController.java index 440e1656..fe73fd1a 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/StreamController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/StreamController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.awt.Dimension; import java.io.IOException; @@ -34,32 +35,32 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.TransferStatus; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.VideoTranscodingSettings; -import net.sourceforge.subsonic.io.PlayQueueInputStream; -import net.sourceforge.subsonic.io.RangeOutputStream; -import net.sourceforge.subsonic.io.ShoutCastOutputStream; -import net.sourceforge.subsonic.service.AudioScrobblerService; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.StatusService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.service.sonos.SonosHelper; -import net.sourceforge.subsonic.util.HttpRange; -import net.sourceforge.subsonic.util.StringUtil; -import net.sourceforge.subsonic.util.Util; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.TransferStatus; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.VideoTranscodingSettings; +import org.libresonic.player.io.PlayQueueInputStream; +import org.libresonic.player.io.RangeOutputStream; +import org.libresonic.player.io.ShoutCastOutputStream; +import org.libresonic.player.service.AudioScrobblerService; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.StatusService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.service.sonos.SonosHelper; +import org.libresonic.player.util.HttpRange; +import org.libresonic.player.util.StringUtil; +import org.libresonic.player.util.Util; /** - * A controller which streams the content of a {@link net.sourceforge.subsonic.domain.PlayQueue} to a remote + * A controller which streams the content of a {@link org.libresonic.player.domain.PlayQueue} to a remote * {@link Player}. * * @author Sindre Mehus @@ -162,7 +163,7 @@ public class StreamController implements Controller { response.setContentType(StringUtil.getMimeType("ts")); // HLS is always MPEG TS. } else { String transcodedSuffix = transcodingService.getSuffix(player, file, preferredTargetFormat); - boolean sonos = SonosHelper.SUBSONIC_CLIENT_ID.equals(player.getClientId()); + boolean sonos = SonosHelper.LIBRESONIC_CLIENT_ID.equals(player.getClientId()); response.setContentType(StringUtil.getMimeType(transcodedSuffix, sonos)); setContentDuration(response, file); } @@ -195,11 +196,11 @@ public class StreamController implements Controller { boolean isShoutCastRequested = "1".equals(request.getHeader("icy-metadata")); if (isShoutCastRequested && !isSingleFile) { response.setHeader("icy-metaint", "" + ShoutCastOutputStream.META_DATA_INTERVAL); - response.setHeader("icy-notice1", "This stream is served using Subsonic"); - response.setHeader("icy-notice2", "Subsonic - Free media streamer - subsonic.org"); - response.setHeader("icy-name", "Subsonic"); + response.setHeader("icy-notice1", "This stream is served using Libresonic"); + response.setHeader("icy-notice2", "Libresonic - Free media streamer - libresonic.org"); + response.setHeader("icy-name", "Libresonic"); response.setHeader("icy-genre", "Mixed"); - response.setHeader("icy-url", "http://subsonic.org/"); + response.setHeader("icy-url", "http://libresonic.org/"); out = new ShoutCastOutputStream(out, player.getPlayQueue(), settingsService); } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/TopController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/TopController.java similarity index 74% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/TopController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/TopController.java index 3f3506dc..3d1a5360 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/TopController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/TopController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.Map; @@ -27,11 +28,11 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.AvatarScheme; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.AvatarScheme; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Controller for the top frame. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/TranscodingSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/TranscodingSettingsController.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/TranscodingSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/TranscodingSettingsController.java index 39176fd1..bd28e172 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/TranscodingSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/TranscodingSettingsController.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.domain.Transcoding; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.Transcoding; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.service.SettingsService; import org.apache.commons.lang.StringUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UploadController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/UploadController.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UploadController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/UploadController.java index de7bf8dd..19dc60bd 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UploadController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/UploadController.java @@ -1,28 +1,29 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; -import net.sourceforge.subsonic.*; -import net.sourceforge.subsonic.domain.*; -import net.sourceforge.subsonic.upload.*; -import net.sourceforge.subsonic.service.*; -import net.sourceforge.subsonic.util.*; +import org.libresonic.player.*; +import org.libresonic.player.domain.*; +import org.libresonic.player.upload.*; +import org.libresonic.player.service.*; +import org.libresonic.player.util.*; import org.apache.commons.fileupload.*; import org.apache.commons.fileupload.servlet.*; import org.apache.commons.io.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/UserChartController.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/UserChartController.java index 0428eff8..cdb00a7c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserChartController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/UserChartController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.awt.Color; import java.awt.GradientPaint; @@ -40,8 +41,8 @@ import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.springframework.web.servlet.ModelAndView; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.SecurityService; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.SecurityService; /** * Controller for generating a chart showing bitrate vs time. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserSettingsController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserSettingsController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java index d0af59ea..4a913f9f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/UserSettingsController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java @@ -1,32 +1,33 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; - -import net.sourceforge.subsonic.command.UserSettingsCommand; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.TranscodeScheme; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.util.Util; +package org.libresonic.player.controller; + +import org.libresonic.player.command.UserSettingsCommand; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.TranscodeScheme; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.util.Util; import org.apache.commons.lang.StringUtils; import org.springframework.web.bind.ServletRequestBindingException; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/VideoPlayerController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/VideoPlayerController.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/VideoPlayerController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/VideoPlayerController.java index 141a0e90..b585d43b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/VideoPlayerController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/VideoPlayerController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.util.HashMap; import java.util.LinkedHashMap; @@ -29,13 +30,13 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.ParameterizableViewController; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.util.StringUtil; /** * Controller for the page used to play videos. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/WapController.java b/libresonic-main/src/main/java/org/libresonic/player/controller/WapController.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/controller/WapController.java rename to libresonic-main/src/main/java/org/libresonic/player/controller/WapController.java index 416b61ae..967808b8 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/controller/WapController.java +++ b/libresonic-main/src/main/java/org/libresonic/player/controller/WapController.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.io.IOException; import java.util.ArrayList; @@ -33,22 +34,22 @@ import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.MusicIndex; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.RandomSearchCriteria; -import net.sourceforge.subsonic.domain.SearchCriteria; -import net.sourceforge.subsonic.domain.SearchResult; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.MusicIndexService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.MusicIndex; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.RandomSearchCriteria; +import org.libresonic.player.domain.SearchCriteria; +import org.libresonic.player.domain.SearchResult; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.MusicIndexService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; /** * Multi-controller used for wap pages. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AbstractDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/AbstractDao.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AbstractDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/AbstractDao.java index d1dba4d0..2da6acb7 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AbstractDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/AbstractDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.util.Date; import java.util.List; @@ -26,7 +27,7 @@ import java.util.concurrent.TimeUnit; import org.springframework.jdbc.core.*; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; -import net.sourceforge.subsonic.Logger; +import org.libresonic.player.Logger; /** * Abstract superclass for all DAO's. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AlbumDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/AlbumDao.java similarity index 96% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AlbumDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/AlbumDao.java index 5fd775ac..71515156 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AlbumDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/AlbumDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -30,10 +31,10 @@ import org.apache.commons.lang.ObjectUtils; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.domain.Album; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.domain.Album; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.util.FileUtil; /** * Provides database services for albums. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/ArtistDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/ArtistDao.java similarity index 94% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/ArtistDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/ArtistDao.java index fd3673a6..ea98c9c3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/ArtistDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/ArtistDao.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.Artist; -import net.sourceforge.subsonic.domain.MusicFolder; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.Artist; +import org.libresonic.player.domain.MusicFolder; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AvatarDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/AvatarDao.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AvatarDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/AvatarDao.java index abdc118d..b571ffc2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/AvatarDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/AvatarDao.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; -import net.sourceforge.subsonic.domain.Avatar; +import org.libresonic.player.domain.Avatar; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; import java.sql.ResultSet; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/BookmarkDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/BookmarkDao.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/BookmarkDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/BookmarkDao.java index 5f9b6c28..de7a976f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/BookmarkDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/BookmarkDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -24,7 +25,7 @@ import java.util.List; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.domain.Bookmark; +import org.libresonic.player.domain.Bookmark; /** * Provides database services for media file bookmarks. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/DaoHelper.java b/libresonic-main/src/main/java/org/libresonic/player/dao/DaoHelper.java similarity index 74% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/DaoHelper.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/DaoHelper.java index a45ffafa..b9c8bd0a 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/DaoHelper.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/DaoHelper.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/DaoHelperFactory.java b/libresonic-main/src/main/java/org/libresonic/player/dao/DaoHelperFactory.java similarity index 70% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/DaoHelperFactory.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/DaoHelperFactory.java index 20f837e7..e3287d37 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/DaoHelperFactory.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/DaoHelperFactory.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/HsqlDaoHelper.java b/libresonic-main/src/main/java/org/libresonic/player/dao/HsqlDaoHelper.java similarity index 60% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/HsqlDaoHelper.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/HsqlDaoHelper.java index 226ef52d..43880551 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/HsqlDaoHelper.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/HsqlDaoHelper.java @@ -1,22 +1,22 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.io.File; @@ -26,33 +26,35 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.datasource.DriverManagerDataSource; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; -import net.sourceforge.subsonic.dao.schema.hsql.Schema25; -import net.sourceforge.subsonic.dao.schema.hsql.Schema26; -import net.sourceforge.subsonic.dao.schema.hsql.Schema27; -import net.sourceforge.subsonic.dao.schema.hsql.Schema28; -import net.sourceforge.subsonic.dao.schema.hsql.Schema29; -import net.sourceforge.subsonic.dao.schema.hsql.Schema30; -import net.sourceforge.subsonic.dao.schema.hsql.Schema31; -import net.sourceforge.subsonic.dao.schema.hsql.Schema32; -import net.sourceforge.subsonic.dao.schema.hsql.Schema33; -import net.sourceforge.subsonic.dao.schema.hsql.Schema34; -import net.sourceforge.subsonic.dao.schema.hsql.Schema35; -import net.sourceforge.subsonic.dao.schema.hsql.Schema36; -import net.sourceforge.subsonic.dao.schema.hsql.Schema37; -import net.sourceforge.subsonic.dao.schema.hsql.Schema38; -import net.sourceforge.subsonic.dao.schema.hsql.Schema40; -import net.sourceforge.subsonic.dao.schema.hsql.Schema43; -import net.sourceforge.subsonic.dao.schema.hsql.Schema45; -import net.sourceforge.subsonic.dao.schema.hsql.Schema46; -import net.sourceforge.subsonic.dao.schema.hsql.Schema47; -import net.sourceforge.subsonic.dao.schema.hsql.Schema49; -import net.sourceforge.subsonic.dao.schema.hsql.Schema50; -import net.sourceforge.subsonic.dao.schema.hsql.Schema51; -import net.sourceforge.subsonic.dao.schema.hsql.Schema52; -import net.sourceforge.subsonic.dao.schema.hsql.Schema53; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; +import org.libresonic.player.dao.schema.hsql.Schema25; +import org.libresonic.player.dao.schema.hsql.Schema26; +import org.libresonic.player.dao.schema.hsql.Schema27; +import org.libresonic.player.dao.schema.hsql.Schema28; +import org.libresonic.player.dao.schema.hsql.Schema29; +import org.libresonic.player.dao.schema.hsql.Schema30; +import org.libresonic.player.dao.schema.hsql.Schema31; +import org.libresonic.player.dao.schema.hsql.Schema32; +import org.libresonic.player.dao.schema.hsql.Schema33; +import org.libresonic.player.dao.schema.hsql.Schema34; +import org.libresonic.player.dao.schema.hsql.Schema35; +import org.libresonic.player.dao.schema.hsql.Schema36; +import org.libresonic.player.dao.schema.hsql.Schema37; +import org.libresonic.player.dao.schema.hsql.Schema38; +import org.libresonic.player.dao.schema.hsql.Schema40; +import org.libresonic.player.dao.schema.hsql.Schema43; +import org.libresonic.player.dao.schema.hsql.Schema45; +import org.libresonic.player.dao.schema.hsql.Schema46; +import org.libresonic.player.dao.schema.hsql.Schema47; +import org.libresonic.player.dao.schema.hsql.Schema49; +import org.libresonic.player.dao.schema.hsql.Schema50; +import org.libresonic.player.dao.schema.hsql.Schema51; +import org.libresonic.player.dao.schema.hsql.Schema52; +import org.libresonic.player.dao.schema.hsql.Schema53; +import org.libresonic.player.dao.schema.hsql.Schema61; +import org.libresonic.player.dao.schema.hsql.Schema62; +import org.libresonic.player.service.SettingsService; /** * DAO helper class which creates the data source, and updates the database schema. @@ -67,7 +69,8 @@ public class HsqlDaoHelper implements DaoHelper { new Schema30(), new Schema31(), new Schema32(), new Schema33(), new Schema34(), new Schema35(), new Schema36(), new Schema37(), new Schema38(), new Schema40(), new Schema43(), new Schema45(), new Schema46(), new Schema47(), new Schema49(), - new Schema50(), new Schema51(), new Schema52(), new Schema53()}; + new Schema50(), new Schema51(), new Schema52(), new Schema53(), new Schema61(), + new Schema62()}; private DataSource dataSource; private static boolean shutdownHookAdded; @@ -106,10 +109,10 @@ public class HsqlDaoHelper implements DaoHelper { } private DataSource createDataSource() { - File subsonicHome = SettingsService.getSubsonicHome(); + File libresonicHome = SettingsService.getLibresonicHome(); DriverManagerDataSource ds = new DriverManagerDataSource(); ds.setDriverClassName("org.hsqldb.jdbcDriver"); - ds.setUrl("jdbc:hsqldb:file:" + subsonicHome.getPath() + "/db/subsonic"); + ds.setUrl("jdbc:hsqldb:file:" + libresonicHome.getPath() + "/db/libresonic"); ds.setUsername("sa"); ds.setPassword(""); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/InternetRadioDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/InternetRadioDao.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/InternetRadioDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/InternetRadioDao.java index c3c20a74..b1a1d4d4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/InternetRadioDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/InternetRadioDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -24,8 +25,8 @@ import java.util.List; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.InternetRadio; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.InternetRadio; /** * Provides database services for internet radio. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/MediaFileDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/MediaFileDao.java similarity index 97% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/MediaFileDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/MediaFileDao.java index 989defd3..25968340 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/MediaFileDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/MediaFileDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -31,12 +32,12 @@ import org.apache.commons.lang.StringUtils; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.domain.Genre; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; +import org.libresonic.player.domain.Genre; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; -import static net.sourceforge.subsonic.domain.MediaFile.MediaType; -import static net.sourceforge.subsonic.domain.MediaFile.MediaType.*; +import static org.libresonic.player.domain.MediaFile.MediaType; +import static org.libresonic.player.domain.MediaFile.MediaType.*; /** * Provides database services for media files. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/MusicFolderDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/MusicFolderDao.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/MusicFolderDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/MusicFolderDao.java index 4deca18e..ca997b45 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/MusicFolderDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/MusicFolderDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.io.File; import java.sql.ResultSet; @@ -25,8 +26,8 @@ import java.util.List; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MusicFolder; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MusicFolder; /** * Provides database services for music folders. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlayQueueDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/PlayQueueDao.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlayQueueDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/PlayQueueDao.java index 78abcb09..f56bd232 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlayQueueDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/PlayQueueDao.java @@ -1,22 +1,22 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -25,7 +25,7 @@ import java.util.List; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.domain.SavedPlayQueue; +import org.libresonic.player.domain.SavedPlayQueue; /** * Provides database services for play queues diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlayerDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/PlayerDao.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlayerDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/PlayerDao.java index 04b1d9a3..be484188 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlayerDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/PlayerDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -28,12 +29,12 @@ import java.util.Map; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.CoverArtScheme; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.PlayerTechnology; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.TranscodeScheme; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.CoverArtScheme; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.PlayerTechnology; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.TranscodeScheme; /** * Provides player-related database services. @@ -43,7 +44,7 @@ import net.sourceforge.subsonic.domain.TranscodeScheme; public class PlayerDao extends AbstractDao { private static final Logger LOG = Logger.getLogger(PlayerDao.class); - private static final String COLUMNS = "id, name, type, username, ip_address, auto_control_enabled, " + + private static final String COLUMNS = "id, name, type, username, ip_address, auto_control_enabled, m3u_bom_enabled, " + "last_seen, cover_art_scheme, transcode_scheme, dynamic_ip, technology, client_id"; private PlayerRowMapper rowMapper = new PlayerRowMapper(); @@ -64,7 +65,7 @@ public class PlayerDao extends AbstractDao { * * @param username The name of the user. * @param clientId The third-party client ID (used if this player is managed over the - * Subsonic REST API). May be null. + * Libresonic REST API). May be null. * @return All relevant players. */ public List getPlayersForUserAndClientId(String username, String clientId) { @@ -98,7 +99,7 @@ public class PlayerDao extends AbstractDao { player.setId(String.valueOf(id)); String sql = "insert into player (" + COLUMNS + ") values (" + questionMarks(COLUMNS) + ")"; update(sql, player.getId(), player.getName(), player.getType(), player.getUsername(), - player.getIpAddress(), player.isAutoControlEnabled(), + player.getIpAddress(), player.isAutoControlEnabled(), player.isM3uBomEnabled(), player.getLastSeen(), CoverArtScheme.MEDIUM.name(), player.getTranscodeScheme().name(), player.isDynamicIp(), player.getTechnology().name(), player.getClientId()); @@ -147,6 +148,7 @@ public class PlayerDao extends AbstractDao { "username = ?," + "ip_address = ?," + "auto_control_enabled = ?," + + "m3u_bom_enabled = ?," + "last_seen = ?," + "transcode_scheme = ?, " + "dynamic_ip = ?, " + @@ -154,7 +156,7 @@ public class PlayerDao extends AbstractDao { "client_id = ? " + "where id = ?"; update(sql, player.getName(), player.getType(), player.getUsername(), - player.getIpAddress(), player.isAutoControlEnabled(), + player.getIpAddress(), player.isAutoControlEnabled(), player.isM3uBomEnabled(), player.getLastSeen(), player.getTranscodeScheme().name(), player.isDynamicIp(), player.getTechnology(), player.getClientId(), player.getId()); } @@ -178,6 +180,7 @@ public class PlayerDao extends AbstractDao { player.setUsername(rs.getString(col++)); player.setIpAddress(rs.getString(col++)); player.setAutoControlEnabled(rs.getBoolean(col++)); + player.setM3uBomEnabled(rs.getBoolean(col++)); player.setLastSeen(rs.getTimestamp(col++)); col++; // Ignore cover art scheme. player.setTranscodeScheme(TranscodeScheme.valueOf(rs.getString(col++))); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlaylistDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/PlaylistDao.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlaylistDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/PlaylistDao.java index b26f986f..996d84eb 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PlaylistDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/PlaylistDao.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Playlist; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Playlist; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PodcastDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/PodcastDao.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PodcastDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/PodcastDao.java index 2765920b..ca84b044 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/PodcastDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/PodcastDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -25,9 +26,9 @@ import java.util.List; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.domain.PodcastChannel; -import net.sourceforge.subsonic.domain.PodcastEpisode; -import net.sourceforge.subsonic.domain.PodcastStatus; +import org.libresonic.player.domain.PodcastChannel; +import org.libresonic.player.domain.PodcastEpisode; +import org.libresonic.player.domain.PodcastStatus; /** * Provides database services for Podcast channels and episodes. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/RatingDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/RatingDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java index fed91575..6572fac7 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/RatingDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.util.ArrayList; import java.util.Collections; @@ -26,10 +27,10 @@ import java.util.Map; import org.springframework.dao.EmptyResultDataAccessException; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; -import static net.sourceforge.subsonic.domain.MediaFile.MediaType.ALBUM; +import static org.libresonic.player.domain.MediaFile.MediaType.ALBUM; /** * Provides database services for ratings. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/ShareDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/ShareDao.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/ShareDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/ShareDao.java index a1e8cae3..15ca4fa3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/ShareDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/ShareDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -27,8 +28,8 @@ import java.util.Map; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Share; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Share; /** * Provides database services for shared media. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/TranscodingDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/TranscodingDao.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/TranscodingDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/TranscodingDao.java index 22b8ae20..bfd43b1f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/TranscodingDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/TranscodingDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -24,8 +25,8 @@ import java.util.List; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.Transcoding; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.Transcoding; /** * Provides database services for transcoding configurations. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/UserDao.java b/libresonic-main/src/main/java/org/libresonic/player/dao/UserDao.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/UserDao.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/UserDao.java index cf281d03..e95383c0 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/UserDao.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/UserDao.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.sql.ResultSet; import java.sql.SQLException; @@ -24,13 +25,13 @@ import java.util.List; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.AlbumListType; -import net.sourceforge.subsonic.domain.AvatarScheme; -import net.sourceforge.subsonic.domain.TranscodeScheme; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.AlbumListType; +import org.libresonic.player.domain.AvatarScheme; +import org.libresonic.player.domain.TranscodeScheme; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.util.StringUtil; /** * Provides user-related database services. @@ -48,7 +49,7 @@ public class UserDao extends AbstractDao { "playlist_year, playlist_bit_rate, playlist_duration, playlist_format, playlist_file_size, " + "last_fm_enabled, last_fm_username, last_fm_password, transcode_scheme, show_now_playing, selected_music_folder_id, " + "party_mode_enabled, now_playing_allowed, avatar_scheme, system_avatar_id, changed, show_chat, show_artist_info, auto_hide_play_queue, " + - "view_as_list, default_album_list, queue_following_songs, show_side_bar"; + "view_as_list, default_album_list, queue_following_songs, show_side_bar, list_reload_delay"; private static final Integer ROLE_ID_ADMIN = 1; private static final Integer ROLE_ID_DOWNLOAD = 2; @@ -192,7 +193,7 @@ public class UserDao extends AbstractDao { settings.getAvatarScheme().name(), settings.getSystemAvatarId(), settings.getChanged(), settings.isShowChatEnabled(), settings.isShowArtistInfoEnabled(), settings.isAutoHidePlayQueue(), settings.isViewAsList(), settings.getDefaultAlbumList().getId(), settings.isQueueFollowingSongs(), - settings.isShowSideBar()}); + settings.isShowSideBar(), settings.getListReloadDelay()}); } private static String encrypt(String s) { @@ -353,6 +354,7 @@ public class UserDao extends AbstractDao { settings.setDefaultAlbumList(AlbumListType.fromId(rs.getString(col++))); settings.setQueueFollowingSongs(rs.getBoolean(col++)); settings.setShowSideBar(rs.getBoolean(col++)); + settings.setListReloadDelay((Integer) rs.getObject(col++)); return settings; } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/Schema.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/Schema.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java index 20c3d9eb..4cf63dca 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/Schema.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema; +package org.libresonic.player.dao.schema; import org.springframework.jdbc.core.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema25.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema25.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema25.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema25.java index 55fbb895..14dc996d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema25.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema25.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; import org.springframework.jdbc.core.JdbcTemplate; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 2.5. + * This class implementes the database schema for Libresonic version 2.5. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema26.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema26.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java index c375e576..8094e7c2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema26.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.*; -import net.sourceforge.subsonic.dao.schema.Schema; -import net.sourceforge.subsonic.util.Util; +import org.libresonic.player.*; +import org.libresonic.player.dao.schema.Schema; +import org.libresonic.player.util.Util; import org.springframework.jdbc.core.*; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 2.6. + * This class implementes the database schema for Libresonic version 2.6. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema27.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema27.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java index 55050143..baa4672e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema27.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.*; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.*; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.*; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 2.7. + * This class implementes the database schema for Libresonic version 2.7. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema28.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema28.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java index 0f7b9143..c1678f67 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema28.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.*; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.*; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.*; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 2.8. + * This class implementes the database schema for Libresonic version 2.8. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema29.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema29.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java index 9d9631ce..2495af4b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema29.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.*; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.*; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.*; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 2.9. + * This class implementes the database schema for Libresonic version 2.9. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema30.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema30.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java index ec7d85a8..4a72499b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema30.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.*; -import net.sourceforge.subsonic.dao.schema.Schema; -import net.sourceforge.subsonic.domain.TranscodeScheme; +import org.libresonic.player.*; +import org.libresonic.player.dao.schema.Schema; +import org.libresonic.player.domain.TranscodeScheme; import org.springframework.jdbc.core.*; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 3.0. + * This class implementes the database schema for Libresonic version 3.0. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema31.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java similarity index 76% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema31.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java index 25b6724c..a8bdc198 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema31.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 3.1. + * This class implementes the database schema for Libresonic version 3.1. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema32.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema32.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java index 683d4a29..bc134665 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema32.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 3.2. + * This class implementes the database schema for Libresonic version 3.2. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema33.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java similarity index 71% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema33.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java index bbeb7000..c76376d1 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema33.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 3.3. + * This class implementes the database schema for Libresonic version 3.3. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema34.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java similarity index 76% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema34.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java index a00c38cb..9fb38f88 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema34.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 3.4. + * This class implementes the database schema for Libresonic version 3.4. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema35.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema35.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java index 09faf644..c7244686 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema35.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.apache.commons.io.IOUtils; import org.springframework.jdbc.core.JdbcTemplate; @@ -30,7 +31,7 @@ import java.util.Date; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 3.5. + * This class implementes the database schema for Libresonic version 3.5. * * @author Sindre Mehus */ @@ -138,7 +139,7 @@ public class Schema35 extends Schema { InputStream in = null; try { - in = getClass().getResourceAsStream("/net/sourceforge/subsonic/dao/schema/" + avatar + ".png"); + in = getClass().getResourceAsStream("/org/libresonic/player/dao/schema/" + avatar + ".png"); byte[] imageData = IOUtils.toByteArray(in); template.update("insert into system_avatar values (null, ?, ?, ?, ?, ?, ?)", new Object[]{avatar, new Date(), "image/png", 48, 48, imageData}); @@ -150,4 +151,4 @@ public class Schema35 extends Schema { } } } -} \ No newline at end of file +} diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema36.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java similarity index 71% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema36.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java index 1ddd1fd7..2c763a77 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema36.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implementes the database schema for Subsonic version 3.6. + * This class implementes the database schema for Libresonic version 3.6. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema37.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema37.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java index ffb342cc..25fd2fe4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema37.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 3.7. + * This class implements the database schema for Libresonic version 3.7. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema38.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java similarity index 75% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema38.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java index bddeaee4..a2b4a389 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema38.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 3.8. + * This class implements the database schema for Libresonic version 3.8. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema40.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java similarity index 69% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema40.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java index 758daddb..73c65737 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema40.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 4.0. + * This class implements the database schema for Libresonic version 4.0. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema43.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema43.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java index f66382f0..5af5726d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema43.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java @@ -1,33 +1,34 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; import org.springframework.jdbc.core.JdbcTemplate; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import java.util.Arrays; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 4.3. + * This class implements the database schema for Libresonic version 4.3. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema45.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema45.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java index a012cb11..72cdae1f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema45.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 4.5. + * This class implements the database schema for Libresonic version 4.5. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema46.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema46.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java index 9410e6fb..cd002ed2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema46.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; import org.springframework.jdbc.core.JdbcTemplate; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 4.6. + * This class implements the database schema for Libresonic version 4.6. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema47.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema47.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java index f2e7974e..09503566 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema47.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; import org.springframework.jdbc.core.JdbcTemplate; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 4.7. + * This class implements the database schema for Libresonic version 4.7. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema49.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema49.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java index a9cfe5b1..8b49511c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema49.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; import org.springframework.jdbc.core.JdbcTemplate; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 4.9. + * This class implements the database schema for Libresonic version 4.9. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema50.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema50.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java index 917bf6e0..8db91f62 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema50.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; import org.springframework.jdbc.core.JdbcTemplate; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 5.0. + * This class implements the database schema for Libresonic version 5.0. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema51.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema51.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java index 87295d6d..cccd762d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema51.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java @@ -1,31 +1,31 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; import org.springframework.jdbc.core.JdbcTemplate; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 5.1. + * This class implements the database schema for Libresonic version 5.1. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema52.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema52.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java index 36e40c0f..2853c256 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema52.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java @@ -1,31 +1,31 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; import org.springframework.jdbc.core.JdbcTemplate; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 5.2. + * This class implements the database schema for Libresonic version 5.2. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema53.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema53.java rename to libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java index 8578a6c1..9ebead30 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/dao/schema/hsql/Schema53.java +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java @@ -1,33 +1,33 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao.schema.hsql; +package org.libresonic.player.dao.schema.hsql; import org.springframework.jdbc.core.JdbcTemplate; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.schema.Schema; -import net.sourceforge.subsonic.domain.AlbumListType; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; +import org.libresonic.player.domain.AlbumListType; /** * Used for creating and evolving the database schema. - * This class implements the database schema for Subsonic version 5.3. + * This class implements the database schema for Libresonic version 5.3. * * @author Sindre Mehus */ diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java new file mode 100644 index 00000000..d2634efa --- /dev/null +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java @@ -0,0 +1,48 @@ +/* + * This file is part of Libresonic. + * + * Libresonic is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Libresonic is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Libresonic. If not, see . + */ +package org.libresonic.player.dao.schema.hsql; + +import org.springframework.jdbc.core.JdbcTemplate; + +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; + +/** + * Used for creating and evolving the database schema. + * This class implements the database schema for Libresonic version 6.1. + * + * @author François-Xavier Thomas + */ +public class Schema61 extends Schema { + + private static final Logger LOG = Logger.getLogger(Schema61.class); + + @Override + public void execute(JdbcTemplate template) { + + if (template.queryForInt("select count(*) from version where version = 26") == 0) { + LOG.info("Updating database schema to version 26."); + template.execute("insert into version values (26)"); + } + + if (!columnExists(template, "list_reload_delay", "user_settings")) { + LOG.info("Database column 'user_settings.list_reload_delay' not found. Creating it."); + template.execute("alter table user_settings add list_reload_delay int default 60 not null"); + LOG.info("Database column 'user_settings.list_reload_delay' was added successfully."); + } + } +} diff --git a/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java new file mode 100644 index 00000000..0e945944 --- /dev/null +++ b/libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java @@ -0,0 +1,48 @@ +/* + * This file is part of Libresonic. + * + * Libresonic is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Libresonic is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Libresonic. If not, see . + */ +package org.libresonic.player.dao.schema.hsql; + +import org.springframework.jdbc.core.JdbcTemplate; + +import org.libresonic.player.Logger; +import org.libresonic.player.dao.schema.Schema; + +/** + * Used for creating and evolving the database schema. + * This class implements the database schema for Libresonic version 6.1. + * + * @author Shen-Ta Hsieh + */ +public class Schema62 extends Schema { + + private static final Logger LOG = Logger.getLogger(Schema62.class); + + @Override + public void execute(JdbcTemplate template) { + + if (template.queryForInt("select count(*) from version where version = 27") == 0) { + LOG.info("Updating database schema to version 27."); + template.execute("insert into version values (27)"); + } + + if (!columnExists(template, "player", "m3u_bom_enabled")) { + LOG.info("Database column 'player.m3u_bom_enabled' not found. Creating it."); + template.execute("alter table player add m3u_bom_enabled boolean default false not null"); + LOG.info("Database column 'player.m3u_bom_enabled' was added successfully."); + } + } +} diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Album.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Album.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Album.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Album.java index 93bea91c..c7cec5cf 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Album.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Album.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/AlbumListType.java b/libresonic-main/src/main/java/org/libresonic/player/domain/AlbumListType.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/AlbumListType.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/AlbumListType.java index 7508588e..5356da01 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/AlbumListType.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/AlbumListType.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Artist.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Artist.java similarity index 85% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Artist.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Artist.java index ef50da28..c2984e40 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Artist.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Artist.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/ArtistBio.java b/libresonic-main/src/main/java/org/libresonic/player/domain/ArtistBio.java similarity index 85% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/ArtistBio.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/ArtistBio.java index 02f8f40a..f12af5cf 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/ArtistBio.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/ArtistBio.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Avatar.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Avatar.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Avatar.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Avatar.java index 0089a8a3..320a9e5c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Avatar.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Avatar.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/AvatarScheme.java b/libresonic-main/src/main/java/org/libresonic/player/domain/AvatarScheme.java similarity index 71% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/AvatarScheme.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/AvatarScheme.java index 024dcb24..a39da8f0 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/AvatarScheme.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/AvatarScheme.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Enumeration of avatar schemes. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Bookmark.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Bookmark.java similarity index 85% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Bookmark.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Bookmark.java index 9daf6df1..28b709e3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Bookmark.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Bookmark.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/CacheElement.java b/libresonic-main/src/main/java/org/libresonic/player/domain/CacheElement.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/CacheElement.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/CacheElement.java index bb52eff7..bc5e36e9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/CacheElement.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/CacheElement.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/CoverArtScheme.java b/libresonic-main/src/main/java/org/libresonic/player/domain/CoverArtScheme.java similarity index 73% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/CoverArtScheme.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/CoverArtScheme.java index 8e43f875..9dc97959 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/CoverArtScheme.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/CoverArtScheme.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Enumeration of cover art schemes. Each value contains a size, which indicates how big the diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Genre.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Genre.java similarity index 76% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Genre.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Genre.java index f6dcce1c..b37cd6cb 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Genre.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Genre.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Represents a musical genre. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Genres.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Genres.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Genres.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Genres.java index 3f249a43..fcf505e0 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Genres.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Genres.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.ArrayList; import java.util.HashMap; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/InternetRadio.java b/libresonic-main/src/main/java/org/libresonic/player/domain/InternetRadio.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/InternetRadio.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/InternetRadio.java index ae0c1f67..886d94b8 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/InternetRadio.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/InternetRadio.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/LicenseInfo.java b/libresonic-main/src/main/java/org/libresonic/player/domain/LicenseInfo.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/LicenseInfo.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/LicenseInfo.java index 4e61ce79..ca56766a 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/LicenseInfo.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/LicenseInfo.java @@ -1,28 +1,29 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; import org.apache.commons.lang.StringUtils; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.service.SettingsService; /** * Controller for the "Podcast receiver" page. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaFile.java b/libresonic-main/src/main/java/org/libresonic/player/domain/MediaFile.java similarity index 96% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaFile.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/MediaFile.java index 2ac11eed..98590c20 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaFile.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/MediaFile.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.io.File; import java.util.Date; @@ -27,7 +28,7 @@ import org.apache.commons.io.FilenameUtils; import com.google.common.base.Function; import com.google.common.collect.Lists; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.util.FileUtil; /** * A media file (audio, video or directory) with an assortment of its meta data. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaFileComparator.java b/libresonic-main/src/main/java/org/libresonic/player/domain/MediaFileComparator.java similarity index 86% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaFileComparator.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/MediaFileComparator.java index 70caf0fe..4b5500c8 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaFileComparator.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/MediaFileComparator.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Comparator; -import static net.sourceforge.subsonic.domain.MediaFile.MediaType.DIRECTORY; +import static org.libresonic.player.domain.MediaFile.MediaType.DIRECTORY; /** * Comparator for sorting media files. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaLibraryStatistics.java b/libresonic-main/src/main/java/org/libresonic/player/domain/MediaLibraryStatistics.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaLibraryStatistics.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/MediaLibraryStatistics.java index a01fd5e9..aeba1b89 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MediaLibraryStatistics.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/MediaLibraryStatistics.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.util.StringUtil; /** * Contains media libaray statistics, including the number of artists, albums and songs. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicFolder.java b/libresonic-main/src/main/java/org/libresonic/player/domain/MusicFolder.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicFolder.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/MusicFolder.java index c539d21d..b08e5fb8 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicFolder.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/MusicFolder.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.io.File; import java.io.Serializable; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicFolderContent.java b/libresonic-main/src/main/java/org/libresonic/player/domain/MusicFolderContent.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicFolderContent.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/MusicFolderContent.java index 444e584e..a0d80cd1 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicFolderContent.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/MusicFolderContent.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.List; import java.util.SortedMap; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicIndex.java b/libresonic-main/src/main/java/org/libresonic/player/domain/MusicIndex.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicIndex.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/MusicIndex.java index 33cf1fb3..4f0c5bf7 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/MusicIndex.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/MusicIndex.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.io.Serializable; import java.text.CollationKey; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayQueue.java b/libresonic-main/src/main/java/org/libresonic/player/domain/PlayQueue.java similarity index 96% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayQueue.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/PlayQueue.java index 8b52db81..2cc2ae42 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayQueue.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/PlayQueue.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.io.IOException; import java.util.ArrayList; @@ -240,7 +241,8 @@ public class PlayQueue { MediaFile currentFile = getCurrentFile(); Collections.shuffle(files); if (currentFile != null) { - index = files.indexOf(currentFile); + Collections.swap(files, files.indexOf(currentFile), 0); + index = 0; } } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayStatus.java b/libresonic-main/src/main/java/org/libresonic/player/domain/PlayStatus.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayStatus.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/PlayStatus.java index 32d58c15..28c5e54a 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayStatus.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/PlayStatus.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Player.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Player.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Player.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Player.java index 450293ee..9ef3fa38 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Player.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Player.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import org.apache.commons.lang.StringUtils; @@ -39,6 +40,7 @@ public class Player { private String ipAddress; private boolean isDynamicIp = true; private boolean isAutoControlEnabled = true; + private boolean isM3uBomEnabled = true; private Date lastSeen; private TranscodeScheme transcodeScheme = TranscodeScheme.OFF; private PlayQueue playQueue; @@ -90,7 +92,7 @@ public class Player { /** * Returns the third-party client ID (used if this player is managed over the - * Subsonic REST API). + * Libresonic REST API). * * @return The client ID. */ @@ -100,7 +102,7 @@ public class Player { /** * Sets the third-party client ID (used if this player is managed over the - * Subsonic REST API). + * Libresonic REST API). * * @param clientId The client ID. */ @@ -187,6 +189,24 @@ public class Player { this.isAutoControlEnabled = isAutoControlEnabled; } + /** + * Returns whether apply BOM mark when generating a M3U file. + * + * @return Whether apply BOM mark when generating a M3U file. + */ + public boolean isM3uBomEnabled() { + return isM3uBomEnabled; + } + + /** + * Sets whether apply BOM mark when generating a M3U file. + * + * @param isM3uBomEnabled Whether apply BOM mark when generating a M3U file. + */ + public void setM3uBomEnabled(boolean isM3uBomEnabled) { + this.isM3uBomEnabled = isM3uBomEnabled; + } + /** * Returns the time when the player was last seen. * diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayerTechnology.java b/libresonic-main/src/main/java/org/libresonic/player/domain/PlayerTechnology.java similarity index 66% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayerTechnology.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/PlayerTechnology.java index 5ba3ff71..8562e4a9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PlayerTechnology.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/PlayerTechnology.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Enumeration of player technologies. @@ -36,13 +37,13 @@ public enum PlayerTechnology { EXTERNAL, /** - * Same as above, but the playlist is managed by the player, rather than the Subsonic server. + * Same as above, but the playlist is managed by the player, rather than the Libresonic server. * In this mode, skipping within songs is possible. */ EXTERNAL_WITH_PLAYLIST, /** - * Plays music directly on the audio device of the Subsonic server. + * Plays music directly on the audio device of the Libresonic server. */ JUKEBOX diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Playlist.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Playlist.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Playlist.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Playlist.java index e43fb21c..214a1f79 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Playlist.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Playlist.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.util.StringUtil; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastChannel.java b/libresonic-main/src/main/java/org/libresonic/player/domain/PodcastChannel.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastChannel.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/PodcastChannel.java index 98db7a37..2b0045be 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastChannel.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/PodcastChannel.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * A Podcast channel. Each channel contain several episodes. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastEpisode.java b/libresonic-main/src/main/java/org/libresonic/player/domain/PodcastEpisode.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastEpisode.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/PodcastEpisode.java index 3a9b6741..d0e28040 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastEpisode.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/PodcastEpisode.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.util.StringUtil; /** * A Podcast episode belonging to a channel. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastStatus.java b/libresonic-main/src/main/java/org/libresonic/player/domain/PodcastStatus.java similarity index 63% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastStatus.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/PodcastStatus.java index 57cad155..e8deeec4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/PodcastStatus.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/PodcastStatus.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Enumeration of statuses for {@link PodcastChannel} and diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/RandomSearchCriteria.java b/libresonic-main/src/main/java/org/libresonic/player/domain/RandomSearchCriteria.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/RandomSearchCriteria.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/RandomSearchCriteria.java index c57555bd..a192350e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/RandomSearchCriteria.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/RandomSearchCriteria.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.List; @@ -24,7 +25,7 @@ import java.util.List; * Defines criteria used when generating random playlists. * * @author Sindre Mehus - * @see net.sourceforge.subsonic.service.SearchService#getRandomSongs + * @see org.libresonic.player.service.SearchService#getRandomSongs */ public class RandomSearchCriteria { diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SavedPlayQueue.java b/libresonic-main/src/main/java/org/libresonic/player/domain/SavedPlayQueue.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SavedPlayQueue.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/SavedPlayQueue.java index 5f8d1358..1e4a3ce1 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SavedPlayQueue.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/SavedPlayQueue.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; import java.util.List; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SearchCriteria.java b/libresonic-main/src/main/java/org/libresonic/player/domain/SearchCriteria.java similarity index 71% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SearchCriteria.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/SearchCriteria.java index 63596d1f..dfa300ee 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SearchCriteria.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/SearchCriteria.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; -import net.sourceforge.subsonic.service.SearchService; +import org.libresonic.player.service.SearchService; /** * Defines criteria used when searching. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SearchResult.java b/libresonic-main/src/main/java/org/libresonic/player/domain/SearchResult.java similarity index 74% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SearchResult.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/SearchResult.java index bf4b370a..a104a291 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/SearchResult.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/SearchResult.java @@ -1,28 +1,29 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.ArrayList; import java.util.List; -import net.sourceforge.subsonic.service.MediaScannerService; -import net.sourceforge.subsonic.service.SearchService; +import org.libresonic.player.service.MediaScannerService; +import org.libresonic.player.service.SearchService; /** * The outcome of a search. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Share.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Share.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Share.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Share.java index 6c75c5c1..161a7862 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Share.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Share.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Theme.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Theme.java similarity index 73% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Theme.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Theme.java index 37483520..795cfe5e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Theme.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Theme.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Contains the ID and name for a theme. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/TranscodeScheme.java b/libresonic-main/src/main/java/org/libresonic/player/domain/TranscodeScheme.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/TranscodeScheme.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/TranscodeScheme.java index a43a8a16..1c5b75f1 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/TranscodeScheme.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/TranscodeScheme.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Enumeration of transcoding schemes. Transcoding is the process of diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Transcoding.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Transcoding.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Transcoding.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Transcoding.java index 57c8316f..8cd95def 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Transcoding.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Transcoding.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.util.StringUtil; /** * Contains the configuration for a transcoding, i.e., a specification of how a given media format diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/TransferStatus.java b/libresonic-main/src/main/java/org/libresonic/player/domain/TransferStatus.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/TransferStatus.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/TransferStatus.java index 06930ae3..d9269e50 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/TransferStatus.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/TransferStatus.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.io.File; -import net.sourceforge.subsonic.util.BoundedList; +import org.libresonic.player.util.BoundedList; /** * Status for a single transfer (stream, download or upload). diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/UrlRedirectType.java b/libresonic-main/src/main/java/org/libresonic/player/domain/UrlRedirectType.java similarity index 67% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/UrlRedirectType.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/UrlRedirectType.java index 23c75815..83329570 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/UrlRedirectType.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/UrlRedirectType.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/User.java b/libresonic-main/src/main/java/org/libresonic/player/domain/User.java similarity index 94% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/User.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/User.java index fb7e1d7e..1c4dba82 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/User.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/User.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Represent a user. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/UserSettings.java b/libresonic-main/src/main/java/org/libresonic/player/domain/UserSettings.java similarity index 94% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/UserSettings.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/UserSettings.java index f0e0fcdd..05a9139c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/UserSettings.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/UserSettings.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.util.Date; import java.util.Locale; @@ -45,6 +46,7 @@ public class UserSettings { private Visibility mainVisibility = new Visibility(); private Visibility playlistVisibility = new Visibility(); private boolean lastFmEnabled; + private int listReloadDelay; private String lastFmUsername; private String lastFmPassword; private TranscodeScheme transcodeScheme = TranscodeScheme.OFF; @@ -155,6 +157,14 @@ public class UserSettings { this.lastFmEnabled = lastFmEnabled; } + public int getListReloadDelay() { + return listReloadDelay; + } + + public void setListReloadDelay(int listReloadDelay) { + this.listReloadDelay = listReloadDelay; + } + public String getLastFmUsername() { return lastFmUsername; } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Version.java b/libresonic-main/src/main/java/org/libresonic/player/domain/Version.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Version.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/Version.java index fd329f8a..8b105e28 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/Version.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/Version.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** - * Represents the version number of Subsonic. + * Represents the version number of Libresonic. * * @author Sindre Mehus * @version $Revision: 1.3 $ $Date: 2006/01/20 21:25:16 $ diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/VideoTranscodingSettings.java b/libresonic-main/src/main/java/org/libresonic/player/domain/VideoTranscodingSettings.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/domain/VideoTranscodingSettings.java rename to libresonic-main/src/main/java/org/libresonic/player/domain/VideoTranscodingSettings.java index 06793a92..163d7bfd 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/domain/VideoTranscodingSettings.java +++ b/libresonic-main/src/main/java/org/libresonic/player/domain/VideoTranscodingSettings.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Parameters used when transcoding videos. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/BootstrapVerificationFilter.java b/libresonic-main/src/main/java/org/libresonic/player/filter/BootstrapVerificationFilter.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/filter/BootstrapVerificationFilter.java rename to libresonic-main/src/main/java/org/libresonic/player/filter/BootstrapVerificationFilter.java index 57e100ab..a0f1a0d3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/BootstrapVerificationFilter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/filter/BootstrapVerificationFilter.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.filter; +package org.libresonic.player.filter; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.Logger; +import org.libresonic.player.service.SettingsService; import javax.servlet.Filter; import javax.servlet.FilterChain; @@ -36,10 +37,10 @@ import java.util.concurrent.atomic.AtomicBoolean; /** * This filter is executed very early in the filter chain. It verifies that - * the Subsonic home directory (c:\subsonic or /var/subsonic) exists and + * the Libresonic home directory (c:\libresonic or /var/libresonic) exists and * is writable. If not, a proper error message is given to the user. *

- * (The Subsonic home directory is usually created automatically, but a common + * (The Libresonic home directory is usually created automatically, but a common * problem on Linux is that the Tomcat user does not have the necessary * privileges). * @@ -48,33 +49,33 @@ import java.util.concurrent.atomic.AtomicBoolean; public class BootstrapVerificationFilter implements Filter { private static final Logger LOG = Logger.getLogger(BootstrapVerificationFilter.class); - private boolean subsonicHomeVerified = false; + private boolean libresonicHomeVerified = false; private final AtomicBoolean serverInfoLogged = new AtomicBoolean(); public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { // Already verified? - if (subsonicHomeVerified) { + if (libresonicHomeVerified) { chain.doFilter(req, res); return; } - File home = SettingsService.getSubsonicHome(); + File home = SettingsService.getLibresonicHome(); if (!directoryExists(home)) { error(res, "

The directory " + home + " does not exist. Please create it and make it writable, " + "then restart the servlet container.

" + - "

(You can override the directory location by specifying -Dsubsonic.home=... when " + + "

(You can override the directory location by specifying -Dlibresonic.home=... when " + "starting the servlet container.)

"); } else if (!directoryWritable(home)) { error(res, "

The directory " + home + " is not writable. Please change file permissions, " + "then restart the servlet container.

" + - "

(You can override the directory location by specifying -Dsubsonic.home=... when " + + "

(You can override the directory location by specifying -Dlibresonic.home=... when " + "starting the servlet container.)

"); } else { - subsonicHomeVerified = true; + libresonicHomeVerified = true; logServerInfo(req); chain.doFilter(req, res); } @@ -104,9 +105,9 @@ public class BootstrapVerificationFilter implements Filter { private void error(ServletResponse res, String error) throws IOException { ServletOutputStream out = res.getOutputStream(); out.println("" + - "Subsonic Error" + + "Libresonic Error" + "" + - "

Subsonic Error

" + + "

Libresonic Error

" + error + "" + ""); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/ParameterDecodingFilter.java b/libresonic-main/src/main/java/org/libresonic/player/filter/ParameterDecodingFilter.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/filter/ParameterDecodingFilter.java rename to libresonic-main/src/main/java/org/libresonic/player/filter/ParameterDecodingFilter.java index 52a98ad0..019784ba 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/ParameterDecodingFilter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/filter/ParameterDecodingFilter.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.filter; +package org.libresonic.player.filter; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.util.StringUtil; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/RESTFilter.java b/libresonic-main/src/main/java/org/libresonic/player/filter/RESTFilter.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/filter/RESTFilter.java rename to libresonic-main/src/main/java/org/libresonic/player/filter/RESTFilter.java index 07dca5f0..2140c217 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/RESTFilter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/filter/RESTFilter.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.filter; +package org.libresonic.player.filter; import java.io.IOException; @@ -32,12 +33,12 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.util.NestedServletException; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.controller.JAXBWriter; -import net.sourceforge.subsonic.controller.RESTController; +import org.libresonic.player.Logger; +import org.libresonic.player.controller.JAXBWriter; +import org.libresonic.player.controller.RESTController; -import static net.sourceforge.subsonic.controller.RESTController.ErrorCode.GENERIC; -import static net.sourceforge.subsonic.controller.RESTController.ErrorCode.MISSING_PARAMETER; +import static org.libresonic.player.controller.RESTController.ErrorCode.GENERIC; +import static org.libresonic.player.controller.RESTController.ErrorCode.MISSING_PARAMETER; /** * Intercepts exceptions thrown by RESTController. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/RequestEncodingFilter.java b/libresonic-main/src/main/java/org/libresonic/player/filter/RequestEncodingFilter.java similarity index 78% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/filter/RequestEncodingFilter.java rename to libresonic-main/src/main/java/org/libresonic/player/filter/RequestEncodingFilter.java index 3b37e8d4..6deeb3ab 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/RequestEncodingFilter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/filter/RequestEncodingFilter.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.filter; +package org.libresonic.player.filter; import javax.servlet.*; import javax.servlet.http.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/ResponseHeaderFilter.java b/libresonic-main/src/main/java/org/libresonic/player/filter/ResponseHeaderFilter.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/filter/ResponseHeaderFilter.java rename to libresonic-main/src/main/java/org/libresonic/player/filter/ResponseHeaderFilter.java index 58f6e2d6..48b3959b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/filter/ResponseHeaderFilter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/filter/ResponseHeaderFilter.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.filter; +package org.libresonic.player.filter; import javax.servlet.*; import javax.servlet.http.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/i18n/SubsonicLocaleResolver.java b/libresonic-main/src/main/java/org/libresonic/player/i18n/LibresonicLocaleResolver.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/i18n/SubsonicLocaleResolver.java rename to libresonic-main/src/main/java/org/libresonic/player/i18n/LibresonicLocaleResolver.java index 231ad6e7..68bfe5d2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/i18n/SubsonicLocaleResolver.java +++ b/libresonic-main/src/main/java/org/libresonic/player/i18n/LibresonicLocaleResolver.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.i18n; +package org.libresonic.player.i18n; -import net.sourceforge.subsonic.service.*; -import net.sourceforge.subsonic.domain.*; +import org.libresonic.player.service.*; +import org.libresonic.player.domain.*; import org.springframework.web.servlet.*; import javax.servlet.http.*; @@ -30,7 +31,7 @@ import java.util.*; * * @author Sindre Mehus */ -public class SubsonicLocaleResolver implements LocaleResolver { +public class LibresonicLocaleResolver implements LocaleResolver { private SecurityService securityService; private SettingsService settingsService; @@ -43,14 +44,14 @@ public class SubsonicLocaleResolver implements LocaleResolver { * @return The current locale. */ public Locale resolveLocale(HttpServletRequest request) { - Locale locale = (Locale) request.getAttribute("subsonic.locale"); + Locale locale = (Locale) request.getAttribute("libresonic.locale"); if (locale != null) { return locale; } // Optimization: Cache locale in the request. locale = doResolveLocale(request); - request.setAttribute("subsonic.locale", locale); + request.setAttribute("libresonic.locale", locale); return locale; } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/InputStreamReaderThread.java b/libresonic-main/src/main/java/org/libresonic/player/io/InputStreamReaderThread.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/io/InputStreamReaderThread.java rename to libresonic-main/src/main/java/org/libresonic/player/io/InputStreamReaderThread.java index 44292043..9568cbd9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/InputStreamReaderThread.java +++ b/libresonic-main/src/main/java/org/libresonic/player/io/InputStreamReaderThread.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.io; +package org.libresonic.player.io; -import net.sourceforge.subsonic.*; +import org.libresonic.player.*; import org.apache.commons.io.*; import java.io.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/PlayQueueInputStream.java b/libresonic-main/src/main/java/org/libresonic/player/io/PlayQueueInputStream.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/io/PlayQueueInputStream.java rename to libresonic-main/src/main/java/org/libresonic/player/io/PlayQueueInputStream.java index 8aaf718c..5277209d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/PlayQueueInputStream.java +++ b/libresonic-main/src/main/java/org/libresonic/player/io/PlayQueueInputStream.java @@ -1,42 +1,43 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.io; +package org.libresonic.player.io; import java.io.IOException; import java.io.InputStream; import java.util.List; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.TransferStatus; -import net.sourceforge.subsonic.domain.VideoTranscodingSettings; -import net.sourceforge.subsonic.service.AudioScrobblerService; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.service.sonos.SonosHelper; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.TransferStatus; +import org.libresonic.player.domain.VideoTranscodingSettings; +import org.libresonic.player.service.AudioScrobblerService; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.service.sonos.SonosHelper; +import org.libresonic.player.util.FileUtil; /** - * Implementation of {@link InputStream} which reads from a {@link net.sourceforge.subsonic.domain.PlayQueue}. + * Implementation of {@link InputStream} which reads from a {@link org.libresonic.player.domain.PlayQueue}. * * @author Sindre Mehus */ @@ -123,7 +124,7 @@ public class PlayQueueInputStream extends InputStream { mediaFileService.incrementPlayCount(file); // Don't scrobble REST players (except Sonos) - if (player.getClientId() == null || player.getClientId().equals(SonosHelper.SUBSONIC_CLIENT_ID)) { + if (player.getClientId() == null || player.getClientId().equals(SonosHelper.LIBRESONIC_CLIENT_ID)) { audioScrobblerService.register(file, player.getUsername(), false, null); } @@ -148,7 +149,7 @@ public class PlayQueueInputStream extends InputStream { } } finally { // Don't scrobble REST players (except Sonos) - if (player.getClientId() == null || player.getClientId().equals(SonosHelper.SUBSONIC_CLIENT_ID)) { + if (player.getClientId() == null || player.getClientId().equals(SonosHelper.LIBRESONIC_CLIENT_ID)) { audioScrobblerService.register(currentFile, player.getUsername(), true, null); } currentInputStream = null; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/RangeOutputStream.java b/libresonic-main/src/main/java/org/libresonic/player/io/RangeOutputStream.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/io/RangeOutputStream.java rename to libresonic-main/src/main/java/org/libresonic/player/io/RangeOutputStream.java index 01931fa1..59462a24 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/RangeOutputStream.java +++ b/libresonic-main/src/main/java/org/libresonic/player/io/RangeOutputStream.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.io; +package org.libresonic.player.io; -import net.sourceforge.subsonic.util.HttpRange; +import org.libresonic.player.util.HttpRange; import java.io.FilterOutputStream; import java.io.IOException; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/ShoutCastOutputStream.java b/libresonic-main/src/main/java/org/libresonic/player/io/ShoutCastOutputStream.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/io/ShoutCastOutputStream.java rename to libresonic-main/src/main/java/org/libresonic/player/io/ShoutCastOutputStream.java index 9a8618c6..b7b4d8f3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/ShoutCastOutputStream.java +++ b/libresonic-main/src/main/java/org/libresonic/player/io/ShoutCastOutputStream.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.io; +package org.libresonic.player.io; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.service.SettingsService; import org.apache.commons.lang.StringUtils; import java.io.IOException; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/TranscodeInputStream.java b/libresonic-main/src/main/java/org/libresonic/player/io/TranscodeInputStream.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/io/TranscodeInputStream.java rename to libresonic-main/src/main/java/org/libresonic/player/io/TranscodeInputStream.java index b7ba4ce2..c474bfd2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/io/TranscodeInputStream.java +++ b/libresonic-main/src/main/java/org/libresonic/player/io/TranscodeInputStream.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.io; +package org.libresonic.player.io; -import net.sourceforge.subsonic.*; +import org.libresonic.player.*; import org.apache.commons.io.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ldap/SubsonicLdapBindAuthenticator.java b/libresonic-main/src/main/java/org/libresonic/player/ldap/LibresonicLdapBindAuthenticator.java similarity index 85% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ldap/SubsonicLdapBindAuthenticator.java rename to libresonic-main/src/main/java/org/libresonic/player/ldap/LibresonicLdapBindAuthenticator.java index fee4ff2c..3591f944 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ldap/SubsonicLdapBindAuthenticator.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ldap/LibresonicLdapBindAuthenticator.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ldap; +package org.libresonic.player.ldap; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; import org.acegisecurity.BadCredentialsException; import org.acegisecurity.ldap.DefaultInitialDirContextFactory; import org.acegisecurity.ldap.search.FilterBasedLdapUserSearch; @@ -39,9 +40,9 @@ import java.util.Map; * * @author Sindre Mehus */ -public class SubsonicLdapBindAuthenticator implements LdapAuthenticator { +public class LibresonicLdapBindAuthenticator implements LdapAuthenticator { - private static final Logger LOG = Logger.getLogger(SubsonicLdapBindAuthenticator.class); + private static final Logger LOG = Logger.getLogger(LibresonicLdapBindAuthenticator.class); private SecurityService securityService; private SettingsService settingsService; @@ -56,7 +57,7 @@ public class SubsonicLdapBindAuthenticator implements LdapAuthenticator { throw new BadCredentialsException("LDAP authentication disabled."); } - // User must be defined in Subsonic, unless auto-shadowing is enabled. + // User must be defined in Libresonic, unless auto-shadowing is enabled. User user = securityService.getUserByName(username); if (user == null && !settingsService.isLdapAutoShadowing()) { throw new BadCredentialsException("User does not exist."); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/ldap/UserDetailsServiceBasedAuthoritiesPopulator.java b/libresonic-main/src/main/java/org/libresonic/player/ldap/UserDetailsServiceBasedAuthoritiesPopulator.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/ldap/UserDetailsServiceBasedAuthoritiesPopulator.java rename to libresonic-main/src/main/java/org/libresonic/player/ldap/UserDetailsServiceBasedAuthoritiesPopulator.java index a3b9359e..81f4e3ef 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/ldap/UserDetailsServiceBasedAuthoritiesPopulator.java +++ b/libresonic-main/src/main/java/org/libresonic/player/ldap/UserDetailsServiceBasedAuthoritiesPopulator.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.ldap; +package org.libresonic.player.ldap; import org.acegisecurity.GrantedAuthority; import org.acegisecurity.ldap.LdapDataAccessException; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/security/SubsonicApplicationEventListener.java b/libresonic-main/src/main/java/org/libresonic/player/security/LibresonicApplicationEventListener.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/security/SubsonicApplicationEventListener.java rename to libresonic-main/src/main/java/org/libresonic/player/security/LibresonicApplicationEventListener.java index b4fe5ed6..48469d42 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/security/SubsonicApplicationEventListener.java +++ b/libresonic-main/src/main/java/org/libresonic/player/security/LibresonicApplicationEventListener.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.security; +package org.libresonic.player.security; import org.acegisecurity.event.authentication.AbstractAuthenticationFailureEvent; import org.acegisecurity.providers.AbstractAuthenticationToken; @@ -29,7 +29,7 @@ import org.springframework.context.ApplicationListener; * @author Sindre Mehus * @version $Id$ */ -public class SubsonicApplicationEventListener implements ApplicationListener { +public class LibresonicApplicationEventListener implements ApplicationListener { private LoginFailureLogger loginFailureLogger; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/security/LoginFailureLogger.java b/libresonic-main/src/main/java/org/libresonic/player/security/LoginFailureLogger.java similarity index 73% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/security/LoginFailureLogger.java rename to libresonic-main/src/main/java/org/libresonic/player/security/LoginFailureLogger.java index d52c3e35..0e7b056e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/security/LoginFailureLogger.java +++ b/libresonic-main/src/main/java/org/libresonic/player/security/LoginFailureLogger.java @@ -1,25 +1,25 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.security; +package org.libresonic.player.security; -import net.sourceforge.subsonic.Logger; +import org.libresonic.player.Logger; /** * Logs login failures. Can be used by tools like fail2ban for blocking IP addresses. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/security/RESTRequestParameterProcessingFilter.java b/libresonic-main/src/main/java/org/libresonic/player/security/RESTRequestParameterProcessingFilter.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/security/RESTRequestParameterProcessingFilter.java rename to libresonic-main/src/main/java/org/libresonic/player/security/RESTRequestParameterProcessingFilter.java index 2f930bfe..9081c372 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/security/RESTRequestParameterProcessingFilter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/security/RESTRequestParameterProcessingFilter.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.security; +package org.libresonic.player.security; import java.io.IOException; @@ -37,15 +38,15 @@ import org.acegisecurity.providers.UsernamePasswordAuthenticationToken; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang.StringUtils; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.controller.JAXBWriter; -import net.sourceforge.subsonic.controller.RESTController; -import net.sourceforge.subsonic.domain.LicenseInfo; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.Version; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.controller.JAXBWriter; +import org.libresonic.player.controller.RESTController; +import org.libresonic.player.domain.LicenseInfo; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.Version; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.util.StringUtil; /** * Performs authentication based on credentials being present in the HTTP request parameters. Also checks diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/AdService.java b/libresonic-main/src/main/java/org/libresonic/player/service/AdService.java similarity index 70% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/AdService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/AdService.java index b28d9d16..6f108fb2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/AdService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/AdService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; /** * Provides services for generating ads. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/AudioScrobblerService.java b/libresonic-main/src/main/java/org/libresonic/player/service/AudioScrobblerService.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/AudioScrobblerService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/AudioScrobblerService.java index eb1c99cf..fcdc76fc 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/AudioScrobblerService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/AudioScrobblerService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.IOException; import java.util.ArrayList; @@ -39,10 +40,10 @@ import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.HttpConnectionParams; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.util.StringUtil; /** * Provides services for "audioscrobbling", which is the process of diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/ITunesParser.java b/libresonic-main/src/main/java/org/libresonic/player/service/ITunesParser.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/ITunesParser.java rename to libresonic-main/src/main/java/org/libresonic/player/service/ITunesParser.java index 03482b27..1b661d62 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/ITunesParser.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/ITunesParser.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.io.FileInputStream; @@ -41,7 +41,7 @@ import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.util.StringUtil; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/JukeboxService.java b/libresonic-main/src/main/java/org/libresonic/player/service/JukeboxService.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/JukeboxService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/JukeboxService.java index 0ef74602..f0265e19 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/JukeboxService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/JukeboxService.java @@ -1,39 +1,40 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.InputStream; import org.apache.commons.io.IOUtils; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Transcoding; -import net.sourceforge.subsonic.domain.TransferStatus; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.VideoTranscodingSettings; -import net.sourceforge.subsonic.service.jukebox.AudioPlayer; -import net.sourceforge.subsonic.util.FileUtil; - -import static net.sourceforge.subsonic.service.jukebox.AudioPlayer.State.EOM; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Transcoding; +import org.libresonic.player.domain.TransferStatus; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.VideoTranscodingSettings; +import org.libresonic.player.service.jukebox.AudioPlayer; +import org.libresonic.player.util.FileUtil; + +import static org.libresonic.player.service.jukebox.AudioPlayer.State.EOM; /** * Plays music on the local audio device. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/LastFmCache.java b/libresonic-main/src/main/java/org/libresonic/player/service/LastFmCache.java similarity index 94% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/LastFmCache.java rename to libresonic-main/src/main/java/org/libresonic/player/service/LastFmCache.java index ca9bbc7e..a7b01f91 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/LastFmCache.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/LastFmCache.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.ByteArrayInputStream; import java.io.File; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/LastFmService.java b/libresonic-main/src/main/java/org/libresonic/player/service/LastFmService.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/LastFmService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/LastFmService.java index b3baa72c..fcb75ce6 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/LastFmService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/LastFmService.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.io.IOException; @@ -34,12 +34,12 @@ import de.umass.lastfm.Artist; import de.umass.lastfm.Caller; import de.umass.lastfm.ImageSize; import de.umass.lastfm.Track; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.ArtistDao; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.domain.ArtistBio; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.ArtistDao; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.domain.ArtistBio; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; /** * Provides services from the Last.fm REST API. @@ -59,9 +59,9 @@ public class LastFmService { public void init() { Caller caller = Caller.getInstance(); - caller.setUserAgent("Subsonic"); + caller.setUserAgent("Libresonic"); - File cacheDir = new File(SettingsService.getSubsonicHome(), "lastfmcache"); + File cacheDir = new File(SettingsService.getLibresonicHome(), "lastfmcache"); caller.setCache(new LastFmCache(cacheDir, CACHE_TIME_TO_LIVE_MILLIS)); } @@ -126,16 +126,16 @@ public class LastFmService { * @param musicFolders Only return songs from artists in these folders. * @return Similar artists, ordered by presence then similarity. */ - public List getSimilarArtists(net.sourceforge.subsonic.domain.Artist artist, + public List getSimilarArtists(org.libresonic.player.domain.Artist artist, int count, boolean includeNotPresent, List musicFolders) { - List result = new ArrayList(); + List result = new ArrayList(); try { // First select artists that are present. Collection similarArtists = Artist.getSimilar(getCanonicalArtistName(artist.getName()), LAST_FM_KEY); for (Artist lastFmArtist : similarArtists) { - net.sourceforge.subsonic.domain.Artist similarArtist = artistDao.getArtist(lastFmArtist.getName(), musicFolders); + org.libresonic.player.domain.Artist similarArtist = artistDao.getArtist(lastFmArtist.getName(), musicFolders); if (similarArtist != null) { result.add(similarArtist); if (result.size() == count) { @@ -147,9 +147,9 @@ public class LastFmService { // Then fill up with non-present artists if (includeNotPresent) { for (Artist lastFmArtist : similarArtists) { - net.sourceforge.subsonic.domain.Artist similarArtist = artistDao.getArtist(lastFmArtist.getName()); + org.libresonic.player.domain.Artist similarArtist = artistDao.getArtist(lastFmArtist.getName()); if (similarArtist == null) { - net.sourceforge.subsonic.domain.Artist notPresentArtist = new net.sourceforge.subsonic.domain.Artist(); + org.libresonic.player.domain.Artist notPresentArtist = new org.libresonic.player.domain.Artist(); notPresentArtist.setId(-1); notPresentArtist.setName(lastFmArtist.getName()); result.add(notPresentArtist); @@ -174,12 +174,12 @@ public class LastFmService { * @param musicFolders Only return songs from artists in these folders. * @return Songs from similar artists; */ - public List getSimilarSongs(net.sourceforge.subsonic.domain.Artist artist, int count, + public List getSimilarSongs(org.libresonic.player.domain.Artist artist, int count, List musicFolders) throws IOException { List similarSongs = new ArrayList(); similarSongs.addAll(mediaFileDao.getSongsByArtist(artist.getName(), 0, 1000)); - for (net.sourceforge.subsonic.domain.Artist similarArtist : getSimilarArtists(artist, 100, false, musicFolders)) { + for (org.libresonic.player.domain.Artist similarArtist : getSimilarArtists(artist, 100, false, musicFolders)) { similarSongs.addAll(mediaFileDao.getSongsByArtist(similarArtist.getName(), 0, 1000)); } Collections.shuffle(similarSongs); @@ -226,7 +226,7 @@ public class LastFmService { * @param artist The artist. * @return Artist bio. */ - public ArtistBio getArtistBio(net.sourceforge.subsonic.domain.Artist artist) { + public ArtistBio getArtistBio(org.libresonic.player.domain.Artist artist) { return getArtistBio(getCanonicalArtistName(artist.getName())); } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/MediaFileService.java b/libresonic-main/src/main/java/org/libresonic/player/service/MediaFileService.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/MediaFileService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/MediaFileService.java index 690cc3fd..27e755b9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/MediaFileService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/MediaFileService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.io.IOException; @@ -37,21 +38,21 @@ import org.apache.commons.lang.StringUtils; import net.sf.ehcache.Ehcache; import net.sf.ehcache.Element; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.AlbumDao; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.domain.Album; -import net.sourceforge.subsonic.domain.Genre; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MediaFileComparator; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.service.metadata.JaudiotaggerParser; -import net.sourceforge.subsonic.service.metadata.MetaData; -import net.sourceforge.subsonic.service.metadata.MetaDataParser; -import net.sourceforge.subsonic.service.metadata.MetaDataParserFactory; -import net.sourceforge.subsonic.util.FileUtil; - -import static net.sourceforge.subsonic.domain.MediaFile.MediaType.*; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.AlbumDao; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.domain.Album; +import org.libresonic.player.domain.Genre; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MediaFileComparator; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.service.metadata.JaudiotaggerParser; +import org.libresonic.player.service.metadata.MetaData; +import org.libresonic.player.service.metadata.MetaDataParser; +import org.libresonic.player.service.metadata.MetaDataParserFactory; +import org.libresonic.player.util.FileUtil; + +import static org.libresonic.player.domain.MediaFile.MediaType.*; /** * Provides services for instantiating and caching media files and cover art. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/MediaScannerService.java b/libresonic-main/src/main/java/org/libresonic/player/service/MediaScannerService.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/MediaScannerService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/MediaScannerService.java index 7f6f4c0d..9b81e11e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/MediaScannerService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/MediaScannerService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.util.Calendar; @@ -28,17 +29,17 @@ import java.util.TimerTask; import org.apache.commons.lang.ObjectUtils; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.AlbumDao; -import net.sourceforge.subsonic.dao.ArtistDao; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.domain.Album; -import net.sourceforge.subsonic.domain.Artist; -import net.sourceforge.subsonic.domain.Genres; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MediaLibraryStatistics; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.AlbumDao; +import org.libresonic.player.dao.ArtistDao; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.domain.Album; +import org.libresonic.player.domain.Artist; +import org.libresonic.player.domain.Genres; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MediaLibraryStatistics; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.util.FileUtil; /** * Provides services for scanning the music library. @@ -391,8 +392,8 @@ public class MediaScannerService { * @return The index file for the given index version. */ private File getIndexFile(int version) { - File home = SettingsService.getSubsonicHome(); - return new File(home, "subsonic" + version + ".index"); + File home = SettingsService.getLibresonicHome(); + return new File(home, "libresonic" + version + ".index"); } public void setSettingsService(SettingsService settingsService) { diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/MusicIndexService.java b/libresonic-main/src/main/java/org/libresonic/player/service/MusicIndexService.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/MusicIndexService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/MusicIndexService.java index d8e4521b..8e4618ec 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/MusicIndexService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/MusicIndexService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.io.IOException; @@ -33,13 +34,13 @@ import java.util.SortedMap; import java.util.StringTokenizer; import java.util.TreeMap; -import net.sourceforge.subsonic.domain.Artist; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.MusicFolderContent; -import net.sourceforge.subsonic.domain.MusicIndex; -import net.sourceforge.subsonic.domain.MusicIndex.SortableArtist; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.domain.Artist; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.MusicFolderContent; +import org.libresonic.player.domain.MusicIndex; +import org.libresonic.player.domain.MusicIndex.SortableArtist; +import org.libresonic.player.util.FileUtil; /** * Provides services for grouping artists by index. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/NetworkService.java b/libresonic-main/src/main/java/org/libresonic/player/service/NetworkService.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/NetworkService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/NetworkService.java index 6a2ca100..279923c3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/NetworkService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/NetworkService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.IOException; import java.util.ArrayList; @@ -42,16 +43,16 @@ import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.HttpConnectionParams; import org.apache.http.util.EntityUtils; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.UrlRedirectType; -import net.sourceforge.subsonic.service.upnp.ClingRouter; -import net.sourceforge.subsonic.service.upnp.NATPMPRouter; -import net.sourceforge.subsonic.service.upnp.Router; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.UrlRedirectType; +import org.libresonic.player.service.upnp.ClingRouter; +import org.libresonic.player.service.upnp.NATPMPRouter; +import org.libresonic.player.service.upnp.Router; +import org.libresonic.player.util.StringUtil; /** * Provides network-related services, including port forwarding on UPnP routers and - * URL redirection from http://xxxx.subsonic.org. + * URL redirection from http://xxxx.libresonic.org. * * @author Sindre Mehus */ @@ -99,6 +100,17 @@ public class NetworkService { * @param test Whether to test that the redirection works. */ public synchronized void initUrlRedirection(boolean test) { + + if (true) { + // This feature isn't currently supported, since it's a public service of subsonic.org + // Display a warning message for now + boolean enabled = settingsService.isUrlRedirectionEnabled() && settingsService.getUrlRedirectType() == UrlRedirectType.NORMAL; + if (enabled) { + LOG.warn("The URL redirection service is currently not enabled!"); + } + return; + } + urlRedirectionStatus.setText("Idle"); if (urlRedirectionFuture != null) { urlRedirectionFuture.cancel(true); @@ -116,7 +128,7 @@ public class NetworkService { } public static String getBackendUrl() { - return "true".equals(System.getProperty("subsonic.test")) ? "http://localhost:8080" : "http://subsonic.org"; + return "true".equals(System.getProperty("libresonic.test")) ? "http://localhost:8080" : "http://libresonic.org"; } public void setSettingsService(SettingsService settingsService) { @@ -286,7 +298,7 @@ public class NetworkService { String url = URL_REDIRECTION_TEST_URL; if (settingsService.getUrlRedirectType() == UrlRedirectType.NORMAL) { url += "?redirectFrom=" + settingsService.getUrlRedirectFrom(); - urlToTest = settingsService.getUrlRedirectFrom() + ".subsonic.org"; + urlToTest = settingsService.getUrlRedirectFrom() + ".libresonic.org"; } else { url += "?customUrl=" + settingsService.getUrlRedirectCustomUrl(); urlToTest = settingsService.getUrlRedirectCustomUrl(); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/PlayerService.java b/libresonic-main/src/main/java/org/libresonic/player/service/PlayerService.java similarity index 94% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/PlayerService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/PlayerService.java index 4e56a6b9..441186ef 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/PlayerService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/PlayerService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.util.ArrayList; import java.util.Date; @@ -29,12 +30,12 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; -import net.sourceforge.subsonic.dao.PlayerDao; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Transcoding; -import net.sourceforge.subsonic.domain.TransferStatus; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.dao.PlayerDao; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Transcoding; +import org.libresonic.player.domain.TransferStatus; +import org.libresonic.player.domain.User; +import org.libresonic.player.util.StringUtil; /** * Provides services for maintaining the set of players. @@ -238,7 +239,7 @@ public class PlayerService { * * @param username The name of the user. * @param clientId The third-party client ID (used if this player is managed over the - * Subsonic REST API). May be null. + * Libresonic REST API). May be null. * @return All relevant players. */ public List getPlayersForUserAndClientId(String username, String clientId) { diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/PlaylistService.java b/libresonic-main/src/main/java/org/libresonic/player/service/PlaylistService.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/PlaylistService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/PlaylistService.java index dbe33300..1f2aab3b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/PlaylistService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/PlaylistService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.BufferedReader; import java.io.ByteArrayInputStream; @@ -46,22 +47,22 @@ import org.jdom.JDOMException; import org.jdom.Namespace; import org.jdom.input.SAXBuilder; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.dao.PlaylistDao; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.util.Pair; -import net.sourceforge.subsonic.util.StringUtil; -import net.sourceforge.subsonic.util.Util; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.dao.PlaylistDao; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.User; +import org.libresonic.player.util.Pair; +import org.libresonic.player.util.StringUtil; +import org.libresonic.player.util.Util; /** * Provides services for loading and saving playlists to and from persistent storage. * * @author Sindre Mehus - * @see net.sourceforge.subsonic.domain.PlayQueue + * @see org.libresonic.player.domain.PlayQueue */ public class PlaylistService { diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/PodcastService.java b/libresonic-main/src/main/java/org/libresonic/player/service/PodcastService.java similarity index 96% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/PodcastService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/PodcastService.java index a0c1c4d8..8754345c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/PodcastService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/PodcastService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.io.FileOutputStream; @@ -57,16 +58,16 @@ import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.PodcastDao; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.PodcastChannel; -import net.sourceforge.subsonic.domain.PodcastEpisode; -import net.sourceforge.subsonic.domain.PodcastStatus; -import net.sourceforge.subsonic.service.metadata.MetaData; -import net.sourceforge.subsonic.service.metadata.MetaDataParser; -import net.sourceforge.subsonic.service.metadata.MetaDataParserFactory; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.PodcastDao; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.PodcastChannel; +import org.libresonic.player.domain.PodcastEpisode; +import org.libresonic.player.domain.PodcastStatus; +import org.libresonic.player.service.metadata.MetaData; +import org.libresonic.player.service.metadata.MetaDataParser; +import org.libresonic.player.service.metadata.MetaDataParserFactory; +import org.libresonic.player.util.StringUtil; /** * Provides services for Podcast reception. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/RatingService.java b/libresonic-main/src/main/java/org/libresonic/player/service/RatingService.java similarity index 85% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/RatingService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/RatingService.java index 8a56c491..5b8f0e2d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/RatingService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/RatingService.java @@ -1,31 +1,32 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.util.ArrayList; import java.util.List; -import net.sourceforge.subsonic.dao.RatingDao; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.dao.RatingDao; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.util.FileUtil; /** * Provides services for user ratings. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SearchService.java b/libresonic-main/src/main/java/org/libresonic/player/service/SearchService.java similarity index 94% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/SearchService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/SearchService.java index 45807795..a73a964c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SearchService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/SearchService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.io.IOException; @@ -63,19 +64,19 @@ import org.apache.lucene.util.Version; import com.google.common.collect.Lists; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.AlbumDao; -import net.sourceforge.subsonic.dao.ArtistDao; -import net.sourceforge.subsonic.domain.Album; -import net.sourceforge.subsonic.domain.Artist; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.RandomSearchCriteria; -import net.sourceforge.subsonic.domain.SearchCriteria; -import net.sourceforge.subsonic.domain.SearchResult; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.AlbumDao; +import org.libresonic.player.dao.ArtistDao; +import org.libresonic.player.domain.Album; +import org.libresonic.player.domain.Artist; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.RandomSearchCriteria; +import org.libresonic.player.domain.SearchCriteria; +import org.libresonic.player.domain.SearchResult; +import org.libresonic.player.util.FileUtil; -import static net.sourceforge.subsonic.service.SearchService.IndexType.*; +import static org.libresonic.player.service.SearchService.IndexType.*; /** * Performs Lucene-based searching and indexing. @@ -185,7 +186,7 @@ public class SearchService { try { reader = createIndexReader(indexType); Searcher searcher = new IndexSearcher(reader); - Analyzer analyzer = new SubsonicAnalyzer(); + Analyzer analyzer = new LibresonicAnalyzer(); MultiFieldQueryParser queryParser = new MultiFieldQueryParser(LUCENE_VERSION, indexType.getFields(), analyzer, indexType.getBoosts()); @@ -400,7 +401,7 @@ public class SearchService { private IndexWriter createIndexWriter(IndexType indexType) throws IOException { File dir = getIndexDirectory(indexType); - return new IndexWriter(FSDirectory.open(dir), new SubsonicAnalyzer(), true, new IndexWriter.MaxFieldLength(10)); + return new IndexWriter(FSDirectory.open(dir), new LibresonicAnalyzer(), true, new IndexWriter.MaxFieldLength(10)); } private IndexReader createIndexReader(IndexType indexType) throws IOException { @@ -409,7 +410,7 @@ public class SearchService { } private File getIndexRootDirectory() { - return new File(SettingsService.getSubsonicHome(), LUCENE_DIR); + return new File(SettingsService.getLibresonicHome(), LUCENE_DIR); } private File getIndexDirectory(IndexType indexType) { @@ -575,8 +576,8 @@ public class SearchService { } } - private class SubsonicAnalyzer extends StandardAnalyzer { - private SubsonicAnalyzer() { + private class LibresonicAnalyzer extends StandardAnalyzer { + private LibresonicAnalyzer() { super(LUCENE_VERSION); } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SecurityService.java b/libresonic-main/src/main/java/org/libresonic/player/service/SecurityService.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/SecurityService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/SecurityService.java index 2a2853b6..773e215e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SecurityService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/SecurityService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.util.List; @@ -33,12 +34,12 @@ import org.acegisecurity.wrapper.SecurityContextHolderAwareRequestWrapper; import org.springframework.dao.DataAccessException; import net.sf.ehcache.Ehcache; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.UserDao; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.UserDao; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.User; +import org.libresonic.player.util.FileUtil; /** * Provides security-related services for authentication and authorization. @@ -74,7 +75,7 @@ public class SecurityService implements UserDetailsService { } // If user is LDAP authenticated, disable user. The proper authentication should in that case - // be done by SubsonicLdapBindAuthenticator. + // be done by LibresonicLdapBindAuthenticator. boolean enabled = !user.isLdapAuthenticated(); return new org.acegisecurity.userdetails.User(username, user.getPassword(), enabled, true, true, true, authorities); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/ServiceLocator.java b/libresonic-main/src/main/java/org/libresonic/player/service/ServiceLocator.java similarity index 76% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/ServiceLocator.java rename to libresonic-main/src/main/java/org/libresonic/player/service/ServiceLocator.java index 22abe17d..f5f4a161 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/ServiceLocator.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/ServiceLocator.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; /** * Locates services for objects that are not part of the Spring context. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java b/libresonic-main/src/main/java/org/libresonic/player/service/SettingsService.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/SettingsService.java index d2fe3092..2c579baf 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SettingsService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/SettingsService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.io.FileInputStream; @@ -49,23 +50,23 @@ import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.HttpConnectionParams; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.AvatarDao; -import net.sourceforge.subsonic.dao.InternetRadioDao; -import net.sourceforge.subsonic.dao.MusicFolderDao; -import net.sourceforge.subsonic.dao.UserDao; -import net.sourceforge.subsonic.domain.AlbumListType; -import net.sourceforge.subsonic.domain.Avatar; -import net.sourceforge.subsonic.domain.InternetRadio; -import net.sourceforge.subsonic.domain.LicenseInfo; -import net.sourceforge.subsonic.domain.MediaLibraryStatistics; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Theme; -import net.sourceforge.subsonic.domain.UrlRedirectType; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.util.FileUtil; -import net.sourceforge.subsonic.util.StringUtil; -import net.sourceforge.subsonic.util.Util; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.AvatarDao; +import org.libresonic.player.dao.InternetRadioDao; +import org.libresonic.player.dao.MusicFolderDao; +import org.libresonic.player.dao.UserDao; +import org.libresonic.player.domain.AlbumListType; +import org.libresonic.player.domain.Avatar; +import org.libresonic.player.domain.InternetRadio; +import org.libresonic.player.domain.LicenseInfo; +import org.libresonic.player.domain.MediaLibraryStatistics; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Theme; +import org.libresonic.player.domain.UrlRedirectType; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.util.FileUtil; +import org.libresonic.player.util.StringUtil; +import org.libresonic.player.util.Util; /** * Provides persistent storage of application settings and preferences. @@ -74,9 +75,9 @@ import net.sourceforge.subsonic.util.Util; */ public class SettingsService { - // Subsonic home directory. - private static final File SUBSONIC_HOME_WINDOWS = new File("c:/subsonic"); - private static final File SUBSONIC_HOME_OTHER = new File("/var/subsonic"); + // Libresonic home directory. + private static final File LIBRESONIC_HOME_WINDOWS = new File("c:/libresonic"); + private static final File LIBRESONIC_HOME_OTHER = new File("/var/libresonic"); // Number of free trial days. public static final long TRIAL_DAYS = 30L; @@ -143,6 +144,13 @@ public class SettingsService { private static final String KEY_SONOS_SERVICE_NAME = "SonosServiceName"; private static final String KEY_SONOS_SERVICE_ID = "SonosServiceId"; + private static final String KEY_SMTP_SERVER = "SmtpServer"; + private static final String KEY_SMTP_ENCRYPTION = "SmtpEncryption"; + private static final String KEY_SMTP_PORT = "SmtpPort"; + private static final String KEY_SMTP_USER = "SmtpUser"; + private static final String KEY_SMTP_PASSWORD = "SmtpPassword"; + private static final String KEY_SMTP_FROM = "SmtpFrom"; + // Default values. private static final String DEFAULT_INDEX_STRING = "A B C D E F G H I J K L M N O P Q R S T U V W X-Z(XYZ)"; private static final String DEFAULT_IGNORED_ARTICLES = "The El La Los Las Le Les"; @@ -197,7 +205,7 @@ public class SettingsService { private static final boolean DEFAULT_URL_REDIRECTION_ENABLED = false; private static final UrlRedirectType DEFAULT_URL_REDIRECT_TYPE = UrlRedirectType.NORMAL; private static final String DEFAULT_URL_REDIRECT_FROM = "yourname"; - private static final String DEFAULT_URL_REDIRECT_CONTEXT_PATH = System.getProperty("subsonic.contextPath", "").replaceAll("/", ""); + private static final String DEFAULT_URL_REDIRECT_CONTEXT_PATH = System.getProperty("libresonic.contextPath", "").replaceAll("/", ""); private static final String DEFAULT_URL_REDIRECT_CUSTOM_URL = "http://"; private static final String DEFAULT_SERVER_ID = null; private static final long DEFAULT_SETTINGS_CHANGED = 0L; @@ -211,14 +219,21 @@ public class SettingsService { private static final String DEFAULT_SONOS_SERVICE_NAME = "Libresonic"; private static final int DEFAULT_SONOS_SERVICE_ID = 242; + private static final String DEFAULT_SMTP_SERVER = null; + private static final String DEFAULT_SMTP_ENCRYPTION = "None"; + private static final String DEFAULT_SMTP_PORT = "25"; + private static final String DEFAULT_SMTP_USER = null; + private static final String DEFAULT_SMTP_PASSWORD = null; + private static final String DEFAULT_SMTP_FROM = "libresonic@libresonic.org"; + // Array of obsolete keys. Used to clean property file. private static final List OBSOLETE_KEYS = Arrays.asList("PortForwardingPublicPort", "PortForwardingLocalPort", "DownsamplingCommand", "DownsamplingCommand2", "DownsamplingCommand3", "AutoCoverBatch", "MusicMask", "VideoMask", "CoverArtMask, HlsCommand", "HlsCommand2", "JukeboxCommand", "UrlRedirectTrialExpires", "VideoTrialExpires", "CoverArtFileTypes", "UrlRedirectCustomHost", "CoverArtLimit", "StreamPort"); - private static final String LOCALES_FILE = "/net/sourceforge/subsonic/i18n/locales.txt"; - private static final String THEMES_FILE = "/net/sourceforge/subsonic/theme/themes.txt"; + private static final String LOCALES_FILE = "/org/libresonic/player/i18n/locales.txt"; + private static final String THEMES_FILE = "/org/libresonic/player/theme/themes.txt"; private static final Logger LOG = Logger.getLogger(SettingsService.class); @@ -237,7 +252,7 @@ public class SettingsService { private List cachedMusicFolders; private final ConcurrentMap> cachedMusicFoldersPerUser = new ConcurrentHashMap>(); - private static File subsonicHome; + private static File libresonicHome; private boolean licenseValidated = true; private Date licenseExpires; @@ -318,44 +333,44 @@ public class SettingsService { } private File getPropertyFile() { - return new File(getSubsonicHome(), "subsonic.properties"); + return new File(getLibresonicHome(), "libresonic.properties"); } /** - * Returns the Subsonic home directory. + * Returns the Libresonic home directory. * - * @return The Subsonic home directory, if it exists. + * @return The Libresonic home directory, if it exists. * @throws RuntimeException If directory doesn't exist. */ - public static synchronized File getSubsonicHome() { + public static synchronized File getLibresonicHome() { - if (subsonicHome != null) { - return subsonicHome; + if (libresonicHome != null) { + return libresonicHome; } File home; - String overrideHome = System.getProperty("subsonic.home"); + String overrideHome = System.getProperty("libresonic.home"); if (overrideHome != null) { home = new File(overrideHome); } else { boolean isWindows = System.getProperty("os.name", "Windows").toLowerCase().startsWith("windows"); - home = isWindows ? SUBSONIC_HOME_WINDOWS : SUBSONIC_HOME_OTHER; + home = isWindows ? LIBRESONIC_HOME_WINDOWS : LIBRESONIC_HOME_OTHER; } // Attempt to create home directory if it doesn't exist. if (!home.exists() || !home.isDirectory()) { boolean success = home.mkdirs(); if (success) { - subsonicHome = home; + libresonicHome = home; } else { String message = "The directory " + home + " does not exist. Please create it and make it writable. " + - "(You can override the directory location by specifying -Dsubsonic.home=... when " + + "(You can override the directory location by specifying -Dlibresonic.home=... when " + "starting the servlet container.)"; System.err.println("ERROR: " + message); } } else { - subsonicHome = home; + libresonicHome = home; } return home; @@ -816,7 +831,7 @@ public class SettingsService { public String getUrlRedirectUrl() { if (getUrlRedirectType() == UrlRedirectType.NORMAL) { - return "http://" + getUrlRedirectFrom() + ".subsonic.org"; + return "http://" + getUrlRedirectFrom() + ".libresonic.org"; } return StringUtils.removeEnd(getUrlRedirectCustomUrl(), "/"); } @@ -1023,7 +1038,7 @@ public class SettingsService { } /** - * Returns the "brand" name. Normally, this is just "Subsonic". + * Returns the "brand" name. Normally, this is just "Libresonic". * * @return The brand name. */ @@ -1051,7 +1066,7 @@ public class SettingsService { if (cachedMusicFolders == null) { cachedMusicFolders = musicFolderDao.getAllMusicFolders(); } - + List result = new ArrayList(cachedMusicFolders.size()); for (MusicFolder folder : cachedMusicFolders) { if ((includeDisabled || folder.isEnabled()) && (includeNonExisting || FileUtil.exists(folder.getPath()))) { @@ -1255,6 +1270,7 @@ public class SettingsService { settings.setQueueFollowingSongs(true); settings.setDefaultAlbumList(AlbumListType.RANDOM); settings.setLastFmEnabled(false); + settings.setListReloadDelay(60); settings.setLastFmUsername(null); settings.setLastFmPassword(null); settings.setChanged(new Date()); @@ -1445,4 +1461,62 @@ public class SettingsService { public void setVersionService(VersionService versionService) { this.versionService = versionService; } + + public String getSmtpServer() { + return properties.getProperty(KEY_SMTP_SERVER, DEFAULT_SMTP_SERVER); + } + + public void setSmtpServer(String smtpServer) { + setString(KEY_SMTP_SERVER, smtpServer); + } + + public String getSmtpPort() { + return getString(KEY_SMTP_PORT, DEFAULT_SMTP_PORT); + } + + public void setSmtpPort(String smtpPort) { + setString(KEY_SMTP_PORT, smtpPort); + } + + public String getSmtpEncryption() { + return properties.getProperty(KEY_SMTP_ENCRYPTION, DEFAULT_SMTP_ENCRYPTION); + } + + public void setSmtpEncryption(String encryptionMethod) { + setString(KEY_SMTP_ENCRYPTION, encryptionMethod); + } + + public String getSmtpUser() { + return properties.getProperty(KEY_SMTP_USER, DEFAULT_SMTP_USER); + } + + public void setSmtpUser(String smtpUser) { + setString(KEY_SMTP_USER, smtpUser); + } + + public String getSmtpPassword() { + String s = properties.getProperty(KEY_SMTP_PASSWORD, DEFAULT_SMTP_PASSWORD); + try { + return StringUtil.utf8HexDecode(s); + } catch (Exception x) { + LOG.warn("Failed to decode Smtp password.", x); + return s; + } + } + public void setSmtpPassword(String smtpPassword) { + try { + smtpPassword = StringUtil.utf8HexEncode(smtpPassword); + } catch (Exception x) { + LOG.warn("Failed to encode Smtp password.", x); + } + properties.setProperty(KEY_SMTP_PASSWORD, smtpPassword); + } + + public String getSmtpFrom() { + return properties.getProperty(KEY_SMTP_FROM, DEFAULT_SMTP_FROM); + } + + public void setSmtpFrom(String smtpFrom) { + setString(KEY_SMTP_FROM, smtpFrom); + } } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/ShareService.java b/libresonic-main/src/main/java/org/libresonic/player/service/ShareService.java similarity index 85% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/ShareService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/ShareService.java index f35b03d2..6ca0f66c 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/ShareService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/ShareService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.util.ArrayList; import java.util.Calendar; @@ -28,12 +29,12 @@ import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.RandomStringUtils; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.dao.ShareDao; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Share; -import net.sourceforge.subsonic.domain.User; +import org.libresonic.player.Logger; +import org.libresonic.player.dao.ShareDao; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Share; +import org.libresonic.player.domain.User; /** * Provides services for sharing media. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SonosService.java b/libresonic-main/src/main/java/org/libresonic/player/service/SonosService.java similarity index 96% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/SonosService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/SonosService.java index d82c8eea..86c0815d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/SonosService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/SonosService.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.IOException; import java.util.ArrayList; @@ -87,14 +87,14 @@ import com.sonos.services._1.SearchResponse; import com.sonos.services._1.SegmentMetadataList; import com.sonos.services._1_1.SonosSoap; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.AlbumListType; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.service.sonos.SonosHelper; -import net.sourceforge.subsonic.service.sonos.SonosServiceRegistration; -import net.sourceforge.subsonic.service.sonos.SonosSoapFault; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.AlbumListType; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.User; +import org.libresonic.player.service.sonos.SonosHelper; +import org.libresonic.player.service.sonos.SonosServiceRegistration; +import org.libresonic.player.service.sonos.SonosSoapFault; /** * For manual testing of this service: @@ -182,11 +182,11 @@ public class SonosService implements SonosSoap { String sonosServiceName = settingsService.getSonosServiceName(); int sonosServiceId = settingsService.getSonosServiceId(); - String subsonicBaseUrl = sonosHelper.getBaseUrl(getRequest()); + String libresonicBaseUrl = sonosHelper.getBaseUrl(getRequest()); for (String sonosController : sonosControllers) { try { - new SonosServiceRegistration().setEnabled(subsonicBaseUrl, sonosController, enabled, + new SonosServiceRegistration().setEnabled(libresonicBaseUrl, sonosController, enabled, sonosServiceName, sonosServiceId); break; } catch (IOException x) { diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/StatusService.java b/libresonic-main/src/main/java/org/libresonic/player/service/StatusService.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/StatusService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/StatusService.java index 3d5e7544..7a9d84d3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/StatusService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/StatusService.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.PlayStatus; -import net.sourceforge.subsonic.domain.TransferStatus; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.PlayStatus; +import org.libresonic.player.domain.TransferStatus; import java.io.File; import java.util.ArrayList; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/TranscodingService.java b/libresonic-main/src/main/java/org/libresonic/player/service/TranscodingService.java similarity index 94% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/TranscodingService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/TranscodingService.java index f9e08b3b..36871490 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/TranscodingService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/TranscodingService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.io.FileInputStream; @@ -31,18 +32,18 @@ import org.apache.commons.io.FilenameUtils; import org.apache.commons.io.filefilter.PrefixFileFilter; import org.apache.commons.lang.StringUtils; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.controller.VideoPlayerController; -import net.sourceforge.subsonic.dao.TranscodingDao; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.TranscodeScheme; -import net.sourceforge.subsonic.domain.Transcoding; -import net.sourceforge.subsonic.domain.UserSettings; -import net.sourceforge.subsonic.domain.VideoTranscodingSettings; -import net.sourceforge.subsonic.io.TranscodeInputStream; -import net.sourceforge.subsonic.util.StringUtil; -import net.sourceforge.subsonic.util.Util; +import org.libresonic.player.Logger; +import org.libresonic.player.controller.VideoPlayerController; +import org.libresonic.player.dao.TranscodingDao; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.TranscodeScheme; +import org.libresonic.player.domain.Transcoding; +import org.libresonic.player.domain.UserSettings; +import org.libresonic.player.domain.VideoTranscodingSettings; +import org.libresonic.player.io.TranscodeInputStream; +import org.libresonic.player.util.StringUtil; +import org.libresonic.player.util.Util; /** * Provides services for transcoding media. Transcoding is the process of @@ -365,7 +366,7 @@ public class TranscodingService { // Create temporary file, and feed this to the transcoder. String path = mediaFile.getFile().getAbsolutePath(); if (Util.isWindows() && !mediaFile.isVideo() && !StringUtils.isAsciiPrintable(path)) { - tmpFile = File.createTempFile("subsonic", "." + FilenameUtils.getExtension(path)); + tmpFile = File.createTempFile("libresonic", "." + FilenameUtils.getExtension(path)); tmpFile.deleteOnExit(); FileUtils.copyFile(new File(path), tmpFile); LOG.debug("Created tmp file: " + tmpFile); @@ -470,7 +471,7 @@ public class TranscodingService { * Returns the directory in which all transcoders are installed. */ public File getTranscodeDirectory() { - File dir = new File(SettingsService.getSubsonicHome(), "transcode"); + File dir = new File(SettingsService.getLibresonicHome(), "transcode"); if (!dir.exists()) { boolean ok = dir.mkdir(); if (ok) { diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/UPnPService.java b/libresonic-main/src/main/java/org/libresonic/player/service/UPnPService.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/UPnPService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/UPnPService.java index e54d081d..a4d37aee 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/UPnPService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/UPnPService.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.net.URL; import java.util.ArrayList; @@ -44,11 +45,11 @@ import org.fourthline.cling.support.model.ProtocolInfos; import org.fourthline.cling.support.model.dlna.DLNAProfiles; import org.fourthline.cling.support.model.dlna.DLNAProtocolInfo; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.Version; -import net.sourceforge.subsonic.service.upnp.ApacheUpnpServiceConfiguration; -import net.sourceforge.subsonic.service.upnp.FolderBasedContentDirectory; -import net.sourceforge.subsonic.service.upnp.MSMediaReceiverRegistrarService; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.Version; +import org.libresonic.player.service.upnp.ApacheUpnpServiceConfiguration; +import org.libresonic.player.service.upnp.FolderBasedContentDirectory; +import org.libresonic.player.service.upnp.MSMediaReceiverRegistrarService; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/VersionService.java b/libresonic-main/src/main/java/org/libresonic/player/service/VersionService.java similarity index 73% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/VersionService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/VersionService.java index 8d2b2d54..25938cdf 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/VersionService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/VersionService.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.Version; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.Version; import org.apache.commons.io.IOUtils; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; @@ -41,7 +42,7 @@ import java.util.regex.Pattern; /** * Provides version-related services, including functionality for determining whether a newer - * version of Subsonic is available. + * version of Libresonic is available. * * @author Sindre Mehus */ @@ -76,26 +77,26 @@ public class VersionService { } /** - * Returns the version number for the locally installed Subsonic version. + * Returns the version number for the locally installed Libresonic version. * - * @return The version number for the locally installed Subsonic version. + * @return The version number for the locally installed Libresonic version. */ public synchronized Version getLocalVersion() { if (localVersion == null) { try { localVersion = new Version(readLineFromResource("/version.txt")); - LOG.info("Resolved local Subsonic version to: " + localVersion); + LOG.info("Resolved local Libresonic version to: " + localVersion); } catch (Exception x) { - LOG.warn("Failed to resolve local Subsonic version.", x); + LOG.warn("Failed to resolve local Libresonic version.", x); } } return localVersion; } /** - * Returns the version number for the latest available Subsonic final version. + * Returns the version number for the latest available Libresonic final version. * - * @return The version number for the latest available Subsonic final version, or null + * @return The version number for the latest available Libresonic final version, or null * if the version number can't be resolved. */ public synchronized Version getLatestFinalVersion() { @@ -104,9 +105,9 @@ public class VersionService { } /** - * Returns the version number for the latest available Subsonic beta version. + * Returns the version number for the latest available Libresonic beta version. * - * @return The version number for the latest available Subsonic beta version, or null + * @return The version number for the latest available Libresonic beta version, or null * if the version number can't be resolved. */ public synchronized Version getLatestBetaVersion() { @@ -115,9 +116,9 @@ public class VersionService { } /** - * Returns the build date for the locally installed Subsonic version. + * Returns the build date for the locally installed Libresonic version. * - * @return The build date for the locally installed Subsonic version, or null + * @return The build date for the locally installed Libresonic version, or null * if the build date can't be resolved. */ public synchronized Date getLocalBuildDate() { @@ -126,16 +127,16 @@ public class VersionService { String date = readLineFromResource("/build_date.txt"); localBuildDate = DATE_FORMAT.parse(date); } catch (Exception x) { - LOG.warn("Failed to resolve local Subsonic build date.", x); + LOG.warn("Failed to resolve local Libresonic build date.", x); } } return localBuildDate; } /** - * Returns the build number for the locally installed Subsonic version. + * Returns the build number for the locally installed Libresonic version. * - * @return The build number for the locally installed Subsonic version, or null + * @return The build number for the locally installed Libresonic version, or null * if the build number can't be resolved. */ public synchronized String getLocalBuildNumber() { @@ -143,16 +144,16 @@ public class VersionService { try { localBuildNumber = readLineFromResource("/build_number.txt"); } catch (Exception x) { - LOG.warn("Failed to resolve local Subsonic build number.", x); + LOG.warn("Failed to resolve local Libresonic build number.", x); } } return localBuildNumber; } /** - * Returns whether a new final version of Subsonic is available. + * Returns whether a new final version of Libresonic is available. * - * @return Whether a new final version of Subsonic is available. + * @return Whether a new final version of Libresonic is available. */ public boolean isNewFinalVersionAvailable() { Version latest = getLatestFinalVersion(); @@ -166,9 +167,9 @@ public class VersionService { } /** - * Returns whether a new beta version of Subsonic is available. + * Returns whether a new beta version of Libresonic is available. * - * @return Whether a new beta version of Subsonic is available. + * @return Whether a new beta version of Libresonic is available. */ public boolean isNewBetaVersionAvailable() { Version latest = getLatestBetaVersion(); @@ -218,13 +219,13 @@ public class VersionService { lastVersionFetched = now; readLatestVersion(); } catch (Exception x) { - LOG.warn("Failed to resolve latest Subsonic version.", x); + LOG.warn("Failed to resolve latest Libresonic version.", x); } } } /** - * Resolves the latest available Subsonic version by screen-scraping a web page. + * Resolves the latest available Libresonic version by screen-scraping a web page. * * @throws IOException If an I/O error occurs. */ @@ -245,8 +246,8 @@ public class VersionService { } BufferedReader reader = new BufferedReader(new StringReader(content)); - Pattern finalPattern = Pattern.compile("SUBSONIC_FULL_VERSION_BEGIN(.*)SUBSONIC_FULL_VERSION_END"); - Pattern betaPattern = Pattern.compile("SUBSONIC_BETA_VERSION_BEGIN(.*)SUBSONIC_BETA_VERSION_END"); + Pattern finalPattern = Pattern.compile("LIBRESONIC_FULL_VERSION_BEGIN(.*)LIBRESONIC_FULL_VERSION_END"); + Pattern betaPattern = Pattern.compile("LIBRESONIC_BETA_VERSION_BEGIN(.*)LIBRESONIC_BETA_VERSION_END"); try { String line = reader.readLine(); @@ -254,12 +255,12 @@ public class VersionService { Matcher finalMatcher = finalPattern.matcher(line); if (finalMatcher.find()) { latestFinalVersion = new Version(finalMatcher.group(1)); - LOG.info("Resolved latest Subsonic final version to: " + latestFinalVersion); + LOG.info("Resolved latest Libresonic final version to: " + latestFinalVersion); } Matcher betaMatcher = betaPattern.matcher(line); if (betaMatcher.find()) { latestBetaVersion = new Version(betaMatcher.group(1)); - LOG.info("Resolved latest Subsonic beta version to: " + latestBetaVersion); + LOG.info("Resolved latest Libresonic beta version to: " + latestBetaVersion); } line = reader.readLine(); } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/jukebox/AudioPlayer.java b/libresonic-main/src/main/java/org/libresonic/player/service/jukebox/AudioPlayer.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/jukebox/AudioPlayer.java rename to libresonic-main/src/main/java/org/libresonic/player/service/jukebox/AudioPlayer.java index 5a92916a..bacca409 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/jukebox/AudioPlayer.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/jukebox/AudioPlayer.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.jukebox; +package org.libresonic.player.service.jukebox; import java.io.IOException; import java.io.InputStream; @@ -29,10 +30,10 @@ import javax.sound.sampled.SourceDataLine; import org.apache.commons.io.IOUtils; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.service.JukeboxService; +import org.libresonic.player.Logger; +import org.libresonic.player.service.JukeboxService; -import static net.sourceforge.subsonic.service.jukebox.AudioPlayer.State.*; +import static org.libresonic.player.service.jukebox.AudioPlayer.State.*; /** * A simple wrapper for playing sound from an input stream. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/jukebox/PlayerTest.java b/libresonic-main/src/main/java/org/libresonic/player/service/jukebox/PlayerTest.java similarity index 97% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/jukebox/PlayerTest.java rename to libresonic-main/src/main/java/org/libresonic/player/service/jukebox/PlayerTest.java index 12cb79c7..5eb41610 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/jukebox/PlayerTest.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/jukebox/PlayerTest.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic.service.jukebox; +package org.libresonic.player.service.jukebox; import javax.swing.*; import javax.swing.event.ChangeEvent; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/DefaultMetaDataParser.java b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/DefaultMetaDataParser.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/DefaultMetaDataParser.java rename to libresonic-main/src/main/java/org/libresonic/player/service/metadata/DefaultMetaDataParser.java index 69bcc743..7723f31f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/DefaultMetaDataParser.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/DefaultMetaDataParser.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.metadata; +package org.libresonic.player.service.metadata; -import net.sourceforge.subsonic.domain.MediaFile; +import org.libresonic.player.domain.MediaFile; import java.io.File; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/FFmpegParser.java b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/FFmpegParser.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/FFmpegParser.java rename to libresonic-main/src/main/java/org/libresonic/player/service/metadata/FFmpegParser.java index 60ae1750..628884ba 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/FFmpegParser.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/FFmpegParser.java @@ -1,29 +1,30 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.metadata; - -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.io.InputStreamReaderThread; -import net.sourceforge.subsonic.service.ServiceLocator; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.util.StringUtil; +package org.libresonic.player.service.metadata; + +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.io.InputStreamReaderThread; +import org.libresonic.player.service.ServiceLocator; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.util.StringUtil; import org.apache.commons.io.FilenameUtils; import java.io.File; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/JaudiotaggerParser.java b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/JaudiotaggerParser.java similarity index 95% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/JaudiotaggerParser.java rename to libresonic-main/src/main/java/org/libresonic/player/service/metadata/JaudiotaggerParser.java index ee2f4263..3eb00e81 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/JaudiotaggerParser.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/JaudiotaggerParser.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.metadata; +package org.libresonic.player.service.metadata; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.MediaFile; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.MediaFile; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.StringUtils; import org.jaudiotagger.audio.AudioFile; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaData.java b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaData.java similarity index 88% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaData.java rename to libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaData.java index b42f2dc7..bb5b3f97 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaData.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaData.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.metadata; +package org.libresonic.player.service.metadata; /** * Contains meta-data (song title, artist, album etc) for a music file. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaDataParser.java b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaDataParser.java similarity index 89% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaDataParser.java rename to libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaDataParser.java index 1d6bd6ac..6f724e1f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaDataParser.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaDataParser.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.metadata; +package org.libresonic.player.service.metadata; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.service.ServiceLocator; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.service.ServiceLocator; +import org.libresonic.player.service.SettingsService; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.StringUtils; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaDataParserFactory.java b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaDataParserFactory.java similarity index 75% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaDataParserFactory.java rename to libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaDataParserFactory.java index 31b56be4..dcc892f5 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/metadata/MetaDataParserFactory.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/metadata/MetaDataParserFactory.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.metadata; +package org.libresonic.player.service.metadata; import java.io.File; import java.util.List; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/AlbumList.java b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/AlbumList.java similarity index 72% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/AlbumList.java rename to libresonic-main/src/main/java/org/libresonic/player/service/sonos/AlbumList.java index 40053b0a..ea2102d9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/AlbumList.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/AlbumList.java @@ -1,27 +1,27 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.sonos; +package org.libresonic.player.service.sonos; import java.util.List; -import net.sourceforge.subsonic.domain.MediaFile; +import org.libresonic.player.domain.MediaFile; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosFaultInterceptor.java b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosFaultInterceptor.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosFaultInterceptor.java rename to libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosFaultInterceptor.java index 4ac15df6..4f7c4e99 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosFaultInterceptor.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosFaultInterceptor.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.sonos; +package org.libresonic.player.service.sonos; import javax.xml.namespace.QName; @@ -29,7 +29,7 @@ import org.apache.cxf.phase.Phase; import org.w3c.dom.Document; import org.w3c.dom.Element; -import net.sourceforge.subsonic.Logger; +import org.libresonic.player.Logger; /** * Intercepts all SonosSoapFault exceptions and builds a SOAP Fault. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosHelper.java b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosHelper.java similarity index 93% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosHelper.java rename to libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosHelper.java index 20197e12..ab26678f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosHelper.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosHelper.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.sonos; +package org.libresonic.player.service.sonos; import java.util.ArrayList; import java.util.Arrays; @@ -41,36 +41,36 @@ import com.sonos.services._1.MediaList; import com.sonos.services._1.MediaMetadata; import com.sonos.services._1.TrackMetadata; -import net.sourceforge.subsonic.controller.CoverArtController; -import net.sourceforge.subsonic.dao.MediaFileDao; -import net.sourceforge.subsonic.domain.AlbumListType; -import net.sourceforge.subsonic.domain.CoverArtScheme; -import net.sourceforge.subsonic.domain.Genre; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.MusicFolderContent; -import net.sourceforge.subsonic.domain.MusicIndex; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.PlayerTechnology; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.domain.PodcastChannel; -import net.sourceforge.subsonic.domain.PodcastEpisode; -import net.sourceforge.subsonic.domain.PodcastStatus; -import net.sourceforge.subsonic.domain.SearchCriteria; -import net.sourceforge.subsonic.domain.SearchResult; -import net.sourceforge.subsonic.service.LastFmService; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.MusicIndexService; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.service.PodcastService; -import net.sourceforge.subsonic.service.RatingService; -import net.sourceforge.subsonic.service.SearchService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.SonosService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.util.StringUtil; -import net.sourceforge.subsonic.util.Util; +import org.libresonic.player.controller.CoverArtController; +import org.libresonic.player.dao.MediaFileDao; +import org.libresonic.player.domain.AlbumListType; +import org.libresonic.player.domain.CoverArtScheme; +import org.libresonic.player.domain.Genre; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.MusicFolderContent; +import org.libresonic.player.domain.MusicIndex; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.PlayerTechnology; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.domain.PodcastChannel; +import org.libresonic.player.domain.PodcastEpisode; +import org.libresonic.player.domain.PodcastStatus; +import org.libresonic.player.domain.SearchCriteria; +import org.libresonic.player.domain.SearchResult; +import org.libresonic.player.service.LastFmService; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.MusicIndexService; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.service.PodcastService; +import org.libresonic.player.service.RatingService; +import org.libresonic.player.service.SearchService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.SonosService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.util.StringUtil; +import org.libresonic.player.util.Util; /** * @author Sindre Mehus @@ -78,7 +78,7 @@ import net.sourceforge.subsonic.util.Util; */ public class SonosHelper { - public static final String SUBSONIC_CLIENT_ID = "sonos"; + public static final String LIBRESONIC_CLIENT_ID = "sonos"; private MediaFileService mediaFileService; private PlaylistService playlistService; @@ -674,17 +674,17 @@ public class SonosHelper { } private Player createPlayerIfNecessary(String username) { - List players = playerService.getPlayersForUserAndClientId(username, SUBSONIC_CLIENT_ID); + List players = playerService.getPlayersForUserAndClientId(username, LIBRESONIC_CLIENT_ID); // If not found, create it. if (players.isEmpty()) { Player player = new Player(); player.setUsername(username); - player.setClientId(SUBSONIC_CLIENT_ID); + player.setClientId(LIBRESONIC_CLIENT_ID); player.setName("Sonos"); player.setTechnology(PlayerTechnology.EXTERNAL_WITH_PLAYLIST); playerService.createPlayer(player); - players = playerService.getPlayersForUserAndClientId(username, SUBSONIC_CLIENT_ID); + players = playerService.getPlayersForUserAndClientId(username, LIBRESONIC_CLIENT_ID); } return players.get(0); @@ -694,14 +694,14 @@ public class SonosHelper { int port = settingsService.getPort(); String contextPath = settingsService.getUrlRedirectContextPath(); - // Note that the server IP can be overridden by the "ip" parameter. Used when Subsonic and Sonos are + // Note that the server IP can be overridden by the "ip" parameter. Used when Libresonic and Sonos are // on different networks. String ip = settingsService.getLocalIpAddress(); if (request != null) { ip = ServletRequestUtils.getStringParameter(request, "ip", ip); } - // Note: Serving media and cover art with http (as opposed to https) works when using jetty and SubsonicDeployer. + // Note: Serving media and cover art with http (as opposed to https) works when using jetty and LibresonicDeployer. StringBuilder url = new StringBuilder("http://") .append(ip) .append(":") diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosServiceRegistration.java b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosServiceRegistration.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosServiceRegistration.java rename to libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosServiceRegistration.java index abe5bf0f..593652a3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosServiceRegistration.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosServiceRegistration.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.sonos; +package org.libresonic.player.service.sonos; import java.io.IOException; import java.util.ArrayList; @@ -34,9 +34,9 @@ import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.HttpConnectionParams; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.util.Pair; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.util.Pair; +import org.libresonic.player.util.StringUtil; /** * @author Sindre Mehus @@ -46,12 +46,12 @@ public class SonosServiceRegistration { private static final Logger LOG = Logger.getLogger(SonosServiceRegistration.class); - public void setEnabled(String subsonicBaseUrl, String sonosControllerIp, boolean enabled, String sonosServiceName, int sonosServiceId) throws IOException { - String localUrl = subsonicBaseUrl + "ws/Sonos"; + public void setEnabled(String libresonicBaseUrl, String sonosControllerIp, boolean enabled, String sonosServiceName, int sonosServiceId) throws IOException { + String localUrl = libresonicBaseUrl + "ws/Sonos"; String controllerUrl = String.format("http://%s:1400/customsd", sonosControllerIp); LOG.info((enabled ? "Enabling" : "Disabling") + " Sonos music service, using Sonos controller IP " + sonosControllerIp + - ", SID " + sonosServiceId + ", and Subsonic URL " + localUrl); + ", SID " + sonosServiceId + ", and Libresonic URL " + localUrl); List> params = new ArrayList>(); params.add(Pair.create("sid", String.valueOf(sonosServiceId))); @@ -68,9 +68,9 @@ public class SonosServiceRegistration { params.add(Pair.create("caps", "ucPlaylists")); params.add(Pair.create("caps", "extendedMD")); params.add(Pair.create("presentationMapVersion", "1")); - params.add(Pair.create("presentationMapUri", subsonicBaseUrl + "sonos/presentationMap.xml")); + params.add(Pair.create("presentationMapUri", libresonicBaseUrl + "sonos/presentationMap.xml")); params.add(Pair.create("stringsVersion", "5")); - params.add(Pair.create("stringsUri", subsonicBaseUrl + "sonos/strings.xml")); + params.add(Pair.create("stringsUri", libresonicBaseUrl + "sonos/strings.xml")); } String result = execute(controllerUrl, params); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosSoapFault.java b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosSoapFault.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosSoapFault.java rename to libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosSoapFault.java index a824cf21..8bb92c53 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/sonos/SonosSoapFault.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/sonos/SonosSoapFault.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.sonos; +package org.libresonic.player.service.sonos; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/ApacheUpnpServiceConfiguration.java b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/ApacheUpnpServiceConfiguration.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/ApacheUpnpServiceConfiguration.java rename to libresonic-main/src/main/java/org/libresonic/player/service/upnp/ApacheUpnpServiceConfiguration.java index eeadce90..464ce2af 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/ApacheUpnpServiceConfiguration.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/ApacheUpnpServiceConfiguration.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2013 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2013 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.upnp; +package org.libresonic.player.service.upnp; import java.util.concurrent.Executors; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/ClingRouter.java b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/ClingRouter.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/ClingRouter.java rename to libresonic-main/src/main/java/org/libresonic/player/service/upnp/ClingRouter.java index fd8c8c29..b8c59644 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/ClingRouter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/ClingRouter.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.upnp; +package org.libresonic.player.service.upnp; import java.net.InetAddress; import java.net.UnknownHostException; @@ -34,7 +35,7 @@ import org.fourthline.cling.support.igd.callback.PortMappingAdd; import org.fourthline.cling.support.igd.callback.PortMappingDelete; import org.fourthline.cling.support.model.PortMapping; -import net.sourceforge.subsonic.service.UPnPService; +import org.libresonic.player.service.UPnPService; /** * @author Sindre Mehus @@ -138,6 +139,6 @@ public class ClingRouter implements Router { private PortMapping createPortMapping(int port) throws UnknownHostException { String localIp = InetAddress.getLocalHost().getHostAddress(); - return new PortMapping(port, localIp, PortMapping.Protocol.TCP, "Subsonic"); + return new PortMapping(port, localIp, PortMapping.Protocol.TCP, "Libresonic"); } } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/FolderBasedContentDirectory.java b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/FolderBasedContentDirectory.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/FolderBasedContentDirectory.java rename to libresonic-main/src/main/java/org/libresonic/player/service/upnp/FolderBasedContentDirectory.java index 9702e999..7323039d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/FolderBasedContentDirectory.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/FolderBasedContentDirectory.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.upnp; +package org.libresonic.player.service.upnp; import java.net.URI; import java.net.URISyntaxException; @@ -39,21 +40,21 @@ import org.fourthline.cling.support.model.container.StorageFolder; import org.fourthline.cling.support.model.item.Item; import org.fourthline.cling.support.model.item.MusicTrack; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.domain.CoverArtScheme; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.MediaLibraryStatistics; -import net.sourceforge.subsonic.domain.MusicFolder; -import net.sourceforge.subsonic.domain.Playlist; -import net.sourceforge.subsonic.service.MediaFileService; -import net.sourceforge.subsonic.service.PlaylistService; -import net.sourceforge.subsonic.util.Util; +import org.libresonic.player.Logger; +import org.libresonic.player.domain.CoverArtScheme; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.MediaLibraryStatistics; +import org.libresonic.player.domain.MusicFolder; +import org.libresonic.player.domain.Playlist; +import org.libresonic.player.service.MediaFileService; +import org.libresonic.player.service.PlaylistService; +import org.libresonic.player.util.Util; /** * @author Sindre Mehus * @version $Id$ */ -public class FolderBasedContentDirectory extends SubsonicContentDirectory { +public class FolderBasedContentDirectory extends LibresonicContentDirectory { private static final Logger LOG = Logger.getLogger(FolderBasedContentDirectory.class); private static final String CONTAINER_ID_PLAYLIST_ROOT = "playlists"; @@ -109,7 +110,7 @@ public class FolderBasedContentDirectory extends SubsonicContentDirectory { MediaLibraryStatistics statistics = settingsService.getMediaLibraryStatistics(); root.setStorageUsed(statistics == null ? 0 : statistics.getTotalLengthInBytes()); - root.setTitle("Subsonic Media"); + root.setTitle("Libresonic Media"); root.setRestricted(true); root.setSearchable(false); root.setWriteStatus(WriteStatus.NOT_WRITABLE); diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/SubsonicContentDirectory.java b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/LibresonicContentDirectory.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/SubsonicContentDirectory.java rename to libresonic-main/src/main/java/org/libresonic/player/service/upnp/LibresonicContentDirectory.java index aff3c81d..61a06245 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/SubsonicContentDirectory.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/LibresonicContentDirectory.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.upnp; +package org.libresonic.player.service.upnp; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.StringUtils; @@ -29,18 +30,18 @@ import org.fourthline.cling.support.model.Res; import org.fourthline.cling.support.model.SortCriterion; import org.seamless.util.MimeType; -import net.sourceforge.subsonic.domain.MediaFile; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.service.PlayerService; -import net.sourceforge.subsonic.service.SettingsService; -import net.sourceforge.subsonic.service.TranscodingService; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.domain.MediaFile; +import org.libresonic.player.domain.Player; +import org.libresonic.player.service.PlayerService; +import org.libresonic.player.service.SettingsService; +import org.libresonic.player.service.TranscodingService; +import org.libresonic.player.util.StringUtil; /** * @author Sindre Mehus * @version $Id: TagBasedContentDirectory.java 3739 2013-12-03 11:55:01Z sindre_mehus $ */ -public abstract class SubsonicContentDirectory extends AbstractContentDirectoryService { +public abstract class LibresonicContentDirectory extends AbstractContentDirectoryService { protected static final String CONTAINER_ID_ROOT = "0"; @@ -95,7 +96,7 @@ public abstract class SubsonicContentDirectory extends AbstractContentDirectoryS int port = settingsService.getPort(); String contextPath = settingsService.getUrlRedirectContextPath(); - // Note: Serving media and cover art with http (as opposed to https) works when using jetty and SubsonicDeployer. + // Note: Serving media and cover art with http (as opposed to https) works when using jetty and LibresonicDeployer. StringBuilder url = new StringBuilder("http://") .append(settingsService.getLocalIpAddress()) .append(":") diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/MSMediaReceiverRegistrarService.java b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/MSMediaReceiverRegistrarService.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/MSMediaReceiverRegistrarService.java rename to libresonic-main/src/main/java/org/libresonic/player/service/upnp/MSMediaReceiverRegistrarService.java index 362e4ed9..2231232d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/MSMediaReceiverRegistrarService.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/MSMediaReceiverRegistrarService.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic.service.upnp; +package org.libresonic.player.service.upnp; import org.fourthline.cling.support.xmicrosoft.AbstractMediaReceiverRegistrarService; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/NATPMPRouter.java b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/NATPMPRouter.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/NATPMPRouter.java rename to libresonic-main/src/main/java/org/libresonic/player/service/upnp/NATPMPRouter.java index 3099a0a9..e9106714 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/NATPMPRouter.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/NATPMPRouter.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.upnp; +package org.libresonic.player.service.upnp; import com.hoodcomputing.natpmp.MapRequestMessage; import com.hoodcomputing.natpmp.NatPmpDevice; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/Router.java b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/Router.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/Router.java rename to libresonic-main/src/main/java/org/libresonic/player/service/upnp/Router.java index 13d8c64c..631c604e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/service/upnp/Router.java +++ b/libresonic-main/src/main/java/org/libresonic/player/service/upnp/Router.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.upnp; +package org.libresonic.player.service.upnp; /** * @author Sindre Mehus diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/EscapeJavaScriptTag.java b/libresonic-main/src/main/java/org/libresonic/player/taglib/EscapeJavaScriptTag.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/EscapeJavaScriptTag.java rename to libresonic-main/src/main/java/org/libresonic/player/taglib/EscapeJavaScriptTag.java index c7c09677..736e918d 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/EscapeJavaScriptTag.java +++ b/libresonic-main/src/main/java/org/libresonic/player/taglib/EscapeJavaScriptTag.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.taglib; +package org.libresonic.player.taglib; import org.apache.commons.lang.StringEscapeUtils; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/FormatBytesTag.java b/libresonic-main/src/main/java/org/libresonic/player/taglib/FormatBytesTag.java similarity index 81% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/FormatBytesTag.java rename to libresonic-main/src/main/java/org/libresonic/player/taglib/FormatBytesTag.java index 0279316b..81c53903 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/FormatBytesTag.java +++ b/libresonic-main/src/main/java/org/libresonic/player/taglib/FormatBytesTag.java @@ -1,24 +1,25 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.taglib; +package org.libresonic.player.taglib; -import net.sourceforge.subsonic.util.*; +import org.libresonic.player.util.*; import org.springframework.web.servlet.support.*; import javax.servlet.http.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/ParamTag.java b/libresonic-main/src/main/java/org/libresonic/player/taglib/ParamTag.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/ParamTag.java rename to libresonic-main/src/main/java/org/libresonic/player/taglib/ParamTag.java index 1043902e..42975ce9 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/ParamTag.java +++ b/libresonic-main/src/main/java/org/libresonic/player/taglib/ParamTag.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.taglib; +package org.libresonic.player.taglib; import javax.servlet.jsp.tagext.*; import javax.servlet.jsp.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/UrlTag.java b/libresonic-main/src/main/java/org/libresonic/player/taglib/UrlTag.java similarity index 91% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/UrlTag.java rename to libresonic-main/src/main/java/org/libresonic/player/taglib/UrlTag.java index 141ba847..4ef8d9d5 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/UrlTag.java +++ b/libresonic-main/src/main/java/org/libresonic/player/taglib/UrlTag.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.taglib; +package org.libresonic.player.taglib; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.filter.ParameterDecodingFilter; -import net.sourceforge.subsonic.util.StringUtil; +import org.libresonic.player.Logger; +import org.libresonic.player.filter.ParameterDecodingFilter; +import org.libresonic.player.util.StringUtil; import org.apache.taglibs.standard.tag.common.core.UrlSupport; import org.apache.commons.lang.CharUtils; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/WikiTag.java b/libresonic-main/src/main/java/org/libresonic/player/taglib/WikiTag.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/WikiTag.java rename to libresonic-main/src/main/java/org/libresonic/player/taglib/WikiTag.java index e099bd1e..3e7a6065 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/taglib/WikiTag.java +++ b/libresonic-main/src/main/java/org/libresonic/player/taglib/WikiTag.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.taglib; +package org.libresonic.player.taglib; import org.radeox.api.engine.*; import org.radeox.api.engine.context.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/theme/SubsonicThemeResolver.java b/libresonic-main/src/main/java/org/libresonic/player/theme/LibresonicThemeResolver.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/theme/SubsonicThemeResolver.java rename to libresonic-main/src/main/java/org/libresonic/player/theme/LibresonicThemeResolver.java index 874c2e9c..437948a4 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/theme/SubsonicThemeResolver.java +++ b/libresonic-main/src/main/java/org/libresonic/player/theme/LibresonicThemeResolver.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.theme; +package org.libresonic.player.theme; -import net.sourceforge.subsonic.service.*; -import net.sourceforge.subsonic.domain.*; +import org.libresonic.player.service.*; +import org.libresonic.player.domain.*; import org.springframework.web.servlet.*; import javax.servlet.http.*; @@ -30,7 +31,7 @@ import java.util.*; * * @author Sindre Mehus */ -public class SubsonicThemeResolver implements ThemeResolver { +public class LibresonicThemeResolver implements ThemeResolver { private SecurityService securityService; private SettingsService settingsService; @@ -43,14 +44,14 @@ public class SubsonicThemeResolver implements ThemeResolver { * @return The current theme name */ public String resolveThemeName(HttpServletRequest request) { - String themeId = (String) request.getAttribute("subsonic.theme"); + String themeId = (String) request.getAttribute("libresonic.theme"); if (themeId != null) { return themeId; } // Optimization: Cache theme in the request. themeId = doResolveThemeName(request); - request.setAttribute("subsonic.theme", themeId); + request.setAttribute("libresonic.theme", themeId); return themeId; } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/theme/SubsonicThemeSource.java b/libresonic-main/src/main/java/org/libresonic/player/theme/LibresonicThemeSource.java similarity index 77% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/theme/SubsonicThemeSource.java rename to libresonic-main/src/main/java/org/libresonic/player/theme/LibresonicThemeSource.java index 5bcca8b9..2ac4c5e3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/theme/SubsonicThemeSource.java +++ b/libresonic-main/src/main/java/org/libresonic/player/theme/LibresonicThemeSource.java @@ -1,29 +1,30 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.theme; +package org.libresonic.player.theme; import org.springframework.ui.context.support.ResourceBundleThemeSource; import org.springframework.context.MessageSource; import org.springframework.context.support.ResourceBundleMessageSource; -import net.sourceforge.subsonic.domain.Theme; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.domain.Theme; +import org.libresonic.player.service.SettingsService; /** * Theme source implementation which uses two resource bundles: the @@ -31,7 +32,7 @@ import net.sourceforge.subsonic.service.SettingsService; * * @author Sindre Mehus */ -public class SubsonicThemeSource extends ResourceBundleThemeSource { +public class LibresonicThemeSource extends ResourceBundleThemeSource { private SettingsService settingsService; private String basenamePrefix; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredDiskFileItem.java b/libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredDiskFileItem.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredDiskFileItem.java rename to libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredDiskFileItem.java index f9b89bb7..dbdaee36 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredDiskFileItem.java +++ b/libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredDiskFileItem.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.upload; +package org.libresonic.player.upload; import org.apache.commons.fileupload.disk.DiskFileItem; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredDiskFileItemFactory.java b/libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredDiskFileItemFactory.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredDiskFileItemFactory.java rename to libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredDiskFileItemFactory.java index b5d6125d..94404dd3 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredDiskFileItemFactory.java +++ b/libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredDiskFileItemFactory.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.upload; +package org.libresonic.player.upload; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredOutputStream.java b/libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredOutputStream.java similarity index 80% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredOutputStream.java rename to libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredOutputStream.java index c7f0d525..d7d1b210 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/upload/MonitoredOutputStream.java +++ b/libresonic-main/src/main/java/org/libresonic/player/upload/MonitoredOutputStream.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.upload; +package org.libresonic.player.upload; import java.io.OutputStream; import java.io.IOException; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/upload/UploadListener.java b/libresonic-main/src/main/java/org/libresonic/player/upload/UploadListener.java similarity index 66% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/upload/UploadListener.java rename to libresonic-main/src/main/java/org/libresonic/player/upload/UploadListener.java index 7eac415a..03defff7 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/upload/UploadListener.java +++ b/libresonic-main/src/main/java/org/libresonic/player/upload/UploadListener.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.upload; +package org.libresonic.player.upload; /** * Extension of Commons FileUpload for monitoring the upload progress. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/BoundedList.java b/libresonic-main/src/main/java/org/libresonic/player/util/BoundedList.java similarity index 82% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/util/BoundedList.java rename to libresonic-main/src/main/java/org/libresonic/player/util/BoundedList.java index fb240d5f..68f9f6a2 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/BoundedList.java +++ b/libresonic-main/src/main/java/org/libresonic/player/util/BoundedList.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import java.util.*; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java b/libresonic-main/src/main/java/org/libresonic/player/util/FileUtil.java similarity index 92% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java rename to libresonic-main/src/main/java/org/libresonic/player/util/FileUtil.java index d7230cf2..43a3a150 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java +++ b/libresonic-main/src/main/java/org/libresonic/player/util/FileUtil.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import java.io.Closeable; import java.io.File; @@ -24,7 +25,7 @@ import java.io.FilenameFilter; import java.io.IOException; import java.util.Arrays; -import net.sourceforge.subsonic.Logger; +import org.libresonic.player.Logger; /** * Miscellaneous file utility methods. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/HttpRange.java b/libresonic-main/src/main/java/org/libresonic/player/util/HttpRange.java similarity index 90% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/util/HttpRange.java rename to libresonic-main/src/main/java/org/libresonic/player/util/HttpRange.java index 0213d769..ea7f8546 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/HttpRange.java +++ b/libresonic-main/src/main/java/org/libresonic/player/util/HttpRange.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/Pair.java b/libresonic-main/src/main/java/org/libresonic/player/util/Pair.java similarity index 79% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/util/Pair.java rename to libresonic-main/src/main/java/org/libresonic/player/util/Pair.java index 58ea61e6..b10028fb 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/Pair.java +++ b/libresonic-main/src/main/java/org/libresonic/player/util/Pair.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import java.io.Serializable; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/StringUtil.java b/libresonic-main/src/main/java/org/libresonic/player/util/StringUtil.java similarity index 96% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/util/StringUtil.java rename to libresonic-main/src/main/java/org/libresonic/player/util/StringUtil.java index f83da09a..3e3ced4f 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/StringUtil.java +++ b/libresonic-main/src/main/java/org/libresonic/player/util/StringUtil.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import java.io.BufferedReader; import java.io.File; @@ -45,7 +46,7 @@ import org.apache.commons.codec.binary.Hex; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; -import net.sourceforge.subsonic.domain.UrlRedirectType; +import org.libresonic.player.domain.UrlRedirectType; /** * Miscellaneous string utility methods. @@ -497,8 +498,8 @@ public final class StringUtil { URLBuilder urlBuilder = new URLBuilder(localUrl); if (urlRedirectionEnabled) { if (urlRedirectType == UrlRedirectType.NORMAL) { - String subsonicHost = urlRedirectFrom + ".subsonic.org"; - urlBuilder.setHost(subsonicHost); + String libresonicHost = urlRedirectFrom + ".libresonic.org"; + urlBuilder.setHost(libresonicHost); urlBuilder.setPort(80); urlBuilder.setProtocol(URLBuilder.HTTP); if (StringUtils.isNotBlank(urlRedirectContextPath)) { diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/URLBuilder.java b/libresonic-main/src/main/java/org/libresonic/player/util/URLBuilder.java similarity index 87% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/util/URLBuilder.java rename to libresonic-main/src/main/java/org/libresonic/player/util/URLBuilder.java index 09370e35..b1382222 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/URLBuilder.java +++ b/libresonic-main/src/main/java/org/libresonic/player/util/URLBuilder.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import java.net.MalformedURLException; import java.net.URL; diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/Util.java b/libresonic-main/src/main/java/org/libresonic/player/util/Util.java similarity index 84% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/util/Util.java rename to libresonic-main/src/main/java/org/libresonic/player/util/Util.java index 6b644e7e..b16b17af 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/Util.java +++ b/libresonic-main/src/main/java/org/libresonic/player/util/Util.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import java.net.Inet4Address; import java.net.InetAddress; @@ -31,8 +32,8 @@ import java.util.Random; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; -import net.sourceforge.subsonic.Logger; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.Logger; +import org.libresonic.player.service.SettingsService; /** * Miscellaneous general utility methods. @@ -52,17 +53,17 @@ public final class Util { public static String getDefaultMusicFolder() { String def = isWindows() ? "c:\\music" : "/var/music"; - return System.getProperty("subsonic.defaultMusicFolder", def); + return System.getProperty("libresonic.defaultMusicFolder", def); } public static String getDefaultPodcastFolder() { String def = isWindows() ? "c:\\music\\Podcast" : "/var/music/Podcast"; - return System.getProperty("subsonic.defaultPodcastFolder", def); + return System.getProperty("libresonic.defaultPodcastFolder", def); } public static String getDefaultPlaylistFolder() { String def = isWindows() ? "c:\\playlists" : "/var/playlists"; - return System.getProperty("subsonic.defaultPlaylistFolder", def); + return System.getProperty("libresonic.defaultPlaylistFolder", def); } public static boolean isWindows() { @@ -70,7 +71,7 @@ public final class Util { } public static boolean isWindowsInstall() { - return "true".equals(System.getProperty("subsonic.windowsInstall")); + return "true".equals(System.getProperty("libresonic.windowsInstall")); } /** @@ -91,7 +92,7 @@ public final class Util { } /** - * Returns the local IP address. Honours the "subsonic.host" system property. + * Returns the local IP address. Honours the "libresonic.host" system property. *

* NOTE: For improved performance, use {@link SettingsService#getLocalIpAddress()} instead. * @@ -99,9 +100,9 @@ public final class Util { */ public static String getLocalIpAddress() { List ipAddresses = getLocalIpAddresses(); - String subsonicHost = System.getProperty("subsonic.host"); - if (subsonicHost != null && ipAddresses.contains(subsonicHost)) { - return subsonicHost; + String libresonicHost = System.getProperty("libresonic.host"); + if (libresonicHost != null && ipAddresses.contains(libresonicHost)) { + return libresonicHost; } return ipAddresses.get(0); } diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/validator/PasswordSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java similarity index 72% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/validator/PasswordSettingsValidator.java rename to libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java index 12fb06ce..44b5260e 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/validator/PasswordSettingsValidator.java +++ b/libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.validator; +package org.libresonic.player.validator; import org.springframework.validation.*; -import net.sourceforge.subsonic.command.*; -import net.sourceforge.subsonic.controller.*; +import org.libresonic.player.command.*; +import org.libresonic.player.controller.*; /** * Validator for {@link PasswordSettingsController}. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/validator/PremiumSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java similarity index 70% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/validator/PremiumSettingsValidator.java rename to libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java index c1781da4..e4a2438b 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/validator/PremiumSettingsValidator.java +++ b/libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java @@ -1,29 +1,30 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.validator; +package org.libresonic.player.validator; import org.springframework.validation.Errors; import org.springframework.validation.Validator; -import net.sourceforge.subsonic.command.PremiumSettingsCommand; -import net.sourceforge.subsonic.controller.PremiumSettingsController; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.command.PremiumSettingsCommand; +import org.libresonic.player.controller.PremiumSettingsController; +import org.libresonic.player.service.SettingsService; /** * Validator for {@link PremiumSettingsController}. diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/validator/UserSettingsValidator.java b/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java similarity index 83% rename from subsonic-main/src/main/java/net/sourceforge/subsonic/validator/UserSettingsValidator.java rename to libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java index 87a2b0f7..3686e8c6 100644 --- a/subsonic-main/src/main/java/net/sourceforge/subsonic/validator/UserSettingsValidator.java +++ b/libresonic-main/src/main/java/org/libresonic/player/validator/UserSettingsValidator.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.validator; +package org.libresonic.player.validator; -import net.sourceforge.subsonic.command.UserSettingsCommand; -import net.sourceforge.subsonic.controller.UserSettingsController; -import net.sourceforge.subsonic.service.SecurityService; -import net.sourceforge.subsonic.service.SettingsService; +import org.libresonic.player.command.UserSettingsCommand; +import org.libresonic.player.controller.UserSettingsController; +import org.libresonic.player.service.SecurityService; +import org.libresonic.player.service.SettingsService; import org.apache.commons.lang.StringUtils; import org.springframework.validation.Errors; import org.springframework.validation.Validator; diff --git a/subsonic-main/src/main/resources/ehcache.xml b/libresonic-main/src/main/resources/ehcache.xml similarity index 99% rename from subsonic-main/src/main/resources/ehcache.xml rename to libresonic-main/src/main/resources/ehcache.xml index ea04b885..1f4950df 100644 --- a/subsonic-main/src/main/resources/ehcache.xml +++ b/libresonic-main/src/main/resources/ehcache.xml @@ -69,7 +69,7 @@ used with JMX monitors. Subdirectories can be specified below the property e.g. java.io.tmpdir/one --> - + diff --git a/subsonic-main/src/main/resources/log4j.properties b/libresonic-main/src/main/resources/log4j.properties similarity index 100% rename from subsonic-main/src/main/resources/log4j.properties rename to libresonic-main/src/main/resources/log4j.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/controller/default_cover.jpg b/libresonic-main/src/main/resources/org/libresonic/player/controller/default_cover.jpg similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/controller/default_cover.jpg rename to libresonic-main/src/main/resources/org/libresonic/player/controller/default_cover.jpg diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/All-Caps.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/All-Caps.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/All-Caps.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/All-Caps.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Army-Officer.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Army-Officer.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Army-Officer.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Army-Officer.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Beatnik.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Beatnik.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Beatnik.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Beatnik.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Clown.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Clown.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Clown.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Clown.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Commie-Pinko.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Commie-Pinko.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Commie-Pinko.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Commie-Pinko.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Cool.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Cool.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Cool.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Cool.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Drum.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Drum.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Drum.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Drum.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Engineer.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Engineer.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Engineer.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Engineer.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Fire-Guitar.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Fire-Guitar.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Fire-Guitar.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Fire-Guitar.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Footballer.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Footballer.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Footballer.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Footballer.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Formal.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Formal.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Formal.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Formal.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Forum-Flirt.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Forum-Flirt.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Forum-Flirt.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Forum-Flirt.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Gamer.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Gamer.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Gamer.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Gamer.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Green-Boy.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Green-Boy.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Green-Boy.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Green-Boy.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Headphones.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Headphones.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Headphones.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Headphones.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Hopelessly-Addicted.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Hopelessly-Addicted.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Hopelessly-Addicted.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Hopelessly-Addicted.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Jekyll-And-Hyde.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Jekyll-And-Hyde.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Jekyll-And-Hyde.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Jekyll-And-Hyde.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Joker.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Joker.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Joker.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Joker.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Laugh.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Laugh.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Laugh.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Laugh.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Linux-Zealot.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Linux-Zealot.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Linux-Zealot.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Linux-Zealot.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Lurker.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Lurker.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Lurker.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Lurker.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Mac-Zealot.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Mac-Zealot.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Mac-Zealot.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Mac-Zealot.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Mic.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Mic.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Mic.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Mic.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Moderator.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Moderator.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Moderator.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Moderator.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Newbie.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Newbie.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Newbie.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Newbie.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/No-Dissent.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/No-Dissent.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/No-Dissent.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/No-Dissent.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Performer.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Performer.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Performer.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Performer.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Push-My-Button.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Push-My-Button.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Push-My-Button.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Push-My-Button.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Ray-Of-Sunshine.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Ray-Of-Sunshine.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Ray-Of-Sunshine.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Ray-Of-Sunshine.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Red-Hot-Chili-Peppers-1.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Red-Hot-Chili-Peppers-1.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Red-Hot-Chili-Peppers-1.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Red-Hot-Chili-Peppers-1.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Red-Hot-Chili-Peppers-2.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Red-Hot-Chili-Peppers-2.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Red-Hot-Chili-Peppers-2.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Red-Hot-Chili-Peppers-2.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Red-Hot-Chili-Peppers-3.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Red-Hot-Chili-Peppers-3.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Red-Hot-Chili-Peppers-3.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Red-Hot-Chili-Peppers-3.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Red-Hot-Chili-Peppers-4.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Red-Hot-Chili-Peppers-4.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Red-Hot-Chili-Peppers-4.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Red-Hot-Chili-Peppers-4.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Ringmaster.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Ringmaster.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Ringmaster.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Ringmaster.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Rumor-Junkie.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Rumor-Junkie.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Rumor-Junkie.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Rumor-Junkie.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Sozzled-Surfer.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Sozzled-Surfer.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Sozzled-Surfer.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Sozzled-Surfer.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Statistician.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Statistician.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Statistician.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Statistician.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Study.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Study.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Study.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Study.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Tech-Support.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Tech-Support.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Tech-Support.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Tech-Support.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/The-Guru.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/The-Guru.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/The-Guru.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/The-Guru.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/The-Referee.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/The-Referee.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/The-Referee.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/The-Referee.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Troll.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Troll.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Troll.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Troll.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Turntable.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Turntable.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Turntable.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Turntable.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Uptight.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Uptight.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Uptight.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Uptight.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Vinyl.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Vinyl.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Vinyl.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Vinyl.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Windows-Zealot.png b/libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Windows-Zealot.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/dao/schema/Windows-Zealot.png rename to libresonic-main/src/main/resources/org/libresonic/player/dao/schema/Windows-Zealot.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_bg.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_bg.properties similarity index 97% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_bg.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_bg.properties index 86c294f1..20af4ffa 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_bg.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_bg.properties @@ -45,7 +45,7 @@ top.more = \u041E\u0449\u0435 top.help = \u041E\u0442\u043D\u043E\u0441\u043D\u043E top.search = \u0422\u044A\u0440\u0441\u0435\u043D\u0435 top.upgrade = \u041D\u0430\u043B\u0438\u0447\u043D\u0430 \u0435 \u043D\u043E\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044F. \u0421\u0432\u0430\u043B\u0438 {0} {1} \ - \u0442\u0443\u043A. + \u0442\u0443\u043A. top.missing = \u041D\u044F\u043C\u0430 \u043D\u0430\u043B\u0438\u0447\u043D\u0438 \u043F\u0430\u043F\u043A\u0438 \u0441 \u043C\u0443\u0437\u0438\u043A\u0430. \u041C\u043E\u043B\u044F \u043F\u0440\u043E\u043C\u0435\u043D\u0435\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0442\u0435. top.logout = \u0418\u0437\u043B\u0435\u0437 {0} @@ -115,7 +115,7 @@ search.hits.songs = \u041F\u0435\u0441\u043D\u0438 gettingStarted.title = \u0414\u0430 \u0437\u0430\u043F\u043E\u0447\u0432\u0430\u043C\u0435 gettingStarted.text =

\u0414\u043E\u0431\u0440\u0435 \u0434\u043E\u0448\u043B\u0438 \u0432 Libresonic! \u0422\u0440\u044F\u0431\u0432\u0430\u0442 \u0441\u0430\u043C\u043E \u043E\u0449\u0435 \u043D\u044F\u043A\u043E\u043B\u043A\u043E \u0431\u044A\u0440\u0437\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438, \u043F\u0440\u043E\u0441\u0442\u043E \u0441\u043B\u0435\u0434\u0432\u0430\u0439\u0442\u0435 \u0441\u0442\u044A\u043F\u043A\u0438\u0442\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438 \u043F\u043E-\u0434\u043E\u043B\u0443.
\ \u041D\u0430\u0442\u0438\u0441\u043D\u0435\u0442\u0435 \u0431\u0443\u0442\u043E\u043D\u0430 "\u041D\u0430\u0447\u0430\u043B\u043E" \u0432 \u043B\u0435\u043D\u0442\u0430\u0442\u0430 \u0433\u043E\u0440\u0435, \u0437\u0430 \u0434\u0430 \u0441\u0435 \u0432\u044A\u0440\u043D\u0435\u0442\u0435 \u043F\u043E \u0432\u0441\u044F\u043A\u043E \u0432\u0440\u0435\u043C\u0435 \u043A\u044A\u043C \u0442\u043E\u0437\u0438 \u0435\u043A\u0440\u0430\u043D.

\ -

\u0417\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F, \u043C\u043E\u043B\u044F \u043F\u0440\u043E\u0447\u0435\u0442\u0435\u0442\u0435 \u0420\u044A\u043A\u043E\u0432\u043E\u0434\u0441\u0442\u0432\u043E\u0442\u043E \u0437\u0430 \u043D\u043E\u0432\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438.

+

\u0417\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F, \u043C\u043E\u043B\u044F \u043F\u0440\u043E\u0447\u0435\u0442\u0435\u0442\u0435 \u0420\u044A\u043A\u043E\u0432\u043E\u0434\u0441\u0442\u0432\u043E\u0442\u043E \u0437\u0430 \u043D\u043E\u0432\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438.

gettingStarted.step1.title = \u041F\u0440\u043E\u043C\u044F\u043D\u0430 \u043D\u0430 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0441\u043A\u0430\u0442\u0430 \u043F\u0430\u0440\u043E\u043B\u0430. gettingStarted.step1.text = \u0417\u0430\u0449\u0438\u0442\u0435\u0442\u0435 \u0432\u0430\u0448\u0438\u044F\u0442 \u0441\u044A\u0440\u0432\u044A\u0440 \u043A\u0430\u0442\u043E \u0441\u043C\u0435\u043D\u0438\u0442\u0435 \u043F\u0430\u0440\u043E\u043B\u0430\u0442\u0430 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435 \u0441 \u0432\u0430\u0448\u0430 \u043F\u0430\u0440\u043E\u043B\u0430 \u0437\u0430 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440\u0441\u043A\u0438\u044F \u043F\u0440\u043E\u0444\u0438\u043B. \ \u041C\u043E\u0436\u0435\u0442\u0435 \u0441\u044A\u0449\u043E \u0442\u0430\u043A\u0430 \u0434\u0430 \u0441\u044A\u0437\u0434\u0430\u0432\u0430\u0442\u0435 \u043D\u043E\u0432\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0441\u043A\u0438 \u043F\u0440\u043E\u0444\u0438\u043B\u0438 \u0441 \u0440\u0430\u0437\u043B\u0438\u0447\u043D\u0438 \u043F\u0440\u0430\u0432\u0430. @@ -123,7 +123,7 @@ gettingStarted.step2.title = \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0 gettingStarted.step2.text = \u0422\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043F\u043E\u0441\u043E\u0447\u0438\u0442\u0435 \u043A\u044A\u0434\u0435 \u0441\u0435 \u043D\u0430\u043C\u0438\u0440\u0430 \u0432\u0430\u0448\u0430\u0442\u0430 \u043C\u0443\u0437\u0438\u043A\u0430. gettingStarted.step3.title = \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u0430 \u043C\u0440\u0435\u0436\u0430\u0442\u0430. gettingStarted.step3.text = \u041D\u044F\u043A\u043E\u0438 \u043F\u043E\u043B\u0435\u0437\u043D\u0438 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0430\u043A\u043E \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u0441\u043B\u0443\u0448\u0430\u0442\u0435 \u0432\u0430\u0448\u0430\u0442\u0430 \u043C\u0443\u0437\u0438\u043A\u0430 \u0432 \u0418\u043D\u0442\u0435\u0440\u043D\u0435\u0442, \u043A\u044A\u0434\u0435\u0442\u043E \u0438 \u0434\u0430 \u0441\u0435 \u043D\u0430\u043C\u0438\u0440\u0430\u0442\u0435 \ - \u0438\u043B\u0438 \u0434\u0430 \u044F \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u0442\u0435 \u0441 \u043F\u0440\u0438\u044F\u0442\u0435\u043B\u0438 \u0438 \u0441\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E\u0442\u043E. \u0412\u0437\u0435\u043C\u0435\u0442\u0435 \u0432\u0430\u0448 \u043B\u0438\u0447\u0435\u043D \u0432\u0430\u0448\u0435\u0442\u043E\u0438\u043C\u0435.subsonic.org \ + \u0438\u043B\u0438 \u0434\u0430 \u044F \u0441\u043F\u043E\u0434\u0435\u043B\u044F\u0442\u0435 \u0441 \u043F\u0440\u0438\u044F\u0442\u0435\u043B\u0438 \u0438 \u0441\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E\u0442\u043E. \u0412\u0437\u0435\u043C\u0435\u0442\u0435 \u0432\u0430\u0448 \u043B\u0438\u0447\u0435\u043D \u0432\u0430\u0448\u0435\u0442\u043E\u0438\u043C\u0435.libresonic.org \ \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442 \u0430\u0434\u0440\u0435\u0441. gettingStarted.hide = \u041D\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430\u0439 \u0442\u043E\u0432\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 gettingStarted.hidealert = \u0417\u0430 \u0434\u0430 \u043F\u043E\u043A\u0430\u0436\u0435\u0442\u0435 \u0442\u0430\u0437\u0438 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 \u043E\u0442\u043D\u043E\u0432\u043E, \u043E\u0442\u0432\u043E\u0440\u0435\u0442\u0435 \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 > \u041E\u0431\u0449\u0438. @@ -164,8 +164,8 @@ more.random.year = \u0438 \u0433\u043E\u0434\u0438\u043D\u0430 more.random.anyyear = \u0411\u0435\u0437 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 more.random.folder = \u043E\u0442 \u043F\u0430\u043F\u043A\u0430 more.random.anyfolder = \u0411\u0435\u0437 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 -more.apps.title = Subsonic \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F -more.apps.text =

Subsonic \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0442\u0430 \u0441\u0430 \u043F\u0440\u0435\u0434\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438 \u0437\u0430 Android, iPhone, \ +more.apps.title = Libresonic \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F +more.apps.text =

Libresonic \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0442\u0430 \u0441\u0430 \u043F\u0440\u0435\u0434\u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438 \u0437\u0430 Android, iPhone, \ Windows Phone \u0438 AIR.

more.mobile.title = \u041C\u043E\u0431\u0438\u043B\u043D\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 more.mobile.text =

\u041C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0432\u0430\u0442\u0435 {0} \u043E\u0442 \u0432\u0441\u0435\u043A\u0438 WAP-\u0441\u044A\u0432\u043C\u0435\u0441\u0442\u0438\u043C \u043C\u043E\u0431\u0438\u043B\u0435\u043D \u0442\u0435\u043B\u0435\u0444\u043E\u043D \u0438\u043B\u0438 PDA.
\ @@ -193,13 +193,13 @@ upload.unzipped = \u0420\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u # help.jsp help.title = \u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0437\u0430 {0} help.upgrade = \u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435! \u041D\u0430\u043B\u0438\u0447\u043D\u0430 \u0435 \u043D\u043E\u0432\u0430 \u0432\u0435\u0440\u0441\u0438\u044F. \u0421\u0432\u0430\u043B\u0438 \u043E\u0442 {0} {1} \ - \u0442\u0443\u043A. + \u0442\u0443\u043A. help.version.title = \u0412\u0435\u0440\u0441\u0438\u044F help.builddate.title = \u041E\u0442 \u0434\u0430\u0442\u0430 help.server.title = \u0421\u044A\u0440\u0432\u044A\u0440 help.license.title = \u0423\u0441\u043B\u043E\u0432\u0438\u044F \u0437\u0430 \u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0435 help.license.text = {0} \u0435 \u0431\u0435\u0437\u043F\u043B\u0430\u0442\u0435\u043D \u0441\u043E\u0444\u0442\u0443\u0435\u0440, \u0440\u0430\u0437\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u044F\u0432\u0430\u043D \u0447\u0440\u0435\u0437 GPL \u043B\u0438\u0446\u0435\u043D\u0437 \u0441 \u043E\u0442\u0432\u043E\u0440\u0435\u043D \u043A\u043E\u0434. \ - {0} \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u0430\u043D\u0438 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438 \u043D\u0430 \u0442\u0440\u0435\u0442\u0438 \u0441\u0442\u0440\u0430\u043D\u0438. \u041C\u043E\u043B\u044F \u043E\u0431\u044A\u0440\u043D\u0435\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0435 {0} \u043D\u0435 \u0435 \ + {0} \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u0430\u043D\u0438 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438 \u043D\u0430 \u0442\u0440\u0435\u0442\u0438 \u0441\u0442\u0440\u0430\u043D\u0438. \u041C\u043E\u043B\u044F \u043E\u0431\u044A\u0440\u043D\u0435\u0442\u0435 \u0432\u043D\u0438\u043C\u0430\u043D\u0438\u0435, \u0447\u0435 {0} \u043D\u0435 \u0435 \ \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0437\u0430 \u043D\u0435\u043B\u0435\u0433\u0430\u043B\u043D\u043E \u0440\u0430\u0437\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0435\u043D\u0438\u0435 \u043D\u0430 \u0437\u0430\u0449\u0438\u0442\u0435\u043D\u0438 \u0441 \u0430\u0432\u0442\u043E\u0440\u0441\u043A\u043E \u043F\u0440\u0430\u0432\u043E \u043C\u0430\u0442\u0435\u0440\u0438\u0430\u043B\u0438. \u0412\u0438\u043D\u0430\u0433\u0438 \u0441\u043F\u0430\u0437\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043A\u043E\u043D\u0438\u0442\u0435, \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u0438 \u0437\u0430 \u0432\u0430\u0448\u0430\u0442\u0430 \u0434\u044A\u0440\u0436\u0430\u0432\u0430. help.homepage.title = \u041E\u0444\u0438\u0446\u0438\u0430\u043B\u0435\u043D \u0441\u0430\u0439\u0442 help.forum.title = \u0424\u043E\u0440\u0443\u043C @@ -208,7 +208,7 @@ help.contact.title = \u041A\u043E\u043D\u0442\u0430\u043A\u0442 help.contact.text = {0} \u0435 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u043D \u0438 \u0441\u0435 \u043F\u043E\u0434\u0434\u044A\u0440\u0436\u0430 \u043E\u0442 Sindre Mehus \ (sindre@activeobjects.no). \ \u0410\u043A\u043E \u0438\u043C\u0430\u0442\u0435 \u0432\u044A\u043F\u0440\u043E\u0441\u0438, \u043A\u043E\u043C\u0435\u043D\u0442\u0430\u0440\u0438 \u0438\u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0437\u0430 \u043F\u043E\u0434\u043E\u0431\u0440\u0435\u043D\u0438\u044F, \u043C\u043E\u043B\u044F \u043F\u043E\u0441\u0435\u0442\u0435\u0442\u0435 \ - Subsonic \u0424\u043E\u0440\u0443\u043C. + Libresonic \u0424\u043E\u0440\u0443\u043C. help.log = \u041B\u043E\u0433 \u0444\u0430\u0439\u043B\u043E\u0432\u0435 help.logfile = \u0426\u0435\u043B\u0438\u044F\u0442 \u043B\u043E\u0433 \u0435 \u0437\u0430\u043F\u0430\u0437\u0435\u043D \u0432 {0}. @@ -310,7 +310,7 @@ musicfoldersettings.nopath = \u041C\u043E\u043B\u044F \u043F\u043E\u0441\u043E\u # networkSettings.jsp networksettings.text = \u0418\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u0439\u0442\u0435 \u043E\u043F\u0446\u0438\u0438\u0442\u0435 \u043F\u043E-\u0434\u043E\u043B\u0443 \u0437\u0430 \u0434\u0430 \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u0435 \u043D\u0430\u0447\u0438\u043D\u0430 \u0437\u0430 \u0434\u043E\u0441\u0442\u044A\u043F \u0434\u043E \u0432\u0430\u0448\u0438\u044F Libresonic \u0441\u044A\u0440\u0432\u044A\u0440 \u043F\u0440\u0435\u0437 Internet.
\ - \u0410\u043A\u043E \u0438\u043C\u0430\u0442\u0435 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0438, \u043C\u043E\u043B\u044F \u043F\u0440\u043E\u0447\u0435\u0442\u0435\u0442\u0435 \u0420\u044A\u043A\u043E\u0432\u043E\u0434\u0441\u0442\u0432\u043E\u0442\u043E \u0437\u0430 \u043D\u043E\u0432\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438. + \u0410\u043A\u043E \u0438\u043C\u0430\u0442\u0435 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0438, \u043C\u043E\u043B\u044F \u043F\u0440\u043E\u0447\u0435\u0442\u0435\u0442\u0435 \u0420\u044A\u043A\u043E\u0432\u043E\u0434\u0441\u0442\u0432\u043E\u0442\u043E \u0437\u0430 \u043D\u043E\u0432\u0438 \u043F\u043E\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043B\u0438. networksettings.portforwardingenabled = \u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0432\u0430\u0448\u0438\u044F \u0440\u0443\u0442\u0435\u0440 \u0434\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0432\u0430 \u0432\u0445\u043E\u0434\u044F\u0449\u0438 \u0432\u0440\u044A\u0437\u043A\u0438 \u043A\u044A\u043C Libresonic (\u0447\u0440\u0435\u0437 UPnP \u0438\u043B\u0438 NAT-PMP \u043F\u0440\u0435\u043D\u0430\u0441\u043E\u0447\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0440\u0442\u0430). networksettings.portforwardinghelp = \u0410\u043A\u043E \u0440\u0443\u0442\u0435\u0440\u0430 \u0432\u0438 \u043D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0430\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E, \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u0438\u0442\u0435 \u0442\u043E\u0432\u0430 \u0440\u044A\u0447\u043D\u043E. \ \u0421\u043B\u0435\u0434\u0432\u0430\u0439\u0442\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u0438\u0442\u0435 \u043E\u0442 portforward.com. \ @@ -338,7 +338,7 @@ transcodingsettings.info =

(%s = \u0424\u0430\u0439\u043B\u044 \u043D\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430 \u0434\u043E\u043F\u044A\u043B\u043D\u0438\u0442\u0435\u043B\u043D\u043E \u0434\u0438\u0441\u043A\u043E\u0432\u043E \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E.

\

\u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0442\u043E \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u0438\u0440\u0430\u043D\u0435 \u0441\u0435 \u0438\u0437\u0432\u044A\u0440\u0448\u0432\u0430 \u043E\u0442 \u043A\u043E\u043D\u0437\u043E\u043B\u043D\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430 \u0442\u0440\u0435\u0442\u0438 \u0441\u0442\u0440\u0430\u043D\u0438, \u043A\u043E\u0438\u0442\u043E \u0442\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u0441\u0430 \u0438\u043D\u0441\u0442\u0430\u043B\u0438\u0440\u0430\u043D\u0438 \u0432 {0}. \ \u041A\u043E\u043D\u0432\u0435\u0440\u0442\u0438\u0440\u0430\u0449 \u043F\u0430\u043A\u0435\u0442 \u0437\u0430 Windows \ - \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D \u0442\u0443\u043A. \u041C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u0435 \u0432\u0430\u0448 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u0440, \u0430\u043A\u043E \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430 \ + \u0435 \u0434\u043E\u0441\u0442\u044A\u043F\u0435\u043D \u0442\u0443\u043A. \u041C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u0435 \u0432\u0430\u0448 \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u043E\u0440, \u0430\u043A\u043E \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0432\u0430 \ \u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u0438\u0437\u0438\u0441\u043A\u0432\u0430\u043D\u0438\u044F: \

    \
  • \u0422\u0440\u044F\u0431\u0432\u0430 \u0434\u0430 \u043F\u0440\u0438\u0442\u0435\u0436\u0430\u0432\u0430 \u043A\u043E\u043D\u0437\u043E\u043B\u0435\u043D \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441.
  • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ca.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ca.properties similarity index 97% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ca.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ca.properties index 8071bad8..3c0d32cf 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ca.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ca.properties @@ -45,7 +45,7 @@ top.more = M\u00E9s top.help = Ajuda top.search = Buscar top.upgrade = Una nova versi\u00F3 est\u00E0 disponible. Descarregar {0} {1} \ - aqu\u00ED. + aqu\u00ED. top.missing = No s'ha trobat cap directori. Si us plau, canvi\u00EF la configuraci\u00F3. top.logout = Desconnectar {0} @@ -134,7 +134,7 @@ search.hits.songs = Can\u00E7ons gettingStarted.title = Primers passos gettingStarted.text =

    Benvingut a Libresonic! Per tal de configurar el programa de la manera m\u00E9s r\u00E0pida possible, nom\u00E9s cal que segueixi els seg\u00FCent passos.
    \ Cliqui al bot\u00F3 d''Inici que hi ha a la barra superior per tal de tornar a aquesta p\u00E0gina.

    \ -

    Per a m\u00E9s informaci\u00F3, consulti la p\u00E0gina la guia Getting started.

    +

    Per a m\u00E9s informaci\u00F3, consulti la p\u00E0gina la guia Getting started.

    gettingStarted.step1.title = Canviar la contrasenya de l'administrador. gettingStarted.step1.text = Per tal de fer m\u00E9s segur el seu servidor es recomana canviar la contrasenya per defecte de l''administrador. \ Tamb\u00E9 pot crear comptes d'usuari nous amb diferents privilegis associats. @@ -142,7 +142,7 @@ gettingStarted.step2.title = Configuri els directoris multim\u00E8dia. gettingStarted.step2.text = Indiqui a Libresonic a on guarda els arxius de m\u00FAsica i de v\u00EDdeo. gettingStarted.step3.title = Configuri els par\u00E0metres de xarxa. gettingStarted.step3.text = Par\u00E0metres \u00FAtil per tal de gaudir de Libresonic remotament a trav\u00E9s de Internet, \ - o compartir-ho amb la fam\u00EDlia i amics. Aconsegueixi la seva adre\u00E7a personal el_seu_nom.subsonic.org. + o compartir-ho amb la fam\u00EDlia i amics. Aconsegueixi la seva adre\u00E7a personal el_seu_nom.libresonic.org. gettingStarted.hide = No mostrar aquest missatge de nou gettingStarted.hidealert = Per tal de tornar a mostrar aquest missatge, accedeixi a Configuraci\u00F3 > General. @@ -182,8 +182,8 @@ more.random.year = i any more.random.anyyear = Qualsevol more.random.folder = i directori more.random.anyfolder = Qualsevol -more.apps.title = Subsonic Apps -more.apps.text =

    Hi ha aplicacions de Subsonic disponibles per a Android, iPhone, \ +more.apps.title = Libresonic Apps +more.apps.text =

    Hi ha aplicacions de Libresonic disponibles per a Android, iPhone, \ Windows Phone 7 i AIR.

    more.mobile.title = Tel\u00E8fon m\u00F2bil more.mobile.text =

    Vost\u00E8 pot controlar {0} amb qualsevol m\u00F2bil que tingui el WAP activat o amb una PDA.
    \ @@ -212,13 +212,13 @@ upload.unzipped = Descomprimit {0} # help.jsp help.title = Quant a {0} help.upgrade = Avis! Una nova versi\u00F3 est\u00E0 disponible.
    Descarregar {0} {1} \ - aqu\u00ED. + aqu\u00ED. help.version.title = Versi\u00F3 help.builddate.title = Data de creaci\u00F3 help.server.title = Server help.license.title = Llic\u00E8ncia help.license.text = {0} es software lliure distribu\u00EFt sota llic\u00E8ncia de codi obert GPL. \ - {0} usa llibreries de tercers sota les respectives llic\u00E8ncies. Si us plau, noti que {0} NO \ + {0} usa llibreries de tercers sota les respectives llic\u00E8ncies. Si us plau, noti que {0} NO \ \u00E9s una eina per a la distribuci\u00F3 il\u00B7legal de material amb copyright. Prengui atenci\u00F3 a les lleis espec\u00EDfiques del seu pa\u00EDs envers aquest punt. help.homepage.title = P\u00E0gina web del projecte help.forum.title = F\u00F2rum @@ -227,7 +227,7 @@ help.contact.title = Contacte help.contact.text = {0} est\u00E0 desenvolupat i mantingut per Sindre Mehus \ (sindre@activeobjects.no). \ Si vost\u00E8 t\u00E9 alguna pregunta, comentari o suggeriment, si us plau visiti \ - Subsonic Forum. + Libresonic Forum. help.log = Log help.logfile = El log complet esta guardat a {0}. @@ -345,7 +345,7 @@ musicfoldersettings.organizebyfolderstructure.description = Usi aquesta opci\u00 # networkSettings.jsp networksettings.text = Usi els seg\u00FCents par\u00E0metres per a controlar com s'accedeix al seu servidor Libresonic a trav\u00E9s de Internet.
    \ - Si experimenta algun tipus de contratemps, visiti la guia de Primers passos. + Si experimenta algun tipus de contratemps, visiti la guia de Primers passos. networksettings.portforwardingenabled = Configuri el seu router de manera autom\u00E0tica per tal de permetre les connexions entrants a Libresonic (usant reenviament de ports UPnP o NAT-PMP). networksettings.portforwardinghelp = Si el seu router no es pot configurar de manera autom\u00E0tica pot intentar configurar-lo de manera manual. \ Pot intentar seguir les instruccions de portforward.com. \ @@ -370,7 +370,7 @@ transcodingsettings.info =

    (%s = el format de l'arxiu que vole necessita espai de disc extra.

    \

    El canvi de format es realitza mitjan\u00E7ant programes de l\u00EDnia de comandes de tercers els quals s'han de trobar instal\u00B7lats en {0}. \ Un paquet de windows pel canvi de format \ - est\u00E0 disponible aqu\u00ED. Vost\u00E8 pot afegir el seu propi programa \ + est\u00E0 disponible aqu\u00ED. Vost\u00E8 pot afegir el seu propi programa \ si compleix els seg\u00FCent requisits: \

      \
    • Ha de tenir una interf\u00EDcie de l\u00EDnia de comandes.
    • \ @@ -559,7 +559,7 @@ share.facebook = Share on Facebook share.twitter = Share on Twitter share.googleplus = Share on Google+ share.link = Or share this with someone by sending them this link: {0} -share.disabled = To share your music with someone you must first register your own subsonic.org address.
      \ +share.disabled = To share your music with someone you must first register your own libresonic.org address.
      \ Please go to Settings > Network (administrative rights required). share.manage = Manage my shared media diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_cs.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_cs.properties similarity index 96% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_cs.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_cs.properties index 5fa7ef2d..97c8dd83 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_cs.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_cs.properties @@ -70,7 +70,7 @@ top.more = V\u00EDce top.help = N\u00E1pov\u011Bda top.search = Hledat top.upgrade = Je dostupn\u00E1 nov\u00E1 verze. St\u00E1hnout {0} {1} \ - zde. + zde. top.missing = Nebyly nalezeny \u017E\u00E1dn\u00E9 slo\u017Eky m\u00E9di\u00ED. Zm\u011B\u0148te nastaven\u00ED. top.logout = Odhl\u00E1sit u\u017Eivatele {0} top.getpremium = Z\u00EDskat Subsonic Premium @@ -173,9 +173,9 @@ search.hits.songs = Skladby gettingStarted.title = Za\u010D\u00EDn\u00E1me gettingStarted.text =

      V\u00EDt\u00E1 v\u00E1s Libresonic! Nastaven\u00ED bude provedeno b\u011Bhem p\u00E1r okam\u017Eik\u016F, postupujte podle n\u00ED\u017Ee uveden\u00FDch jednoduch\u00FDch krok\u016F.
      \ Pro n\u00E1vrat na tuto obrazovku klikn\u011Bte na tla\u010D\u00EDtko "Dom\u016F" v n\u00E1strojov\u00E9 li\u0161t\u011B naho\u0159e.

      \ -

      Pro v\u00EDce informac\u00ED si p\u0159e\u010Dt\u011Bte p\u0159\u00EDru\u010Dku Za\u010D\u00EDn\u00E1me (v anglick\u00E9m jazyce).

      +

      Pro v\u00EDce informac\u00ED si p\u0159e\u010Dt\u011Bte p\u0159\u00EDru\u010Dku Za\u010D\u00EDn\u00E1me (v anglick\u00E9m jazyce).

      gettingStarted.root = Upozorn\u011Bn\u00ED! Proces Libresonic b\u011B\u017E\u00ED jako u\u017Eivatel root. Uva\u017Eujte o \ - zm\u011Bn\u011B. + zm\u011Bn\u011B. gettingStarted.step1.title = Zm\u011B\u0148te heslo spr\u00E1vce. gettingStarted.step1.text = Zabezpe\u010Dte si sv\u016Fj server zm\u011Bnou v\u00FDchoz\u00EDho hesla pro \u00FA\u010Det administr\u00E1tora. \ M\u016F\u017Eete tak\u00E9 vytvo\u0159it nov\u00E9 \u00FA\u010Dty u\u017Eivatel\u016F s rozd\u00EDln\u00FDmi opr\u00E1vn\u011Bn\u00EDmi. @@ -184,7 +184,7 @@ gettingStarted.step2.text = Ur\u010Dete slo\u017Eky, kde m\u00E1te svou hudbu a gettingStarted.step3.title = Nastavte s\u00ED\u0165. gettingStarted.step3.text = N\u011Bkter\u00E1 u\u017Eite\u010Dn\u00E1 nastaven\u00ED, pokud si chcete u\u017E\u00EDvat svou hudbu z internetu, \ nebo ji sd\u00EDlet s rodinou a p\u0159\u00E1teli. Z\u00EDskejte svou soukromou adresu \ - vasejmeno.subsonic.org. + vasejmeno.libresonic.org. gettingStarted.hide = Toto znovu nezobrazovat gettingStarted.hidealert = Pro op\u011Btovn\u00E9 zobrazen\u00ED t\u00E9to obrazovky p\u0159ejd\u011Bte do Nastaven\u00ED > Obecn\u00E9. @@ -232,13 +232,13 @@ more.random.year = a roku more.random.anyyear = Jak\u00FDkoliv more.random.folder = ve slo\u017Ece more.random.anyfolder = Jak\u00E1koliv -more.apps.title = Aplikace Subsonicu -more.apps.text =

      Vyzkou\u0161ejte neust\u00E1le rostouc\u00ED seznam aplikac\u00ED Subsonicu. \ +more.apps.title = Aplikace Libresonicu +more.apps.text =

      Vyzkou\u0161ejte neust\u00E1le rostouc\u00ED seznam aplikac\u00ED Libresonicu. \ Poskytuj\u00ED z\u00E1bavu a alternativn\u00ED zp\u016Fsoby, jak si u\u017E\u00EDt svou sb\u00EDrku m\u00E9di\u00ED - bez ohledu na to, kde se nach\u00E1z\u00EDte. \ Aplikace jsou dostupn\u00E9 pro Android, iPhone, Windows Phone, BlackBerry, Roku a spoustu dal\u0161\u00EDch.

      more.minisub.title = MiniSub -more.minisub.text =

      MiniSub je HTML5 minip\u0159ehr\u00E1va\u010D pro Subsonic. \ - Je sou\u010D\u00E1st\u00ED webov\u00E9 aplikace Subsonicu, pro jeho spu\u0161t\u011Bn\u00ED klikn\u011Bte sem, \ +more.minisub.text =

      MiniSub je HTML5 minip\u0159ehr\u00E1va\u010D pro Libresonic. \ + Je sou\u010D\u00E1st\u00ED webov\u00E9 aplikace Libresonicu, pro jeho spu\u0161t\u011Bn\u00ED klikn\u011Bte sem, \ nebo nav\u0161tivte str\u00E1nku GitHub pro z\u00EDsk\u00E1n\u00ED nejnov\u011Bj\u0161\u00ED verze. \ Je tak\u00E9 dostupn\u00FD jako aplikace Chrome.

      more.mobile.title = Mobiln\u00ED telefon @@ -267,7 +267,7 @@ upload.unzipped = Rozbaleno {0} # help.jsp help.title = O aplikaci {0} help.upgrade = Pozor! Je dostupn\u00E1 nov\u00E1 verze. St\u00E1hnout {0} {1} \ - zde. + zde. help.premium.title = Licence help.premium.expires = (vypr\u0161\u00ED {0}) help.premium.upgrade = Upgradujte na Subsonic Premium, abyste si u\u017Eili spoustu funkc\u00ED nav\u00EDc! @@ -277,7 +277,7 @@ help.builddate.title = Datum sestaven\u00ED help.server.title = Server help.license.title = Podm\u00EDnky pou\u017Eit\u00ED help.license.text = {0} je software distribuovan\u00FD pod GPL open-source licenc\u00ED. \ - {0} pou\u017E\u00EDv\u00E1 licencovan\u00E9 knihovny t\u0159et\u00EDch stran. Uv\u011Bdomte si, \u017Ee {0} nen\u00ED \ + {0} pou\u017E\u00EDv\u00E1 licencovan\u00E9 knihovny t\u0159et\u00EDch stran. Uv\u011Bdomte si, \u017Ee {0} nen\u00ED \ n\u00E1stroj pro neleg\u00E1ln\u00ED distribuci materi\u00E1lu chr\u00E1n\u011Bn\u00E9ho autorsk\u00FDmi pr\u00E1vy. V\u017Edy v\u011Bnujte pozornost a dodr\u017Eujte p\u0159\u00EDslu\u0161n\u00E9 z\u00E1kony va\u0161\u00ED zem\u011B. help.homepage.title = Domovsk\u00E1 str\u00E1nka help.forum.title = F\u00F3rum @@ -286,7 +286,7 @@ help.contact.title = Kontakt help.contact.text = {0} je vyv\u00EDjen a udr\u017Eov\u00E1n Sindrem Mehusem \ (sindre@activeobjects.no). \ Jestli\u017Ee m\u00E1te jak\u00FDkoliv dotaz, p\u0159ipom\u00EDnku nebo n\u00E1m\u011Bt na zlep\u0161en\u00ED, nav\u0161tivte \ - f\u00F3rum Subsonicu. + f\u00F3rum Libresonicu. help.log = Protokol help.logfile = Kompletn\u00ED protokol je ulo\u017Een v {0}. @@ -409,7 +409,7 @@ musicfoldersettings.organizebyfolderstructure.description = Tuto volbu pou\u017E # networkSettings.jsp networksettings.text = Pomoc\u00ED n\u00ED\u017Ee uveden\u00FDch nastaven\u00ED ur\u010Dete, jak p\u0159istupovat k va\u0161emu serveru Libresonic z internetu.
      \ - Pokud naraz\u00EDte na pot\u00ED\u017Ee, p\u0159e\u010Dt\u011Bte si p\u0159\u00EDru\u010Dku Za\u010D\u00EDn\u00E1me. + Pokud naraz\u00EDte na pot\u00ED\u017Ee, p\u0159e\u010Dt\u011Bte si p\u0159\u00EDru\u010Dku Za\u010D\u00EDn\u00E1me. networksettings.portforwardingenabled = Automaticky nakonfigurovat router tak, aby umo\u017Enil p\u0159\u00EDchoz\u00ED p\u0159ipojen\u00ED k Libresonicu (pomoc\u00ED UPnP nebo p\u0159esm\u011Brov\u00E1n\u00ED port\u016F NAT-PMP). networksettings.portforwardinghelp = Pokud v\u00E1\u0161 router nem\u016F\u017Ee b\u00FDt nakonfigurov\u00E1n automaticky, m\u016F\u017Eete ho nastavit ru\u010Dn\u011B. \ Postupujte podle pokyn\u016F na portforward.com. \ @@ -633,7 +633,7 @@ share.facebook = Sd\u00EDlet na Facebooku share.twitter = Sd\u00EDlet na Twiteru share.googleplus = Sd\u00EDlet na Google+ share.link = Nebo sd\u00EDlejte s k\u00FDmkoliv posl\u00E1n\u00EDm tohoto odkazu: {0} -share.disabled = Abyste s n\u011Bk\u00FDm mohli sd\u00EDlet svou hudbu, mus\u00EDte si nejd\u0159\u00EDv zaregistrovat vlastn\u00ED adresu na subsonic.org.
      \ +share.disabled = Abyste s n\u011Bk\u00FDm mohli sd\u00EDlet svou hudbu, mus\u00EDte si nejd\u0159\u00EDv zaregistrovat vlastn\u00ED adresu na libresonic.org.
      \ P\u0159ejd\u011Bte na Nastaven\u00ED > S\u00ED\u0165 (jsou vy\u017Eadov\u00E1na opr\u00E1vn\u011Bn\u00ED administr\u00E1tora). share.manage = Spravovat m\u00E1 sd\u00EDlen\u00E1 m\u00E9dia @@ -642,11 +642,11 @@ premium.title = Subsonic Premium premium.invalidlicense = Neplatn\u00FD licen\u010Dn\u00ED kl\u00ED\u010D. premium.text =

      Upgradujte na Subsonic Premium, abyste si u\u017Eili tyto dal\u0161\u00ED funkce:

      \
        \ -
      • Aplikace pro Android, iPhone, Blackberry a Windows Phone*.
      • \ -
      • Aplikace pro Mac, Windows, Chrome, Roku a spoustu dal\u0161\u00EDch*.
      • \ +
      • Aplikace pro Android, iPhone, Blackberry a Windows Phone*.
      • \ +
      • Aplikace pro Mac, Windows, Chrome, Roku a spoustu dal\u0161\u00EDch*.
      • \
      • Streamov\u00E1n\u00ED videa.
      • \
      • P\u0159ij\u00EDma\u010D Podcast\u016F.
      • \ -
      • Va\u0161e osobn\u00ED serverov\u00E1 adresa: vasejmeno.subsonic.org (viz Nastaven\u00ED > S\u00ED\u0165).
      • \ +
      • Va\u0161e osobn\u00ED serverov\u00E1 adresa: vasejmeno.libresonic.org (viz Nastaven\u00ED > S\u00ED\u0165).
      • \
      • P\u0159ehr\u00E1v\u00E1n\u00ED sv\u00FDch m\u00E9di\u00ED na kompatibiln\u00EDch za\u0159\u00EDzen\u00EDch DLNA a UPnP.
      • \
      • Sd\u00EDlen\u00ED sv\u00FDch m\u00E9di\u00ED na Facebooku, Twitteru, Google+.
      • \
      • \u017D\u00E1dn\u00E9 reklamy ve webov\u00E9m rozhran\u00ED.
      • \ @@ -660,7 +660,7 @@ premium.licensedexpired = Va\u0161e licence Subsonic Premium vypr\u0161ela {0} premium.licensedto = Licence je registrov\u00E1na na u\u017Eivatele {0}. premium.forcechange = Registrovat jin\u00FD licen\u010Dn\u00ED kl\u00ED\u010D premium.register = P\u0159i upgradu na Subsonic Premium obdr\u017E\u00EDte licen\u010Dn\u00ED kl\u00ED\u010D e-mailem. Zaregistrujte se n\u00ED\u017Ee. -premium.resend = Ztracen\u00FD licen\u010Dn\u00ED kl\u00ED\u010D? Poslat ho znovu. +premium.resend = Ztracen\u00FD licen\u010Dn\u00ED kl\u00ED\u010D? Poslat ho znovu. premium.register.email = E-mail premium.register.license = Licen\u010Dn\u00ED kl\u00ED\u010D diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_da.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_da.properties similarity index 97% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_da.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_da.properties index 582248aa..cdf01d0b 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_da.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_da.properties @@ -44,7 +44,7 @@ top.more = Mere top.help = Hj\u00E6lp top.search = S\u00F8g top.upgrade = En ny version er tilg\u00E6ngelig. Download {0} {1} \ - her. + her. top.missing = Ingen medie mapper fundet. Skal du \u00E6ndre indstillingerne. top.logout = Log ud {0} @@ -137,8 +137,8 @@ more.random.year = og \u00E5r more.random.anyyear = Enhver more.random.folder = i mappen more.random.anyfolder = Enhver -more.apps.title = Subsonic Apps -more.apps.text =

        Subsonic Apps er til \ +more.apps.title = Libresonic Apps +more.apps.text =

        Libresonic Apps er til \ r\u00E5dighed for iPhone, Android og AIR.

        more.mobile.title = Mobiltelefon more.mobile.text =

        Du kan styre {0} fra en WAP-mobiltelefon eller PDA.
        \ @@ -166,7 +166,7 @@ upload.unzipped = Udpakket {0} # Help.jsp help.title = Om {0} help.upgrade = Bem\u00E6rk! En ny version er tilg\u00E6ngelig. Download {0} {1} \ - her. + her. help.version.title = Version help.builddate.title = Oprettelsesdato help.server.title = Server @@ -180,7 +180,7 @@ help.contact.title = Kontakt help.contact.text = {0} er udviklet og vedligeholdes af Sindre Mehus \ ( sindre@activeobjects.no ). \ Hvis du har sp\u00F8rgsm\u00E5l, kommentarer eller forslag til forbedringer, kan du bes\u00F8ge \ - Subsonic Forum. + Libresonic Forum. help.log = Log help.logfile = Den komplette log er gemt i {0}. @@ -299,7 +299,7 @@ transcodingsettings.info =

        (% s = Den fil, der skal omkodet,% giver mulighed for streaming af medier, der normalt ville ikke v\u00E6re mulige at streame. Denne omkodning er foretaget on-the-fly og kr\u00E6ver nogen diskaktivitet.

        \

        Den faktiske omkodning er udf\u00F8rt af tredjepart kommandolinje-programmer, som skal installeres i {0}. \ En omkodning pakke til Windows \ - er tilg\u00E6ngelig her. Du kan tilf\u00F8je dine egne brugerdefinerede omkodninger og kaldet transcoder, hvis det \ + er tilg\u00E6ngelig her. Du kan tilf\u00F8je dine egne brugerdefinerede omkodninger og kaldet transcoder, hvis det \ opfylder f\u00F8lgende krav: \

          \
        • Den skal have en kommandolinje-gr\u00E6nseflade.
        • \ @@ -458,7 +458,7 @@ gettingStarted.step2.title = Indstil medie mapper. gettingStarted.step2.text = Fort\u00E6l Libresonic hvor du opbevarer din medie. gettingStarted.step3.title = Konfigurer netv\u00E6rksindstillinger. gettingStarted.step3.text = Nogle nyttige indstillinger, hvis du vil nyde din medie over internettet, \ - eller dele det med familie og venner. F\u00E5 din personlige ditnavn.subsonic.org adresse. + eller dele det med familie og venner. F\u00E5 din personlige ditnavn.libresonic.org adresse. gettingStarted.hide = Vis ikke denne igen gettingStarted.hidealert = For at vise dette sk\u00E6rmbillede igen, skal du g\u00E5 til Indstillinger > Generel. @@ -512,7 +512,7 @@ share.warning =

          VIGTIG INFORMATION!

          Undg\u00E5 at dele ophavsretligt share.facebook = Del p\u00E5 Facebook share.twitter = Del p\u00E5 Twitter share.link = Eller dele dette med nogen, ved at sende dem dette link: {0} -share.disabled = Hvis du vil dele din medie med nogen, skal du f\u00F8rst registrere din egen subsonic.org address.
          \ +share.disabled = Hvis du vil dele din medie med nogen, skal du f\u00F8rst registrere din egen libresonic.org address.
          \ G\u00E5 til Settings > Network (administrative rights required). share.manage = Administrere mine delte medier diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_de.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_de.properties similarity index 96% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_de.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_de.properties index 2ecb6897..5cf701c7 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_de.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_de.properties @@ -68,7 +68,7 @@ top.more = Mehr top.help = Hilfe top.search = Suchen top.upgrade = Eine neue Version ist erh\u00E4ltlich. Download {0} {1} \ - hier. + hier. top.missing = Keine Musikordner gefunden. Bitte die Einstellungen \u00FCberpr\u00FCfen. top.logout = Ausloggen {0} @@ -176,7 +176,7 @@ gettingStarted.step2.title = Musikordner einrichten. gettingStarted.step2.text = Zeige Libresonic wo sich deine Musik befindet. gettingStarted.step3.title = Konfiguriere Netzwerk Einstellungen. gettingStarted.step3.text = Einige n\u00FCtzliche Einstellungen um ihre Musik \u00FCber das Internet geniessen zu k\u00F6nnen, \ - oder um sie mit Freunden oder Familie zu teilen. Holen sie sich ihre pers\u00F6nliche DeinName.subsonic.org \ + oder um sie mit Freunden oder Familie zu teilen. Holen sie sich ihre pers\u00F6nliche DeinName.libresonic.org \ Addresse. gettingStarted.hide = Nicht wieder anzeigen gettingStarted.hidealert = Um diesen Bildschirm wieder anzuzeigen, gehe zu Einstellungen > Allgemein. @@ -224,13 +224,13 @@ more.random.year = und dem Jahr more.random.anyyear = Alle more.random.folder = im Verzeichnis more.random.anyfolder = Alle -more.apps.title = Subsonic Apps -more.apps.text =

          Schauen sie in die stetig wachsende Liste der Subsonic Anwendungen. \ +more.apps.title = Libresonic Apps +more.apps.text =

          Schauen sie in die stetig wachsende Liste der Libresonic Anwendungen. \ Diese sorgt f\u00FCr Spa\u00DF und alternative M\u00F6glichkeiten um ihre Mediensammlung genie\u00DFen zu k\u00F6nnen - Egal wo sie gerade sind. \ Die Apps sind verf\u00FCgbar f\u00FCr Android, iPhone, Windows Phone, BlackBerry, Roku und viele mehr.

          more.jamstash.title = JamStash -more.jamstash.text =

          Jamstash ist ein HTML5 Player f\u00FCr Subsonic. Klicke hier um ihn zu starten. \ +more.jamstash.text =

          Jamstash ist ein HTML5 Player f\u00FCr Libresonic. Klicke hier um ihn zu starten. \ Auch verf\u00FCgbar als Chrome App.

          more.status.title = Netzwerk Status more.status.text = \u00DCberwache den Echtzeit-Status all deiner Netzwerk-Medienstreams. @@ -261,7 +261,7 @@ upload.unzipped = Entpackt {0} # help.jsp help.title = \u00DCber {0} help.upgrade = Note! Eine neue Version ist erh\u00E4ltlich. Download {0} {1} \ - hier. + hier. help.version.title = Version help.builddate.title = Erstellungs Datum help.server.title = Server @@ -274,7 +274,7 @@ help.contact.title = Kontakt help.contact.text = {0} ist von Sindre Mehus entwickelt worden \ (sindre@activeobjects.no). \ Wenn du Fragen, Kommentare oder Vorschl\u00E4ge f\u00FCr Verbesserungen hast, dann besuche bitte das \ - Subsonic Forum. + Libresonic Forum. help.log = Log help.logfile = Der komplette Log ist gespeichert in {0}. @@ -427,7 +427,7 @@ transcodingsettings.info =

          (%s = Die Datei die transcodiert wi Festplattenspeicher.

          \

          Das Transcoding wird von Drittanbieter-Kommandozeilenprogrammen \u00FCbernommen, welche in {0} installiert sein m\u00FCssen. \ Mehr \u00FCber das Transcoding erf\u00E4hrst du \ - hier hier. Du kannst deinen eigenen Transcoder verwenden, wenn er \ + hier hier. Du kannst deinen eigenen Transcoder verwenden, wenn er \ folgende Funktionen erf\u00FCllt: \

            \
          • Er muss ein Kommandozeilen-Interface haben.
          • \ @@ -490,7 +490,7 @@ sonossettings.enabled = Erm\u00F6gliche Sonos Musik-Service sonossettings.description = Verwenden Sie diese Option um den Sonos-Musikdienst in Libresonic zu aktivieren, \ und streamen Sie ihre Medien zu Sonos-Ger\u00E4ten in ihrem lokalen Netzwerk. Denken sie daran, Libresonic \ in ihrem Sonos-Controller als Musik-Dienst hinzuzuf\u00FCgen. Besuchen Sie \ - sonos.subsonic.org f\u00FCr mehr Infos. \ + sonos.libresonic.org f\u00FCr mehr Infos. \ Zur Fehlersuche, schauen sie hier im log. sonossettings.servicename = Musik-Dienst Name sonossettings.servicename.description = Der Name des Musik-Dienstes wie er im Sonos-Controller angezeigt wird. @@ -525,20 +525,20 @@ share.warning =

            WICHTIGER HINWEIS!

            Play fair – Teile in keinste share.facebook = Teile auf Facebook share.twitter = Teile auf Twitter share.link = Oder teile es mit jemanden indem du diesen Link weitergibst: {0} -share.disabled = Um Musik mit jemanden teilen zu k\u00F6nnen musst du erst deine eigene subsonic.org Addresse registrieren.
            \ +share.disabled = Um Musik mit jemanden teilen zu k\u00F6nnen musst du erst deine eigene libresonic.org Addresse registrieren.
            \ Bitte wechsle zu Settings > Network (Administratorrechte werden ben\u00F6tigt). share.manage = Meine geteilten Medien verwalten # premium.jsp premium.title = Subsonic Premium premium.invalidlicense = Ung\u00FCltiger Lizenzschl\u00FCssel. -premium.text =

            Upgrade zu Subsonic Premium um diese Funktionen zu geniessen:

            \ +premium.text =

            Upgrade zu Subsonic Premium um diese Funktionen zu geniessen:

            \
              \ -
            • Apps f\u00FCr Android, iPhone, Windows Phone, Mac, Chrome und mehr*.
            • \ +
            • Apps f\u00FCr Android, iPhone, Windows Phone, Mac, Chrome und mehr*.
            • \
            • Videostreaming.
            • \
            • Streame zu deinen Chromecast und Sonos Ger\u00E4ten.
            • \
            • Podcast Empf\u00E4nger.
            • \ -
            • Deine pers\u00F6nliche Serveradresse: deinname.subsonic.org (siehe Einstellungen > Netzwerk).
            • \ +
            • Deine pers\u00F6nliche Serveradresse: deinname.libresonic.org (siehe Einstellungen > Netzwerk).
            • \
            • Spiele deine Medien auf kompatiblen DLNA/UPnP Ger\u00E4ten.
            • \
            • Teile deine Medien auf Facebook, Twitter, Google+.
            • \
            • Keine Werbung im Webinterface.
            • \ @@ -552,7 +552,7 @@ premium.licensedexpired = Deine Subsonic Premium Lizenz ist abgelaufen am {0} premium.licensedto = Die Lizenz ist registriert f\u00FCr {0}. premium.forcechange = Einen anderen Lizenzschl\u00FCssel registrieren premium.register = Bei einem Upgrade auf Subsonic Premium erhalten sie ihren Lizenzschl\u00FCssel per Email. Bitte registrieren sie sich unten. -premium.resend = Lizenzschl\u00FCssel verloren? Erneut zusenden. +premium.resend = Lizenzschl\u00FCssel verloren? Erneut zusenden. premium.register.email = Email premium.register.license = License key diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_el.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_el.properties similarity index 98% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_el.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_el.properties index 052ae197..f43fc117 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_el.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_el.properties @@ -44,7 +44,7 @@ top.more = \u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1 top.help = \u03A0\u03B5\u03C1\u03AF top.search = \u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 top.upgrade = \u039C\u03AF\u03B1 \u03BA\u03B1\u03B9\u03BD\u03BF\u03CD\u03C1\u03B9\u03B1 \u03AD\u03BA\u03B4\u03BF\u03C3\u03B7 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B7. Download {0} {1} \ - \u03B5\u03B4\u03CE. + \u03B5\u03B4\u03CE. top.missing = \u0394\u03B5\u03BD \u03B2\u03C1\u03AD\u03B8\u03B7\u03BA\u03B1\u03BD \u03C6\u03AC\u03BA\u03B5\u03BB\u03BF\u03B9 \u03BC\u03B5 \u03BC\u03BF\u03C5\u03C3\u03B9\u03BA\u03AC \u03B1\u03C1\u03C7\u03B5\u03AF\u03B1. \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B1\u03BB\u03BB\u03AC\u03BE\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03C3\u03B1\u03C2. top.logout = \u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 {0} @@ -114,7 +114,7 @@ search.hits.songs = \u03A4\u03C1\u03B1\u03B3\u03BF\u03CD\u03B4\u03B9\u03B1 gettingStarted.title = \u039E\u03B5\u03BA\u03B9\u03BD\u03AE\u03C3\u03C4\u03B5 \u03B5\u03B4\u03CE gettingStarted.text =

              \u039A\u03B1\u03BB\u03CE\u03C2 \u03AE\u03C1\u03B8\u03B1\u03C4\u03B5 \u03C3\u03C4\u03BF Libresonic! \u0398\u03B1 \u03B5\u03AF\u03C3\u03C4\u03B5 \u03AD\u03C4\u03BF\u03B9\u03BC\u03BF\u03B9 \u03C3\u03B5 \u03BB\u03AF\u03B3\u03BF \u03C7\u03C1\u03BF\u03BD\u03B9\u03BA\u03CC \u03B4\u03B9\u03AC\u03C3\u03C4\u03B7\u03BC\u03B1, \u03B1\u03BA\u03BF\u03BB\u03BF\u03C5\u03B8\u03CE\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B9\u03C2 \u03C0\u03B1\u03C1\u03B1\u03BA\u03AC\u03C4\u03C9 \u03BF\u03B4\u03B7\u03B3\u03AF\u03B5\u03C2
              \ \u03A0\u03B1\u03C4\u03AE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03BA\u03BF\u03C5\u03BC\u03C0\u03AF "\u0388\u03BD\u03B1\u03C1\u03BE\u03B7" \u03C3\u03C4\u03BF \u03C0\u03BB\u03B1\u03AF\u03C3\u03B9\u03BF \u03B5\u03C1\u03B3\u03B1\u03BB\u03B5\u03AF\u03C9\u03BD \u03C0\u03B1\u03C1\u03B1\u03C0\u03AC\u03BD\u03C9 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B5\u03C0\u03B1\u03BD\u03AD\u03BB\u03B8\u03B5\u03C4\u03B5 \u03C3\u03C4\u03B7 \u03C0\u03B1\u03C1\u03BF\u03CD\u03C3\u03B1 \u03BF\u03B8\u03CC\u03BD\u03B7.

              \ -

              \u0393\u03B9\u03B1 \u03C0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B5\u03C2 \u03C0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B5\u03C2, \u03BA\u03BF\u03B9\u03C4\u03AC\u03BE\u03C4\u03B5 \u03C4\u03BF\u03BDGetting started \u03BF\u03B4\u03B7\u03B3\u03CC.

              +

              \u0393\u03B9\u03B1 \u03C0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B5\u03C2 \u03C0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B5\u03C2, \u03BA\u03BF\u03B9\u03C4\u03AC\u03BE\u03C4\u03B5 \u03C4\u03BF\u03BDGetting started \u03BF\u03B4\u03B7\u03B3\u03CC.

              gettingStarted.step1.title = \u0391\u03BB\u03BB\u03B1\u03B3\u03AE \u03BA\u03C9\u03B4\u03B9\u03BA\u03BF\u03CD \u03B4\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE. gettingStarted.step1.text = \u0391\u03C3\u03C6\u03B1\u03BB\u03AF\u03C3\u03C4\u03B5 \u03C4\u03BF\u03BD \u03C5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03AE \u03C3\u03B1\u03C2, \u03B1\u03BB\u03BB\u03AC\u03B6\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03BF \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03BB\u03B5\u03B3\u03BC\u03AD\u03BD\u03BF \u03BA\u03C9\u03B4\u03B9\u03BA\u03CC \u03B3\u03B9\u03B1 \u03C4\u03BF\u03BD \u03B4\u03B9\u03B1\u03C7\u03B5\u03B9\u03C1\u03B9\u03C3\u03C4\u03AE. \ \u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03B5\u03C0\u03AF\u03C3\u03B7\u03C2 \u03BD\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03C3\u03B5\u03C4\u03B5 \u03BA\u03B1\u03B9\u03BD\u03BF\u03CD\u03C1\u03B9\u03BF\u03C5\u03C2 \u03BB\u03BF\u03B3\u03B1\u03C1\u03B9\u03B1\u03C3\u03BC\u03BF\u03CD\u03C2 \u03BC\u03B5 \u03B4\u03B9\u03AC\u03C6\u03BF\u03C1\u03B1 \u03C0\u03C1\u03BF\u03BD\u03CC\u03BC\u03B9\u03B1. @@ -122,7 +122,7 @@ gettingStarted.step2.title = \u03A3\u03CD\u03C3\u03C4\u03B1\u03C3\u03B7 \u03BC\u gettingStarted.step2.text = \u03A5\u03C0\u03BF\u03B4\u03B5\u03AF\u03BE\u03B5\u03C4\u03B5 \u03C3\u03C4\u03BF Libresonic \u03C0\u03BF\u03C5 \u03BA\u03C1\u03B1\u03C4\u03AC\u03C4\u03B5 \u03C4\u03BF\u03C5\u03C2 \u03BC\u03BF\u03C5\u03C3\u03B9\u03BA\u03BF\u03CD\u03C2 \u03C3\u03B1\u03C2 \u03C6\u03B1\u03BA\u03AD\u03BB\u03BF\u03C5\u03C2. gettingStarted.step3.title = \u039C\u03BF\u03C1\u03C6\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7 \u03C0\u03B1\u03C1\u03B1\u03BC\u03AD\u03C4\u03C1\u03C9\u03BD \u03B4\u03B9\u03BA\u03C4\u03CD\u03BF\u03C5. gettingStarted.step3.text = \u039C\u03B5\u03C1\u03B9\u03BA\u03BF\u03AF \u03C7\u03C1\u03AE\u03C3\u03B9\u03BC\u03BF\u03B9 \u03C0\u03B1\u03C1\u03AC\u03BC\u03B5\u03C4\u03C1\u03BF\u03B9 \u03B5\u03AC\u03BD \u03B8\u03AD\u03BB\u03B5\u03C4\u03B5 \u03BD\u03B1 \u03B1\u03C0\u03BF\u03BB\u03B1\u03CD\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03BC\u03BF\u03C5\u03C3\u03B9\u03BA\u03AE \u03C3\u03B1\u03C2 \u03B1\u03C0\u03BF\u03BC\u03B1\u03BA\u03C1\u03C5\u03C3\u03BC\u03AD\u03BD\u03B1 \u03BC\u03AD\u03C3\u03C9 \u03AF\u03BD\u03C4\u03B5\u03C1\u03BD\u03B5\u03C4, \ - \u03AE \u03BC\u03BF\u03B9\u03C1\u03AC\u03B6\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7 \u03BC\u03B5 \u03C4\u03B7\u03BD \u03BF\u03B9\u03BA\u03BF\u03B3\u03AD\u03BD\u03B5\u03B9\u03B1 \u03BA\u03B1\u03B9 \u03C4\u03BF\u03C5\u03C2 \u03C6\u03AF\u03BB\u03BF\u03C5\u03C2 \u03C3\u03B1\u03C2. \u03A0\u03C1\u03BF\u03BC\u03B7\u03B8\u03B5\u03C5\u03C4\u03B5\u03AF\u03C4\u03B5 \u03C4\u03B7 \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03AE \u03C3\u03B1\u03C2 \u03C4\u03BF_\u03CC\u03BD\u03BF\u03BC\u03B1_\u03C3\u03B1\u03C2.subsonic.org \ + \u03AE \u03BC\u03BF\u03B9\u03C1\u03AC\u03B6\u03BF\u03BD\u03C4\u03B1\u03C2 \u03C4\u03B7 \u03BC\u03B5 \u03C4\u03B7\u03BD \u03BF\u03B9\u03BA\u03BF\u03B3\u03AD\u03BD\u03B5\u03B9\u03B1 \u03BA\u03B1\u03B9 \u03C4\u03BF\u03C5\u03C2 \u03C6\u03AF\u03BB\u03BF\u03C5\u03C2 \u03C3\u03B1\u03C2. \u03A0\u03C1\u03BF\u03BC\u03B7\u03B8\u03B5\u03C5\u03C4\u03B5\u03AF\u03C4\u03B5 \u03C4\u03B7 \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03AE \u03C3\u03B1\u03C2 \u03C4\u03BF_\u03CC\u03BD\u03BF\u03BC\u03B1_\u03C3\u03B1\u03C2.libresonic.org \ \u03B4\u03B9\u03B5\u03CD\u03B8\u03C5\u03BD\u03C3\u03B7. gettingStarted.hide = \u039D\u03B1 \u03BC\u03B7\u03BD \u03C6\u03B1\u03BD\u03B5\u03AF \u03BE\u03B1\u03BD\u03AC \u03B1\u03C5\u03C4\u03CC. gettingStarted.hidealert = \u0393\u03B9\u03B1 \u03BD\u03B1 \u03B4\u03B5\u03AF\u03C4\u03B5 \u03BE\u03B1\u03BD\u03AC \u03B1\u03C5\u03C4\u03AE \u03C4\u03B7\u03BD \u03BF\u03B8\u03CC\u03BD\u03B7, \u03C0\u03B7\u03B3\u03B1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03C3\u03C4\u03B9\u03C2 \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 > \u0393\u03B5\u03BD\u03B9\u03BA\u03AC. @@ -163,8 +163,8 @@ more.random.year = \u03BA\u03B1\u03B9 \u03C7\u03C1\u03BF\u03BD\u03B9\u03AC more.random.anyyear = \u039F\u03C4\u03B9\u03B4\u03AE\u03C0\u03BF\u03C4\u03B5 more.random.folder = \u03C3\u03C4\u03BF\u03BD \u03C6\u03AC\u03BA\u03B5\u03BB\u03BF more.random.anyfolder = \u039F\u03C4\u03B9\u03B4\u03AE\u03C0\u03BF\u03C4\u03B5 -more.apps.title = Subsonic \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AD\u03C2 -more.apps.text =

              \u039F\u03B9 Subsonic \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AD\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B5\u03C2 \u03B3\u03B9\u03B1 Android, iPhone, \ +more.apps.title = Libresonic \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AD\u03C2 +more.apps.text =

              \u039F\u03B9 Libresonic \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AD\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B5\u03C2 \u03B3\u03B9\u03B1 Android, iPhone, \ Windows Phone and AIR.

              more.mobile.title = \u039A\u03B9\u03BD\u03B7\u03C4\u03CC \u03C4\u03B7\u03BB\u03AD\u03C6\u03C9\u03BD\u03BF more.mobile.text =

              \u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03BA\u03BF\u03BD\u03C4\u03C1\u03BF\u03BB\u03AC\u03C1\u03B5\u03C4\u03B5 {0} \u03B1\u03C0\u03CC \u03BA\u03AC\u03B8\u03B5 \u03C4\u03B7\u03BB\u03AD\u03C6\u03C9\u03BD\u03BF \u03AE PDA \u03BC\u03B5 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7 \u03C3\u03B5 WAP.
              \ @@ -192,13 +192,13 @@ upload.unzipped = \u0391\u03C0\u03BF\u03C3\u03C5\u03BC\u03C0\u03B9\u03AD\u03C3\u # help.jsp help.title = \u03A0\u03B5\u03C1\u03AF {0} help.upgrade = Note! \u039C\u03B9\u03B1 \u03BA\u03B1\u03B9\u03BD\u03BF\u03CD\u03C1\u03B9\u03B1 \u03AD\u03BA\u03B4\u03BF\u03C3\u03B7 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03B7. \u039A\u03B1\u03C4\u03B5\u03B2\u03AC\u03C3\u03C4\u03B5 {0} {1} \ - here. + here. help.version.title = \u0388\u03BA\u03B4\u03BF\u03C3\u03B7 help.builddate.title = \u0397\u03BC\u03B5\u03C1\u03BF\u03BC\u03B7\u03BD\u03AF\u03B1 \u03A0\u03B1\u03C1\u03B1\u03B3\u03C9\u03B3\u03AE\u03C2 help.server.title = \u03A5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03AE\u03C2 help.license.title = \u03A0\u03C1\u03BF\u03CB\u03C0\u03BF\u03B8\u03AD\u03C3\u03B5\u03B9\u03C2 \u03C4\u03B7\u03C2 \u03C7\u03C1\u03AE\u03C3\u03B7\u03C2 help.license.text = {0} is free software distributed under the GPL open-source license. \ - {0} uses licensed third-party libraries. Please note that {0} is not \ + {0} uses licensed third-party libraries. Please note that {0} is not \ a tool for illegal distribution of copyrighted material. Always pay attention to and follow the relevant laws specific to your country. help.homepage.title = \u0391\u03C1\u03C7\u03B9\u03BA\u03AE help.forum.title = \u03A6\u03CC\u03C1\u03BF\u03C5\u03BC @@ -207,7 +207,7 @@ help.contact.title = \u0395\u03C0\u03B9\u03BA\u03BF\u03B9\u03BD\u03C9\u03BD\u03A help.contact.text = {0} \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B1\u03BD\u03B5\u03C0\u03C4\u03C5\u03B3\u03BC\u03AD\u03BD\u03BF \u03BA\u03B1\u03B9 \u03C3\u03C5\u03BD\u03C4\u03B7\u03C1\u03AE\u03C4\u03B1\u03B9 \u03B1\u03C0\u03BF \u03C4\u03BF\u03BD Sindre Mehus \ (sindre@activeobjects.no). \ \u0391\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03B5\u03C1\u03C9\u03C4\u03AE\u03C3\u03B5\u03B9\u03C2, \u03C3\u03C7\u03CC\u03BB\u03B9\u03B1, \u03AE \u03C0\u03C1\u03BF\u03C4\u03AC\u03C3\u03B5\u03B9\u03C2 \u03B3\u03B9\u03B1 \u03B2\u03B5\u03BB\u03C4\u03AF\u03C9\u03C3\u03B7 \u03C4\u03BF\u03C5 \u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03B9\u03BA\u03BF\u03CD \u03C0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u03B5\u03C0\u03B9\u03C3\u03BA\u03B5\u03C6\u03B8\u03B5\u03AF\u03C4\u03B5 \u03C4\u03BF \ - Subsonic Forum. + Libresonic Forum. help.log = \u0391\u03C1\u03C7\u03B5\u03AF\u03BF \u03BA\u03B1\u03C4\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE\u03C2 help.logfile = \u038C\u03BB\u03BF \u03C4\u03BF \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF \u03BA\u03B1\u03C4\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE\u03C2 \u03B2\u03C1\u03AF\u03C3\u03BA\u03B5\u03C4\u03B1\u03B9 \u03C3\u03C4\u03BF {0}. @@ -309,7 +309,7 @@ musicfoldersettings.nopath = \u03A0\u03B1\u03C1\u03B1\u03BA\u03B1\u03BB\u03CE \u # networkSettings.jsp networksettings.text = \u03A7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03C0\u03B1\u03C1\u03B1\u03BA\u03AC\u03C4\u03C9 \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B4\u03B9\u03BF\u03C1\u03AF\u03C3\u03B5\u03C4\u03B5 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7 \u03C3\u03C4\u03BF\u03BD Libresonic \u03C5\u03C0\u03BF\u03BB\u03BF\u03B3\u03B9\u03C3\u03C4\u03AE \u03C3\u03B1\u03C2 \u03BC\u03AD\u03C3\u03C9 \u03AF\u03BD\u03C4\u03B5\u03C1\u03BD\u03B5\u03C4.
              \ - \u0391\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03CC\u03B2\u03BB\u03B7\u03BC\u03B1, \u03C3\u03C5\u03BC\u03B2\u03BF\u03C5\u03BB\u03B5\u03C5\u03C4\u03AE\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03A0\u03CE\u03C2 \u03BD\u03B1 \u03B1\u03C1\u03C7\u03AF\u03C3\u03B5\u03C4\u03B5 \u03BF\u03B4\u03B7\u03B3\u03AF\u03B5\u03C2. + \u0391\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03C0\u03C1\u03CC\u03B2\u03BB\u03B7\u03BC\u03B1, \u03C3\u03C5\u03BC\u03B2\u03BF\u03C5\u03BB\u03B5\u03C5\u03C4\u03AE\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03A0\u03CE\u03C2 \u03BD\u03B1 \u03B1\u03C1\u03C7\u03AF\u03C3\u03B5\u03C4\u03B5 \u03BF\u03B4\u03B7\u03B3\u03AF\u03B5\u03C2. networksettings.portforwardingenabled = \u0391\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B1 \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03C4\u03B5 \u03C4\u03BF\u03BD \u03B4\u03C1\u03BF\u03BC\u03BF\u03BB\u03BF\u03B3\u03B7\u03C4\u03AE \u03C3\u03B1\u03C2 \u03BD\u03B1 \u03B5\u03C0\u03B9\u03C4\u03C1\u03AD\u03C0\u03B5\u03B9 \u03B5\u03B9\u03C3\u03B5\u03C1\u03C7\u03CC\u03BC\u03B5\u03BD\u03B5\u03C2 \u03C3\u03C5\u03BD\u03B4\u03AD\u03C3\u03B5\u03B9\u03C2 \u03C3\u03C4\u03BF Libresonic (\u03C7\u03C1\u03B7\u03C3\u03B9\u03BC\u03BF\u03C0\u03BF\u03B9\u03CE\u03BD\u03C4\u03B1\u03C2 UPnP or NAT-PMP \u03C0\u03C1\u03BF\u03CE\u03B8\u03B7\u03C3\u03B7 \u03C4\u03C9\u03BD \u03B8\u03C5\u03C1\u03CE\u03BD). networksettings.portforwardinghelp = \u0391\u03BD \u03BF \u03B4\u03C1\u03BF\u03BC\u03BF\u03BB\u03BF\u03B3\u03B7\u03C4\u03AE\u03C2 \u03C3\u03B1\u03C2 \u03B4\u03B5\u03BD \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF \u03BD\u03B1 \u03C1\u03C5\u03B8\u03BC\u03B9\u03C3\u03C4\u03B5\u03AF \u03B1\u03C5\u03C4\u03CC\u03BC\u03B1\u03C4\u03B1, \u03BC\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C4\u03BF\u03BD \u03C1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03C4\u03B5 \u03B5\u03C3\u03B5\u03AF\u03C2. \ \u0391\u03BA\u03BF\u03BB\u03BF\u03C5\u03B8\u03AE\u03C3\u03C4\u03B5 \u03C4\u03B9\u03C2 \u03BF\u03B4\u03B7\u03B3\u03AF\u03B5\u03C2 \u03C3\u03C4\u03BF portforward.com. \ @@ -337,7 +337,7 @@ transcodingsettings.info =

              (%s = \u03A4\u03BF \u03B1\u03C1\u03 \u03C7\u03C1\u03AE\u03C3\u03B7 \u03C4\u03BF\u03C5 \u03C3\u03BA\u03BB\u03B7\u03C1\u03BF\u03CD \u03B4\u03AF\u03C3\u03BA\u03BF\u03C5.

              \

              \u0397 \u03BC\u03B5\u03C4\u03B1\u03C4\u03C1\u03BF\u03C0\u03AE \u03B3\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03BC\u03AD\u03C3\u03C9 \u03C0\u03C1\u03BF\u03B3\u03C1\u03B1\u03BC\u03BC\u03AC\u03C4\u03C9\u03BD \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2, \u03C4\u03C1\u03AF\u03C4\u03C9\u03BD \u03C0\u03C1\u03BF\u03C3\u03CE\u03C0\u03C9\u03BD \u03C0\u03BF\u03C5 \u03B8\u03B1 \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AE\u03B4\u03B7 \u03B5\u03B3\u03BA\u03B1\u03C4\u03B5\u03C3\u03C4\u03B7\u03BC\u03AD\u03BD\u03B1 \u03C3\u03C4\u03BF {0}. \ \u0388\u03BD\u03B1 \u03C0\u03B1\u03BA\u03AD\u03C4\u03BF \u03BC\u03B5\u03C4\u03B1\u03C4\u03C1\u03BF\u03C0\u03CE\u03BD \u03B3\u03B9\u03B1 Windows \ - \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03BF \u03C3\u03C4\u03BF \u03B5\u03B4\u03CE. \u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03C4\u03B5 \u03C4\u03BF \u03B4\u03B9\u03BA\u03CC \u03C3\u03B1\u03C2 \u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03B9\u03BA\u03CC \u03BC\u03B5\u03C4\u03B1\u03C4\u03C1\u03BF\u03C0\u03CE\u03BD \u03B5\u03AC\u03BD \ + \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B4\u03B9\u03B1\u03B8\u03AD\u03C3\u03B9\u03BC\u03BF \u03C3\u03C4\u03BF \u03B5\u03B4\u03CE. \u039C\u03C0\u03BF\u03C1\u03B5\u03AF\u03C4\u03B5 \u03BD\u03B1 \u03C0\u03C1\u03BF\u03C3\u03B8\u03AD\u03C3\u03B5\u03C4\u03B5 \u03C4\u03BF \u03B4\u03B9\u03BA\u03CC \u03C3\u03B1\u03C2 \u03BB\u03BF\u03B3\u03B9\u03C3\u03BC\u03B9\u03BA\u03CC \u03BC\u03B5\u03C4\u03B1\u03C4\u03C1\u03BF\u03C0\u03CE\u03BD \u03B5\u03AC\u03BD \ \u03C0\u03BB\u03B7\u03C1\u03B5\u03AF \u03C4\u03B9\u03C2 \u03C0\u03B1\u03C1\u03B1\u03BA\u03AC\u03C4\u03C9 \u03C0\u03C1\u03BF\u03CB\u03C0\u03BF\u03B8\u03AD\u03C3\u03B5\u03B9\u03C2: \

                \
              • \u03A0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03C0\u03C1\u03CC\u03C3\u03B2\u03B1\u03C3\u03B7 \u03B1\u03C0\u03CC \u03B3\u03C1\u03B1\u03BC\u03BC\u03AE \u03B5\u03BD\u03C4\u03BF\u03BB\u03CE\u03BD.
              • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_en.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties similarity index 93% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_en.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties index 03a9f1d1..0d7f87c7 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_en.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en.properties @@ -70,7 +70,7 @@ top.more = More top.help = About top.search = Search top.upgrade = A new version is available. Download {0} {1} \ - here. + here. top.missing = No media folders found. Please change the settings. top.logout = Log out {0} top.getpremium = Get Subsonic Premium @@ -179,9 +179,9 @@ search.hits.videos = Videos gettingStarted.title = Getting started gettingStarted.text =

                Welcome to Libresonic! We'll set you up in no time, just follow the basic steps below.
                \ Click the "Home" button in the toolbar above to return to this screen.

                \ -

                For more information, please consult the Getting started guide.

                +

                For more information, please consult the Getting started guide.

                gettingStarted.root = Warning! The Libresonic process is running as the root user. Please consider to \ - change this. + change this. gettingStarted.step1.title = Change administrator password. gettingStarted.step1.text = Secure your server by changing the default password for the administrator account. \ You can also create new user accounts with different privileges. @@ -189,7 +189,7 @@ gettingStarted.step2.title = Set up media folders. gettingStarted.step2.text = Tell Libresonic where you keep your music and videos. gettingStarted.step3.title = Configure network settings. gettingStarted.step3.text = Some useful settings if you want to enjoy your music remotely over the Internet, \ - or share it with family and friends. Get your personal yourname.subsonic.org \ + or share it with family and friends. Get your personal yourname.libresonic.org \ address. gettingStarted.hide = Don't show this again gettingStarted.hidealert = To show this screen again, go to Settings > General. @@ -239,12 +239,12 @@ more.random.year = and year more.random.anyyear = Any more.random.folder = in folder more.random.anyfolder = Any -more.apps.title = Subsonic Apps -more.apps.text =

                Check out the steadily growing list of Subsonic apps. \ +more.apps.title = Libresonic Apps +more.apps.text =

                Check out the steadily growing list of Libresonic apps. \ These provide fun and alternative ways to enjoy your media collection - no matter where you are. \ Apps are available for Android, iPhone, Windows Phone, BlackBerry, Roku and many more.

                more.jamstash.title = JamStash -more.jamstash.text =

                Jamstash is an HTML5 player for Subsonic. Click here to start it. \ +more.jamstash.text =

                Jamstash is an HTML5 player for Libresonic. Click here to start it. \ Also available as a Chrome App.

                more.status.title = Network Status more.status.text = Monitor the real-time status of all network media streams. @@ -274,7 +274,7 @@ upload.unzipped = Unzipped {0} # help.jsp help.title = About {0} help.upgrade = Note! A new version is available. Download {0} {1} \ - here. + here. help.premium.title = License help.premium.expires = (expires {0}) help.premium.upgrade = Upgrade to Subsonic Premium to enjoy lots of extra features! @@ -283,9 +283,7 @@ help.version.title = Version help.builddate.title = Build date help.server.title = Server help.license.title = Terms of use -help.license.text = {0} is free software distributed under the GPL open-source license. \ - {0} uses licensed third-party libraries. Please note that {0} is not \ - a tool for illegal distribution of copyrighted material. Always pay attention to and follow the relevant laws specific to your country. +help.license.text = {0} is free software distributed under the GPL open-source license. help.homepage.title = Homepage help.forum.title = Forum help.shop.title = Merchandise @@ -343,6 +341,15 @@ advancedsettings.ldapsearchfilter = LDAP search filter advancedsettings.ldapmanagerdn = LDAP manager DN
                (Optional)
                advancedsettings.ldapmanagerpassword = Password advancedsettings.ldapautoshadowing = Automatically create users in {0} +advancedsettings.smtpPort = SMTP port +advancedsettings.smtpServer = SMTP server +advancedsettings.smtpEncryption = SMTP encryption +advancedsettings.smtpUser = SMTP username +advancedsettings.smtpPassword = Password +advancedsettings.smtpEncryption.none = None +advancedsettings.smtpEncryption.starttls = STARTTLS +advancedsettings.smtpEncryption.ssl = SSL/TLS +advancedsettings.smtpFrom = Mail sender # personalSettings.jsp personalsettings.title = Personal settings for {0} @@ -371,6 +378,7 @@ personalsettings.autohideplayqueue = Auto-hide play queue personalsettings.finalversionnotification = Notify me about new versions personalsettings.betaversionnotification = Notify me about new beta versions personalsettings.songnotification = Notify me when new songs are played (not supported by all browsers) +personalsettings.listreloaddelay = Album list reload delay (in seconds, 0 disables) personalsettings.lastfmenabled = Register what I'm playing at Last.fm personalsettings.lastfmusername = Last.fm username personalsettings.lastfmpassword = Last.fm password @@ -420,7 +428,7 @@ musicfoldersettings.organizebyfolderstructure.description = Use this option to b # networkSettings.jsp networksettings.text = Use the settings below to control how to access your Libresonic server over the Internet.
                \ - If you experience difficulties, please consult the Getting started guide. + If you experience difficulties, please consult the Getting started guide. networksettings.portforwardingenabled = Automatically configure your router to allow incoming connections to Libresonic (using UPnP or NAT-PMP port forwarding). networksettings.portforwardinghelp = If your router can''t be configured automatically you can set it up manually. \ Follow the instructions on portforward.com. \ @@ -429,6 +437,8 @@ networksettings.urlredirectionenabled = Access your server over the Internet usi networksettings.status = Status: networksettings.normalurl = Use networksettings.customurl = Use custom URL (advanced) +networksettings.urlRedirectDisabled = Feature not currently available + # transcodingSettings.jsp transcodingsettings.name = Name @@ -502,6 +512,7 @@ playersettings.name = Player name playersettings.maxbitrate = Max bitrate playersettings.notranscoder = Notice: Transcoders does not appear to be installed.
                Click Help button for more information. playersettings.autocontrol = Control player automatically +playersettings.m3ubom = Apply BOM signature in the generated M3U file playersettings.dynamicip = Player has dynamic IP address playersettings.transcodings = Active transcodings playersettings.ok = Save @@ -518,7 +529,7 @@ sonossettings.enabled = Enable Sonos music service sonossettings.description = Use this option to turn on the Sonos music service in Libresonic, \ and stream your media to Sonos devices on your local network. Remember to add Libresonic \ as a music service from your Sonos controller. Visit \ - sonos.subsonic.org for more info. \ + sonos.libresonic.org for more info. \ For trouble-shooting, please see the log. sonossettings.servicename = Music service name sonossettings.servicename.description = The name of the music service as it will appear in the Sonos controller. @@ -661,20 +672,20 @@ share.facebook = Share on Facebook share.twitter = Share on Twitter share.googleplus = Share on Google+ share.link = Or share this with someone by sending them this link: {0} -share.disabled = To share your music with someone you must first register your own subsonic.org address.
                \ +share.disabled = To share your music with someone you must first register your own libresonic.org address.
                \ Please go to Settings > Network (administrative rights required). share.manage = Manage my shared media # premium.jsp premium.title = Subsonic Premium premium.invalidlicense = Invalid license key. -premium.text =

                Upgrade to Subsonic Premium to enjoy these extra features:

                \ +premium.text =

                Upgrade to Subsonic Premium to enjoy these extra features:

                \
                  \ -
                • Apps for Android, iPhone, Windows Phone, Mac, Chrome and more*.
                • \ +
                • Apps for Android, iPhone, Windows Phone, Mac, Chrome and more*.
                • \
                • Video streaming.
                • \
                • Stream to your Chromecast and Sonos devices.
                • \
                • Podcast receiver.
                • \ -
                • Your personal server address: yourname.subsonic.org (see Settings > Network).
                • \ +
                • Your personal server address: yourname.libresonic.org (see Settings > Network).
                • \
                • Play your media on compatible DLNA/UPnP devices.
                • \
                • Share your media on Facebook, Twitter, Google+.
                • \
                • No ads in the web interface.
                • \ @@ -688,7 +699,7 @@ premium.licensedexpired = Your Subsonic Premium license expired {0} premium.licensedto = The license is registered to {0}. premium.forcechange = Register a different license key premium.register = When upgrading to Subsonic Premium you receive a license key by email. Please register it below. -premium.resend = Lost the license key? Send it again. +premium.resend = Lost the license key? Send it again. premium.register.email = Email premium.register.license = License key @@ -810,6 +821,17 @@ helppopup.autocontrol.text =

                  With this option selected, {0} will automaticall in the playlist. Otherwise, you must start and connect the player yourself.

                  helppopup.dynamicip.title = Dynamic IP address helppopup.dynamicip.text =

                  Turn off this option if the player uses a static IP address.

                  +helppopup.smtpServer.title = SMTP Server +helppopup.smtpServer.text =

                  The hostname of the SMTP server. This server will be used to send e-mails to users \ + who have requested a password reset.

                  +helppopup.smtpPort.title = SMTP Port +helppopup.smtpPort.text =

                  The server's port that should be connected to for SMTP traffic.

                  +helppopup.smtpCredentials.title = SMTP Credentials +helppopup.smtpCredentials.text =

                  The credentials to be used to connect to the SMTP server. Leave empty to connect without authentication.

                  +helppopup.smtpEncryption.title = SMTP Encryption +helppopup.smtpEncryption.text =

                  The encryption method to be used to connect to the SMTP server. Choose "None" for no encryption.

                  +helppopup.smtpFrom.title = From address +helppopup.smtpFrom.text =

                  The sender address for mails originating from the Libresonic server. Must be a valid e-mail address.

                  # wap/index.jsp wap.index.missing = No music found diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_en_GB.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en_GB.properties similarity index 88% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_en_GB.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en_GB.properties index 0c259c8a..e0d2ef71 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_en_GB.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_en_GB.properties @@ -9,7 +9,7 @@ accessDenied.text = Sorry, you are not authorised to perform the requested opera # help.jsp help.license.text = {0} is free software distributed under the GPL open-source licence. \ - {0} uses licensed third-party libraries. Please note that {0} is not \ + {0} uses licensed third-party libraries. Please note that {0} is not \ a tool for illegal distribution of copyrighted material. Always pay attention to and follow the relevant laws specific to your country. # playerSettings.jsp diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_es.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_es.properties similarity index 97% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_es.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_es.properties index bd4055cb..e1e6bf83 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_es.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_es.properties @@ -38,7 +38,7 @@ top.more = Más top.help = Ayuda top.search = Buscar top.upgrade = Una nueva versión está disponible. Descargar {0} {1} \ - aquí. + aquí. top.missing = No se encuentra ningún directorio de música. Por favor cambie la configuración. top.logout = Desconectar {0} @@ -138,7 +138,7 @@ upload.unzipped = Descomprimido {0} # help.jsp help.title = Sobre {0} help.upgrade = ¡Aviso! Una nueva versión esta disponible. Descargue {0} {1} \ - aquí. + aquí. help.version.title = Versión help.builddate.title = Fecha de creación help.license.title = Licencia @@ -149,7 +149,7 @@ help.contact.title = Contacto help.contact.text = {0} está desarrollado y mantenido por Sindre Mehus \ (sindre@activeobjects.no). \ Si usted tiene alguna pregunta, comentario o sugerencia de mejoras, por favor visite \ - Subsonic Forum. + Libresonic Forum. help.log = Log help.logfile = El log completo esta guardado en {0}. @@ -228,7 +228,7 @@ transcodingsettings.info =

                  (%s = El fichero cuyo formato quere necesita espacio en disco.

                  \

                  El cambio de formato se realiza por medio de programas de linea de comandos de terceros los cuales deben ser instalados en {0}. \ Un pack de windows para el cambio de formato \ - esta disponible aqui. Usted puede añadir su propio programa \ + esta disponible aqui. Usted puede añadir su propio programa \ si cumple los siguientes requisitos: \

                    \
                  • Debe tener una interface de linea de comandos.
                  • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_et.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_et.properties similarity index 96% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_et.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_et.properties index 3cf4f23d..c9a062e7 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_et.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_et.properties @@ -70,7 +70,7 @@ top.more = Rohkem top.help = Info top.search = Otsi top.upgrade = Uuem versioon on saadaval. Lae alla {0} {1} \ - siit. + siit. top.missing = Meediakauste ei leitud. Palun muuda seadeid. top.logout = Logi välja {0} top.getpremium = Hankige Subsonic Premium @@ -173,9 +173,9 @@ search.hits.songs = Laulud gettingStarted.title = Alustamine gettingStarted.text =

                    Tere tulemast Libresonicusse! Me viime teid kurssi koheselt, selleks tuleb teil järgida antud põhisamme.
                    \ Siia lehele naasmiseks kliki nuppu "Kodu" kõrvalolevas tööriistaribal.

                    \ -

                    Lisainfo saamiseks võtke ühendust Alustamine juhendist.

                    +

                    Lisainfo saamiseks võtke ühendust Alustamine juhendist.

                    gettingStarted.root = Hoiatus! Libresonicu protsess töötab kasutaja "root" volitusega. Kaaluge selle seade \ - muutmist. + muutmist. gettingStarted.step1.title = Muuda administraatori parooli. gettingStarted.step1.text = Muutke administraatori konto tavaparooli, et server oleks turvatud. \ Saate ka luua uusi kasutajakontosid erinevate juurdepääsudega. @@ -183,7 +183,7 @@ gettingStarted.step2.title = Seadista meediakaustad. gettingStarted.step2.text = Anna Libresonicule teada oma muusika ja videote hoiupaigast. gettingStarted.step3.title = Seadista võrguseadeid. gettingStarted.step3.text = Kui soovite nautide muusikat Interneti abil või tahate jagada seda koos oma pere ja sõpradega, siis vajalikud seadistused leiate siit, \ - Hangi endale oma sinunimi.subsonic.org \ + Hangi endale oma sinunimi.libresonic.org \ aadress. gettingStarted.hide = Ära enam kuva seda gettingStarted.hidealert = Kui soovite seda teadet hiljem uuesti kuvada, siis leiate selle valiku alt Seaded > Põhiline. @@ -232,12 +232,12 @@ more.random.year = ja aasta more.random.anyyear = Suvaline more.random.folder = kaustas more.random.anyfolder = Suvaline -more.apps.title = Subsonicu rakendused -more.apps.text =

                    Minge uurige uusi ja ägedaid Subsonicu rakendusi. \ +more.apps.title = Libresonicu rakendused +more.apps.text =

                    Minge uurige uusi ja ägedaid Libresonicu rakendusi. \ Need teevad sinu meedia kollektsiooni nautimise lõbusamaks ja pakub alternatiivseid viise selleks - asukohast hoolimata. \ Rakendused on saadavad järgmistele nutitelefonidele: Android, iPhone, Windows Phone, BlackBerry, Roku ja paljud teised.

                    more.jamstash.title = JamStash -more.jamstash.text =

                    Jamstash on Subsonicu HTML5 meediaesitaja. Selle käivitamiseks vajutage siia. \ +more.jamstash.text =

                    Jamstash on Libresonicu HTML5 meediaesitaja. Selle käivitamiseks vajutage siia. \ Veel leiab selle Chrome rakenduste hulgast.

                    more.mobile.title = Mobiiltelefon more.mobile.text =

                    Sa haldad {0} igalt WAP-toetatud mobiiltelefonilt või PDA kaudu.
                    \ @@ -265,7 +265,7 @@ upload.unzipped = {0} on lahti pakitud # help.jsp help.title = Info {0}´i kohta help.upgrade = Note! Saadaval on uuem versioon. Lae alla {0} {1} \ - siit. + siit. help.premium.title = Litsents help.premium.expires = (aegub {0}) help.premium.upgrade = Paljude lisavõimaluste nautimiseks hankigeSubsonic Premium! @@ -275,7 +275,7 @@ help.builddate.title = Valmistamiskuupäev help.server.title = Server help.license.title = Kasutajatingimused help.license.text = {0} on vabavaraline tarkvara levitaja GPL avatud lähtekoodiga lepingu alusel. \ - {0} kasutab litsenseeritud kolmanda osapoole lisasid. Pea meeles, et {0} pole \ + {0} kasutab litsenseeritud kolmanda osapoole lisasid. Pea meeles, et {0} pole \ võimalus, mille abil rikutakse autoriõigusi. Alati pane tähele ning järgi oma riigile vastavaid põhiseaduseid. help.homepage.title = Kodulehekülg help.forum.title = Foorum @@ -284,7 +284,7 @@ help.contact.title = Võta ühendust help.contact.text = {0}u arendajaks ja ülalpidajaks on Sindre Mehus \ (sindre@activeobjects.no). \ Kui sul on küsimusi, kommentaare või soovitusi portaali täiustamiseks siis palun külasta \ - Subsonicu foorumit. + Libresonicu foorumit. help.log = Logi help.logfile = Kokkuvõtlik logi on salvestatud asukohta {0}. @@ -408,7 +408,7 @@ musicfoldersettings.organizebyfolderstructure.description = Kasuta seda valikut, # networkSettings.jsp networksettings.text = Kasuta seda seadet, et hallata ligipääsu Libresonicu serverisse Interneti kaudu.
                    \ - Kui ilmneb raskusi siis tutvuge Sissejuhatuse peatükiga. + Kui ilmneb raskusi siis tutvuge Sissejuhatuse peatükiga. networksettings.portforwardingenabled = Automaatselt seadista oma ruuter, et Libresonicu ühendused oleks alati lubatud (kasutatakse UPnP või NAT-PMP pordi saatmist). networksettings.portforwardinghelp = Ruuterit on ka võimalik seadistada käsitsi, kui automaatselt ei saa. \ Järgi juhendeid portaalil portforward.com. \ @@ -634,7 +634,7 @@ share.facebook = Jaga Facebookis share.twitter = Jaga Twitteris share.googleplus = Jaga Google+-is share.link = Või saatmiseks kasutage linki: {0} -share.disabled = Esmalt, et saaksite muusikat jagada kellegagi, peate te registreerima oma subsonic.org aadressi.
                    \ +share.disabled = Esmalt, et saaksite muusikat jagada kellegagi, peate te registreerima oma libresonic.org aadressi.
                    \ Palun mine Seaded > Võrk (administraatori õigus on vajalik). share.manage = Halda minu jagatud meediat @@ -643,11 +643,11 @@ premium.title = Subsonic Premium premium.invalidlicense = Vigage litsentsivõti. premium.text =

                    Nende lisavõimaluste nautimiseks peate hankima Subsonic Premiumi:

                    \
                      \ -
                    • Rakendused Androidile, iPhoneile ja Windows Phoneile*.
                    • \ -
                    • Rakendused BlackBerryiel, Rokule, Macile, Windowsile, Chrome´le ja paljudele teistele*.
                    • \ +
                    • Rakendused Androidile, iPhoneile ja Windows Phoneile*.
                    • \ +
                    • Rakendused BlackBerryiel, Rokule, Macile, Windowsile, Chrome´le ja paljudele teistele*.
                    • \
                    • Video edastus.
                    • \
                    • Taskupleieri kasutusvõimalus (Podcast).
                    • \ -
                    • Teie personaalse nimega serveriaadress: teienimi.subsonic.org (asub Seaded > Võrk).
                    • \ +
                    • Teie personaalse nimega serveriaadress: teienimi.libresonic.org (asub Seaded > Võrk).
                    • \
                    • Esitage oma meediattoetatud DLNA/UPnP seadmetes.
                    • \
                    • Jagage oma meediat Facebookis, Twitteris, Google+´is.
                    • \
                    • Reklaamivaba interneti kasutajaliides.
                    • \ @@ -661,7 +661,7 @@ premium.licensedexpired = Teie Subsonic Premiumi litsents aegub {0} premium.licensedto = Litsents on registreeritud aadressile {0}. premium.forcechange = Registreerige teise litsentsi võtmega premium.register = Subsonic Premiumi litsentsi võtme leiate oma e-postist. Palun registreerige see kõrvalolevast ankeedist. -premium.resend = Kaotasite litsentsi võtme? Saatke see uuesti. +premium.resend = Kaotasite litsentsi võtme? Saatke see uuesti. premium.register.email = E-spost premium.register.license = Litsentsi võti diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_fi.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_fi.properties similarity index 98% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_fi.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_fi.properties index 8e3508b4..b1e55234 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_fi.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_fi.properties @@ -45,7 +45,7 @@ top.more = Lis\u00E4\u00E4 top.help = Tuki top.search = Etsi top.upgrade = Uusi ohjelmaversio on saatavilla. Lataa {0} {1} \ - t\u00E4st\u00E4. + t\u00E4st\u00E4. top.missing = Musiikkikansioita ei l\u00F6ydy. Tarkista asetukset. top.logout = Kirjaa ulos {0} @@ -113,7 +113,7 @@ gettingStarted.step2.title = M\u00E4\u00E4rit\u00E4 musiikkikansioiden sijainti. gettingStarted.step2.text = M\u00E4\u00E4rit\u00E4 Libresonic-ohjelmalle musiikkikansioiden sijainti. gettingStarted.step3.title = M\u00E4\u00E4rit\u00E4 verkkoasetukset. gettingStarted.step3.text = Hy\u00F6dyllisi\u00E4 asetuksia jos haluat kuunnella musiikkia internetin yli. \ - M\u00E4\u00E4rit\u00E4 helposti muistettava yourname.subsonic.org \ + M\u00E4\u00E4rit\u00E4 helposti muistettava yourname.libresonic.org \ osoite. gettingStarted.hide = \u00C4l\u00E4 n\u00E4yt\u00E4 t\u00E4t\u00E4 sivua en\u00E4\u00E4. gettingStarted.hidealert = T\u00E4m\u00E4n sivun saat uudelleen n\u00E4kyviin valitsemalla Asetukset > Yleiset. @@ -180,13 +180,13 @@ upload.unzipped = Purettu {0} # help.jsp help.title = Ohjelma {0} help.upgrade = Huomio! Uusi ohjelmaversio on saatavilla. Lataa {0} {1} \ - t\u00E4st\u00E4. + t\u00E4st\u00E4. help.version.title = Versio help.builddate.title = Build date help.server.title = Serveri help.license.title = Lisenssi help.license.text = {0} is free software distributed under the GPL open-source license. \ - {0} uses licensed third-party libraries. + {0} uses licensed third-party libraries. help.homepage.title = Kotisivu help.forum.title = Foorumi help.shop.title = Oheistuotteet @@ -194,7 +194,7 @@ help.contact.title = Yhteystiedot help.contact.text = {0} ohjelman on kehitt\u00E4nyt ja yll\u00E4pit\u00E4\u00E4 Sindre Mehus \ (sindre@activeobjects.no). \ Jos sinulla on kysytt\u00E4v\u00E4\u00E4, kommentoitavaa tai parannusehdotuksia ohjelmaan, vieraile \ - Subsonic Foorumissa. + Libresonic Foorumissa. help.log = Loki help.logfile = T\u00E4ydellinen loki on tallennettu {0}. @@ -320,9 +320,9 @@ transcodingsettings.info =

                      (%s = Tiedosto, mik\u00E4 muunnetaa

                      Muuntaminen on prosessi, miss\u00E4 tiedostotyyppi muunnetaan toiseksi tiedostotyypiksi. {1}'ohjelma \ antaa striimata my\u00F6s mediaa, mik\u00E4 normaalisti ei olisi striimattavissa. Muunnos tehd\u00E4\u00E4n lennossa, eik\u00E4 se \ vaadi levytilaa.

                      \ -

                      Varsinaisen muunnoksen suorittaa kolmannen osapuolen komentoriviohjelma, mik\u00E4 tulee asentaa kansioon c:|subsonic|transcode. \ +

                      Varsinaisen muunnoksen suorittaa kolmannen osapuolen komentoriviohjelma, mik\u00E4 tulee asentaa kansioon c:|libresonic|transcode. \ Muunnosohjelma Windowsiin \ - on saatavilla t\u00E4\u00E4lt\u00E4. \ + on saatavilla t\u00E4\u00E4lt\u00E4. \ Voit k\u00E4ytt\u00E4\u00E4 my\u00F6s jotain muuta ohjelmaa jos se t\u00E4ytt\u00E4\u00E4 seuraavat ehdot: \

                        \
                      • Siin\u00E4 pit\u00E4\u00E4 olla komentorivik\u00E4ytt\u00F6liittym\u00E4.
                      • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_fr.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_fr.properties similarity index 96% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_fr.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_fr.properties index 036f60be..a6c6a386 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_fr.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_fr.properties @@ -67,7 +67,7 @@ top.more = Plus top.help = Aide top.search = Rechercher top.upgrade = Une nouvelle version est disponible. T\u00E9l\u00E9charger {0} {1} \ - ici. + ici. top.missing = Aucun fichier trouv\u00E9. Veuillez modifier vos param\u00E8tres. top.logout = Se d\u00E9connecter @@ -164,7 +164,7 @@ search.hits.songs = Titres gettingStarted.title = D\u00E9marrage rapide gettingStarted.text =

                        Bienvenue sur Libresonic ! Suivez les quelques \u00E9tapes ci-dessous pour commencer \u00E0 l''utiliser.
                        \ Cliquez le bouton "Accueil" dans la barre du haut pour revenir sur cette page.

                        \ -

                        Pour plus d''informations, consultez le guide de d\u00E9marrage rapide.

                        +

                        Pour plus d''informations, consultez le guide de d\u00E9marrage rapide.

                        gettingStarted.step1.title = Changer le mot de passe administrateur. gettingStarted.step1.text = S\u00E9curisez votre installation en modifiant le mot de passe du compte administrateur. \ Vous pouvez aussi cr\u00E9er de nouveaux comptes utilisateurs avec diff\u00E9rents privil\u00E8ges. @@ -172,11 +172,11 @@ gettingStarted.step2.title = G\u00E9rer les dossiers de musique. gettingStarted.step2.text = Libresonic doit savoir dans quel dossier se trouve votre musique. gettingStarted.step3.title = Configurer les r\u00E9glages r\u00E9seau. gettingStarted.step3.text = Quelques r\u00E9glages pour acc\u00E9der \u00E0 votre musique depuis Internet, \ - ou la partager avec votre famille ou vos amis. Obtenez votre adresse personnelle votre nom.subsonic.org. + ou la partager avec votre famille ou vos amis. Obtenez votre adresse personnelle votre nom.libresonic.org. gettingStarted.hide = Ne plus montrer cet \u00E9cran gettingStarted.hidealert = Pour afficher cet \u00E9cran \u00E0 nouveau, allez dans Param\u00E8tres > G\u00E9n\u00E9ral. -gettingStarted.root = Attention ! Le processus de subsonic a \u00E9t\u00E9 lanc\u00E9 par l''utilisateur root. Nous vous conseillons de \ - modifier ce point. +gettingStarted.root = Attention ! Le processus de libresonic a \u00E9t\u00E9 lanc\u00E9 par l''utilisateur root. Nous vous conseillons de \ + modifier ce point. # home.jsp home.random.title = Al\u00E9atoire @@ -219,7 +219,7 @@ more.random.anyyear = Toutes les ann\u00E9es more.random.folder = et du dossier more.random.anyfolder = Tous les dossiers more.apps.title = Applications -more.apps.text = Des applications Subsonic sont disponibles pour iPhone, \ +more.apps.text = Des applications Libresonic sont disponibles pour iPhone, \ Android et AIR. more.mobile.title = T\u00E9l\u00E9phone mobile more.mobile.text =

                        Vous pouvez controler {0} \u00E0 partir de votre t\u00E9l\u00E9phone mobile.
                        \ @@ -245,13 +245,13 @@ upload.unzipped = D\u00E9compress\u00E9 {0} # help.jsp help.title = A propos de {0} help.upgrade = Note! Une nouvelle version est disponible. T\u00E9l\u00E9charger {0} {1} \ - ici. + ici. help.version.title = Version help.builddate.title = Date help.server.title = Serveur help.license.title = Licence help.license.text = {0} est un logiciel gratuit distribu\u00E9 sous licence GPL. \ - {0} utilise une biblioth\u00E8que tiers autoris\u00E9e. Veuillez noter qu''il n''est pas \ + {0} utilise une biblioth\u00E8que tiers autoris\u00E9e. Veuillez noter qu''il n''est pas \ destin\u00E9 \u00E0 partager ill\u00E9galement des oeuvres non-libres de droit. Renseignez-vous sur les lois en vigueur dans votre pays. help.homepage.title = Page d'accueil help.forum.title = Forum @@ -260,7 +260,7 @@ help.contact.title = Contact help.contact.text = {0} est developp\u00E9 et maintenu par Sindre Mehus \ (sindre@activeobjects.no). \ Si vous avez des questions, commentaires ou suggestions pour l''am\u00E9liorer, visitez le \ - Forum Subsonic. + Forum Libresonic. help.log = Log help.logfile = L''historique complet est sauvegard\u00E9e dans {0}. @@ -363,7 +363,7 @@ musicfoldersettings.nopath = Veuillez indiquer un dossier. # networkSettings.jsp networksettings.text = Compl\u00E9tez les options ci-dessous afin de d\u00E9finir comment acc\u00E9der \u00E0 votre serveur Libresonic depuis Internet.
                        \ - Si vous rencontrez des probl\u00E8mes, consultez le guide de D\u00E9marrage rapide. + Si vous rencontrez des probl\u00E8mes, consultez le guide de D\u00E9marrage rapide. networksettings.portforwardingenabled = Configurer automatiquement le routeur pour autoriser les connexions entrantes vers Libresonic (transit par port UPnP). networksettings.portforwardinghelp = Si votre routeur ne peut pas \u00EAtre configur\u00E9 automatiquement, vous pouvez le faire manuellement en suivant \ les instructions de portforward.com. \ @@ -391,7 +391,7 @@ transcodingsettings.info =

                        (%s = Le fichier \u00E0 encoder, %b requiert aucun usage du disque dur.

                        \

                        L''encodage peut se faire en ligne de commande \u00E0 l''aide d'un programme tiers qui peut \u00EAtre install\u00E9 dans Libresonic. \ Un pack d''encodage pour Windows \ - est disponible ici. Vous pouvez ajouter votre propre encodeur \ + est disponible ici. Vous pouvez ajouter votre propre encodeur \ s''il remplit les conditions suivantes : \

                          \
                        • avoir une interface en ligne de commande.
                        • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_is.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_is.properties similarity index 98% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_is.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_is.properties index 7cf7afb1..2e035d51 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_is.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_is.properties @@ -45,7 +45,7 @@ top.more = Meira top.help = Hj\u00E1lp top.search = Leita top.upgrade = N\u00FDrri \u00DAtg\u00E1fa er tilb\u00FAin. S\u00E6kja {0} {1} \ - H\u00E9r. + H\u00E9r. top.missing = Engar T\u00F3nlistarskr\u00E1r Fundust. Vinsamlegast Breyttu Stillingunum. top.logout = \u00DAtskr\u00E1 {0} @@ -164,13 +164,13 @@ upload.unzipped = Af\u00FEjappa\u00F0 {0} # help.jsp help.title = Um {0} help.upgrade = A.T.H! N\u00FDrri \u00DAtg\u00E1fa er tilb\u00FAin.
                          S\u00E6kja {0} {1} \ - H\u00E9r. + H\u00E9r. help.version.title = \u00DAtg\u00E1fa help.builddate.title = Sm\u00ED\u00F0i Dags help.server.title = \u00DEj\u00F3nn help.license.title = Leifi help.license.text = {0} er \u00F3keypis hugb\u00FAna\u00F0i er dreift samkv\u00E6mt GPL open-source license. \ - {0} Nota\u00F0u licensed third-party libraries. + {0} Nota\u00F0u licensed third-party libraries. help.homepage.title = Heimas\u00ED\u00F0a help.forum.title = Spjallbor\u00F0 help.shop.title = V\u00F6rur @@ -178,7 +178,7 @@ help.contact.title = Hafa Samband help.contact.text = {0} er \u00FEr\u00F3a\u00F0 og vi\u00F0haldi\u00F0 af Sindre Mehus \ (sindre@activeobjects.no). \ Ef \u00FE\u00FA hefur einhverjar spurningar, athugasemdir e\u00F0a till\u00F6gur til \u00FArb\u00F3ta, skaltu fara \u00E1 \ - Subsonic Spjallbor\u00F0. + Libresonic Spjallbor\u00F0. help.log = Yfirlit help.logfile = Tilb\u00FAi\u00F0 Yfirlit er Vista\u00F0 \u00ED {0}. @@ -293,7 +293,7 @@ transcodingsettings.info =

                          (%s = Eftirfarandi Skr\u0 \u00FEurfa allir diskur notkun.

                          \

                          raunverulegur transcoding er gert vi\u00F0 \u00FEri\u00F0ja a\u00F0ila stj\u00F3rn l\u00EDna forrit ver\u00F0ur a\u00F0 vera uppsett \u00ED {0}. \ transcoding Pakki Fyrir Windows \ - F\u00E6st H\u00E9r. \u00DE\u00FA getur b\u00E6tt eigin s\u00E9rsni\u00F0num transcoder \u00FEinn gefi\u00F0 \u00FEa\u00F0 \ + F\u00E6st H\u00E9r. \u00DE\u00FA getur b\u00E6tt eigin s\u00E9rsni\u00F0num transcoder \u00FEinn gefi\u00F0 \u00FEa\u00F0 \ fulln\u00E6gja eftirfarandi kr\u00F6fum: \

                            \
                          • \u00DEa\u00F0 ver\u00F0ur a\u00F0 hafa stj\u00F3rn l\u00EDna tengi.
                          • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_it.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_it.properties similarity index 96% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_it.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_it.properties index d141b7e5..e4422460 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_it.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_it.properties @@ -45,7 +45,7 @@ top.more = Di pi\u00F9 top.help = Aiuto top.search = Ricerca top.upgrade = E' disponibile una nuova versione. Scaricala {0} {1} \ - qui. + qui. top.missing = Non \u00E8 stata trovata nessuna cartella contenente musica, verifica le impostazioni. top.logout = Esci {0} @@ -111,7 +111,7 @@ search.hits.songs = Canzoni gettingStarted.title = Comincia ad utilizzare Libresonic gettingStarted.text =

                            Benvenuto in Libresonic! La configurazione non ti porter\u00E0 via tempo, baster\u00E0 seguire i semplici passaggi riportati di seguito.
                            \ Premi il bottone "Casa" nella barra degl strumenti qui sopra per tornare a questa schermata.

                            \ -

                            Per maggiori informazioni, per favore consulta la guida Comincia ad utilizzare Libresonic.

                            +

                            Per maggiori informazioni, per favore consulta la guida Comincia ad utilizzare Libresonic.

                            gettingStarted.step1.title = Cambia la password di amministrazione. gettingStarted.step1.text = Cambiando la password predefinita dell'utente di amministrazione renderai pi\u00F9 sicuro il tuo server. \ Puoi anche scegliere di creare un altro utente con differenti privilegi di amministrazione. @@ -119,7 +119,7 @@ gettingStarted.step2.title = Imposta le cartelle della musica. gettingStarted.step2.text = Di' a Libresonic dove tieni la tua musica. gettingStarted.step3.title = Configura le imposatzioni di rete. gettingStarted.step3.text = Qualche utile impostazione ti permetter\u00E0 di apprezzare la tua musica in via remota tramite internet, \ - o di condividerla con la famiglia e gli amici. Ottieni il tuo indirizzo personale tuonome.subsonic.org. + o di condividerla con la famiglia e gli amici. Ottieni il tuo indirizzo personale tuonome.libresonic.org. gettingStarted.hide = Non mostrare questa schermata di nuovo. gettingStarted.hidealert = Per visualizzare nuovamente la schermata, vai in Impostazioni > Generale. @@ -160,8 +160,8 @@ more.random.year = e anno more.random.anyyear = Qualsiasi more.random.folder = nella cartella more.random.anyfolder = Qualsiasi -more.apps.title = Applicazioni Subsonic -more.apps.text =

                            Le applicazioni Subsonic sono disponibili per iPhone, \ +more.apps.title = Applicazioni Libresonic +more.apps.text =

                            Le applicazioni Libresonic sono disponibili per iPhone, \ Android e AIR.

                            more.mobile.title = Telefono cellulare more.mobile.text =

                            Puoi controllare {0} da qualsiasi telefono cellulare o PDA con WAP abilitato.
                            \ @@ -190,13 +190,13 @@ upload.unzipped = Zip estratto {0} # help.jsp help.title = Riguardo {0} help.upgrade = Attenzione! Una nuova versione \u00E8 disponibile. Scaricala {0} {1} \ - qui. + qui. help.version.title = Versione help.builddate.title = Data di build help.server.title = Server help.license.title = Termini di utilizzo help.license.text = {0} \u00E8 un software libero distribuito sotto i termini della licenza open source GPL. \ - {0} utilizza librerie autorizzate di terze parti. Per favore ricorda che {0} non \u00E8 \ + {0} utilizza librerie autorizzate di terze parti. Per favore ricorda che {0} non \u00E8 \ uno strumento per la distribuzione illegale di materiale coperto dal diritto d'autore. Rispetta sempre le disciplina legale pertinente per il tuo Paese. help.homepage.title = Homepage help.forum.title = Forum @@ -205,7 +205,7 @@ help.contact.title = Contatti help.contact.text = {0} \u00E8 sviluppato e mantenuto da Sindre Mehus \ (sindre@activeobjects.no). \ Se hai domande, commenti o suggerimenti per migliorare il programma, visita il \ - Forum di Subsonic. + Forum di Libresonic. help.log = Log help.logfile = Il file di log completo \u00E8 salvato in {0}. @@ -307,7 +307,7 @@ musicfoldersettings.nopath = Specifica una cartella. # networkSettings.jsp networksettings.text = Utilizza le impostazioni qui sotto per regolare l'accesso a Libresonic da internet.
                            \ - Se hai problemi, per favore consulta la guida di Introduzione a Libresonic. + Se hai problemi, per favore consulta la guida di Introduzione a Libresonic. networksettings.portforwardingenabled = Configura automaticamente il tuo router per permettere le connessioni in entrata per Libresonic (utilizzando il port forwarding UPnP o NAT-PMP). networksettings.portforwardinghelp = Se il tuo router non \u00E8 configurabile automaticamente, puoi configurarlo manualmente. \ Segui le istruzioni su portforward.com. \ @@ -334,7 +334,7 @@ transcodingsettings.info =

                            (%s = File da convertire, %b = Bitr necessita di alcun utilizzo del disco.

                            \

                            Attualmente il transcoding attuale \u00E8 fatto da programmi a linea di comando di terze parti, che, dunque, devono essere installati in {0}. \ Un pacchetto di Transcofing per Windows \ - \u00E8 disponibile qui. Puoi aggiungere i tuoi transcoder personalizzati \ + \u00E8 disponibile qui. Puoi aggiungere i tuoi transcoder personalizzati \ purch\u00E9 soddisfino i seguenti requisiti: \

                              \
                            • Devono avere una interfaccia a linea di comando.
                            • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ja_JP.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ja_JP.properties similarity index 95% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ja_JP.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ja_JP.properties index a65e08c9..d63ba0f5 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ja_JP.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ja_JP.properties @@ -71,7 +71,7 @@ top.more = \u305D\u306E\u4ED6 top.help = \u30D8\u30EB\u30D7 top.search = \u691C\u7D22 top.upgrade = \u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u30EA\u30EA\u30FC\u30B9\u3055\u308C\u3066\u3044\u307E\u3059\u3002{0} {1} \ - \u3092\u3053\u3053\u304B\u3089\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + \u3092\u3053\u3053\u304B\u3089\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u304F\u3060\u3055\u3044\u3002 top.missing = \u97F3\u697D\u30D5\u30A9\u30EB\u30C0\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u8A2D\u5B9A\u3092\u898B\u76F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002 top.logout = {0} \u3092\u30ED\u30B0\u30A2\u30A6\u30C8\u3059\u308B top.getpremium = Subsonic Premium\u306B\u767B\u9332 @@ -179,9 +179,9 @@ search.hits.videos = \u30D3\u30C7\u30AA gettingStarted.title = \u306F\u3058\u3081\u306B gettingStarted.text =

                              \u3088\u3046\u3053\u305D Libresonic\u3078! \u4E0B\u8A18\u306E\u624B\u9806\u3067\u57FA\u672C\u7684\u306A\u8A2D\u5B9A\u304C\u3067\u304D\u307E\u3059\u3002
                              \ \u3053\u306E\u753B\u9762\u306B\u623B\u308B\u306B\u306F\u3001\u4E0A\u306B\u3042\u308B\u30C4\u30FC\u30EB\u30D0\u30FC\u306E\u300C\u30DB\u30FC\u30E0\u300D\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002

                              \ -

                              \u8A73\u7D30\u306B\u3064\u3044\u3066\u306F\u3001Getting started \u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002

                              +

                              \u8A73\u7D30\u306B\u3064\u3044\u3066\u306F\u3001Getting started \u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002

                              gettingStarted.root = \u8B66\u544A! Libresonic \u306E\u30D7\u30ED\u30BB\u30B9\u304C\u30EB\u30FC\u30C8\u6A29\u9650\u3067\u5B9F\u884C\u3055\u308C\u3066\u3044\u307E\u3059\u3002\ - \u3053\u306E\u8A2D\u5B9A\u3092\u5909\u66F4\u3059\u308B\u3053\u3068\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + \u3053\u306E\u8A2D\u5B9A\u3092\u5909\u66F4\u3059\u308B\u3053\u3068\u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044\u3002 gettingStarted.step1.title = \u7BA1\u7406\u8005\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5909\u66F4\u3057\u307E\u3059\u3002 gettingStarted.step1.text = \u7BA1\u7406\u8005\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5909\u66F4\u3059\u308B\u3053\u3068\u3067\u3001\u30B5\u30FC\u30D0\u3092\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3092\u9AD8\u3081\u3066\u304F\u3060\u3055\u3044\u3002 \ \u307E\u305F\u3001\u5225\u306E\u6A29\u9650\u3092\u6301\u3064\u65B0\u3057\u3044\u30E6\u30FC\u30B6\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u4F5C\u6210\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 @@ -189,7 +189,7 @@ gettingStarted.step2.title = \u30E1\u30C7\u30A3\u30A2\u30D5\u30A9\u30EB\u30C0\u3 gettingStarted.step2.text = \u697D\u66F2\u3068\u30D3\u30C7\u30AA\u306E\u4FDD\u5B58\u5834\u6240\u3092\u767B\u9332\u3057\u307E\u3059\u3002 gettingStarted.step3.title = \u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u8A2D\u5B9A\u3092\u884C\u3044\u307E\u3059\u3002 gettingStarted.step3.text = \u30A4\u30F3\u30BF\u30FC\u30CD\u30C3\u30C8\u7D4C\u7531\u3067\u97F3\u697D\u3092\u697D\u3057\u3093\u3060\u308A\u3001\u5BB6\u65CF\u3084\u53CB\u4EBA\u3068\u97F3\u697D\u3092\u5171\u6709\u3057\u305F\u3044\u5834\u5408\u306B\u4FBF\u5229\u306A\u3001\ - \u3042\u306A\u305F\u5C02\u7528\u306E\u30A2\u30C9\u30EC\u30B9 yourname.subsonic.org \ + \u3042\u306A\u305F\u5C02\u7528\u306E\u30A2\u30C9\u30EC\u30B9 yourname.libresonic.org \ \u3092\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002 gettingStarted.hide = \u6B21\u304B\u3089\u8868\u793A\u3057\u306A\u3044 gettingStarted.hidealert = \u3053\u306E\u753B\u9762\u3092\u518D\u5EA6\u8868\u793A\u3059\u308B: \u53C2\u7167 \u8A2D\u5B9A > \u4E00\u822C @@ -239,12 +239,12 @@ more.random.year = \u5E74\u4EE3: more.random.anyyear = \u4EFB\u610F more.random.folder = \u30D5\u30A9\u30EB\u30C0: more.random.anyfolder = \u4EFB\u610F -more.apps.title = Subsonic Apps -more.apps.text =

                              Subsonic apps \u306E\u5145\u5B9F\u306B\u6CE8\u76EE\u3057\u3066\u3044\u3066\u304F\u3060\u3055\u3044\u3002\ +more.apps.title = Libresonic Apps +more.apps.text =

                              Libresonic apps \u306E\u5145\u5B9F\u306B\u6CE8\u76EE\u3057\u3066\u3044\u3066\u304F\u3060\u3055\u3044\u3002\ \u3053\u308C\u3089\u306E\u30A2\u30D7\u30EA\u7FA4\u306F\u3001\u305F\u3068\u3048\u3042\u306A\u305F\u304C\u3069\u3053\u306B\u3044\u3066\u3082\u97F3\u697D\u3092\u697D\u3057\u3080\u559C\u3073\u3068\u69D8\u3005\u306A\u624B\u6BB5\u3092\u63D0\u4F9B\u3057\u307E\u3059\u3002\ \u30A2\u30D7\u30EA\u306F Android, iPhone, Windows Phone, BlackBerry, Roku, \u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u7528\u610F\u3055\u308C\u3066\u3044\u307E\u3059\u3002

                              more.jamstash.title = JamStash -more.jamstash.text =

                              Jamstash \u306F Subsonic \u306E\u305F\u3081\u306E HTML5\u30D7\u30EC\u30FC\u30E4\u3067\u3059\u3002\u5229\u7528\u3059\u308B\u306B\u306F\u3053\u3053\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002 \ +more.jamstash.text =

                              Jamstash \u306F Libresonic \u306E\u305F\u3081\u306E HTML5\u30D7\u30EC\u30FC\u30E4\u3067\u3059\u3002\u5229\u7528\u3059\u308B\u306B\u306F\u3053\u3053\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002 \ \u307E\u305F\u3001Chrome\u30D6\u30E9\u30A6\u30B6\u306E\u30A2\u30D7\u30EA\u3068\u3057\u3066\u5229\u7528\u3067\u304D\u307E\u3059\u3002

                              more.status.title = \u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306E\u72B6\u614B more.status.text = \u30E1\u30C7\u30A3\u30A2\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u4E2D\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u306E\u72B6\u614B \u3092\u898B\u308B\u3002 @@ -274,7 +274,7 @@ upload.unzipped = zip\u30D5\u30A1\u30A4\u30EB {0} \u3092\u5C55\u958B\u3057\u307E # help.jsp help.title = {0} \u306B\u3064\u3044\u3066 help.upgrade = \u6CE8\u610F! \u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u30EA\u30EA\u30FC\u30B9\u3055\u308C\u3066\u3044\u307E\u3059\u3002
                              {0} {1} \ - \u3092\u3053\u3053\u304B\u3089\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + \u3092\u3053\u3053\u304B\u3089\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3066\u304F\u3060\u3055\u3044\u3002 help.premium.title = \u30E9\u30A4\u30BB\u30F3\u30B9 help.premium.expires = (\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u671F\u9650 {0}) help.premium.upgrade = Subsonic Premium \u306B\u767B\u9332\u3057\u3066 \u5168\u6A5F\u80FD \u3092\u304A\u697D\u3057\u307F\u304F\u3060\u3055\u3044! @@ -284,9 +284,9 @@ help.builddate.title = \u30D3\u30EB\u30C9\u65E5 help.server.title = \u30B5\u30FC\u30D0 help.license.title = \u30E9\u30A4\u30BB\u30F3\u30B9 help.license.text = {0} \u306F GPL \u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u4E0B\u306B\u914D\u5E03\u3055\u308C\u308B\u30D5\u30EA\u30FC\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u3067\u3059\u3002 \ - {0} \u306F \u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u306E\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u5404\u3005\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u306B\u5247\u3063\u3066\u5229\u7528\u3057\u3066\u3044\u307E\u3059\u3002
                              \ + {0} \u306F \u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u306E\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u5404\u3005\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u306B\u5247\u3063\u3066\u5229\u7528\u3057\u3066\u3044\u307E\u3059\u3002
                              \ {0} is free software distributed under the GPL open-source license. \ - {0} uses licensed third-party libraries. + {0} uses licensed third-party libraries. help.homepage.title = \u30DB\u30FC\u30E0\u30DA\u30FC\u30B8 help.forum.title = \u30D5\u30A9\u30FC\u30E9\u30E0 help.shop.title = \u30B7\u30E7\u30C3\u30D7 @@ -294,11 +294,11 @@ help.contact.title = \u9023\u7D61\u65B9\u6CD5 help.contact.text = {0} \u306F Sindre Mehus (sindre@activeobjects.no) \ \u306B\u3088\u3063\u3066\u958B\u767A\u30FB\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\u3055\u308C\u3066\u3044\u307E\u3059\u3002\ \u8CEA\u554F\u3084\u30B3\u30E1\u30F3\u30C8\u3001\u610F\u898B\u3001\u6539\u5584\u6848\u304C\u3042\u308C\u3070 \ - \u30D5\u30A9\u30FC\u30E9\u30E0\u3078\u3069\u3046\u305E\u3002
                              \ + \u30D5\u30A9\u30FC\u30E9\u30E0\u3078\u3069\u3046\u305E\u3002
                              \ {0} is developed and maintained by Sindre Mehus \ (sindre@activeobjects.no). \ If you have any questions, comments or suggestions for improvements, please visit the \ - Subsonic Forum. + Libresonic Forum. help.log = \u30ED\u30B0 help.logfile = \u30ED\u30B0\u306E\u6700\u7D42\u66F4\u65B0\u6642\u9593: {0} @@ -430,7 +430,7 @@ musicfoldersettings.organizebyfolderstructure.description = \u30C7\u30A3\u30EC\u # networkSettings.jsp networksettings.text = \u30A4\u30F3\u30BF\u30FC\u30CD\u30C3\u30C8\u7D4C\u7531\u3067 Libresonic \u30B5\u30FC\u30D0\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u65B9\u6CD5\u3092\u5236\u5FA1\u3059\u308B\u305F\u3081\u306B\u306F\u3001\u4EE5\u4E0B\u306E\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
                              \ - \u554F\u984C\u304C\u767A\u751F\u3057\u305F\u5834\u5408\u306F Getting started \u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + \u554F\u984C\u304C\u767A\u751F\u3057\u305F\u5834\u5408\u306F Getting started \u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002 networksettings.portforwardingenabled = \u81EA\u52D5\u7684\u306B Libresonic \u3078\u306E\u63A5\u7D9A\u3092\u8A31\u53EF(UPnP\u307E\u305F\u306FNAT-PMP\u306E\u30DD\u30FC\u30C8\u8EE2\u9001\u3092\u4F7F\u7528)\u3059\u308B\u3088\u3046\u306B\u30EB\u30FC\u30BF\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002 networksettings.portforwardinghelp = \u30EB\u30FC\u30BF\u304C\u81EA\u52D5\u7684\u306B\u8A2D\u5B9A\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u3001\u624B\u52D5\u3067\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\ portforward.com \u306E\u6307\u793A\u306B\u5F93\u3063\u3066\u304F\u3060\u3055\u3044\u3002\ @@ -459,7 +459,7 @@ transcodingsettings.info =

                              (%s = \u5909\u63DB\u5143\u30D5\u30A \u672C\u6765\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u518D\u751F\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u66F2\u3067\u3082\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u518D\u751F\u3067\u304D\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059\u3002 \ \u30C8\u30E9\u30F3\u30B9\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u305D\u306E\u90FD\u5EA6\u884C\u308F\u308C\u3001\u30C7\u30A3\u30B9\u30AF\u5BB9\u91CF\u306F\u6D88\u8CBB\u3057\u307E\u305B\u3093\u3002

                              \

                              \u5B9F\u969B\u306E\u30C8\u30E9\u30F3\u30B9\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u4F5C\u696D\u3092\u884C\u3046\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u306F\u3001 {0} \u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304A\u304F\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\ - Windows\u3067\u306F \u3053\u3053 \ + Windows\u3067\u306F \u3053\u3053 \ \u304B\u3089\u30C8\u30E9\u30F3\u30B9\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u7528\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u30D1\u30C3\u30AF\u3092\u5165\u624B\u3067\u304D\u307E\u3059\u3002\ \u307E\u305F\u3001\u6B21\u306E\u8981\u6C42\u6A5F\u80FD\u3092\u6E80\u305F\u305B\u3070\u72EC\u81EA\u306E\u30C8\u30E9\u30F3\u30B9\u30B3\u30FC\u30C0\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002\

                                \ @@ -538,7 +538,7 @@ sonossettings.description = Sonos \u306E\u30DF\u30E5\u30FC\u30B8\u30C3\u30AF\u30 Sonos \u306E\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u304B\u3089\u30DF\u30E5\u30FC\u30B8\u30C3\u30AF\u30B5\u30FC\u30D3\u30B9\u3068\u3057\u3066 \ Libresonic \u3092\u52A0\u3048\u308B\u3053\u3068\u3092\u5FD8\u308C\u306A\u3044\u3067\u304F\u3060\u3055\u3044\u3002\ \u3082\u3063\u3068\u591A\u304F\u306E\u60C5\u5831\u3084\u30C8\u30E9\u30D6\u30EB\u30B7\u30E5\u30FC\u30C6\u30A3\u30F3\u30B0\u304C\u5FC5\u8981\u306A\u3089 \ - sonos.subsonic.org \ + sonos.libresonic.org \ \u3092\u8A2A\u554F\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u30ED\u30B0\u3092\u78BA\u8A8D\u3059\u308B\u3053\u3068\u3082\u304A\u3059\u3059\u3081\u3057\u307E\u3059\u3002 sonossettings.servicename = \u30DF\u30E5\u30FC\u30B8\u30C3\u30AF\u30B5\u30FC\u30D3\u30B9\u540D sonossettings.servicename.description = \u305D\u308C\u306FSonos\u306E\u30B3\u30F3\u30C8\u30ED\u30FC\u30E9\u30FC\u306B\u8868\u793A\u3055\u308C\u308B\u97F3\u697D\u30B5\u30FC\u30D3\u30B9\u306E\u540D\u524D\u3067\u3059\u3002 @@ -679,7 +679,7 @@ share.facebook = Facebook \u3067\u5171\u6709 share.twitter = Twitter \u3067\u5171\u6709 share.googleplus = Google+ \u3067\u5171\u6709 share.link = \u307E\u305F\u306F\u6B21\u306E\u30EA\u30F3\u30AF\u3092\u9001\u308B\u3053\u3068\u3067\u5171\u6709: {0} -share.disabled = \u3042\u306A\u305F\u306E\u66F2\u3092\u8AB0\u304B\u3068\u5171\u6709\u3059\u308B\u306B\u306F\u3001\u307E\u305A\u3042\u306A\u305F\u56FA\u6709\u306Esubsonic.org \u30A2\u30C9\u30EC\u30B9\u3092\u767B\u9332\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
                                \ +share.disabled = \u3042\u306A\u305F\u306E\u66F2\u3092\u8AB0\u304B\u3068\u5171\u6709\u3059\u308B\u306B\u306F\u3001\u307E\u305A\u3042\u306A\u305F\u56FA\u6709\u306Elibresonic.org \u30A2\u30C9\u30EC\u30B9\u3092\u767B\u9332\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
                                \ \u53C2\u7167: \u8A2D\u5B9A > \u30CD\u30C3\u30C8\u30EF\u30FC\u30AF (\u7BA1\u7406\u8005\u6A29\u9650\u304C\u5FC5\u8981\u3067\u3059) share.manage = \u5171\u6709\u30E1\u30C7\u30A3\u30A2\u306E\u7BA1\u7406 @@ -688,11 +688,11 @@ premium.title = Subsonic Premium premium.invalidlicense = \u7121\u52B9\u306A\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u3067\u3059\u3002 premium.text =

                                Subsonic Premium \u306B\u767B\u9332\u3059\u308B\u3068\u3001\u4EE5\u4E0B\u306E\u6A5F\u80FD\u304C\u5229\u7528\u3067\u304D\u307E\u3059:

                                \
                                  \ -
                                • Android, iPhone, Blackberry \u3084 Windows Phone* \u7B49\u306E\u30A2\u30D7\u30EA\u3067\u518D\u751F\u3002
                                • \ -
                                • Mac, Windows, Chrome, Roku, \u305D\u306E\u4ED6* \u7528\u306E\u30A2\u30D7\u30EA\u3067\u518D\u751F\u3002
                                • \ +
                                • Android, iPhone, Blackberry \u3084 Windows Phone* \u7B49\u306E\u30A2\u30D7\u30EA\u3067\u518D\u751F\u3002
                                • \ +
                                • Mac, Windows, Chrome, Roku, \u305D\u306E\u4ED6* \u7528\u306E\u30A2\u30D7\u30EA\u3067\u518D\u751F\u3002
                                • \
                                • \u30D3\u30C7\u30AA\u30B9\u30C8\u30EA\u30FC\u30DF\u30F3\u30B0\u518D\u751F\u3002
                                • \
                                • Podcast \u306E\u53D7\u4FE1\u3002
                                • \ -
                                • \u3042\u306A\u305F\u56FA\u6709\u306E\u30B5\u30FC\u30D0\u30A2\u30C9\u30EC\u30B9: yourname.subsonic.org \u306E\u4F7F\u7528(\u53C2\u7167: \u8A2D\u5B9A > \u30CD\u30C3\u30C8\u30EF\u30FC\u30AF)\u3002
                                • \ +
                                • \u3042\u306A\u305F\u56FA\u6709\u306E\u30B5\u30FC\u30D0\u30A2\u30C9\u30EC\u30B9: yourname.libresonic.org \u306E\u4F7F\u7528(\u53C2\u7167: \u8A2D\u5B9A > \u30CD\u30C3\u30C8\u30EF\u30FC\u30AF)\u3002
                                • \
                                • DLNA/UPnP \u4E92\u63DB\u30C7\u30D0\u30A4\u30B9\u3067\u97F3\u697D\u3092\u518D\u751F\u3002
                                • \
                                • Facebook, Twitter, Google+ \u3067\u97F3\u697D\u3092\u5171\u6709\u3002
                                • \
                                • \u30A6\u30A7\u30D6\u753B\u9762\u3067\u306E\u5E83\u544A\u306E\u975E\u8868\u793A\u3002
                                • \ @@ -706,7 +706,7 @@ premium.licensedexpired = Subsonic Premium \u30E9\u30A4\u30BB\u30F3\u30B9\u306E\ premium.licensedto = \u30E9\u30A4\u30BB\u30F3\u30B9\u306F {0} \u306B\u767B\u9332\u3055\u308C\u307E\u3057\u305F\u3002 premium.forcechange = \u5225\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u3092\u767B\u9332\u3059\u308B premium.register = Subsonic Premium \u306B\u767B\u9332\u3059\u308B\u5834\u5408\u306F\u3001\u30E1\u30FC\u30EB\u3067\u53D7\u3051\u53D6\u3063\u305F\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u3092\u3001\u4E0B\u6B04\u306B\u5165\u529B\u3057 OK \u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u307E\u3059\u3002 -premium.resend = \u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u3092\u5931\u304F\u3057\u307E\u3057\u305F\u304B? \u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u3092\u518D\u53D6\u5F97\u3059\u308B\u3002 +premium.resend = \u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u3092\u5931\u304F\u3057\u307E\u3057\u305F\u304B? \u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u3092\u518D\u53D6\u5F97\u3059\u308B\u3002 premium.register.email = \u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9 premium.register.license = \u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ko.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ko.properties similarity index 96% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ko.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ko.properties index 7530438f..a8a28c49 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ko.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ko.properties @@ -69,7 +69,7 @@ top.more = \uB354\uBCF4\uAE30 top.help = About top.search = \uAC80\uC0C9 top.upgrade = \uC54C\uB9BC! \uC0C8\uB85C\uC6B4 \uBC84\uC804\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
                                  \uB2E4\uC6B4\uB85C\uB4DC {0} {1} \ - \uC5EC\uAE30. + \uC5EC\uAE30. top.missing = \uC9C0\uC815\uB41C \uC74C\uC545 \uC800\uC7A5\uC18C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uC124\uC815\uC744 \uD655\uC778\uD574\uC8FC\uC138\uC694. top.logout = {0} \uB85C\uADF8\uC544\uC6C3 top.getpremium = \uC11C\uBE0C\uC18C\uB2C9 \uD504\uB9AC\uBBF8\uC5C4 \uC5BB\uAE30 @@ -174,9 +174,9 @@ search.hits.songs = \uB178\uB798 gettingStarted.title = \uC2DC\uC791\uD558\uAE30 gettingStarted.text =

                                  \uC11C\uBE0C\uC18C\uB2C9\uC5D0 \uC624\uC2E0 \uAC83\uC744 \uD658\uC601\uD569\uB2C8\uB2E4.! \uBA87\uAC00\uC9C0\uC758 \uAC04\uB2E8\uD55C \uB2E8\uACC4\uB9CC \uB530\uB77C\uD558\uC2DC\uBA74 \uC124\uC815\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
                                  \ \uC774 \uD654\uBA74\uC744 \uBCF4\uACE0 \uC2F6\uC73C\uBA74 \uC5B8\uC81C\uB77C\uB3C4 \uC0C1\uB2E8\uC758 \uD648\uBC84\uD2BC\uC744 \uB20C\uB7EC\uC8FC\uC138\uC694..

                                  \ -

                                  \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uB3C4\uC6C0\uB9D0\uC744 \uCC38\uC870\uD558\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.\uC2DC\uC791\uD558\uAE30

                                  +

                                  \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 \uB3C4\uC6C0\uB9D0\uC744 \uCC38\uC870\uD558\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.\uC2DC\uC791\uD558\uAE30

                                  gettingStarted.root = Warning! The Libresonic process is running as the root user. Please consider to \ - change this. + change this. gettingStarted.step1.title = \uAD00\uB9AC\uC790 \uC554\uD638 \uBCC0\uACBD\uD558\uAE30. gettingStarted.step1.text = \uAD00\uB9AC\uC790 \uC554\uD638\uB97C \uBCC0\uACBD\uD568\uC73C\uB85C\uC368 \uB2F9\uC2E0\uC758 \uC11C\uBC84\uB97C \uB354\uC6B1 \uC548\uC804\uD558\uAC8C \uB9CC\uB4E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \ \uC11C\uB85C \uB2E4\uB978 \uAD8C\uD55C\uC744 \uAC00\uC9C4 \uC0AC\uC6A9\uC790\uB97C \uB9CC\uB4E4 \uC218 \uC788\uC2B5\uB2C8\uB2E4. @@ -184,7 +184,7 @@ gettingStarted.step2.title = \uBBF8\uB514\uC5B4 \uD3F4\uB354 \uC124\uC815\uD558\ gettingStarted.step2.text = \uC11C\uBE0C\uC18C\uB2C9\uC5D0\uAC8C \uB2F9\uC2E0\uC758 \uBBF8\uB514\uC5B4\uAC00 \uC5B4\uB514\uC5D0 \uC800\uC7A5\uB418\uC5B4 \uC788\uB294\uC9C0 \uC54C\uB824\uC8FC\uC2ED\uC2DC\uC624. gettingStarted.step3.title = \uB124\uD2B8\uC6CC\uD06C \uC124\uC815\uD558\uAE30. gettingStarted.step3.text = \uB2F9\uC2E0\uC774 \uC778\uD130\uB137\uC744 \uD1B5\uD574 \uC74C\uC545\uC744 \uC990\uAE30\uAC70\uB098 \uCE5C\uAD6C\uC640 \uAC00\uC871\uACFC \uACF5\uC720\uD558\uB824\uB294 \uACBD\uC6B0\uC5D0\uB294 \uC774 \uC124\uC815\uC774 \uC720\uC6A9\uD569\uB2C8\uB2E4. \ - \uB2F9\uC2E0\uC758 \uC774\uB984.subsonic.org \uC758 \uC8FC\uC18C\uB97C \uC774\uC6A9\uD558\uC138\uC694. + \uB2F9\uC2E0\uC758 \uC774\uB984.libresonic.org \uC758 \uC8FC\uC18C\uB97C \uC774\uC6A9\uD558\uC138\uC694. gettingStarted.hide = \uB2E4\uC2DC \uBCF4\uC9C0 \uC54A\uAE30 gettingStarted.hidealert = \uC774 \uD654\uBA74\uC744 \uB2E4\uC2DC \uBCF4\uACE0 \uC2F6\uB2E4\uBA74 \uC124\uC815 > \uC77C\uBC18 \uC744 \uCC38\uC870\uD558\uC138\uC694. @@ -230,7 +230,7 @@ more.random.anyyear = \uBAA8\uB4E0 more.random.folder = \uC800\uC7A5\uC18C\uC5D0 more.random.anyfolder = \uBAA8\uB4E0 more.apps.title = \uC11C\uBE0C\uC18C\uB2C9 \uC571\uC2A4 -more.apps.text =

                                  \uC11C\uBE0C\uC18C\uB2C9 \uC571\uC2A4 \uC544\uC774\uD3F0, \ +more.apps.text =

                                  \uC11C\uBE0C\uC18C\uB2C9 \uC571\uC2A4 \uC544\uC774\uD3F0, \ \uC548\uB4DC\uB85C\uC774\uB4DC \uC640 AIR\uC5D0\uC11C \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.

                                  more.minisub.title = \uBBF8\uB2C8\uC11C\uBE0C more.minisub.text =

                                  \uBBF8\uB2C8\uC11C\uBC84 \uB294 \uC11C\uBE0C\uC18C\uB2C9\uC744 \uC704\uD55C HTML5 \uC18C\uD615 \uC7AC\uC0DD\uAE30\uC785\uB2C8\uB2E4. \ @@ -263,7 +263,7 @@ upload.unzipped = \uC555\uCD95\uC744 \uD480\uC5C8\uC2B5\uB2C8\uB2E4. {0} # help.jsp help.title = About {0} help.upgrade = \uC54C\uB9BC! \uC0C8\uB85C\uC6B4 \uBC84\uC804\uC774 \uB098\uC654\uC2B5\uB2C8\uB2E4. \uB2E4\uC6B4\uB85C\uB4DC {0} {1} \ - \uC5EC\uAE30. + \uC5EC\uAE30. help.premium.title = \uB77C\uC774\uC13C\uC2A4 help.premium.expires = ({0} \uB9CC\uB8CC) help.premium.upgrade = \uC11C\uBE0C\uC18C\uB2C9 \uD504\uB9AC\uBBF8\uC5C4 \uC73C\uB85C \uC5C5\uADF8\uB808\uC774\uB4DC\uD558\uC5EC \uB9CE\uC740 \uD655\uC7A5 \uAE30\uB2A5\uB4E4 \uC744 \uC0AC\uC6A9\uD574\uBCF4\uC138\uC694! @@ -273,7 +273,7 @@ help.builddate.title = \uBE4C\uB4DC \uB0A0\uC9DC help.server.title = \uC11C\uBC84 help.license.title = \uC774\uC6A9 \uC57D\uAD00 help.license.text = {0} is free software distributed under the GPL open-source license. \ - {0} uses licensed third-party libraries. Please note that {0} is not \ + {0} uses licensed third-party libraries. Please note that {0} is not \ a tool for illegal distribution of copyrighted material. Always pay attention to and follow the relevant laws specific to your country. help.homepage.title = \uD648\uD398\uC774\uC9C0 help.forum.title = \uD3EC\uB7FC @@ -282,7 +282,7 @@ help.contact.title = Contact help.contact.text = {0} is developed and maintained by Sindre Mehus \ (sindre@activeobjects.no). \ If you have any questions, comments or suggestions for improvements, please visit the \ - Subsonic Forum. + Libresonic Forum. help.log = \uB85C\uADF8 help.logfile = \uB85C\uADF8\uAC00 {0} \uC5D0 \uC815\uC0C1\uC801\uC73C\uB85C \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4. @@ -404,7 +404,7 @@ musicfoldersettings.organizebyfolderstructure.description = Use this option to b # networkSettings.jsp networksettings.text = \uC778\uD130\uB137\uC744 \uD1B5\uD574 \uC11C\uBE0C\uC18C\uB2C9 \uC11C\uBC84\uC5D0 \uC811\uADFC\uD558\uB294 \uBC29\uBC95\uC744 \uC124\uC815\uD569\uB2C8\uB2E4..
                                  \ - \uB9CC\uC57D \uC124\uC815\uC5D0 \uC774\uC0C1\uC774 \uC788\uB2E4\uBA74 \uAC00\uC774\uB4DC\uB97C \uCC38\uACE0\uD558\uC2ED\uC2DC\uC624. \uC2DC\uC791\uD558\uAE30 + \uB9CC\uC57D \uC124\uC815\uC5D0 \uC774\uC0C1\uC774 \uC788\uB2E4\uBA74 \uAC00\uC774\uB4DC\uB97C \uCC38\uACE0\uD558\uC2ED\uC2DC\uC624. \uC2DC\uC791\uD558\uAE30 networksettings.portforwardingenabled = \uC11C\uBE0C\uC18C\uB2C9\uC5D0 \uC790\uB3D9\uC73C\uB85C \uC5F0\uACB0\uB418\uB3C4\uB85D \uB77C\uC6B0\uD130\uB97C \uAD6C\uC131\uD569\uB2C8\uB2E4. (UPnP \uB098 NAT-PMP \uD3EC\uD2B8 \uD3EC\uC6CC\uB529 \uC0AC\uC6A9\uD558\uAE30). networksettings.portforwardinghelp = \uB77C\uC6B0\uD130\uAC00 \uC790\uB3D9\uC73C\uB85C \uAD6C\uC131\uB418\uC9C0 \uC54A\uB294\uB2E4\uBA74 \uC218\uB3D9\uC73C\uB85C \uAD6C\uC131\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \ portforward.com \uC758 \uC9C0\uCE68\uC5D0 \uB530\uB974\uC2ED\uC2DC\uC624. \ @@ -432,7 +432,7 @@ transcodingsettings.info =

                                  (%s = \uBCC0\uD658\uD560 \uD30C\uC7 \uC5D4\uC9C4\uC740 \uC77C\uBC18\uC801\uC73C\uB85C \uC2A4\uD2B8\uB9AC\uBC0D\uC774 \uBD88\uAC00\uB2A5\uD55C \uBBF8\uB514\uC5B4\uB3C4 \uC2A4\uD2B8\uB9AC\uBC0D\uC774 \uAC00\uB2A5\uD558\uB3C4\uB85D \uD569\uB2C8\uB2E4. \uBCC0\uD658\uC740 \uBC14\uB85C \uC2E4\uD589\uB418\uBA70 \ \uCD94\uAC00\uC801\uC778 \uB514\uC2A4\uD06C \uACF5\uAC04\uC744 \uD544\uC694\uB85C \uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.

                                  \

                                  \uC2E4\uC81C \uBCC0\uD658\uC740 {0}\uC5D0 \uD0C0\uC0AC \uBA85\uB839\uC904 \uD504\uB85C\uADF8\uB7A8\uC774 \uC124\uCE58\uB418\uC5B4 \uC788\uC5B4\uC57C \uD569\uB2C8\uB2E4. \ - \uC708\uB3C4\uC6B0\uC6A9 \uBCC0\uD658 \uD328\uD0A4\uC9C0\uB294 \uC5EC\uAE30\uC5D0 \uC788\uC2B5\uB2C8\uB2E4. \ + \uC708\uB3C4\uC6B0\uC6A9 \uBCC0\uD658 \uD328\uD0A4\uC9C0\uB294 \uC5EC\uAE30\uC5D0 \uC788\uC2B5\uB2C8\uB2E4. \ \uC0AC\uC6A9\uC790 \uC815\uC758 \uBCC0\uD658 \uBC29\uBC95\uC740 \uC544\uB798\uC640 \uAC19\uC740 \uC0AC\uD56D\uC744 \uB9CC\uC871\uD574\uC57C \uD569\uB2C8\uB2E4. \

                                    \
                                  • \uBA85\uB839\uC904 \uC778\uD130\uD398\uC774\uC2A4\uB97C \uC0AC\uC6A9\uD574\uC57C \uD569\uB2C8\uB2E4.
                                  • \ @@ -637,7 +637,7 @@ share.facebook = \uD398\uC774\uC2A4\uBD81\uC5D0 \uACF5\uC720\uD558\uAE30 share.twitter = \uD2B8\uC704\uD130\uC5D0 \uACF5\uC720\uD558\uAE30 share.googleplus = \uAD6C\uAE00\uD50C\uB7EC\uC2A4\uC5D0 \uACF5\uC720\uD558\uAE30 share.link = \uC544\uB2C8\uBA74 \uADF8\uB4E4\uC5D0\uAC8C \uC774 \uB9C1\uD06C\uB97C \uBCF4\uB0B4\uC11C \uACF5\uC720\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. : {0} -share.disabled = \uBA3C\uC800 \uC790\uC2E0\uC758 subsonic.org \uC8FC\uC18C\uB97C \uB4F1\uB85D\uD574\uC57C \uB2E4\uB978 \uC0AC\uB78C\uACFC \uC74C\uC545\uC744 \uACF5\uC720 \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
                                    \ +share.disabled = \uBA3C\uC800 \uC790\uC2E0\uC758 libresonic.org \uC8FC\uC18C\uB97C \uB4F1\uB85D\uD574\uC57C \uB2E4\uB978 \uC0AC\uB78C\uACFC \uC74C\uC545\uC744 \uACF5\uC720 \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.
                                    \ \uC124\uC815 > \uB124\uD2B8\uC6CC\uD06C \uB85C \uC774\uB3D9\uD558\uC2ED\uC2DC\uC624 (\uAD00\uB9AC\uC790 \uAD8C\uD55C\uC774 \uD544\uC694\uD569\uB2C8\uB2E4). share.manage = \uB0B4 \uACF5\uC720 \uBBF8\uB514\uC5B4 \uAD00\uB9AC @@ -646,11 +646,11 @@ premium.title = \uC11C\uBE0C\uC18C\uB2C9 \uD504\uB9AC\uBBF8\uC5C4 premium.invalidlicense = \uC798\uBABB\uB41C \uB77C\uC774\uC13C\uC2A4 \uD0A4. premium.text =

                                    \uC774\uB7EC\uD55C \uCD94\uAC00 \uAE30\uB2A5\uC744 \uC990\uAE38 \uC218 \uC788\uB294 \uC11C\uBE0C\uC18C\uB2C9 \uD504\uB9AC\uBBF8\uC5C4\uC73C\uB85C \uC5C5\uADF8\uB808\uC774\uB4DC:

                                    \
                                      \ -
                                    • \uC571\uC2A4 \uC548\uB4DC\uB85C\uC774\uB4DC, \uC544\uC774\uD3EC, \uC708\uB3C4\uC6B0 \uBAA8\uBC14\uC77C.
                                    • \ -
                                    • \uC571\uC2A4 \uBE14\uB799\uBCA0\uB9AC, \uB85C\uCFE0, \uC708\uB3C4\uC6B0, \uD06C\uB86C \uB4F1.
                                    • \ +
                                    • \uC571\uC2A4 \uC548\uB4DC\uB85C\uC774\uB4DC, \uC544\uC774\uD3EC, \uC708\uB3C4\uC6B0 \uBAA8\uBC14\uC77C.
                                    • \ +
                                    • \uC571\uC2A4 \uBE14\uB799\uBCA0\uB9AC, \uB85C\uCFE0, \uC708\uB3C4\uC6B0, \uD06C\uB86C \uB4F1.
                                    • \
                                    • \uBE44\uB514\uC624 \uC2A4\uD2B8\uB9AC\uBC0D.
                                    • \
                                    • \uD31F\uCE90\uC2A4\uD2B8 \uC218\uC2E0\uAE30.
                                    • \ -
                                    • \uAC1C\uC778 \uC11C\uBC84 \uC8FC\uC18C: \uB2F9\uC2E0\uC758\uC774\uB984.subsonic.org (see \uC124\uC815 > \uB124\uD2B8\uC6CC\uD06C).
                                    • \ +
                                    • \uAC1C\uC778 \uC11C\uBC84 \uC8FC\uC18C: \uB2F9\uC2E0\uC758\uC774\uB984.libresonic.org (see \uC124\uC815 > \uB124\uD2B8\uC6CC\uD06C).
                                    • \
                                    • DLNA/UPnP \uD638\uD658 \uC7A5\uCE58\uC5D0\uC11C \uB2F9\uC2E0\uC758 \uBBF8\uB514\uC5B4\uB97C \uC7AC\uC0DD.
                                    • \
                                    • \uB2F9\uC2E0\uC758 \uBBF8\uB514\uC5B4\uB97C \uD398\uC774\uC2A4\uBD81, \uD2B8\uC704\uD130, \uAD6C\uAE00\uD50C\uB7EC\uC2A4\uC5D0 \uACF5\uC720.
                                    • \
                                    • \uC6F9 \uC778\uD130\uD398\uC774\uC2A4\uC758 \uAD11\uACE0\uC81C\uAC70.
                                    • \ @@ -664,7 +664,7 @@ premium.licensedexpired = \uB2F9\uC2E0\uC758 \uC11C\uBE0C\uC18C\uB2C9 \uD504\uB9 premium.licensedto = \uB77C\uC774\uC13C\uC2A4\uAC00 {0} \uC5D0 \uB4F1\uB85D\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4. premium.forcechange = \uC774\uAC83\uC744 \uBCC0\uACBD\uD569\uB2C8\uB2E4. premium.register = \uC11C\uBE0C\uC18C\uB2C9 \uD504\uB9AC\uBBF8\uC5C4\uC73C\uB85C \uC5C5\uADF8\uB808\uC774\uB4DC\uD560 \uB54C \uC774\uBA54\uC77C\uB85C \uB77C\uC774\uC13C\uC2A4\uD0A4\uB97C \uBC1B\uC2B5\uB2C8\uB2E4. \uC544\uB798\uC5D0 \uB4F1\uB85D\uD558\uC138\uC694. -premium.resend = \uB77C\uC774\uC13C\uC2A4\uD0A4\uB97C \uC78A\uC73C\uC168\uB098\uC694? \uB2E4\uC2DC \uBCF4\uB0B4\uAE30. +premium.resend = \uB77C\uC774\uC13C\uC2A4\uD0A4\uB97C \uC78A\uC73C\uC168\uB098\uC694? \uB2E4\uC2DC \uBCF4\uB0B4\uAE30. premium.register.email = \uC774\uBA54\uC77C premium.register.license = \uB77C\uC774\uC13C\uC2A4 \uD0A4 diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_mk.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_mk.properties similarity index 98% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_mk.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_mk.properties index 25cecc0b..70c2efc3 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_mk.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_mk.properties @@ -29,7 +29,7 @@ top.more = \u041F\u043E\u0432\u0435\u045C\u0435 top.help = \u041F\u043E\u043C\u043E\u0448 top.search = \u0411\u0430\u0440\u0430\u0458 top.upgrade = \u041D\u043E\u0432\u0430 \u0432\u0435\u0440\u0437\u0438\u0458\u0430 \u0435 \u0434\u043E\u0441\u0442\u0430\u043F\u043D\u0430. \u0421\u0438\u043C\u043D\u0438 \u0433\u043E {0} {1} \ - here. + here. top.missing = \u041D\u0435 \u0435 \u043F\u0440\u043E\u043D\u0430\u0458\u0434\u0435\u043D \u0444\u043E\u043B\u0434\u0435\u0440 \u0441\u043E \u043C\u0443\u0437\u0438\u043A\u0430. \u0412\u0435 \u043C\u043E\u043B\u0438\u043C\u0435 \u043F\u0440\u043E\u043C\u0435\u043D\u0435\u0442\u0435 \u0433\u0438 \u043F\u043E\u0434\u0435\u0441\u0443\u0432\u0430\u045A\u0430\u0442\u0430. # left.jsp @@ -116,7 +116,7 @@ upload.unzipped = \u041E\u0442\u043F\u0430\u043A\u0443\u0432\u0430\u043D\u043E { # help.jsp help.title = \u0417\u0430 {0} help.upgrade = \u0411\u0435\u043B\u0435\u0448\u043A\u0430! \u041D\u043E\u0432\u0430 \u0432\u0435\u0440\u0437\u0438\u0458\u0430 \u0435 \u0434\u043E\u0441\u0442\u0430\u043F\u043D\u0430. \u0421\u0438\u043C\u043D\u0438 \u0433\u043E {0} {1} \ - here. + here. help.version.title = \u0412\u0435\u0440\u0437\u0438\u0458\u0430 help.builddate.title = \u0414\u0430\u0442\u0430 \u043D\u0430 \u0438\u0437\u0434\u0430\u0432\u0430\u045A\u0435 help.license.title = \u041B\u0438\u0446\u0435\u043D\u0446\u0430 @@ -127,7 +127,7 @@ help.contact.title = \u041A\u043E\u043D\u0442\u0430\u043A\u0442 help.contact.text = {0} \u0435 \u0438\u0437\u0440\u0430\u0431\u043E\u0442\u0435\u043D \u0438 \u0433\u043E \u043E\u0434\u0434\u0436\u0443\u0432\u0430 Sindre Mehus \ (sindre@activeobjects.no). \ \u0410\u043A\u043E \u0438\u043C\u0430\u0442\u0435 \u0431\u0438\u043B\u043E \u043A\u0430\u043A\u0432\u0438 \u043F\u0440\u0430\u0448\u0430\u045A\u0430, \u0437\u0430\u0431\u0435\u043B\u0435\u0448\u043A\u0438 \u0438\u043B\u0438 \u0441\u0443\u0433\u0435\u0441\u0442\u0438\u0438 \u0437\u0430 \u043F\u043E\u0434\u043E\u0431\u0440\u0443\u0432\u0430\u045A\u0430, \u0432\u0435 \u043C\u043E\u043B\u0438\u043C\u0435 \u043F\u043E\u0441\u0435\u0442\u0435\u0442\u0435 \u043D\u0435 \u043D\u0430 \ - Subsonic \u0424\u043E\u0440\u0443\u043C. + Libresonic \u0424\u043E\u0440\u0443\u043C. help.log = \u041B\u043E\u0433 # settingsHeader.jsp diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_nl.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_nl.properties similarity index 95% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_nl.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_nl.properties index baee1af2..9d34a9e8 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_nl.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_nl.properties @@ -76,7 +76,7 @@ top.more = Meer top.help = Over top.search = Zoeken top.upgrade = Er is een nieuwe versie beschikbaar. Download {0} {1} \ - here. + here. top.missing = Geen mediamappen gevonden. Verander de Instellingen. top.logout = Uitloggen {0} top.getpremium = Schaf Subsonic Premium aan. @@ -179,9 +179,9 @@ search.hits.songs = Songs gettingStarted.title = Snelgids gettingStarted.text =

                                      Welkom bij Libresonic!. De configuratie van Libresonic is eenvoudig, loop de volgende basisstappen even door.
                                      \ Klik op de "Home" knop in de werkbalk hierboven om naar dit scherm terug te keren.

                                      \ -

                                      Raadpleeg de "Beginnersgids" voor meer informatie.

                                      +

                                      Raadpleeg de "Beginnersgids" voor meer informatie.

                                      gettingStarted.root = Let op! Het Libresonic proces werkt nu als de root gebruiker. Het wordt aanbevolen om\ - dit te veranderen. + dit te veranderen. gettingStarted.step1.title = Verander administrator wachtwoord. gettingStarted.step1.text = Beveilig de server door het standaardwachtwoord van het administrator account te wijzigen. \ Tevens kun je hier nieuwe gebruikersaccounts met verschillende rechten aanmaken. @@ -189,7 +189,7 @@ gettingStarted.step2.title = Stel de mediamappen in. gettingStarted.step2.text = Vertel Libresonic waar jouw muziek en videos staan. gettingStarted.step3.title = Configureer netwerk Instellingen. gettingStarted.step3.text = Enkele nuttige instellingen als je jouw muziek via internet wilt beluisteren, \ - of wilt delen met familie en vrienden. Registreer meteen je persoonlijke jouwname.subsonic.org \ + of wilt delen met familie en vrienden. Registreer meteen je persoonlijke jouwname.libresonic.org \ adres. gettingStarted.hide = Dit niet meer laten zien. gettingStarted.hidealert = Ga naar instellingen > Algemeen, om dit scherm weer te tonen. @@ -238,8 +238,8 @@ more.random.year = en jaar more.random.anyyear = Elk more.random.folder = In map more.random.anyfolder = Elke -more.apps.title = Subsonic Apps -more.apps.text =

                                      Bekijk de gestaag groeiende lijst van Subsonic apps. \ +more.apps.title = Libresonic Apps +more.apps.text =

                                      Bekijk de gestaag groeiende lijst van Libresonic apps. \ Deze apps bieden alternatieven om te genieten van je media collectie - ongeacht waar je bent. \ Apps zijn beschikbaar voor Android, iPhone, Windows Phone, BlackBerry, Roku en veel meer.

                                      more.mobile.title = Mobiele telefoon @@ -268,7 +268,7 @@ upload.unzipped = Uitgepakt {0} # help.jsp help.title = Over {0} help.upgrade = Let op! Er is een nieuwe versie beschikbaar. Download {0} {1} \ - hier. + hier. help.premium.title = Licentie help.premium.expires = (vervalt op {0}) help.premium.upgrade = Upgrade naar Subsonic Premium om extra functies te krijgen! @@ -278,16 +278,14 @@ help.builddate.title = Compileer datum help.server.title = Server help.license.title = Gebruiksvoorwaarden help.license.text = {0} is vrije software die wordt gedistribueerd onder de GPL open-source licentie. \ - {0} maakt gebruik van gelicenseerde bibliotheken van derden. {0} is geen \ + {0} maakt gebruik van gelicenseerde bibliotheken van derden. {0} is geen \ middel voor de illegale distributie van auteursrechtelijk beschermd materiaal. Hou rekening met de geldende wetten en bepalingen in jouw land! help.homepage.title = Website help.forum.title = Forum help.shop.title = Merchandise help.contact.title = Contact -help.contact.text = {0} is ontwikkeld en wordt onderhouden door Sindre Mehus \ - (sindre@activeobjects.no). \ - Als je vragen, commentaar of suggesties hebt voor verbetering bezoek dan \ - Subsonic Forum. +help.contact.text = Libresonic is een gemeenschapsproject. Als je vragen, commentaar of suggesties hebt voor verbetering bezoek dan \ + #libresonic op Freenode of Libresonic op Reddit. help.log = Log help.logfile = Het volledige logbestand is opgeslagen in {0}. @@ -339,6 +337,13 @@ advancedsettings.ldapsearchfilter = LDAP zoekfilter advancedsettings.ldapmanagerdn = LDAP manager DN
                                      (Optioneel)
                                      advancedsettings.ldapmanagerpassword = Wachtwoord advancedsettings.ldapautoshadowing = Maak automatisch gebruikers aan in {0} +advancedsettings.smtpPort = SMTP poort +advancedsettings.smtpServer = SMTP server +advancedsettings.smtpEncryption = SMTP versleutelingsmethode +advancedsettings.smtpUser = SMTP gebruikersnaam +advancedsettings.smtpPassword = Wachtwoord +advancedsettings.smtpEncryption.none = Geen +advancedsettings.smtpFrom = Afzender # personalsettings.jsp personalsettings.title = Persoonlijke instellingen voor {0} @@ -410,7 +415,7 @@ musicfoldersettings.organizebyfolderstructure.description = Gebruik deze optie o # networkSettings.jsp networksettings.text = Gebruik de instellingen hieronder om te bepalen hoe jouw Libresonic-server over het Internet bereikbaar is .
                                      \ - Als er problemen zijn, raadpleeg dan de Beginnersgids. + Als er problemen zijn, raadpleeg dan de Beginnersgids. networksettings.portforwardingenabled = Configureer automatisch je router om inkomende verbindingen naar Libresonic toe te staan. (UPnP of NAT-PMP poort forwarding). networksettings.portforwardinghelp = Als jouw router niet automatisch kan worden geconfigureerd, kun je dit handmatig instellen. \ Volg de instructies op portforward.com. \ @@ -633,7 +638,7 @@ share.facebook = Deel op Facebook share.twitter = Deel op Twitter share.googleplus = Deel op Google+ share.link = of deel dit door iemand de volgende link te sturen: {0} -share.disabled = Om jouw muziek te kunnen delen moet je eerst je eigen subsonic.org adres registreren.
                                      \ +share.disabled = Om jouw muziek te kunnen delen moet je eerst je eigen libresonic.org adres registreren.
                                      \ Ga naar Instellingen > Netwerk (Administrator rechten vereist!). share.manage = Beheer gedeelde media. @@ -642,11 +647,11 @@ premium.title = Subsonic Premium premium.invalidlicense = Ongeldige licentie sleutel. premium.text =

                                      Upgrade naar Subsonic Premium om van deze extra functies te kunnen genieten:

                                      \
                                        \ -
                                      • Apps voor Android, iPhone and Windows Phone*.
                                      • \ -
                                      • Apps voor BlackBerry, Roku, Mac, Windows, Chrome and more*.
                                      • \ +
                                      • Apps voor Android, iPhone and Windows Phone*.
                                      • \ +
                                      • Apps voor BlackBerry, Roku, Mac, Windows, Chrome and more*.
                                      • \
                                      • Video streaming.
                                      • \
                                      • Podcast ontvanger.
                                      • \ -
                                      • Je persoonlijk server adres: Jouwnaam.subsonic.org (Zie Instellingen > Netwerk).
                                      • \ +
                                      • Je persoonlijk server adres: Jouwnaam.libresonic.org (Zie Instellingen > Netwerk).
                                      • \
                                      • Deel jouw media op Facebook, Twitter, Google+.
                                      • \
                                      • Geen advertenties in de web interface.
                                      • \
                                      • Meer functies die later uitgebracht worden.
                                      • \ @@ -659,7 +664,7 @@ premium.licensedexpired = Jouw Subsonic Premium licentie is vervallen op {0} premium.licensedto = Deze licentie is geregistreerd voor {0}. premium.forcechange = Registreer met een andere licentie sleutel premium.register = Als je upgrade naar Subsonic Premium zul je per email een licentie sleutel ontvangen. Voer de licentiesleutel hier in: -premium.resend = Licentiesleutel verloren? Stuur mij de sleutel opnieuw.. +premium.resend = Licentiesleutel verloren? Stuur mij de sleutel opnieuw.. premium.register.email = Email premium.register.license = Licentie sleutel diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_nn.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_nn.properties similarity index 98% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_nn.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_nn.properties index 3c1ee216..1163cc55 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_nn.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_nn.properties @@ -46,7 +46,7 @@ top.more = Meir top.help = Om top.search = S\u00F8k top.upgrade = Det finst ei oppdatert utg\u00E5ve. Last ned {0} {1} \ - her. + her. top.missing = Fann ingen musikk-mapper. Endra innstillingane. top.logout = Logg ut {0} @@ -166,7 +166,7 @@ upload.unzipped = Pakka ut {0} # help.jsp help.title = Om {0} help.upgrade = NB! Det finst ei oppdatert utg\u00E5ve. Last ned {0} {1} \ - her. + her. help.version.title = Versjon help.builddate.title = Byggedato help.server.title = Tenar @@ -178,7 +178,7 @@ help.shop.title = Butikk help.contact.title = Kontakt help.contact.text = {0} er utvikla og vedlikehalde av Sindre Mehus \ (sindre@activeobjects.no). \ - G\u00E5 til Subsonic-forumet viss du har sp\u00F8rsm\u00E5l, \ + G\u00E5 til Libresonic-forumet viss du har sp\u00F8rsm\u00E5l, \ kommentarar eller forslag til forbetringar. help.log = Logg help.logfile = Heile loggen finst i {0}. @@ -295,7 +295,7 @@ transcodingsettings.info =

                                        (%s = fila som skal konverterast, % Konverteringa skjer p\u00E5 direkten etter behov, og krev ikkje bruk av disk.

                                        \

                                        Den faktiske konverteringa vert utf\u00F8rt av kommandolinja til tredjepart-program som m\u00E5 installerast i {0}. \ Ei samling av konverterarar for Windows \ - kan du lasta ned her. Du kan leggja til ein eigen \ + kan du lasta ned her. Du kan leggja til ein eigen \ konverterar viss han tilfredsstiller f\u00F8lgjande krav: \

                                          \
                                        • Han m\u00E5 ha eit kommandolinje-grensesnitt.
                                        • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_no.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_no.properties similarity index 98% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_no.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_no.properties index b459ff14..28903c62 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_no.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_no.properties @@ -46,7 +46,7 @@ top.more = Mer top.help = Om top.search = S\u00F8k top.upgrade = Det finnes en oppdatert versjon. Last ned {0} {1} \ - her. + her. top.missing = Fant ingen musikk-mapper. Endre innstillingene. top.logout = Logg ut {0} @@ -166,7 +166,7 @@ upload.unzipped = Pakket ut {0} # help.jsp help.title = Om {0} help.upgrade = NB! Det finnes en oppdatert versjon. Last ned {0} {1} \ - her. + her. help.version.title = Versjon help.builddate.title = Byggedato help.server.title = Server @@ -178,7 +178,7 @@ help.shop.title = Butikk help.contact.title = Kontakt help.contact.text = {0} er utviklet og vedlikeholdt av Sindre Mehus \ (sindre@activeobjects.no). \ - Bes\u00F8k Subsonic Forum hvis du har sp\u00F8rsm\u00E5l, \ + Bes\u00F8k Libresonic Forum hvis du har sp\u00F8rsm\u00E5l, \ kommentarer eller forslag til forbedringer. help.log = Logg help.logfile = Hele loggen finnes i {0}. @@ -295,7 +295,7 @@ transcodingsettings.info =

                                          (%s = Fila som skal konverteres, %b Konverteringen skjer p\u00E5 direkten etter behov, og krever ikke bruk av disk.

                                          \

                                          Den faktiske konverteringen utf\u00F8res av tredjeparts kommandolinje-program som m\u00E5 installeres i {0}. \ En samling av konvertere for Windows \ - kan lastes ned her. Du kan legge til en egen \ + kan lastes ned her. Du kan legge til en egen \ konverterer hvis den tilfredsstiller f\u00F8lgende krav: \

                                            \
                                          • Den m\u00E5 ha et kommandolinje-grensesnitt.
                                          • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_pl.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_pl.properties similarity index 97% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_pl.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_pl.properties index 6bc842e4..b7fd232f 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_pl.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_pl.properties @@ -46,7 +46,7 @@ top.more = Wi\u0119cej top.help = Pomoc top.search = Szukaj top.upgrade = Dost\u0119pna jest nowa wersja. Pobierz {0} {1} \ - tutaj. + tutaj. top.missing = Brak folder\u00F3w medi\u00F3w. Prosz\u0119 zmieni\u0107 ustawienia. top.logout = Wyloguj {0} @@ -116,7 +116,7 @@ search.hits.songs = Utwory gettingStarted.title = Pierwsze kroki gettingStarted.text =

                                            Witamy w Libresonic! Konfiguracja zajmie tylko chwil\u0119, wystarczy wykona\u0107 poni\u017Csze czynno\u015Bci.
                                            \ Kliknij przycisk "G\u0142\u00F3wna" na pasku narz\u0119dzi powy\u017Cej, aby wr\u00F3ci\u0107 do tego ekranu.

                                            \ -

                                            Wi\u0119cej informacji mo\u017Cna znale\u017A\u0107 w Instrukcji Obs\u0142ugi.

                                            +

                                            Wi\u0119cej informacji mo\u017Cna znale\u017A\u0107 w Instrukcji Obs\u0142ugi.

                                            gettingStarted.step1.title = Zmie\u0144 has\u0142o administratora. gettingStarted.step1.text = Zabezpiecz sw\u00F3j serwer zmieniaj\u0105c domyslne has\u0142o administratora. \ Mo\u017Cesz tak\u017Ce stworzy\u0107 nowe konta u\u017Cytkownik\u00F3w oraz okre\u015Bli\u0107 uprawnienia. @@ -124,7 +124,7 @@ gettingStarted.step2.title = Ustaw foldery medi\u00F3w. gettingStarted.step2.text = Okre\u015Bl lokalizacje plikow muzycznych i film\u00F3w gettingStarted.step3.title = Skonfiguruj sie\u0107. gettingStarted.step3.text = Kilka przydatnych opcji pozwalaj\u0105cych s\u0142ucha\u0107 muzyki zdalnie przez Internet, \ - lub podzieli\u0107 si\u0119 ni\u0105 z rodzin\u0105 i przyjaci\u00F3\u0142mi. Stw\u00F3rz w\u0142asny adres twojadres.subsonic.org + lub podzieli\u0107 si\u0119 ni\u0105 z rodzin\u0105 i przyjaci\u00F3\u0142mi. Stw\u00F3rz w\u0142asny adres twojadres.libresonic.org gettingStarted.hide = Nie pakazuj ponownie gettingStarted.hidealert = Aby pokaza\u0107 ten ekran ponownie, przejd\u017A do Ustawienia > Og\u00F3lne. @@ -165,8 +165,8 @@ more.random.year = z roku more.random.anyyear = Dowolny more.random.folder = w folderze more.random.anyfolder = Dowolny -more.apps.title = Subsonic Apps -more.apps.text =

                                            Aplikacje Subsonic s\u0105 dost\u0119pna dla systemu Android, iPhone, \ +more.apps.title = Libresonic Apps +more.apps.text =

                                            Aplikacje Libresonic s\u0105 dost\u0119pna dla systemu Android, iPhone, \ Windows Phone oraz AIR.

                                            more.mobile.title = Telefon kom\u00F3rkowy more.mobile.text =

                                            Mo\u017Cesz kontrolowa\u0107 {0} przy pomocy dowolnego telefonu lub PDA wyposa\u017Conego w WAP.
                                            \ @@ -194,13 +194,13 @@ upload.unzipped = Rozpakowano {0} # help.jsp help.title = O {0} help.upgrade = Uwaga! Dost\u0119pna jest nowa wersja. Pobierz {0} {1} \ - tutaj. + tutaj. help.version.title = Wersja help.builddate.title = Data wydania help.server.title = Serwer help.license.title = Licencja help.license.text = {0} jest darmowym oprogramowaniem rozpowszechnianym na licencji typu open-source - GPL. \ - {0} wykorzystuje licencjonowane biblioteki zewn\u0119trznych dostawc\u00F3w. + {0} wykorzystuje licencjonowane biblioteki zewn\u0119trznych dostawc\u00F3w. help.homepage.title = Strona domowa help.forum.title = Forum @@ -209,7 +209,7 @@ help.contact.title = Kontakt help.contact.text = {0} jest rozwijany i utrzymywany przez Sindre Mehus \ (sindre@activeobjects.no). \ Je\u015Bli masz pytania, uwagi lub sugestie, zapraszam na \ - forum Subsonic. + forum Libresonic. help.log = Log help.logfile = Pe\u0142ny log mo\u017Cna odnale\u017A\u0107 w {0}. @@ -312,7 +312,7 @@ musicfoldersettings.nopath = Prosz\u0119 okre\u015Bli\u0107 folder. # networkSettings.jsp networksettings.text = U\u017Cyj poni\u017Cszych ustawie\u0144, aby kontrolowa\u0107 jak server Libresonic jest dost\u0119pne poprzez Internet.
                                            \ - Je\u015Bli masz problemy, zajrzyj do Instrukcji Obs\u0142ugi. + Je\u015Bli masz problemy, zajrzyj do Instrukcji Obs\u0142ugi. networksettings.portforwardingenabled = Skonfiguruj router automatyczne, aby zezwoli\u0107 na po\u0142\u0105czenia przychodz\u0105ce do Libresonic (przekazywanie port\u00F3w UPnP lub NAT-PMP). networksettings.portforwardinghelp = Je\u015Bli router nie mo\u017Ce zostac skonfigurowanie automatycznie, mo\u017Cna ustawi\u0107 go r\u0119cznie. \ Post\u0119puj zgodnie z instrukcj\u0105 na portforward.com. \ @@ -340,7 +340,7 @@ transcodingsettings.info =

                                            (%s = Plik kt\u00F3ry b\u0119dzie t dodatkowej przestrzeni dyskowej.

                                            \

                                            Obecnie transkodowanie realizowane jest z wykorzystaniem program\u00F3w lini polece\u0144 dostawc\u00F3w zewn\u0119trznych. Programy te musz\u0105 by\u0107 zainstalowane w {0}. \ Pakiet transkoder\u00F3w dla Windows \ - jest dost\u0119pny tutaj. Mo\u017Cesz tak\u017Ce doda\u0107 w\u0142asny transkoder, pod warunkiem i\u017C \ + jest dost\u0119pny tutaj. Mo\u017Cesz tak\u017Ce doda\u0107 w\u0142asny transkoder, pod warunkiem i\u017C \ spe\u0142nia on warunki: \

                                              \
                                            • Posiada interfejs lini polece\u0144
                                            • \ @@ -527,7 +527,7 @@ share.warning =

                                              WA\u017BNA UWAGA!

                                              Graj fair - Nie udost\u0119pniaj ma share.facebook = Udost\u0119pnij na Facebooku share.twitter = Udost\u0119pnij na Twitterze share.link = Lub Udost\u0119pnij komu\u015B, wysy\u0142aj\u0105c link: {0} -share.disabled = Aby wsp\u00F3\u0142dzieli\u0107 muzyke z innymi u\u017Cytkownikami, musisz najpierw zarejestrowa\u0107 sw\u00F3j adres subsonic.org.
                                              \ +share.disabled = Aby wsp\u00F3\u0142dzieli\u0107 muzyke z innymi u\u017Cytkownikami, musisz najpierw zarejestrowa\u0107 sw\u00F3j adres libresonic.org.
                                              \ Przejd\u017A do Ustawienia > Sie\u0107 (administrative rights required). share.manage = Zarz\u0105dzaj udost\u0119pnionymi pliki diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_pt.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_pt.properties similarity index 96% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_pt.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_pt.properties index f1ee2ea4..d7ec3038 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_pt.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_pt.properties @@ -45,7 +45,7 @@ top.more = Mais top.help = Acerca top.search = Pesquisar top.upgrade = Uma nova vers\u00E3o est\u00E1 dispon\u00EDvel. Descarregar {0} {1} \ - aqui. + aqui. top.missing = N\u00E3o se encontra nenhuma pasta. Por favor mude as configura\u00E7\u00F5es. top.logout = Terminar sess\u00E3o {0} @@ -111,7 +111,7 @@ search.hits.songs = M\u00FAsicas gettingStarted.title = Primeiros passos gettingStarted.text =

                                              Bem-vindo ao Libresonic! Vamos prepar\u00E1-lo num instante, basta seguir os seguintes passos b\u00E1sicos.
                                              \ Clicar no bot\u00E3o "In\u00EDcio" na barra acima para voltar a este ecran.

                                              \ -

                                              Para mais informa\u00E7\u00F5es, por favor consulte oGuia Primeiros passos.

                                              +

                                              Para mais informa\u00E7\u00F5es, por favor consulte oGuia Primeiros passos.

                                              gettingStarted.step1.title = Mudar senha do administrador. gettingStarted.step1.text = Proteja o seu servidor, alterando a senha padr\u00E3o para a conta de administrador. \ Pode criar novas contas de utilizador com privil\u00E9gios diferentes. @@ -119,7 +119,7 @@ gettingStarted.step2.title = Criar pastas de m\u00FAsica. gettingStarted.step2.text = Mostrar ao Libresonic onde tem a sua m\u00FAsica. gettingStarted.step3.title = Configura\u00E7\u00F5es de rede. gettingStarted.step3.text = Algumas defini\u00E7\u00F5es \u00FAteis se voc\u00EA quiser desfrutar da sua m\u00FAsica remotamente atrav\u00E9s da Internet, \ - ou compartilh\u00E1-la com a fam\u00EDlia e amigos. Obtenha o seu endere\u00E7o com nome deutilizador.subsonic.org. + ou compartilh\u00E1-la com a fam\u00EDlia e amigos. Obtenha o seu endere\u00E7o com nome deutilizador.libresonic.org. gettingStarted.hide = N\u00E3o mostrar mais gettingStarted.hidealert = Para mostar este ecran outra vez, v\u00E1 a Configura\u00E7\u00F5es > Geral. @@ -159,8 +159,8 @@ more.random.year = e ano more.random.anyyear = Qualquer more.random.folder = na pasta more.random.anyfolder = Qualquer -more.apps.title = Aplica\u00E7\u00F5es Subsonic -more.apps.text =

                                              Aplica\u00E7\u00F5es Subsonic est\u00E3o dispon\u00EDveis para iPhone, \ +more.apps.title = Aplica\u00E7\u00F5es Libresonic +more.apps.text =

                                              Aplica\u00E7\u00F5es Libresonic est\u00E3o dispon\u00EDveis para iPhone, \ Android e AIR.

                                              more.mobile.title = Telem\u00F3vel more.mobile.text =

                                              Pode controlar o {0} com qualquer telem\u00F3vel que tenha WAP activado ou num PDA.
                                              \ @@ -189,13 +189,13 @@ upload.unzipped = Descomprimido {0} # help.jsp help.title = Acerca {0} help.upgrade = Aviso! Est\u00E1 dispon\u00EDvel uma nova vers\u00E3o. Descarregar {0} {1} \ - aqui. + aqui. help.version.title = Vers\u00E3o help.builddate.title = Data de compila\u00E7\u00E3o help.server.title = Servidor help.license.title = Licen\u00E7a help.license.text = O {0} \u00E9 um software livre distribuido sobre a licen\u00E7a GPL de c\u00F3digo aberto. \ - O {0} usa uma licen\u00E7a de bibliotecas de terceiros. Tome nota que o {0} n\u00E3o \u00E9 \ + O {0} usa uma licen\u00E7a de bibliotecas de terceiros. Tome nota que o {0} n\u00E3o \u00E9 \ uma ferramenta para a distribui\u00E7\u00E3o ilegal de material protegido por direitos de autor. Preste sempre aten\u00E7\u00E3o e siga as leis espec\u00EDficas para o seu pa\u00EDs. help.homepage.title = P\u00E1gina do projecto help.forum.title = Forum @@ -204,7 +204,7 @@ help.contact.title = Contacto help.contact.text = O {0} \u00E9 desenvolvido e mantido por Sindre Mehus \ (sindre@activeobjects.no). \ Se tiver quaisquer perguntas, coment\u00E1rios ou sugest\u00F5es para melhorias, por favor visite o Forum do\ - Subsonic . + Libresonic . help.log = Log help.logfile = O log completo est\u00E1 guardado em {0}. @@ -306,7 +306,7 @@ musicfoldersettings.nopath = Por favor especifique a pasta. # networkSettings.jsp networksettings.text = Use as configura\u00E7\u00F5es abaixo para controlar a forma de aceder ao servidor do Libresonic atrav\u00E9s da Internet .
                                              \ - Se tiver problemas, consulte o guia dos primeiros passos. (em ingl\u00EAs) + Se tiver problemas, consulte o guia dos primeiros passos. (em ingl\u00EAs) networksettings.portforwardingenabled = Configurar autom\u00E1ticamente o seu router para permitir liga\u00E7\u00F5es de entrada para o Libresonic (usando UPnP ou o encaminhamento de porta NAT-PMP). networksettings.portforwardinghelp = Se o seu router n\u00E3o puder ser configurado autom\u00E1ticamente, pode configur\u00E1-lo manualmente. \ Siga as instru\u00E7\u00F5es em portforward.com. \ @@ -333,7 +333,7 @@ transcodingsettings.info =

                                              (%s = O ficheiro a ser transcodific requer o uso do disco.

                                              \

                                              A transcodifica\u00E7\u00E3o \u00E9 feita por programas de terceiros que devem ser instalados em {0}. \ Um pacote de transcodifica\u00E7\u00E3o para o Windows \ - est\u00E1 dispon\u00EDvel aqui. Pode adicionar o seu pr\u00F3prio transcodificador, desde que \ + est\u00E1 dispon\u00EDvel aqui. Pode adicionar o seu pr\u00F3prio transcodificador, desde que \ preencha os seguintes requisitos: \

                                                \
                                              • Deve ter uma interface de linha de comando.
                                              • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ru.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ru.properties similarity index 98% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ru.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ru.properties index 78f73a4a..c9c019da 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_ru.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_ru.properties @@ -45,7 +45,7 @@ top.more = \u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u0 top.help = \u041E \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0435 top.search = \u041F\u043E\u0438\u0441\u043A top.upgrade = \u041D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0421\u043A\u0430\u0447\u0430\u0442\u044C {0} {1} \ - \u0442\u0443\u0442. + \u0442\u0443\u0442. top.missing = \u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u0430\u043F\u043E\u043A \u0441 \u043C\u0443\u0437\u044B\u043A\u043E\u0439. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438. top.logout = \u0412\u044B\u0439\u0442\u0438 {0} @@ -179,13 +179,13 @@ upload.unzipped = \u0420\u0430\u0441\u043F\u0430\u043A\u043E\u0432\u0430\u043D\u # help.jsp help.title = \u041E {0} help.upgrade = \u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435! \u041D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430. \u0421\u043A\u0430\u0447\u0430\u0442\u044C {0} {1} \ - \u0442\u0443\u0442. + \u0442\u0443\u0442. help.version.title = \u0412\u0435\u0440\u0441\u0438\u044F help.builddate.title = \u0414\u0430\u0442\u0430 \u0431\u0438\u043B\u0434\u0430 help.server.title = \u0421\u0435\u0440\u0432\u0435\u0440 help.license.title = \u041B\u0438\u0446\u0435\u043D\u0437\u0438\u044F help.license.text = {0} \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u0430\u044F \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0430 \u0440\u0430\u0441\u043F\u043E\u0441\u0442\u0440\u0430\u043D\u044F\u0435\u043C\u0430\u044F \u043F\u043E GPL. \ - {0} \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438 \u0442\u0440\u0435\u0442\u044C\u0438\u0445 \u0441\u0442\u043E\u0440\u043E\u043D. + {0} \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438 \u0442\u0440\u0435\u0442\u044C\u0438\u0445 \u0441\u0442\u043E\u0440\u043E\u043D. help.homepage.title = \u0413\u043B\u0430\u0432\u043D\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430 help.forum.title = \u0424\u043E\u0440\u0443\u043C help.shop.title = Merchandise @@ -193,7 +193,7 @@ help.contact.title = \u041A\u043E\u043D\u0442\u0430\u043A\u0442\u044B help.contact.text = {0} \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u0430 Sindre Mehus \ (sindre@activeobjects.no). \ \u043F\u043E \u0432\u0441\u0435\u043C \u0432\u043E\u043F\u0440\u043E\u0441\u0430\u043C \u0438 \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u044F\u043C \u043E\u0431\u0440\u0430\u0449\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \ - Subsonic \u0424\u043E\u0440\u0443\u043C. + Libresonic \u0424\u043E\u0440\u0443\u043C. help.log = \u041B\u043E\u0433 help.logfile = \u041F\u043E\u043B\u043D\u044B\u0439 \u043B\u043E\u0433 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D \u0432 {0}. @@ -317,7 +317,7 @@ transcodingsettings.info =

                                                (%s = \u0424\u0430\u0439\u043B, \u0 \u0438 \u043D\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u0438\u0441\u043A\u043E\u0432\u043E\u0433\u043E \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0430.

                                                \

                                                \u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u043F\u0435\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430 \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0443\u0436\u0435 \u0433\u043E\u0442\u043E\u0432\u044B\u043C\u0438 \u043A\u043E\u043D\u0441\u043E\u043B\u044C\u043D\u044B\u043C\u0438 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u043C\u0438 \u0442\u0440\u0435\u0442\u044C\u0438\u0445 \u0441\u0442\u043E\u0440\u043E\u043D, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u044B \u0432 {0}. \ \u041F\u0430\u043A\u0435\u0442 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0438 \u043F\u043E\u0434 Windows \ - \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0434\u0435\u0441\u044C. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 \u043F\u0435\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0449\u0438\u043A, \ + \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0434\u0435\u0441\u044C. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439 \u043F\u0435\u0440\u0435\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0449\u0438\u043A, \ \u043D\u043E \u043E\u043D \u0434\u043E\u043B\u0436\u0435\u043D \u0443\u0434\u043E\u0432\u043B\u0435\u0442\u0432\u043E\u0440\u044F\u0442\u044C \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u043C \u0443\u0441\u043B\u043E\u0432\u0438\u044F\u043C: \

                                                  \
                                                • \u0418\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043A\u043E\u043D\u0441\u043E\u043B\u044C\u043D\u044B\u043C.
                                                • \ diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_sl.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_sl.properties similarity index 97% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_sl.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_sl.properties index a519f513..09e2f595 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_sl.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_sl.properties @@ -68,7 +68,7 @@ top.more = Dodatno top.help = O Libresonicu top.search = Iskanje top.upgrade = Na voljo je nova razli\u010Dica. Prenesite {0} {1} \ - tukaj. + tukaj. top.missing = Ne najdem imenikov z glasbo. Prosimo, popravite nastavitve. top.logout = Odjava: {0} @@ -162,9 +162,9 @@ search.hits.songs = Skladbe gettingStarted.title = Uvod gettingStarted.text =

                                                  Dobrodo\u0161li v Libresonicu! Namestitev bo hitra, le spodnjim korakom morate slediti.
                                                  \ Kliknite gumb "Domov" v orodni vrstici za vrnitev v to okno.

                                                  \ -

                                                  Za ve\u010D informacij si poglejte Uvod.

                                                  +

                                                  Za ve\u010D informacij si poglejte Uvod.

                                                  gettingStarted.root = Pozor! Program Libresonic se izvaja kot root uporabnik. Prosimo premislite, \u010De \u017Eelite \ - to spremeniti. + to spremeniti. gettingStarted.step1.title = Sprememba administratorskega gesla. gettingStarted.step1.text = Zavarujte va\u0161 stre\u017Enik tako, da spremenite privzeto administratorsko geslo. \ Ustvarite lahko tudi nove uporabni\u0161ke ra\u010Dune z razli\u010Dnimi pravicami. @@ -172,7 +172,7 @@ gettingStarted.step2.title = Dolo\u010Dite imenike z glasbo. gettingStarted.step2.text = Povejte Libresonicu, kje hranite va\u0161e glasbene datoteke. gettingStarted.step3.title = Nastavi omre\u017Ene nastavitve. gettingStarted.step3.text = Nekaj uporabnih nastavitev, \u010De \u017Eelite poslu\u0161ati va\u0161o glasbo preko spleta, \ - oz. jo deliti z dru\u017Eino in/ali prijatelji. Priskrbite si svoj osebni va\u0161e_ime.subsonic.org \ + oz. jo deliti z dru\u017Eino in/ali prijatelji. Priskrbite si svoj osebni va\u0161e_ime.libresonic.org \ spletni naslov. gettingStarted.hide = Ne prikazuj ve\u010D teh navodil. gettingStarted.hidealert = \u010Ce \u017Eelite ponovno prebrati ta navodila, poglejte v Nastavitve > Splo\u0161no. @@ -217,8 +217,8 @@ more.random.year = leto more.random.anyyear = katerokoli more.random.folder = imenik more.random.anyfolder = katerikoli -more.apps.title = Subsonic aplikacije -more.apps.text =

                                                  Preverite vedno ve\u010Dji seznam Subsonic aplikacij. \ +more.apps.title = Libresonic aplikacije +more.apps.text =

                                                  Preverite vedno ve\u010Dji seznam Libresonic aplikacij. \ Te aplikacije vam omogo\u010Dajo nove in bolj zabavne na\u010Dine dostopa do va\u0161e medijske zbirke \u2013 ne glede na to kje se nahajate. \ Aplikacije so na voljo za Android, iPhone, Windows Phone, BlackBerry, Roku in mnoge druge naprave.

                                                  more.mobile.title = Mobilni telefon @@ -247,13 +247,13 @@ upload.unzipped = Razpakirano: {0} # help.jsp help.title = O programu {0} help.upgrade = Pozor! Na vojo je nova razli\u010Dica. Prenesite {0} {1} \ - tukaj. + tukaj. help.version.title = Razli\u010Dica help.builddate.title = Izdelana dne help.server.title = Stre\u017Enik help.license.title = Licenca help.license.text = {0} je zastonj program na voljo pod GPL odprtokodno licenco. \ - {0} uporablja licencirane knji\u017Eice tretjih oseb. {0} ni \ + {0} uporablja licencirane knji\u017Eice tretjih oseb. {0} ni \ namenjen razpe\u010Devanju ilegalnega in piratskega materiala. Vedno upo\u0161tevajte zakone, ki veljajo v va\u0161i dr\u017Eavi. help.homepage.title = Spletna stran help.forum.title = Forum @@ -262,7 +262,7 @@ help.contact.title = Kontakt help.contact.text = {0} je razvil in vzdr\u017Euje Sindre Mehus \ (sindre@activeobjects.no). \ \u010Ce imate vpra\u0161anja, pripombe ali predloge za izbolj\u0161ave, obi\u0161\u010Dite \ - Subsonicov forum. + Libresonicov forum. help.log = Dnevnik help.logfile = Celotna datoteka z dnevnikom je shranjena v {0}. @@ -380,7 +380,7 @@ musicfoldersettings.organizebyfolderstructure.description = Uporabite to mo\u017 # networkSettings.jsp networksettings.text = Uporabi spodnje nastavitve za nadzor dostopa do va\u0161ega Libresonic stre\u017Enika na Internetu.
                                                  \ - \u010Ce naletite na te\u017Eave, si prosimo oglejte Uvod k programu. + \u010Ce naletite na te\u017Eave, si prosimo oglejte Uvod k programu. networksettings.portforwardingenabled = Samodejno nastavi usmerjevalnik, da omogo\u010Di povezavo do Libresonic stre\u017Enika (z uporabo UPnP ali NAT-PMP posredovanja vrat). networksettings.portforwardinghelp = \u010Ce va\u0161ega usmerjevalnika ni mo\u010D samodejno nastaviti, ga lahko nastavite ro\u010Dno. \ Sledite navodilom na portforward.com. \ @@ -595,7 +595,7 @@ share.facebook = Daj v skupno uporabo na Facebook share.twitter = Daj v skupno uporaba na Twitter share.googleplus = Daj v skupno uporaba na Google+ share.link = Ali pa dajte datoteko v skupno uporabo tako, da jim po\u0161ljete to povezavo: {0} -share.disabled = \u010Ce \u017Eelite deliti va\u0161o glasbo z drugimi, si morate najprej ustvariti svoj subsonic.org naslov.
                                                  \ +share.disabled = \u010Ce \u017Eelite deliti va\u0161o glasbo z drugimi, si morate najprej ustvariti svoj libresonic.org naslov.
                                                  \ To lahko storite pod Nastavitve > Omre\u017Eje (potrebovali boste administratorske pravice). share.manage = Upravljanje z vsebinami v skupni uporabi diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_sv.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_sv.properties similarity index 93% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_sv.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_sv.properties index c7f9874d..13976c99 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_sv.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_sv.properties @@ -44,8 +44,8 @@ top.podcast = Podcast top.more = Mer top.help = Hj\u00E4lp top.search = S\u00F6k -top.upgrade = En ny verson \u00E4r tillg\u00E4nglig. Ladda ner Subsonic {0} \ - h\u00E4r. +top.upgrade = En ny verson \u00E4r tillg\u00E4nglig. Ladda ner Libresonic {0} \ + h\u00E4r. top.missing = Ingen musikmapp \u00E4r funnen. V\u00E4nligen \u00E4ndra inst\u00E4llningar. top.logout = Logga ut {0} @@ -115,7 +115,7 @@ search.hits.songs = L\u00E5tar gettingStarted.title = Kom ig\u00E5ng gettingStarted.text =

                                                  V\u00E4lkommen till Libresonic! F\u00F6r att komma ig\u00E5ng p\u00E5 nolltid, f\u00F6lj bara stegen nedan.
                                                  \ Klicka p\u00E5 "Hem"-knappen ovan f\u00F6r att \u00E5ter komma till denna sida.

                                                  \ -

                                                  F\u00F6r mer information, v\u00E4nligen se Att komma ig\u00E5ng guide.

                                                  +

                                                  F\u00F6r mer information, v\u00E4nligen se Att komma ig\u00E5ng guide.

                                                  gettingStarted.step1.title = \u00C4ndra administrationsl\u00F6senordet. gettingStarted.step1.text = S\u00E4kra din server genom att \u00E4ndra standardl\u00F6senordet till kontot f\u00F6r administration. \ Du kan ocks\u00E5 l\u00E4gga till anv\u00E4ndare med olika privilegier. @@ -123,7 +123,7 @@ gettingStarted.step2.title = S\u00E4tt upp mediamappar. gettingStarted.step2.text = Tala om f\u00F6r Libresonic s\u00F6kv\u00E4gen till din musik och dina videos. gettingStarted.step3.title = Konfigurera inst\u00E4llningarna f\u00F6r n\u00E4tverket. gettingStarted.step3.text = Anv\u00E4ndbara inst\u00E4llningar om du vill f\u00E5 tillg\u00E5ng till din musik \u00F6ver Internet, \ - eller dela den med familj och v\u00E4nner. Skapa din personliga dittnamn.subsonic.org \ + eller dela den med familj och v\u00E4nner. Skapa din personliga dittnamn.libresonic.org \ adress. gettingStarted.hide = Visa inte detta igen gettingStarted.hidealert = F\u00F6r att visa denn info igen, g\u00E5 till Inst\u00E4llningar > Allm\u00E4nt. @@ -164,11 +164,11 @@ more.random.year = och \u00E5r more.random.anyyear = alla more.random.folder = i mapp more.random.anyfolder = vilken som helst -more.apps.title = Subsonic Apps -more.apps.text =

                                                  Subsonic apps finns tillg\u00E4nglig f\u00F6r Android, iPhone, \ +more.apps.title = Libresonic Apps +more.apps.text =

                                                  Libresonic apps finns tillg\u00E4nglig f\u00F6r Android, iPhone, \ Windows Phone och AIR.

                                                  more.mobile.title = Mobil -more.mobile.text =

                                                  Du kan kontrollera Subsonic fr\u00E5n en WAP mobil eller PDA.
                                                  \ +more.mobile.text =

                                                  Du kan kontrollera Libresonic fr\u00E5n en WAP mobil eller PDA.
                                                  \ Surfa bara till denna URL fr\u00E5n mobilen: http://yourhostname/wap

                                                  \

                                                  Det h\u00E4r kr\u00E4ver att din server kan n\u00E5s fr\u00E5n internet.

                                                  more.podcast.title = Podcast @@ -191,24 +191,24 @@ upload.failed = Uppladdning misslyckades med f\u00F6ljande error meddelande:
                                                  upload.unzipped = Uppackade: {0} # help.jsp -help.title = Om Subsonic -help.upgrade = Note! En ny version \u00E4r tillg\u00E4nglig. Ladda ner Subsonic {0} \ - h\u00E4r. +help.title = Om Libresonic +help.upgrade = Note! En ny version \u00E4r tillg\u00E4nglig. Ladda ner Libresonic {0} \ + h\u00E4r. help.version.title = Version help.builddate.title = Kompilerad help.server.title = Server help.license.title = Licens help.license.text = {0} \u00E4r gratis distribuerad under GPL open-source licens. \ - {0} anv\u00E4nder licensierad 3:e partsprogram. V\u00E4nligen notera att {0} \u00E4r inte \ + {0} anv\u00E4nder licensierad 3:e partsprogram. V\u00E4nligen notera att {0} \u00E4r inte \ ett verktyg f\u00F6r illegal distribution av copyrightskyddat material. Var alltid uppm\u00E4rksam p\u00E5 att f\u00F6lja de relevanta lagar som \u00E4r specifika f\u00F6r ditt land. help.homepage.title = Hemsida help.forum.title = Forum help.shop.title = Handelsvaror help.contact.title = Kontakt -help.contact.text = Subsonic \u00E4r utvecklat och underh\u00E5llet av Sindre Mehus \ +help.contact.text = Libresonic \u00E4r utvecklat och underh\u00E5llet av Sindre Mehus \ (sindre_mehus@users.sourceforge.net). \ Om du har fr\u00E5gor, kommentarer eller f\u00F6rslag p\u00E5 f\u00F6rb\u00E4ttringar, V\u00E4nligen bes\u00F6k \ - Subsonics Forum. + Libresonics Forum. help.log = Logg help.logfile = Den kompletta loggen \u00E4r sparad i {0}. @@ -311,7 +311,7 @@ musicfoldersettings.nopath = V\u00E4nligen specificera en s\u00F6kv\u00E4g. # networkSettings.jsp networksettings.text = Anv\u00E4nd inst\u00E4llningarna nedan f\u00F6r att f\u00E5 tillg\u00E5ng till Libresonicserver via internet.
                                                  \ - Om du f\u00E5r problem, v\u00E4nligen konsultera Att komma ig\u00E5ng guiden. + Om du f\u00E5r problem, v\u00E4nligen konsultera Att komma ig\u00E5ng guiden. networksettings.portforwardingenabled = Automatiskt konfigurera din router f\u00F6r godk\u00E4nnande av inkommande anslutningar till Libresonic (via UPnP eller NAT-PMP port forwarding). networksettings.portforwardinghelp = Om din router inte kan bli konfigurerad automatiskt kan du s\u00E4tta upp den manuellt. \ F\u00F6lj instruktionerna p\u00E5 portforward.com. \ @@ -339,7 +339,7 @@ transcodingsettings.info =

                                                  (%s = Filen som ska bli transkodad, kr\u00E4ver inget diskutrymme.

                                                  \

                                                  Den aktiva transkodningen sker av tredje parts kommadorads program som m\u00E5ste vara installerade i {0}. \ Ett transkodnings paket f\u00F6r Windows \ - \u00E4r tillg\u00E4ngligt h\u00E4r. Du kan l\u00E4gga till egna \ + \u00E4r tillg\u00E4ngligt h\u00E4r. Du kan l\u00E4gga till egna \ transkodningar om de uppfyller dessa krav:\

                                                    \
                                                  • Det m\u00E5ste g\u00E5 att k\u00F6ra via kommandorad
                                                  • \ @@ -522,7 +522,7 @@ share.facebook = Dela p\u00E5 Facebook share.twitter = Dela p\u00E5 Twitter share.googleplus = Dela p\u00E5 Google+ share.link = Eller dela genom att skicka denna l\u00E4nk: {0} -share.disabled = F\u00F6r att kunna dela med dig m\u00E5ste du f\u00F6rst registrera din egna subsonic.org adress.
                                                    \ +share.disabled = F\u00F6r att kunna dela med dig m\u00E5ste du f\u00F6rst registrera din egna libresonic.org adress.
                                                    \ V\u00E4nligen g\u00E5 till Inst\u00E4llningar > N\u00E4tverk (adminr\u00E4ttigheter kr\u00E4vs). share.manage = Hantera min delade media @@ -554,19 +554,19 @@ lyrics.courtesy = (Lyrik av h\u00E4r \ @@ -626,14 +626,14 @@ helppopup.ldapsearchfilter.text =

                                                    S\u00F6k filtret anger vilket attribut som helppopup.ldapmanagerdn.title = LDAP anv\u00E4ndare DN helppopup.ldapmanagerdn.text =

                                                    Om LDAP servern in till\u00E5ter anonym s\u00F6kningm\u00E5ste du speficera DN p\u00E5 den anv\u00E4ndare som till\u00E5ts \ ( DN = Distinguished Name) och l\u00F6senord.

                                                    -helppopup.ldapautoshadowing.title = Skapa A tomatiskt LDAP anv\u00E4ndare i Subsonic -helppopup.ldapautoshadowing.text =

                                                    Med det h\u00E4r valet aktiverat, beh\u00F6ver du inte att manuellt skapa LDAP konton i Subsonic innan inloggning.

                                                    \ -

                                                    OBS! Detta val inneb\u00E4r att alla anv\u00E4ndare med ett aktivt LDAP konto kan logga in i Subsonic, \ +helppopup.ldapautoshadowing.title = Skapa A tomatiskt LDAP anv\u00E4ndare i Libresonic +helppopup.ldapautoshadowing.text =

                                                    Med det h\u00E4r valet aktiverat, beh\u00F6ver du inte att manuellt skapa LDAP konton i Libresonic innan inloggning.

                                                    \ +

                                                    OBS! Detta val inneb\u00E4r att alla anv\u00E4ndare med ett aktivt LDAP konto kan logga in i Libresonic, \ \u00E4r det det du vill?

                                                    helppopup.playername.title = Spelarensnamn helppopup.playername.text =

                                                    L\u00E5ter dig specificera ett namn som \u00E4r l\u00E4tt att komma ih\u00E5g p\u00E5 den spelare, som tex "Jobb" eller "Vardagsrum".

                                                    helppopup.autocontrol.title = Kontrollera spelare automatiskt -helppopup.autocontrol.text =

                                                    Med det h\u00E4r valet aktivt, kommer Subsonic automatiskt att starta spelaren n\u00E4r du klickar p\u00E5 "Spela" \ +helppopup.autocontrol.text =

                                                    Med det h\u00E4r valet aktivt, kommer Libresonic automatiskt att starta spelaren n\u00E4r du klickar p\u00E5 "Spela" \ i spellistan. Annars m\u00E5ste du starta spelaren manuellt.

                                                    helppopup.dynamicip.title = Dynamisk IP address helppopup.dynamicip.text =

                                                    St\u00E4ng av detta val om spelaren har en fast IP address.

                                                    diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_zh_CN.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_zh_CN.properties similarity index 97% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_zh_CN.properties rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_zh_CN.properties index 54dd08ac..52b3d4ab 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_zh_CN.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_zh_CN.properties @@ -62,7 +62,7 @@ top.more = \u5176\u4ED6 top.help = \u5173\u4E8E top.search = \u67E5\u627E top.upgrade = \u6709\u65B0\u7248\u672C\u63D0\u4F9B. \u4E0B\u8F7D {0} {1} \ - . + . top.missing = \u627E\u4E0D\u5230\u5A92\u4F53\u6587\u4EF6\u5939\uFF0C\u8BF7\u91CD\u65B0\u8BBE\u7F6E. top.logout =\u6CE8\u9500{0} @@ -162,9 +162,9 @@ search.hits.songs = \u66F2\u76EE gettingStarted.title = \u521D\u6B21\u4F7F\u7528 gettingStarted.text =

                                                    \u6B22\u8FCE\u4F7F\u7528Libresonic!
                                                    \u8BF7\u4F9D\u7167\u4E0B\u9762\u7684\u6B65\u9AA4\u8BBE\u7F6E.
                                                    \ \u70B9\u51FB\u5DE5\u5177\u5217\u4E0A\u7684"\u9996\u9875"\uFF0C\u5C31\u80FD\u968F\u65F6\u56DE\u6765\u8FD9\u91CC\uFF01.

                                                    \ -

                                                    \u9700\u8981\u66F4\u591A\u8BAF\u606F\u8BF7\u53C2\u8003\u5165\u95E8\u6307\u5357

                                                    +

                                                    \u9700\u8981\u66F4\u591A\u8BAF\u606F\u8BF7\u53C2\u8003\u5165\u95E8\u6307\u5357

                                                    gettingStarted.root = \u8B66\u544A! Libresonic \u8FDB\u7A0B\u6B63\u5728\u4EE5root\u7528\u6237\u8FD0\u884C. \u8BF7\u8003\u8651\ - \u66F4\u6362. + \u66F4\u6362. gettingStarted.step1.title = \u4FEE\u6539\u7BA1\u7406\u5458\u7684\u5BC6\u7801. gettingStarted.step1.text = \u8BF7\u4FEE\u6539\u9884\u8BBE\u7684\u7BA1\u7406\u5458\u5BC6\u7801\uFF0C\u4EE5\u786E\u4FDD\u670D\u52A1\u5668\u7684\u5B89\u5168\u3002\ \u4E5F\u53EF\u4EE5\u5EFA\u7ACB\u65B0\u7684\u7528\u6237\u5E76\u7ED9\u4E88\u4E0D\u540C\u7684\u6743\u9650 @@ -173,7 +173,7 @@ gettingStarted.step2.text = \u8BBE\u7F6E\u60A8\u97F3\u4E50\u6240\u653E\u7F6E\u76 gettingStarted.step3.title = \u914D\u7F6E\u7F51\u8DEF\u8BBE\u7F6E. gettingStarted.step3.text = \u5982\u679C\u60A8\u8981\u901A\u8FC7Internet\u8BBF\u95EE\u4F60\u7684\u5A92\u4F53\u6216\u662F\u4E0E\u60A8\u7684\u670B\u53CB\u3001\u5BB6\u4EBA\u5206\u4EAB\u3002\ \u53EF\u4EE5\u53D6\u5F97\u60A8\u7684\u4E13\u5C5E\u7F51\u5740\ - yourname.subsonic.org. + yourname.libresonic.org. gettingStarted.hide = \u4E0B\u6B21\u4E0D\u663E\u793A\u672C\u9875 gettingStarted.hidealert = \u5982\u679C\u4E0B\u6B21\u8FD8\u9700\u8981\u663E\u793A\u63D0\u793A,\u8BF7\u4ECE \u8BBE\u7F6E->\u4E00\u822C \u4E2D\u52FE\u9009. @@ -217,9 +217,9 @@ more.random.year = \u5E74\u4EFD more.random.anyyear = \u4EFB\u610F more.random.folder = \u5A92\u4F53\u6587\u4EF6\u5939 more.random.anyfolder = \u4EFB\u610F -more.apps.title = Subsonic \u5E94\u7528 +more.apps.title = Libresonic \u5E94\u7528 more.apps.text =

                                                    \u652F\u6301 iPhone, Android \u548C AIR\u7684\ - Subsonic \u5E94\u7528.\ + Libresonic \u5E94\u7528.\

                                                    more.mobile.title = \u79FB\u52A8\u8BBE\u5907 more.mobile.text =

                                                    \u53EF\u4EE5\u7531WAP\u7535\u8BDD\u6216PDA\u4F7F\u7528 {0} .
                                                    \ @@ -247,14 +247,14 @@ upload.unzipped = \u89E3\u538B\u7F29 {0} # help.jsp help.title = \u5173\u4E8E {0} help.upgrade = \u6CE8\u610F! \u5DF2\u7ECF\u6709\u65B0\u7684\u7248\u672C\u4E86\uFF0C\u4E0B\u8F7D\u65B0\u7248 {0} {1} \ - \u8FDE\u63A5. + \u8FDE\u63A5. help.version.title = \u7248\u672C help.builddate.title = \u65E5\u671F help.server.title = \u670D\u52A1\u5668 help.license.title = \u6388\u6743 help.license.text = {0} \u662F\u4EE5 \ GPL \u578B\u5F0F\u53D1\u5E03\u6388\u6743\u7684\u81EA\u7531\u8F6F\u4EF6.
                                                    \ - {0} \u4F7F\u7528\u4E86 \u7B2C\u4E09\u65B9\u6388\u6743. + {0} \u4F7F\u7528\u4E86 \u7B2C\u4E09\u65B9\u6388\u6743. help.homepage.title = \u9996\u9875 help.forum.title = \u8BBA\u575B help.shop.title = \u5546\u54C1 @@ -262,7 +262,7 @@ help.contact.title = \u8054\u7CFB help.contact.text = {0} \u7531 Sindre Mehus \u5F00\u53D1\u53CA\u7EF4\u62A4 \ (sindre@activeobjects.no). \ \u5982\u679C\u60A8\u6709\u4EFB\u4F55\u7591\u95EE\uFF0C\u610F\u89C1\u6216\u5EFA\u8BAE\u6539\u5584\uFF0C\u8BF7\u5230 \ - Subsonic\u8BBA\u575B. + Libresonic\u8BBA\u575B. help.log = \u65E5\u5FD7 help.logfile = \u5B8C\u6574\u7684\u65E5\u5FD7\u5B58\u653E\u5728 {0}. @@ -383,7 +383,7 @@ musicfoldersettings.organizebyfolderstructure.description = \u4F7F\u7528\u8FD9\u # networkSettings.jsp networksettings.text = \u4EE5\u4E0B\u8BBE\u7F6E\u8BA9\u60A8\u900F\u8FC7\u7F51\u9645\u7F51\u8DEF\u5B58\u53D6Libresonic\u670D\u52A1\u5668.
                                                    \ - \u6709\u4EFB\u4F55\u95EE\u9898, \u8BF7\u53C2\u8003 \u521D\u6B21\u4F7F\u7528\u624B\u518C. + \u6709\u4EFB\u4F55\u95EE\u9898, \u8BF7\u53C2\u8003 \u521D\u6B21\u4F7F\u7528\u624B\u518C. networksettings.portforwardingenabled = \u81EA\u52A8\u914D\u7F6E\u8DEF\u7531\u5668\u5B58\u53D6Libresonic\u670D\u52A1\u5668 (UPnP \u7AEF\u53E3\u8F6C\u53D1). networksettings.portforwardinghelp = \u5982\u679C\u8DEF\u7531\u65E0\u6CD5\u81EA\u52A8\u914D\u7F6E\uFF0C\u8BF7\u4F7F\u7528\u624B\u52A8\u914D\u7F6E.
                                                    \ \u4F9D\u7167 portforward.com \u7684\u8BF4\u660E
                                                    \ @@ -409,7 +409,7 @@ transcodingsettings.info =

                                                    (%s = \u6587\u4EF6\u5C06\u88AB\u8F6

                                                    \u8F6C\u7801\u8FC7\u7A0B\u662F\u7531\u4E00\u4E2A\u97F3\u4E50\u683C\u5F0F\u7BA1\u6362\u6210\u53E6\u4E00\u79CD\u683C\u5F0F.
                                                    \ {1}\u7684\u8F6C\u7801\u5F15\u64CE\u5C06\u975E\u4E32\u6D41\u683C\u5F0F\u8F6C\u6362\u6210\u4E32\u6D41. \u76F4\u63A5\u8F6C\u7801\u5E76\u4E14\u4E0D\u9700\u8981\u78C1\u76D8\u8FD0\u4F5C

                                                    \

                                                    \u5B9E\u9645\u7684\u4E13\u6362\u901A\u5E38\u662F\u901A\u8FC7\u7B2C\u4E09\u65B9\u8F6F\u4EF6\u4EE5\u547D\u4EE4\u5217\u65B9\u5F0F\u8F6C\u6362\uFF0C\u7A0B\u5E8F\u5B89\u88C5\u5728 {0}.

                                                    \ -

                                                    \u800CWindows\u7CFB\u7EDF\u7684\u8F6C\u6362\u7A0B\u5E8F\u53EF\u4EE5\u5728\u8FD9\u91CC\u627E\u5230. \ +

                                                    \u800CWindows\u7CFB\u7EDF\u7684\u8F6C\u6362\u7A0B\u5E8F\u53EF\u4EE5\u5728\u8FD9\u91CC\u627E\u5230. \ \u60A8\u4E5F\u80FD\u4EE5\u81EA\u5B9A\u7684\u8F6C\u6362\uFF0C\u53EA\u8981\u6EE1\u8DB3\u4E0B\u9762\u8981\u6C42\uFF1A\

                                                      \
                                                    • \u5FC5\u987B\u4EE5\u4E00\u4E2A\u547D\u4EE4\u884C\u6307\u4EE4\u754C\u9762.
                                                    • \ @@ -599,7 +599,7 @@ share.facebook = \u5728Facebook\u4E0A\u5171\u4EAB share.twitter = \u5728Twitter\u4E0A\u5171\u4EAB share.googleplus = \u5728Google+\u4E0A\u5171\u4EAB share.link = \u6216\u901A\u8FC7\u90AE\u4EF6\u53D1\u9001\u8FDE\u63A5: {0} -share.disabled = \u4F7F\u7528\u5171\u4EAB\u9700\u8981\u9996\u5148\u6CE8\u518C\u4F60\u7684 subsonic.org \u5730\u5740.
                                                      \ +share.disabled = \u4F7F\u7528\u5171\u4EAB\u9700\u8981\u9996\u5148\u6CE8\u518C\u4F60\u7684 libresonic.org \u5730\u5740.
                                                      \ \u8BF7\u5230\u8BBE\u7F6E > \u7F51\u7EDC (\u9700\u8981\u7BA1\u7406\u5458\u6743\u9650) share.manage = \u7BA1\u7406\u6211\u5171\u4EAB\u7684\u5A92\u4F53 diff --git a/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_zh_TW.properties b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_zh_TW.properties new file mode 100644 index 00000000..e3ff6b3a --- /dev/null +++ b/libresonic-main/src/main/resources/org/libresonic/player/i18n/ResourceBundle_zh_TW.properties @@ -0,0 +1,866 @@ +# +# Traditional Chinese (Taiwan) localization. +# Author: Cheng Jen Li +# chengjen.li@gmail.com +# Author: Shen-Ta Hsieh +# ibmibmibm.tw@gmail.com +# + +common.home = \u9996\u9801 +common.back = \u4E0A\u4E00\u9801 +common.help = \u8AAA\u660E +common.play = \u64AD\u653E +common.add = \u65B0\u589E +common.download = \u4E0B\u8F09 +common.close = \u95DC\u9589 +common.refresh = \u91CD\u65B0\u6574\u7406 +common.next = \u4E0B\u4E00\u9801 +common.previous = \u4E0A\u4E00\u9801 +common.more = \u66F4\u591A +common.ok = \u78BA\u5B9A +common.cancel = \u53D6\u6D88 +common.save = \u5132\u5B58 +common.create = \u5EFA\u7ACB +common.delete = \u522A\u9664 +common.edit = \u7DE8\u8F2F +common.confirm = \u8ACB\u78BA\u8A8D +common.unknown = (\u672A\u77E5) +common.default = (\u9810\u8A2D\u503C) +common.settingssaved = \u8A2D\u5B9A\u5DF2\u5132\u5B58\u3002 +common.trialexpired = \u8A66\u7528\u7248\u5C07\u65BC {0} \u5230\u671F\u3002\u53D6\u5F97Subsonic Premium\u4F86\u4F7F\u7528\u9019\u500B\u529F\u80FD\u3002 +common.trialnotexpired = \u9019\u500B\u529F\u80FD\u5728 {0} \u4E4B\u524D\u90FD\u53EF\u4F7F\u7528\u3002\u4E4B\u5F8C\u60A8\u5FC5\u9808\u53D6\u5F97Subsonic Premium\u624D\u80FD\u4F7F\u7528\u3002 + +# login.jsp +login.username = \u5E33\u865F +login.password = \u5BC6\u78BC +login.login = \u767B\u5165 +login.remember = \u8A18\u5F97\u6211 +login.logout = \u60A8\u5DF2\u7D93\u767B\u51FA\u3002 +login.error = \u5E33\u865F\u6216\u662F\u5BC6\u78BC\u932F\u8AA4\u3002 +login.insecure = {0} \u672A\u53D7\u4FDD\u8B77\u3002\u8ACB\u5148\u4EE5\u4F7F\u7528\u8005\u53CA\u5BC6\u78BC "admin"\u767B\u5165\uFF0C\u6216\u9EDE\u9078 \u9019\u88E1\uFF0C\u4E26\u4E14\u7ACB\u523B\u8B8A\u66F4\u60A8\u7684\u5BC6\u78BC\u3002 +login.recover = \u5FD8\u8A18\u5BC6\u78BC\uFF1F + +# recover.jsp +recover.title = \u5FD8\u8A18\u5BC6\u78BC\uFF1F +recover.text = \u8981\u91CD\u8A2D\u5BC6\u78BC\uFF0C\u8ACB\u5728\u4E0B\u65B9\u8F38\u5165\u60A8\u7684\u5E33\u865F\u6216\u662FEmail\u4F4D\u5740\u3002 +recover.username = \u5E33\u865F\u6216Email\u4F4D\u5740 +recover.send = \u91CD\u8A2D\u5BC6\u78BC\u4E26\u5BC4\u7D66\u6211 +recover.success = \u60A8\u7684\u5BC6\u78BC\u5DF2\u91CD\u8A2D\u4E26\u5BC4\u5230\u4E86 {0} \u3002 +recover.error.usernotfound = \u62B1\u6B49\uFF0C\u672A\u627E\u5230\u4F7F\u7528\u8005\u3002 +recover.error.noemail = \u62B1\u6B49\uFF0C\u8A72\u4F7F\u7528\u8005\u672A\u8A3B\u518A\u4FE1\u7BB1\u3002 +recover.error.sendfailed = Email\u5BC4\u9001\u5931\u6557\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002 +recover.error.invalidcaptcha = \u62B1\u6B49\uFF0C\u8F38\u5165\u7684CAPTCHA\u6587\u5B57\u6709\u8AA4\uFF0C\u8ACB\u518D\u8A66\u4E00\u6B21\u3002 + +# accessDenied.jsp +accessDenied.title = \u62D2\u7D55\u5B58\u53D6 +accessDenied.text = \u62B1\u6B49\uFF0C\u60A8\u7121\u6B0A\u57F7\u884C\u6240\u8ACB\u6C42\u7684\u64CD\u4F5C\u3002 + +# notFound.jsp +notFound.title = \u627E\u4E0D\u5230 +notFound.text =

                                                      Sorry, we could not find what you were looking for.

                                                      Try reloading the web page. If that doesn't help, \ + try scanning the media folders again.

                                                      +notFound.reload = \u91CD\u65B0\u6574\u7406\u9801\u9762 +notFound.scan = Media folders settings + +# top.jsp +top.home = \u9996\u9801 +top.now_playing = \u64AD\u653E +top.starred = Starred +top.settings = \u8A2D\u5B9A +top.status = \u72C0\u614B +top.podcast = \u64AD\u5BA2 +top.more = \u5176\u4ED6 +top.help = \u95DC\u65BC +top.search = \u641C\u5C0B +top.upgrade = \u6709\u65B0\u7248\u672C\u63D0\u4F9B. \u4E0B\u8F09 {0} {1} \ + \u9019\u88E1\u3002 +top.missing = \u627E\u4E0D\u5230\u97F3\u6A02\u8CC7\u6599\u593E\uFF0C\u8ACB\u91CD\u65B0\u8A2D\u5B9A\u3002 +top.logout =\u767B\u51FA{0} +top.getpremium = \u53D6\u5F97 Subsonic Premium +top.gotpremium = Subsonic Premium +top.trialdaysleft = \u5269\u4E0B {0} \u5929\u9AD4\u9A57\u6642\u9593 + +# left.jsp +left.scanning = \u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E\u4E2D\u2026 +left.statistics = {0} \u4F4D\u6B4C\u624B
                                                      \ + {1} \u5F35\u5C08\u8F2F
                                                      \ + {2} \u9996\u6B4C\u66F2
                                                      \ + {3}
                                                      \ + {4} \u5C0F\u6642 +left.shortcut = \u6377\u5F91 +left.playlists = \u64AD\u653E\u6E05\u55AE +left.radio = \u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F +left.allfolders = \u5168\u90E8 +left.showallplaylists = \u986F\u793A\u5168\u90E8 +left.createplaylist = \u5EFA\u7ACB\u65B0\u7684\u64AD\u653E\u6E05\u55AE +left.importplaylist = \u532F\u5165\u64AD\u653E\u6E05\u55AE + +# playQueue.jsp +playlist.stop = \u505C\u6B62 +playlist.start = \u64AD\u653E +playlist.confirmclear = \u78BA\u5B9A\u522A\u9664\u64AD\u653E\u6E05\u55AE? +playlist.clear = \u6E05\u9664 +playlist.shuffle = \u96A8\u8208\u64AD\u653E +playlist.repeat_on = \u91CD\u64AD +playlist.repeat_off = \u4E0D\u91CD\u64AD +playlist.undo = \u53D6\u6D88 +playlist.settings = \u8A2D\u5B9A +playlist.more = \u5176\u4ED6\u2026 +playlist.more.playlist = \u64AD\u653E\u6E05\u55AE +playlist.more.sortbytrack = \u97F3\u8ECC\u6392\u5E8F +playlist.more.sortbyartist = \u6B4C\u624B\u6392\u5E8F +playlist.more.sortbyalbum = \u5C08\u8F2F\u6392\u5E8F +playlist.more.selection = \u9078\u6B4C +playlist.more.selectall = \u5168\u9078 +playlist.more.selectnone = \u5168\u4E0D\u9078 +playlist.getflash = \u53D6\u5F97Flash\u64A5\u653E\u5668 +playlist.saveplayqueue = \u5132\u5B58\u64AD\u653E\u4F47\u5217 +playlist.loadplayqueue = \u8F09\u5165\u64AD\u653E\u4F47\u5217 +playlist.save = \u5132\u5B58 +playlist.append = \u52A0\u5165\u6E05\u55AE +playlist.remove = \u79FB\u9664 +playlist.up = \u4E0A +playlist.down = \u4E0B +playlist.empty = \u7A7A\u7684\u64AD\u653E\u6E05\u55AE +playlist.toast.appendtoplaylist = \u64AD\u653E\u6E05\u55AE\u5DF2\u66F4\u65B0\u3002 +playlist.toast.saveasplaylist = \u64AD\u653E\u6E05\u55AE\u5DF2\u5132\u5B58\u3002 +playlist.toast.saveplayqueue = \u64AD\u653E\u4F47\u5217\u5DF2\u5132\u5B58\u3002 +playlist.missing = \u907A\u5931 + +# playlist.jsp +playlist2.noplaylists = \u60A8\u9084\u672A\u5EFA\u7ACB\u4EFB\u4F55\u6E05\u55AE\u3002 +playlist2.created = \u7531 {0} \u5EFA\u7ACB\u7684 {1} +playlist2.songs = \u6B4C\u66F2 +playlist2.shared = \u5176\u4ED6\u4EBA\u4E5F\u53EF\u770B\u898B +playlist2.notshared = \u5176\u4ED6\u4EBA\u7121\u6CD5\u770B\u898B +playlist2.name = \u64AD\u653E\u6E05\u55AE\u540D\u7A31 +playlist2.comment = \u64AD\u653E\u6E05\u55AE\u8A3B\u89E3 +playlist2.public = \u4F7F\u6B64\u64AD\u653E\u6E05\u55AE\u53EF\u88AB\u5176\u4ED6\u4EBA\u4F7F\u7528\u3002 +playlist2.confirmdelete = \u60A8\u78BA\u5B9A\u8981\u522A\u9664\u6B64\u64AD\u653E\u6E05\u55AE\u55CE\uFF1F +playlist2.empty = \u64AD\u653E\u6E05\u55AE\u70BA\u7A7A +playlist2.export = \u532F\u51FA + +# importPlaylist.jsp +importPlaylist.title = Import playlist +importPlaylist.text = Select playlist to import (m3u, pls, xspf) +importPlaylist.success = Successfully imported playlist "{0}". +importPlaylist.error = Failed to import playlist. {0} + +# videoPlayer.jsp +videoPlayer.getflash = Please install Flash Player +videoPlayer.getpremium = Get Subsonic Premium to play on Chromecast. + +# status.jsp +status.title = \u72C0\u614B +status.type = \u5F62\u5F0F +status.stream = \u4E32\u6D41 +status.download = \u4E0B\u8F09 +status.upload = \u4E0A\u50B3 +status.player = \u64A5\u653E\u5668 +status.user = \u4F7F\u7528\u8005 +status.current = \u76EE\u524D\u64AD\u653E +status.transmitted = \u50B3\u8F38 +status.bitrate = Bitrate (Kbps) + +# starred.jsp +starred.title = My starred items +starred.empty = Click the star icons to mark your favorite artist, albums and songs. + +# search.jsp +search.title = \u641C\u5C0B +search.query = \u6B4C\u624B\u3001\u5C08\u8F2F\u6216\u6B4C\u66F2\u6A19\u984C\u3002 +search.search = \u641C\u5C0B +search.index = \u6B63\u5728\u5EFA\u7ACB\u7D22\u5F15\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66\uFF01 +search.hits.none = \u627E\u4E0D\u5230\u3002 +search.hits.more = \u66F4\u591A +search.hits.artists = \u6B4C\u624B +search.hits.albums = \u5C08\u8F2F +search.hits.songs = \u6B4C\u66F2 +search.hits.videos = \u5F71\u50CF + +# gettingStarted.jsp +gettingStarted.title = \u521D\u6B21\u4F7F\u7528 +gettingStarted.text =

                                                      \u6B61\u8FCE\u4F7F\u7528Libresonic\uFF01
                                                      \u8ACB\u4F9D\u7167\u4E0B\u9762\u7684\u6B65\u9A5F\u8A2D\u5B9A\u3002
                                                      \ + \u9EDE\u64CA\u5DE5\u5177\u5217\u4E0A\u7684"\u9996\u9801"\uFF0C\u5C31\u80FD\u96A8\u6642\u56DE\u4F86\u9019\u88E1\u3002

                                                      \ +

                                                      \u9700\u8981\u66F4\u591A\u8A0A\u606F\u8ACB\u53C3\u8003\u5165\u9580\u6307\u5357

                                                      +gettingStarted.root = \u8B66\u544A\uFF01Libresonic\u7A0B\u5F0F\u6B63\u4EE5 root \u4F7F\u7528\u8005\u57F7\u884C\u3002\u8ACB\u8003\u616E \ + \u5225\u7684\u65B9\u5F0F\u3002 +gettingStarted.step1.title = \u8B8A\u66F4\u7BA1\u7406\u54E1\u7684\u5BC6\u78BC\u3002 +gettingStarted.step1.text = \u8ACB\u4FEE\u6539\u9810\u8A2D\u7684\u7BA1\u7406\u54E1\u5BC6\u78BC\uFF0C\u4EE5\u78BA\u4FDD\u4F3A\u670D\u5668\u7684\u5B89\u5168\u3002\ + \u4E5F\u53EF\u4EE5\u5EFA\u7ACB\u65B0\u7684\u4F7F\u7528\u8005\u4E26\u7D66\u4E88\u4E0D\u540C\u7684\u6B0A\u9650\u3002 +gettingStarted.step2.title = \u8A2D\u5B9A\u97F3\u6A02\u8CC7\u6599\u593E\u3002 +gettingStarted.step2.text = \u8A2D\u5B9A\u60A8\u97F3\u6A02\u6240\u653E\u7F6E\u7684\u8CC7\u6599\u593E\u3002 +gettingStarted.step3.title = \u914D\u7F6E\u7DB2\u8DEF\u8A2D\u5B9A\u3002 +gettingStarted.step3.text = \u5982\u679C\u60A8\u8981\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u6216\u662F\u8207\u60A8\u7684\u670B\u53CB\u3001\u5BB6\u4EBA\u5206\u4EAB\u3002\ + \u4E26\u53D6\u5F97\u60A8\u7684\u5C08\u5C6C\u7DB2\u5740\u50CF\u662Fyourname.libresonic.org\u3002 +gettingStarted.hide = \u4E0B\u6B21\u4E0D\u986F\u793A\u672C\u9801\uFF01 +gettingStarted.hidealert = \u5982\u679C\u4E0B\u6B21\u9084\u9700\u8981\u986F\u793A\u63D0\u793A\uFF0C\u8ACB\u5F9E \u8A2D\u5B9A\u2192\u4E00\u822C \u4E2D\u52FE\u9078\u3002 + +# home.jsp +home.random.title = \u96A8\u8208\u64AD\u653E +home.alphabetical.title = \u5168\u90E8 +home.newest.title = \u6700\u65B0\u97F3\u6A02 +home.starred.title = \u661F\u865F\u6A19\u8A18 +home.highest.title = \u559C\u597D\u7A0B\u5EA6 +home.frequent.title = \u9EDE\u64AD\u7387 +home.recent.title = \u6700\u8FD1\u64AD\u653E +home.decade.title = \u7531\u5E74\u4EFD +home.genre.title = \u7531\u66F2\u98A8 +home.users.title = \u4F7F\u7528\u8005 +home.random.text = \u96A8\u8208\u9078\u64AD\u5C08\u8F2F +home.alphabetical.text = \u6240\u6709\u5C08\u8F2F +home.newest.text = \u6700\u65B0\u5C08\u8F2F +home.starred.text = \u60A8\u6A19\u8A18\u661F\u865F\u7684\u5C08\u8F2F +home.highest.text = \u8A55\u50F9\u9AD8\u7684\u5C08\u8F2F +home.frequent.text = \u6700\u591A\u9EDE\u64AD\u5C08\u8F2F +home.recent.text =\u6700\u8FD1\u64AD\u653E\u5C08\u8F2F +home.decade.text = \u5E74\u4EFD +home.genre.text = \u66F2\u98A8 +home.users.text = \u4F7F\u7528\u8005\u7D71\u8A08 +home.scan = \u6B63\u5728\u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E\u3002\u90E8\u4EFD\u529F\u80FD\u5C07\u7121\u6CD5\u4F7F\u7528\u3002 +home.albums = \u5C08\u8F2F {0} - {1} +home.playcount = \u64AD\u653E\u4E86 {0} \u9996\u6B4C +home.lastplayed = \u64AD\u653E {0} +home.created = \u5EFA\u7ACB {0} +home.shuffle = \u96A8\u6A5F\u64AD\u653E +home.chart.total = \u7E3D\u8A08 (MB) +home.chart.stream = \u4E32\u6D41 (MB) +home.chart.download = \u5DF2\u4E0B\u8F09(MB) +home.chart.upload = \u5DF2\u4E0A\u50B3 (MB) + +# more.jsp +more.title = \u5176\u4ED6 +more.random.title = \u96A8\u8208\u64AD\u653E +more.random.text = \u5EFA\u7ACB\u96A8\u8208\u6E05\u55AE +more.random.songs = {0} \u9996 +more.random.auto = \u7576\u64AD\u653E\u6E05\u55AE\u64AD\u653E\u5B8C\u7562\u6642\u7E7C\u7E8C\u96A8\u6A5F\u64AD\u653E\u6B4C\u66F2\u3002 +more.random.ok = \u78BA\u5B9A +more.random.genre = \u66F2\u98A8 +more.random.anygenre = \u4EFB\u610F +more.random.year = \u5E74\u4EFD +more.random.anyyear = \u4EFB\u610F +more.random.folder = \u97F3\u6A02\u8CC7\u6599\u593E +more.random.anyfolder = \u4EFB\u610F +more.apps.title = Libresonic Apps +more.apps.text =

                                                      \u652F\u63F4 iPhone, \ + Android \u548C AIR\u7684Libresonic apps\u3002

                                                      +more.jamstash.title = JamStash +more.jamstash.text =

                                                      Jamstash \u662F Libresonic \u7684 HTML5 \u64AD\u653E\u5668\u3002\u9EDE\u9078\u9019\u88E1 \u4F86\u555F\u52D5\u3002 \ + \u4E5F\u53EF\u4EE5\u5728 Chrome App \u5167\u53D6\u5F97\u3002

                                                      +more.status.title = \u7DB2\u8DEF\u72C0\u614B +more.status.text = \u76E3\u63A7\u6240\u6709\u7DB2\u8DEF\u4E32\u6D41\u7684\u5373\u6642\u72C0\u614B\u3002 +more.mobile.title = \u79FB\u52D5\u8A2D\u5099 +more.mobile.text =

                                                      \u53EF\u4EE5\u7531 WAP \u96FB\u8A71\u6216 PDA \u4F7F\u7528 {0} \u3002
                                                      \ + \u7D93\u7531\u624B\u6A5F\u8F38\u5165\u9019\u6A23\u7684\u7DB2\u5740 http://yourhostname/wap

                                                      \ +

                                                      \u9019\u9700\u8981\u60A8\u7684\u4F3A\u670D\u5668\u53EF\u4EE5\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u5B58\u53D6\u3002

                                                      +more.podcast.title = \u64AD\u5BA2 +more.podcast.text =

                                                      \u5132\u5B58\u64AD\u653E\u6E05\u55AE\u7576\u6210\u64AD\u5BA2\u3002
                                                      \ + \u7D93\u7531\u9019\u500B\u7DB2\u5740\u53EF\u4EE5\u6536\u807D\uFF1A http://yourhostname/podcast\uFF0C\ + \u6216\u662F \u9EDE\u6211\u3002

                                                      +more.upload.title = \u4E0A\u50B3\u6A94\u6848 +more.upload.source = \u9078\u64C7\u6A94\u6848 +more.upload.target = \u4E0A\u50B3\u5230 +more.upload.browse = \u9078\u64C7 +more.upload.ok = \u4E0A\u50B3 +more.upload.unzip = \u81EA\u52D5\u89E3\u58D3\u7E2Ezip\u6A94\u3002 +more.upload.progress = % \u5B8C\u6210\u3002\u8ACB\u7A0D\u5019\u2026 + +# upload.jsp +upload.title = \u6A94\u6848\u4E0A\u50B3\u4E2D +upload.success = \u4E0A\u50B3\u6210\u529F {0} +upload.empty = \u6C92\u6709\u53EF\u4E0A\u50B3\u7684\u6A94\u6848\u3002 +upload.failed = \u6A94\u6848\u4E0A\u50B3\u6642\u767C\u751F\u932F\u8AA4\uFF1A
                                                      "{0}" +upload.unzipped = \u89E3\u58D3\u7E2E {0} + +# help.jsp +help.title = \u95DC\u65BC {0} +help.upgrade = \u6CE8\u610F\uFF01 \u6709\u65B0\u7248\u672C\u53EF\u7528\u3002\u4E0B\u8F09 {0} {1} \ + \u8ACB\u9EDE\u9078\u9019\u88E1\u3002 +help.premium.title = \u6388\u6B0A +help.premium.expires = (\u904E\u671F {0}) +help.premium.upgrade = \u5347\u7D1A\u5230 Subsonic Premium \u4F86\u4F7F\u7528 \u66F4\u591A\u529F\u80FD\uFF01 +help.premium.expired = (\u6388\u6B0A\u904E\u671F\u65BC {0}) +help.version.title = \u7248\u672C +help.builddate.title = \u65E5\u671F +help.server.title = \u4F3A\u670D\u5668 +help.license.title = \u6388\u6B0A +help.license.text = {0} \u662F\u4EE5 GPL \u578B\u5F0F\u767C\u4F48\u6388\u6B0A\u7684\u81EA\u7531\u8EDF\u9AD4\u3002
                                                      {0} \u4F7F\u7528 \u7B2C\u4E09\u65B9\u6388\u6B0A\u3002 +help.homepage.title = \u9996\u9801 +help.forum.title = \u8AD6\u58C7 +help.shop.title = \u5546\u54C1 +help.contact.title = \u806F\u7E6B +help.contact.text = {0} \u7531 Sindre Mehus \u958B\u767C\u53CA\u7DAD\u8B77(sindre@activeobjects.no)\u3002\u5982\u679C\u60A8\u6709\u4EFB\u4F55\u7591\u554F\uFF0C\u610F\u898B\u6216\u5EFA\u8B70\u6539\u5584\uFF0C\u8ACB\u5230Libresonic\u8AD6\u58C7\u3002 +help.log = \u8A18\u9304 +help.logfile = \u5B8C\u6574\u7684\u7D00\u9304\u5B58\u653E\u5728 {0}\u3002 + +# settingsHeader.jsp +settingsheader.title = \u8A2D\u5B9A +settingsheader.general = \u4E00\u822C +settingsheader.advanced = \u9032\u968E +settingsheader.personal = \u500B\u4EBA\u5316 +settingsheader.musicFolder = \u97F3\u6A02\u8CC7\u6599\u593E +settingsheader.internetRadio = \u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F +settingsheader.podcast = \u64AD\u5BA2 +settingsheader.player = \u64AD\u653E\u5668 +settingsheader.dlna = DLNA/UPnP +settingsheader.sonos = Sonos +settingsheader.premium = Subsonic Premium +settingsheader.share = \u5206\u4EAB\u5A92\u9AD4 +settingsheader.network = \u7DB2\u8DEF +settingsheader.transcoding = \u8F49\u6A94 +settingsheader.user = \u4F7F\u7528\u8005 +settingsheader.search = \u641C\u5C0B +settingsheader.coverArt = \u5C08\u8F2F\u5C01\u9762 +settingsheader.password = \u5BC6\u78BC + +# generalSettings.jsp +generalsettings.playlistfolder = \u64AD\u653E\u6E05\u55AE\u8CC7\u6599\u593E +generalsettings.musicmask = \u97F3\u6A02\u7684\u9644\u5C6C\u6A94\u540D: +generalsettings.videomask = \u8996\u8A0A\u7684\u9644\u5C6C\u6A94\u540D: +generalsettings.coverartmask = \u5C08\u8F2F\u5C01\u9762\u9644\u5C6C\u6A94\u540D +generalsettings.index = \u7D22\u5F15 +generalsettings.ignoredarticles = \u5FFD\u7565\u7684\u6B4C\u624B\u540D\u7A31 +generalsettings.shortcuts = \u6377\u5F91 +generalsettings.sortalbumsbyyear = \u7531\u5E74\u4EFD\u6392\u5E8F\u5C08\u8F2F +generalsettings.showgettingstarted = \u5728\u9996\u9801\u986F\u793A "\u521D\u6B21\u4F7F\u7528" +generalsettings.welcometitle = \u6B61\u8FCE\u6A19\u984C +generalsettings.welcomesubtitle = \u6B61\u8FCE\u6B21\u6A19\u984C +generalsettings.welcomemessage = \u6B61\u8FCE\u8A0A\u606F +generalsettings.loginmessage = \u767B\u5165\u8A0A\u606F +generalsettings.language = \u9810\u8A2D\u8A9E\u8A00 +generalsettings.theme = \u9810\u8A2D\u4F48\u666F\u4E3B\u984C + +# advancedSettings.jsp +advancedsettings.downsamplecommand = \u964D\u983B\u6307\u4EE4 +advancedsettings.hlscommand = HTTP \u7DDA\u4E0A\u4E32\u6D41\u6307\u4EE4 +advancedsettings.downloadlimit = \u4E0B\u8F09\u9650\u5236 (Kbps)
                                                      (0 = \u4E0D\u9650)
                                                      +advancedsettings.uploadlimit = \u4E0A\u50B3\u9650\u5236 (Kbps)
                                                      (0 = \u4E0D\u9650)
                                                      +advancedsettings.streamport = \u975E SSL \u4E32\u6D41 Port
                                                      (0 = \u53D6\u6D88)
                                                      +advancedsettings.ldapenabled = \u555F\u52D5 LDAP \u9A57\u8B49 +advancedsettings.ldapurl = LDAP \u7DB2\u5740 +advancedsettings.ldapsearchfilter = LDAP \u641C\u5C0B\u904E\u6FFE +advancedsettings.ldapmanagerdn = LDAP \u7BA1\u7406\u8005 DN
                                                      (\u53EF\u9078\u64C7)
                                                      +advancedsettings.ldapmanagerpassword = \u5BC6\u78BC +advancedsettings.ldapautoshadowing = \u81EA\u52D5\u5728{0}\u5EFA\u7ACB\u4F7F\u7528\u8005 +advancedsettings.smtpPort = SMTP \u9023\u63A5\u57E0 +advancedsettings.smtpServer = SMTP \u4F3A\u670D\u5668 +advancedsettings.smtpEncryption = SMTP \u52A0\u5BC6 +advancedsettings.smtpUser = SMTP \u5E33\u865F +advancedsettings.smtpPassword = \u5BC6\u78BC +advancedsettings.smtpEncryption.none = \u7121 +advancedsettings.smtpEncryption.starttls = STARTTLS +advancedsettings.smtpEncryption.ssl = SSL/TLS +advancedsettings.smtpFrom = \u5BC4\u4EF6\u8005 + +# personalSettings.jsp +personalsettings.title = {0}\u7684\u500B\u4EBA\u5316\u8A2D\u5B9A +personalsettings.language = \u8A9E\u8A00 +personalsettings.theme = \u4F48\u666F\u4E3B\u984C +personalsettings.albumlist = \u9810\u8A2D\u5C08\u8F2F\u6392\u5E8F\u65B9\u5F0F +personalsettings.display = \u986F\u793A +personalsettings.browse = \u700F\u89BD +personalsettings.playlist = \u64AD\u653E\u6E05\u55AE +personalsettings.tracknumber = \u97F3\u8ECC # +personalsettings.artist = \u6B4C\u624B +personalsettings.album = \u5C08\u8F2F +personalsettings.genre = \u66F2\u98A8 +personalsettings.year = \u767C\u884C +personalsettings.bitrate = Bit rate +personalsettings.duration = \u6642\u6548 +personalsettings.format = \u683C\u5F0F +personalsettings.filesize = \u6587\u4EF6\u5927\u5C0F +personalsettings.partymode = \u5BB4\u6703\u6A21\u5F0F +personalsettings.queuefollowingsongs = Queue following songs on play +personalsettings.shownowplaying = \u5176\u4ED6\u4EBA\u5728\u807D\u4EC0\u9EBC +personalsettings.nowplayingallowed = \u8B93\u5225\u4EBA\u770B\u6211\u5728\u807D\u4EC0\u9EBC +personalsettings.showchat = \u986F\u793A\u4EA4\u8AC7\u8A0A\u606F +personalsettings.showartistinfo = \u986F\u793A\u6B4C\u624B\u8CC7\u8A0A +personalsettings.autohideplayqueue = \u81EA\u52D5\u96B1\u85CF\u64AD\u653E\u4F47\u5217 +personalsettings.finalversionnotification = \u63D0\u793A\u65B0\u7248\u672C +personalsettings.betaversionnotification = \u63D0\u793A\u65B0\u7684\u6E2C\u8A66\u7248 +personalsettings.songnotification = \u958B\u59CB\u64AD\u653E\u65B0\u6B4C\u6642\u63D0\u9192\u6211 (\u4E0D\u662F\u6240\u6709\u700F\u89BD\u5668\u90FD\u652F\u63F4) +personalsettings.lastfmenabled = \u767B\u9304\u6211\u5728 Last.fm\u7684\u5E33\u865F +personalsettings.lastfmusername = Last.fm \u5E33\u865F +personalsettings.lastfmpassword = Last.fm \u5BC6\u78BC +personalsettings.avatar.title = \u500B\u4EBA\u5716\u793A +personalsettings.avatar.none = \u4E0D\u7528\u5716\u793A +personalsettings.avatar.custom = \u81EA\u8A02\u5F71\u50CF +personalsettings.avatar.changecustom = \u8B8A\u66F4\u81EA\u8A02\u5716\u793A +personalsettings.avatar.upload = \u4E0A\u50B3 +personalsettings.avatar.courtesy = Icons courtesy of Afterglow, \ + Aha-Soft, \ + Icons-Land, and \ + Iconshock + +# avatarUploadResult.jsp +avataruploadresult.title = \u8B8A\u66F4\u500B\u4EBA\u5716\u793A +avataruploadresult.success = \u6210\u529F\u4E0A\u50B3\u500B\u4EBA\u5716\u793A "{0}"\u3002 +avataruploadresult.failure = \u7121\u6CD5\u4E0A\u50B3\u500B\u4EBA\u5716\u793A. \u8ACB\u53C3\u95B1 \u8A18\u9304\u3002 + +# passwordSettings.jsp +passwordsettings.title = \u8B8A\u66F4\u5BC6\u78BC {0} + +# musicFolderSettings.jsp +musicfoldersettings.path = \u97F3\u6A02\u8CC7\u6599\u593E +musicfoldersettings.name = \u540D\u7A31 +musicfoldersettings.enabled = \u4F7F\u7528 +musicfoldersettings.add = \u65B0\u589E\u97F3\u6A02\u8CC7\u6599\u593E +musicfoldersettings.nopath = \u8ACB\u6307\u5B9A\u8CC7\u6599\u593E\u3002 +musicfoldersettings.notfound = \u627E\u4E0D\u5230\u8CC7\u6599\u593E +musicfoldersettings.scan = \u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E +musicfoldersettings.interval.never = \u5F9E\u4E0D +musicfoldersettings.interval.one = \u6BCF\u5929 +musicfoldersettings.interval.many = \u6BCF\u9694 {0} \u5929 +musicfoldersettings.hour = \u5728 {0}:00 +musicfoldersettings.nowscanning = \u6B63\u5728\u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E\u3002 \ + \u9019\u500B\u52D5\u4F5C\u5C07\u9700\u8981\u5E7E\u5206\u9418\uFF0C\u53D6\u6C7A\u65BC\u60A8\u7684\u5A92\u9AD4\u8CC7\u6599\u5EAB\u7684\u5927\u5C0F\u3002 +musicfoldersettings.scannow = \u7ACB\u5373\u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E +musicfoldersettings.access = \u7BA1\u7406\u4F7F\u7528\u8005\u5B58\u53D6\u6B0A\u9650 +musicfoldersettings.access.description = \u8A2D\u5B9A\u54EA\u4E9B\u8CC7\u6599\u593E\u53EF\u4EE5\u88AB\u54EA\u4E9B\u4F7F\u7528\u8005\u5B58\u53D6\u3002 +musicfoldersettings.fastcache = \u5FEB\u901F\u8B80\u53D6\u6A21\u5F0F +musicfoldersettings.fastcache.description = \u5982\u679C\u4F60\u7684\u5A92\u9AD4\u6A94\u6848\u5728\u7DB2\u8DEF\u4E0A\u7684\u78C1\u789F\uFF0C\u4F7F\u7528\u9019\u500B\u9078\u9805\u4F86\u6E1B\u5C11\u78C1\u789F\u5B58\u53D6\u3002 \ + \u6CE8\u610F\uFF1A\u65B0\u589E\u6216\u66F4\u6539\u5BE6\u969B\u6A94\u6848\u5C07\u6703\u53EA\u6709\u5728\u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E\u5F8C\u624D\u6703\u751F\u6548\u3002 +musicfoldersettings.expunge = \u6E05\u7406\u8CC7\u6599\u5EAB +musicfoldersettings.expunge.description = Libresonic \u5132\u5B58\u4E86\u6240\u6709\u5A92\u9AD4\u6A94\u6848\u7684\u8CC7\u8A0A\u3002 \ + \u6E05\u7406\u8CC7\u6599\u5EAB\u5F8C\uFF0C\u4E0D\u5728\u60A8\u7684\u5A92\u9AD4\u8CC7\u6599\u5EAB\u5167\u7684\u6A94\u6848\uFF0C\u5176\u8CC7\u8A0A\u5C07\u6C38\u4E45\u522A\u9664\u3002 +musicfoldersettings.organizebyfolderstructure = \u4EE5\u8CC7\u6599\u593E\u7D50\u69CB\u6574\u7406 +musicfoldersettings.organizebyfolderstructure.description = \u958B\u555F\u9019\u500B\u9078\u9805\u4F7F\u60A8\u700F\u89BD\u5A92\u9AD4\u8CC7\u6599\u5EAB\u6642\u4F7F\u7528\u539F\u4F86\u7684\u8CC7\u6599\u593E\u7D50\u69CB\uFF0C\u800C\u4E0D\u662F\u4F9D\u7167 ID3 \u6A19\u7C64\u5167\u7684\u6B4C\u624B\u8207\u5C08\u8F2F\u8CC7\u8A0A\u3002 + +# networkSettings.jsp +networksettings.text = \u4EE5\u4E0B\u8A2D\u5B9A\u8B93\u60A8\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u5B58\u53D6Libresonic\u4F3A\u670D\u5668\u3002
                                                      \ + \u6709\u4EFB\u4F55\u554F\u984C\uFF0C\u8ACB\u53C3\u8003 \u521D\u6B21\u4F7F\u7528\u624B\u518A\u3002 +networksettings.portforwardingenabled = \u81EA\u52D5\u914D\u7F6E\u8DEF\u7531\u5668\u5B58\u53D6 Libresonic \u4F3A\u670D\u5668 (UPnP port \u8F49\u767C)\u3002 +networksettings.portforwardinghelp = \u5982\u679C\u8DEF\u7531\u7121\u6CD5\u81EA\u52D5\u914D\u7F6E\uFF0C\u8ACB\u4F7F\u7528\u624B\u52D5\u914D\u7F6E\u3002
                                                      \ + \u4F9D\u7167 portforward.com \u7684\u8AAA\u660E
                                                      \ + \u60A8\u5FC5\u9808\u8F49\u767CPort {0}\u5230\u96FB\u8166\u4E0A\u904B\u884C\u7684Libresonic\u4F3A\u670D\u5668\u3002 +networksettings.urlredirectionenabled = \u7528\u7C21\u55AE\u597D\u8A18\u7684\u7DB2\u5740\u9023\u7DDA\u5230\u60A8\u7684\u4F3A\u670D\u5668\u3002 +networksettings.status = \u72C0\u614B\uFF1A +networksettings.normalurl = Use +networksettings.customurl = Use custom URL (advanced) +networksettings.urlRedirectDisabled = Feature not currently available + + +# transcodingSettings.jsp +transcodingsettings.name = \u8F49\u6A94\u540D\u7A31 +transcodingsettings.sourceformat = \u539F\u59CB\u6A94 +transcodingsettings.targetformat = \u8F49\u63DB\u6210 +transcodingsettings.step1 = \u6B65\u9A5F\u4E00 +transcodingsettings.step2 = \u6B65\u9A5F\u4E8C +transcodingsettings.step3 = \u6B65\u9A5F\u4E09 +transcodingsettings.add = \u65B0\u589E\u8F49\u78BC\u5668 +transcodingsettings.defaultactive = \u9810\u8A2D +transcodingsettings.recommended = Recommended configuration +transcodingsettings.noname = \u8ACB\u6307\u5B9A\u4E00\u500B\u540D\u7A31\u3002 +transcodingsettings.nosourceformat = \u8ACB\u6307\u5B9A\u8F49\u63DB\u7684\u4F86\u6E90\u683C\u5F0F\u3002 +transcodingsettings.notargetformat = \u8ACB\u6307\u5B9A\u8F49\u63DB\u7684\u76EE\u7684\u683C\u5F0F\u3002 +transcodingsettings.nostep1 = \u8ACB\u81F3\u5C11\u6307\u5B9A\u4E00\u500B\u8F49\u63DB\u6B65\u9A5F\u3002 +transcodingsettings.info =

                                                      (%s = \u6A94\u6848\u5C07\u88AB\u8F49\u63DB\uFF0C%b = \u64A5\u653E\u5668\u7684\u6700\u5927\u50B3\u8F38\u7387\uFF0C%t = \u6A19\u984C\uFF0C%a = \u6B4C\u624B\uFF0C%l = \u5C08\u8F2F)

                                                      \ +

                                                      \u8F49\u6A94\u904E\u7A0B\u662F\u7531\u4E00\u500B\u97F3\u6A02\u683C\u5F0F\u8F49\u63DB\u6210\u53E6\u4E00\u7A2E\u683C\u5F0F\u3002{1}\u7684\u8F49\u6A94 \ + \u5F15\u64CE\u5C07\u975E\u4E32\u6D41\u683C\u5F0F\u8F49\u63DB\u6210\u4E32\u6D41\u3002\u76F4\u63A5\u8F49\u6A94\u4E26\u4E14\u4E0D\u9700\u8981\u78C1\u789F\u904B\u4F5C

                                                      \ +

                                                      \u5BE6\u969B\u7684\u8F49\u63DB\u52D5\u4F5C\u901A\u5E38\u662F\u900F\u904E\u7B2C\u4E09\u65B9\u8EDF\u9AD4\u4EE5\u547D\u4EE4\u5217\u65B9\u5F0F\u8F49\u63DB\uFF0C\u7A0B\u5F0F\u5B89\u88DD\u5728 {0}\u3002

                                                      \ +

                                                      \u800CWindows\u7CFB\u7D71\u7684\u8F49\u63DB\u7A0B\u5F0F\u53EF\u4EE5\u5728\u9019\u88E1\u627E\u5230\u3002 \ + \u60A8\u4E5F\u80FD\u4EE5\u81EA\u5B9A\u7684\u8F49\u63DB\uFF0C\u53EA\u8981\u6EFF\u8DB3\u4E0B\u9762\u8981\u6C42\uFF1A\ +

                                                        \ +
                                                      • \u5FC5\u9808\u6709\u547D\u4EE4\u5217\u754C\u9762\u3002
                                                      • \ +
                                                      • \u5FC5\u9808\u80FD\u5920\u5C07\u7D50\u679C\u9001\u5230\u6A19\u6E96\u8F38\u51FA(Stdout)\u3002
                                                      • \ +
                                                      • \u5982\u679C\u5728\u6B65\u9A5F2\u4F7F\u7528\uFF0C\u5B83\u5FC5\u9808\u80FD\u5920\u5F9E\u6A19\u6E96\u8F38\u5165(Stdin)\u8B80\u53D6\u3002
                                                      • \ +
                                                      \ +

                                                      \ +

                                                      \u8ACB\u6CE8\u610F\uFF0C\u8F49\u63DB\u7684\u7A0B\u5E8F\u7684\u7531\u64A5\u653E\u5668\u8A2D\u5B9A\u4E2D\u52FE\u9078\u3002\u5982\u679C"\u9810\u8A2D"\u662F\u5DF2\u52FE\u9078\u7684\uFF0C\u90A3\u9EBC\u8F49\u63DB\u6703\u81EA\u52D5\u5728\u65B0\u64AD\u653E\u5668\u4E2D\u4F7F\u7528\u3002

                                                      + +# internetRadioSettings.jsp +internetradiosettings.streamurl = \u4E32\u6D41\u7DB2\u5740 +internetradiosettings.homepageurl = \u9996\u9801 +internetradiosettings.name = \u540D\u7A31 +internetradiosettings.enabled = \u63A1\u7528 +internetradiosettings.add = \u52A0\u5165\u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F +internetradiosettings.nourl = \u8ACB\u6307\u5B9A\u7DB2\u5740\u3002 +internetradiosettings.noname = \u8ACB\u6307\u5B9A\u540D\u7A31\u3002 + +# podcastSettings.jsp +podcastsettings.update = \u6AA2\u67E5\u65B0\u7684\u6536\u85CF +podcastsettings.keep = \u4FDD\u6301 +podcastsettings.keep.all = \u6240\u6709\u7684\u6536\u85CF +podcastsettings.keep.one = \u6700\u65B0\u7684\u6536\u85CF\u96C6 +podcastsettings.keep.many = \u6700\u8FD1 {0} \u7684\u6536\u85CF +podcastsettings.download = \u5982\u679C\u6709\u6700\u65B0\u7684\u6536\u85CF +podcastsettings.download.all = \u5168\u90E8\u4E0B\u8F09 +podcastsettings.download.one = \u4E0B\u8F09\u6700\u65B0\u7684 +podcastsettings.download.many = \u4E0B\u8F09\u6700\u8FD1{0}\u7684\u6536\u85CF +podcastsettings.download.none = \u4E0D\u505A +podcastsettings.interval.manually = \u624B\u52D5 +podcastsettings.interval.hourly = \u6BCF\u5C0F\u6642 +podcastsettings.interval.daily = \u6BCF\u5929 +podcastsettings.interval.weekly = \u6BCF\u9031 +podcastsettings.folder = \u5132\u5B58\u64AD\u5BA2\u5728 + +# playerSettings.jsp +playersettings.noplayers = \u6C92\u6709\u64A5\u653E\u5668\u3002 +playersettings.type = \u5F62\u614B +playersettings.lastseen = \u4E0A\u6B21\u767B\u5165 +playersettings.title = \u9078\u64C7\u64A5\u653E\u5668 +playersettings.technology.web.title = \u7DB2\u9801\u64AD\u653E +playersettings.technology.external.title = \u76F4\u63A5\u7528\u5916\u90E8\u64AD\u653E\u5668\u64AD\u653E +playersettings.technology.external_with_playlist.title = \u4EE5\u64AD\u653E\u6E05\u55AE\u5728\u5916\u90E8\u64A5\u653E\u5668\u64AD\u653E +playersettings.technology.jukebox.title = \u9EDE\u64AD\u6A5F\u6A21\u5F0F +playersettings.technology.web.text = \u76F4\u63A5\u5728\u7DB2\u9801\u4E2D\u7684Flash\u64AD\u653E\u5668\u64AD\u653E. +playersettings.technology.external.text = \u5728\u60A8\u5E38\u7528\u7684\u64A5\u653E\u5668\u4E2D\u64AD\u653E\uFF0C\u4F8B\u5982:WinAmp\u3001Windows Media Player\u3001iTunes. +playersettings.technology.external_with_playlist.text = \u5982\u540C\u4E0A\u9762\u7684\u9078\u9805\uFF0C\u4F46\u662F\u64AD\u653E\u6E05\u55AE\u7531\u5BA2\u6236\u7AEF\u7BA1\u7406\uFF0C\u800C\u4E0D\u662F\u4F3A\u670D\u5668\u3002 \ + \u5728\u9019\u500B\u6A21\u5F0F\u4E2D\u53EF\u4EE5\u8DF3\u8457\u64AD\u653E\u3002 +playersettings.technology.jukebox.text = \u76F4\u63A5\u5728Libresonic\u4F3A\u670D\u5668\u4E2D\u64AD\u653E\u3002(\u9650\u5DF2\u6388\u6B0A\u7684\u7528\u6236\u3002) +playersettings.name = \u64A5\u653E\u5668\u540D\u7A31 +playersettings.maxbitrate = \u6700\u5927\u50B3\u8F38\u7387 +playersettings.notranscoder = \u6CE8\u610F: \u8F49\u78BC\u5F15\u64CE\u5C1A\u672A\u5B89\u88DD\u3002
                                                      \u9EDE\u9078\u3010\u8AAA\u660E\u3011\u7372\u5F97\u66F4\u591A\u8CC7\u8A0A\u3002 +playersettings.autocontrol = \u81EA\u52D5\u64AD\u653E +playersettings.m3ubom = \u70ba\u7522\u751f\u7684M3U\u6a94\u6848\u589e\u52a0BOM\u6a19\u8a18 +playersettings.dynamicip = \u64A5\u653E\u5668\u4F7F\u7528\u52D5\u614BIP\u4F4D\u5740 +playersettings.transcodings = \u555F\u52D5\u7684\u8F49\u78BC\u7A0B\u5F0F +playersettings.ok = \u5132\u5B58 +playersettings.forget = \u522A\u9664\u64A5\u653E\u5668 +playersettings.clone = \u8907\u88FD\u64A5\u653E\u5668 + +dlnasettings.enabled = Enable DLNA server +dlnasettings.description = Use this option to turn on the DLNA/UPnP Media Server in Libresonic, \ + and stream your media to compatible DLNA players. +dlnasettings.servername = Media Server name +dlnasettings.servername.description = The name of the Media Server as it will appear in DLNA players. + +sonossettings.enabled = Enable Sonos music service +sonossettings.description = Use this option to turn on the Sonos music service in Libresonic, \ + and stream your media to Sonos devices on your local network. Remember to add Libresonic \ + as a music service from your Sonos controller. Visit \ + sonos.libresonic.org for more info. \ + For trouble-shooting, please see the log. +sonossettings.servicename = Music service name +sonossettings.servicename.description = The name of the music service as it will appear in the Sonos controller. + +# shareSettings.jsp +sharesettings.name = Name +sharesettings.owner = Shared by +sharesettings.description = Description +sharesettings.visits = Visits +sharesettings.lastvisited = Last visited +sharesettings.expires = Expires +sharesettings.files = Shared files +sharesettings.expirein = Expire in +sharesettings.expirein.week = 1w +sharesettings.expirein.month = 1m +sharesettings.expirein.year = 1y +sharesettings.expirein.never = never +sharesettings.deleteexpired = Delete all expired + +# userSettings.jsp +usersettings.title = \u9078\u64C7\u4F7F\u7528\u8005 +usersettings.newuser = \u65B0\u4F7F\u7528\u8005 +usersettings.admin = \u7BA1\u7406\u54E1\u6B0A\u9650 +usersettings.settings = \u53EF\u4EE5\u8B8A\u66F4\u8A2D\u5B9A\u53CA\u5BC6\u78BC +usersettings.stream = \u53EF\u4EE5\u64AD\u653E\u6A94\u6848 +usersettings.jukebox = \u53EF\u4EE5\u7528\u9EDE\u64A5\u6A5F\u6A21\u5F0F +usersettings.download = \u53EF\u4EE5\u4E0B\u8F09\u6A94\u6848 +usersettings.upload = \u53EF\u4EE5\u4E0A\u50B3\u6A94\u6848 +usersettings.share = \u53EF\u4EE5\u8207\u4EFB\u4F55\u4EBA\u5206\u4EAB\u6A94\u6848 +usersettings.coverart = \u53EF\u4EE5\u66F4\u63DB\u5C08\u8F2F\u5C01\u9762\u53CA\u6A19\u7C64 +usersettings.comment= \u53EF\u4EE5\u5EFA\u7ACB\u6216\u7DE8\u8F2F\u8A55\u8AD6\u53CA\u8A55\u5206 +usersettings.podcast= \u53EF\u4EE5\u7BA1\u7406\u64AD\u5BA2 +usersettings.folderaccess = \u53EF\u4EE5\u5B58\u53D6\u9019\u4E9B\u5A92\u9AD4\u8CC7\u6599\u593E +usersettings.username = \u4F7F\u7528\u8005 +usersettings.email = Email +usersettings.changepassword = \u8B8A\u66F4\u5BC6\u78BC +usersettings.password = \u5BC6\u78BC +usersettings.newpassword = \u65B0\u5BC6\u78BC +usersettings.confirmpassword = \u518D\u6B21\u78BA\u8A8D\u5BC6\u78BC +usersettings.delete = \u522A\u9664\u4F7F\u7528\u8005 +usersettings.ldap = \u5728LDAP\u9A57\u8B49\u7528\u6236 +usersettings.nousername = \u7F3A\u5C11\u4F7F\u7528\u8005\u540D\u7A31\u3002 +usersettings.noemail= \u4E0D\u5408\u6CD5\u7684 email \u4F4D\u5740\u3002 +usersettings.useralreadyexists = \u5E33\u865F\u540D\u7A31\u5DF2\u7D93\u88AB\u4F7F\u7528\u4E86\u3002 +usersettings.nopassword = \u5FC5\u9808\u8A2D\u5B9A\u5BC6\u78BC\u3002 +usersettings.wrongpassword = \u5169\u6B21\u8F38\u5165\u5BC6\u78BC\u4E0D\u540C\u3002 +usersettings.ldapdisabled = LDAP\u9A57\u8B49\u6C92\u6709\u555F\u52D5\u3002\u8ACB\u5230\u9032\u968E\u8A2D\u5B9A\u3002 +usersettings.passwordnotsupportedforldap = \u7121\u6CD5\u8A2D\u5B9A\u6216\u8B8A\u66F4 LDAP \u9A57\u8B49\u7528\u6236\u7684\u5BC6\u78BC\u3002 +usersettings.ok = \u4F7F\u7528\u8005 {0} \u7684\u5BC6\u78BC\u5DF2\u7D93\u8B8A\u66F4\u3002 + +# main.jsp +main.up = \u4E0A\u4E00\u9801 +main.playall = \u5168\u90E8\u64AD\u653E +main.playrandom = \u96A8\u8208\u64AD\u653E +main.addall = \u5168\u90E8\u52A0\u5230\u64AD\u653E\u6E05\u55AE\u4E2D +main.downloadall = \u5168\u90E8\u4E0B\u8F09 +main.tags = \u7DE8\u8F2F\u6A19\u7C64 +main.playcount = \u64AD\u653E {0} \u6B21\u3002 +main.lastplayed =\u4E0A\u6B21\u64AD\u653E\u5728 {0} \u3002 +main.comment = \u8A55\u8AD6 +main.wiki = \ + \ + \ + \ + \ +
                                                      __text__\u7C97\u9AD4 \\\\ \u63DB\u884C
                                                      ~~text~~\u659C\u9AD4 (empty line) \u65B0\u6BB5\u843D
                                                      * text \u6E05\u55AE http://foo.com/ \u934A\u7D50
                                                      1. text \u5217\u8209\u6E05\u55AE{link:Foo|http://foo.com}\u5DF2\u547D\u540D\u934A\u7D50
                                                      +main.sharealbum = \u5206\u4EAB +main.more = \u66F4\u591A\u52D5\u4F5C\u2026 +main.more.selection = \u9078\u64C7\u6B4C\u66F2\u2026 +main.more.share = \u5206\u4EAB +main.premium = \u53D6\u5F97 Subsonic Premium
                                                      (\u4E26\u522A\u9664\u6B64\u5EE3\u544A) +main.nowplaying =\u76EE\u524D\u64A5\u653E +main.lyrics = \u6B4C\u8A5E +main.minutesago = \u5206\u9418\u524D +main.chat = \u4EA4\u8AC7 +main.scanning = \u6383\u63CF\u6A94\u6848\uFF1A +main.message = \u5BEB\u5728\u9019\u88E1 +main.clearchat = \u6E05\u9664 +main.addtoplaylist.title = \u589E\u52A0\u81F3\u64AD\u653E\u6E05\u55AE +main.addtoplaylist.text = \u589E\u52A0\u5DF2\u9078\u64C7\u7684\u6B4C\u66F2\u81F3\u6B64\u64AD\u653E\u6E05\u55AE\uFF1A +main.addnext = \u52A0\u5230\u4E0B\u4E00\u9996 +main.addlast = \u52A0\u5230\u6700\u5F8C\u4E00\u9996 +main.addnext.toast = \u6B64\u6B4C\u66F2\u5C07\u6703\u65BC\u4E0B\u4E00\u9996\u6642\u64AD\u653E +main.addlast.toast = \u6B64\u6B4C\u66F2\u5C07\u6703\u65BC\u6700\u5F8C\u4E00\u9996\u6642\u64AD\u653E +main.similarartists = \u76F8\u4F3C\u7684\u6B4C\u624B +main.startradio = Start radio +main.playtopsongs = \u64AD\u653E\u6392\u884C\u699C\u6B4C\u66F2 +main.showall = \u986F\u793A\u6240\u6709\u5C08\u8F2F +main.topsongs = \u6392\u884C\u699C\u6B4C\u66F2 + +# rating.jsp +rating.rating = \u7B49\u7D1A +rating.clearrating = \u6E05\u9664\u7B49\u7D1A + +# coverArt.jsp +coverart.change = \u8B8A\u66F4 +coverart.zoom = \u653E\u5927 + +# allmusic.jsp +allmusic.text = \u5728 allmusic.com \u641C\u5C0B\u5C08\u8F2F {0} - \u8ACB\u7A0D\u5019\u3002 + +# changeCoverArt.jsp +changecoverart.title = \u8B8A\u66F4\u5C08\u8F2F\u5C01\u9762 +changecoverart.address = \u6216\u662F\u8F38\u5165\u5716\u5F62\u7684\u4F4D\u5740 +changecoverart.artist = \u6B4C\u624B +changecoverart.album = \u5C08\u8F2F +changecoverart.search = Google \u5716\u7247\u641C\u5C0B +changecoverart.wait = \u8ACB\u7A0D\u5019\u2026 +changecoverart.success = \u5716\u7247\u4E0B\u8F09\u6210\u529F\u3002 +changecoverart.error = \u7121\u6CD5\u4E0B\u8F09\u5716\u7247\u3002 +changecoverart.noimagesfound = \u627E\u4E0D\u5230\u5716\u7247\u3002 + +# changeCoverArtConfirm.jsp +changeCoverArtConfirm.failed = \u7121\u6CD5\u4FEE\u6539\u5C08\u8F2F\u5C01\u9762:
                                                      "{0}" + +# editTags.jsp +edittags.title = \u7DE8\u8F2F\u6A19\u7C64 +edittags.file = \u6A94\u6848 +edittags.track = \u97F3\u8ECC +edittags.songtitle = \u66F2\u540D +edittags.artist = \u6B4C\u624B +edittags.album = \u5C08\u8F2F +edittags.year = \u767C\u884C +edittags.genre = \u66F2\u98A8 +edittags.status = \u72C0\u614B +edittags.suggest = \u5EFA\u8B70 +edittags.reset = \u91CD\u7F6E +edittags.suggest.short = S +edittags.reset.short = R +edittags.set = Set +edittags.working = Working +edittags.updated = Updated +edittags.skipped = \u7565\u904E +edittags.error = \u932F\u8AA4 + +# share.jsp +share.title = Share +share.warning =

                                                      IMPORTANT NOTICE!

                                                      Play fair – Don't share copyrighted material in any manner that violates the law.

                                                      +share.facebook = \u5206\u4EAB\u81F3 Facebook +share.twitter = \u5206\u4EAB\u81F3 Twitter +share.googleplus = \u5206\u4EAB\u81F3 Google+ +share.link = Or share this with someone by sending them this link: {0} +share.disabled = To share your music with someone you must first register your own libresonic.org address.
                                                      \ + Please go to Settings > Network (administrative rights required). +share.manage = Manage my shared media + +# premium.jsp +premium.title = Subsonic Premium +premium.invalidlicense = Invalid license key. +premium.text =

                                                      Upgrade to Subsonic Premium to enjoy these extra features:

                                                      \ +
                                                        \ +
                                                      • Apps for Android, iPhone, Windows Phone, Mac, Chrome and more*.
                                                      • \ +
                                                      • Video streaming.
                                                      • \ +
                                                      • Stream to your Chromecast and Sonos devices.
                                                      • \ +
                                                      • Podcast receiver.
                                                      • \ +
                                                      • Your personal server address: yourname.libresonic.org (see Settings > Network).
                                                      • \ +
                                                      • Play your media on compatible DLNA/UPnP devices.
                                                      • \ +
                                                      • Share your media on Facebook, Twitter, Google+.
                                                      • \ +
                                                      • No ads in the web interface.
                                                      • \ +
                                                      • Other features to be released later.
                                                      • \ +
                                                      \ +

                                                      * Some apps must be purchased separately.

                                                      +premium.getpremium = \u53D6\u5F97 Subsonic Premium +premium.licensed = You have a valid Subsonic Premium license! +premium.licensedexpires = Your Subsonic Premium license is valid until {0} +premium.licensedexpired = Your Subsonic Premium license expired {0} +premium.licensedto = The license is registered to {0}. +premium.forcechange = Register a different license key +premium.register = When upgrading to Subsonic Premium you receive a license key by email. Please register it below. +premium.resend = Lost the license key? Send it again. +premium.register.email = Email +premium.register.license = License key + +# podcastReceiver.jsp +podcastreceiver.title = \u64AD\u5BA2\u63A5\u6536\u5668 +podcastreceiver.empty = You haven't subscribed to any podcasts yet. +podcastreceiver.episodes = {0} \u7AE0\u7BC0 +podcastreceiver.expandall = \u986F\u793A\u6536\u85CF\u96C6 +podcastreceiver.collapseall = \u96B1\u85CF\u6536\u85CF\u96C6 +podcastreceiver.status.new = \u65B0\u7684 +podcastreceiver.status.downloading = \u4E0B\u8F09\u4E2D +podcastreceiver.status.completed = \u5B8C\u6210 +podcastreceiver.status.error = \u932F\u8AA4 +podcastreceiver.status.deleted = \u5DF2\u522A\u9664 +podcastreceiver.status.skipped = \u7565\u904E +podcastreceiver.downloadselected= \u4E0B\u8F09\u5DF2\u9078\u7684 +podcastreceiver.deleteselected= \u522A\u9664\u5DF2\u9078\u64C7 +podcastreceiver.confirmdelete= \u771F\u7684\u8981\u522A\u9664\u64AD\u5BA2? +podcastreceiver.check = \u6838\u5C0D\u65B0\u7684\u6536\u85CF\u96C6 +podcastreceiver.refresh = \u5237\u65B0\u672C\u9801 +podcastreceiver.settings = \u64AD\u5BA2\u8A2D\u5B9A +podcastreceiver.subscribe = \u8A02\u95B1\u64AD\u5BA2 +podcastreceiver.newestepisodes = \u6700\u65B0\u7AE0\u7BC0 + +# lyrics.jsp +lyrics.title = \u6B4C\u8A5E +lyrics.artist = \u6B4C\u624B +lyrics.song = \u6B4C\u66F2 +lyrics.search = \u641C\u5C0B +lyrics.wait = \u641C\u5C0B\u6B4C\u8A5E\u4E2D\uFF0C\u8ACB\u7A0D\u5019\u2026 +lyrics.courtesy = (\u6B4C\u8A5E\u7531chartlyrics.com\u63D0\u4F9B) +lyrics.nolyricsfound = \u627E\u4E0D\u5230\u6B4C\u8A5E\u3002 +lyrics.trylater = Sorry, the lyrics search engine allows just one search every 20 seconds. Try again later. + +# helpPopup.jsp +helppopup.title = {0} \u5354\u52A9 +helppopup.transcode.title = \u6700\u5927\u50B3\u8F38\u7387 +helppopup.transcode.text =

                                                      \u5982\u679C\u60A8\u7684\u64AD\u653E\u983B\u5BEC\u6709\u9650\uFF0C\u53EF\u4EE5\u904E\u8A2D\u5B9A\u6700\u5927\u50B3\u8F38\u7387\u4F86\u6539\u5584\u3002 \ + \u4F8B\u5982\uFF0C\u5982\u679C\u60A8\u539F\u672C\u7684 mp3 \u6A94\u6848\u7684\u7DE8\u78BC\u7387\u70BA 256Kbps(\u6BCF\u79D2\u5343\u4F4D\u5143)\uFF0C\u5982\u679C\u8A2D\u5B9A\u6700\u5927\u50B3\u8F38\u7387\u70BA128\ + \u6703\u4F7F {0} \u81EA\u52D5\u5C07\u539F\u672C 256Kbps \u7684\u97F3\u6A02\u7DE8\u78BC\u70BA\u6210 128 Kbps\u3002

                                                      +helppopup.playlistfolder.title = \u64AD\u653E\u6E05\u55AE\u8CC7\u6599\u593E +helppopup.playlistfolder.text =

                                                      \u5B58\u653E\u64AD\u653E\u6E05\u55AE\u7684\u8CC7\u6599\u593E\u3002

                                                      +helppopup.musicmask.title = \u97F3\u6A02\u7684\u9644\u5C6C\u6A94\u540D +helppopup.musicmask.text =

                                                      \u6307\u5B9A\u97F3\u6A02\u6A94\u6848\u7684\u9644\u5C6C\u6A94\u540D

                                                      +helppopup.videomask.title = \u8996\u8A0A\u6A94\u7684\u9644\u5C6C\u6A94\u540D +helppopup.videomask.text =

                                                      \u6307\u5B9A\u8996\u8A0A\u6A94\u6848\u7684\u8CA0\u6578\u6A94\u540D

                                                      +helppopup.coverartmask.title = \u5C08\u8F2F\u5C01\u9762\u9644\u5C6C\u6A94\u540D +helppopup.coverartmask.text =

                                                      \u8207\u97F3\u6A02\u8CC7\u6599\u593E\u653E\u5728\u4E00\u8D77\u7684\u5C08\u8F2F\u5C01\u9762\uFF0C\u5148\u6307\u5B9A\u5C08\u8F2F\u5C01\u9762\u6A94\u6848\u7684\u9644\u5C6C\u6A94\u540D\u3002

                                                      +helppopup.downsamplecommand.title = \u964D\u983B\u6307\u4EE4 +helppopup.downsamplecommand.text =

                                                      \u8B93\u60A8\u8A2D\u5B9A\u8ABF\u964D\u64AD\u653E\u97F3\u6A02\u6642\u964D\u4F4E\u53D6\u6A23\u983B\u7387\u7684\u6307\u4EE4\u3002

                                                      \ +

                                                      (%s = \u8981\u964D\u983B\u7684\u6A94\u6848\uFF0C%b = \u64A5\u653E\u5668\u7684\u6700\u5927\u50B3\u8F38\u7387\uFF0C%t = \u6A19\u984C\uFF0C%a = \u6B4C\u624B\uFF0C%l = \u5C08\u8F2F)

                                                      +helppopup.hlscommand.title = HTTP Live Streaming command +helppopup.hlscommand.text =

                                                      The command used to create video segments for Apple''s HLS (HTTP Live Streaming) protocol.

                                                      +helppopup.index.title = \u5206\u985E\u6AA2\u7D22 +helppopup.index.text =

                                                      \u8A2D\u5B9A\u97F3\u6A02\u7D22\u5F15(\u5728\u87A2\u5E55\u5DE6\u65B9)\u6B78\u985E\u7684\u65B9\u5F0F\u3002\u5728\u97F3\u6A02\u8CC7\u6599\u593E\u88E1\u7684 \ + \u6A94\u6848\u5F88\u5BB9\u6613\u900F\u904E\u7D22\u5F15\u5B58\u53D6\u3002

                                                      \ +

                                                      \u5B9A\u7FA9\u65B9\u5F0F\u662F\u4EE5\u7A7A\u767D\u5206\u9694\u7684\u7D22\u5F15\u9805\u76EE\u3002\u4E00\u822C\u4F86\u8AAA\uFF0C\u9805\u76EE\u662F\u55AE\u4E00\u5B57\u6BCD\uFF0C \ + \u4F46\u60A8\u4E5F\u53EF\u4EE5\u6307\u5B9A\u591A\u500B\u5B57\u6BCD\u3002\u4F8B\u5982\uFF1A\u9805\u76EE The \u6703\u9023\u7D50\u5230\u6240\u6709 \ + \u958B\u982D\u70BA "The" \u7684\u8CC7\u6599\u593E\u8207\u6A94\u6848\u3002

                                                      \ +

                                                      \u60A8\u4E5F\u53EF\u4EE5\u7528\u62EC\u5F27\u4F86\u5305\u542B\u591A\u500B\u7D22\u5F15\u5B57\u5143\u3002\u4F8B\u5982\uFF1A \ + A-E(ABCDE) \u6703\u986F\u793A\u70BA A-E \u4E26\u9023\u7D50\u5230\u6240\u6709\u958B\u982D\u70BA \ + A\u3001B\u3001C\u3001D\u6216E\u7684\u8CC7\u6599\u593E\u8207\u6A94\u6848\u3002\u9019\u5C0D\u65BC\u6536\u7D0D\u5C11\u898B\u7684\u5B57\u5143(\u50CF\u662FX\u3001Y\u8207Z)\u5F88\u6709\u5E6B\u52A9\uFF0C\u6216 \ + \u6B78\u985E\u91CD\u97F3\u5B57\u5143(\u5982A\u3001\u00C0\u8207\u00C1)

                                                      \ +

                                                      \u7121\u6CD5\u6B78\u985E\u7684\u8CC7\u6599\u593E\u8207\u6A94\u6848\uFF0C\u5C07\u5168\u90E8\u6B78\u65BC "#" \u9805\u76EE\u4E2D\u3002

                                                      +helppopup.ignoredarticles.title = \u5FFD\u7565\u5B57\u9996 +helppopup.ignoredarticles.text =

                                                      \u6709\u4E9B\u5B57\u9996(\u4F8B\u5982"The") \u901A\u5E38\u5728\u66F2\u76EE\u6B78\u985E\u4E2D\u61C9\u8A72\u5FFD\u7565\uFF0C\u8ACB\u5728\u6B64\u8655\u8A2D\u5B9A\u3002

                                                      +helppopup.shortcuts.title = \u6377\u5F91 +helppopup.shortcuts.text =

                                                      \u4EE5\u7A7A\u767D\u4F86\u5206\u9694\u5728\u6700\u4E0A\u5C64\u76EE\u9304\u4E2D\u5EFA\u7ACB\u6377\u5F91\u6AA2\u7D22\u3002\u7528\u5F15\u865F\u4F86\u5206\u7D44\u5B57\u5143\uFF0C\u4F8B\u5982\uFF1A

                                                      \ +

                                                      New Incoming "Sound tracks"

                                                      +helppopup.language.title = \u8A9E\u8A00 +helppopup.language.text =

                                                      \u5728\u9019\u88E1\u9078\u64C7\u6240\u63D0\u4F9B\u7684\u986F\u793A\u8A9E\u8A00\u3002

                                                      +helppopup.visibility.title = \u986F\u793A\u9805\u76EE +helppopup.visibility.text =

                                                      \u9078\u64C7\u5728\u700F\u89BD\u6216\u662F\u5728\u64AD\u653E\u6E05\u55AE\u4E2D\uFF0C\u986F\u793A\u97F3\u6A02\u7684\u5404\u7A2E\u8A73\u7D30\u8CC7\u8A0A

                                                      +helppopup.partymode.title = \u5BB4\u6703\u6A21\u5F0F +helppopup.partymode.text =

                                                      \u4F7F\u7528\u5BB4\u6703\u6A21\u5F0F\u7C21\u5316\u4F7F\u7528\u8005\u754C\u9762\uFF0C\u63D0\u4F9B\u7D66\u7121\u7D93\u9A57\u7684\u4F7F\u7528\u8005\u64CD\u4F5C\ + \u4E5F\u53EF\u4EE5\u907F\u514D\u56E0\u70BA\u610F\u5916\u64CD\u4F5C\u800C\u5F04\u4E82\u4E86\u64AD\u653E\u6E05\u55AE\u3002

                                                      +helppopup.theme.title = \u4F48\u666F\u4E3B\u984C +helppopup.theme.text =

                                                      \u8B93\u60A8\u53EF\u4EE5\u9078\u64C7\u4E0D\u540C\u7684\u4F48\u666F\u4E3B\u984C\u3002\u4F48\u666F\u4E3B\u984C\u900F\u904E\u4E0D\u540C\u7684\u984F\u8272\u3001\u5B57\u9AD4\u3001\u5716\u50CF\u7B49\uFF0C\u5E36\u7D66\u60A8\u4E0D\u540C\u7684{0}\u611F\u53D7\u3002

                                                      +helppopup.welcomemessage.title = \u6B61\u8FCE\u6A19\u984C +helppopup.welcomemessage.text =

                                                      \u5728\u9996\u9801\u4E2D\u986F\u793A\u7684\u6A19\u984C\u3002

                                                      +helppopup.loginmessage.title = \u767B\u5165\u8A0A\u606F +helppopup.loginmessage.text =

                                                      \u5728\u767B\u5165\u756B\u9762\u986F\u793A\u7684\u63D0\u793A\u8A0A\u606F\u3002

                                                      +helppopup.coverartlimit.title = \u5C08\u8F2F\u5C01\u9762\u9650\u5236 +helppopup.coverartlimit.text =

                                                      \u5728\u4E00\u9801\u756B\u9762\u4E2D\u986F\u793A\u5C08\u8F2F\u5C01\u9762\u7684\u6700\u5927\u6578\u91CF\u3002

                                                      +helppopup.downloadlimit.title = \u4E0B\u8F09\u9650\u5236 +helppopup.downloadlimit.text =

                                                      \u4E0B\u8F09\u6A94\u6848\u6642\u7684\u983B\u5BEC\u9650\u5236\u3002

                                                      +helppopup.uploadlimit.title = \u4E0A\u50B3\u9650\u5236 +helppopup.uploadlimit.text =

                                                      \u4E0A\u50B3\u6A94\u6848\u6642\u7684\u983B\u5BEC\u9650\u5236\u3002

                                                      +helppopup.streamport.title = \u975ESSL \u4E32\u6D41 Port +helppopup.streamport.text =

                                                      \u672C\u9078\u9805\u53EA\u662F\u7528\u65BC\u5728\u4F3A\u670D\u5668\u4E0A\u7684 {0} \u4F7F\u7528 SSL (HTTPS)\u50B3\u8F38\u5354\u5B9A\u3002

                                                      \u6709\u4E9B\u64AD\u653E\u5668 \ + (\u4F8B\u5982 Winamp) \u4E0D\u652F\u63F4\u7D93\u7531SSL\u7684\u4E32\u6D41\u5354\u5B9A\u3002\u5982\u679C\u60A8\u4E0D\u7D93\u7531SSL\u50B3\u9001\u4E32\u6D41\uFF0C\u8ACB\u6307\u5B9A\u901A\u8A0APORT(\u901A\u5E38\u662F80\u62164040)\ + \u8ACB\u6CE8\u610F\uFF0C\u4E32\u6D41\u97F3\u6A02\u4E26\u4E0D\u6703\u88AB\u52A0\u5BC6\u3002

                                                      +helppopup.ldap.title = LDAP \u9A57\u8B49 +helppopup.ldap.text =

                                                      \u4F7F\u7528\u8005\u53EF\u4EE5\u7D93\u7531\u5916\u90E8\u7684LDAP\u4F3A\u670D\u5668\u9A57\u8B49 (\u5305\u62ECWindows Active Directory)\u3002\ + \u7576\u8A2D\u5B9A\u4F7F\u7528LDAP\u4F7F\u7528\u8005\u767B\u5165 {0}\uFF0C\u5E33\u865F\u53CA\u5BC6\u78BC\u5C31\u7531\u5916\u90E8\u4F3A\u670D\u5668\u9A57\u8B49\uFF0C\u800C\u4E0D\u662F\u7531{0}\u4F86\u9A57\u8B49\u3002

                                                      +helppopup.ldapurl.title = LDAP \u4F4D\u5740 +helppopup.ldapurl.text =

                                                      \u8A2D\u5B9A LDAP \u4F3A\u670D\u5668\u7684\u4F4D\u5740\u3002\u5354\u5B9A\u61C9\u8A72\u662F ldap:// \u6216 ldaps:// \ + (\u7D93\u7531SSL\u7684LDAP\u5354\u5B9A)\u3002\u8ACB\u53C3\u8003\u9019\u88E1 \ + \u6709\u66F4\u591A\u8A73\u7D30\u8AAA\u660E\u3002

                                                      +helppopup.ldapsearchfilter.title = LDAP \u641C\u5C0B\u904E\u6FFE +helppopup.ldapsearchfilter.text =

                                                      \u8490\u5C0BLDAP\u7528\u6236\u6642\uFF0C\u5728\u9019\u88E1\u8A2D\u5B9A\u904E\u6FFE\u8868\u793A\u5F0F \ + (\u5B9A\u7FA9\u5728RFC 2254)\u3002 \ + The pattern "'{0'}" is replaced by the username, \u4F8B\u5982: \ +

                                                        \ +
                                                      • (uid='{0'}) - this would search for a username match on the uid attribute.
                                                      • \ +
                                                      • (sAMAccountName='{0'}) - typically used for authentication in Microsoft Active Directory.
                                                      • \ +

                                                      +helppopup.ldapmanagerdn.title = LDAP \u7BA1\u7406\u8005 DN +helppopup.ldapmanagerdn.text =

                                                      \u5982\u679C LDAP \u4F3A\u670D\u5668\u4E0D\u652F\u63F4\u533F\u540D\u4F7F\u7528\u8005\u9023\u7DDA\uFF0C\u60A8\u5FC5\u9808\u6307\u5B9A DN \ + (Distinguished Name)\u53CALDAP\u4F7F\u7528\u8005\u7684\u5BC6\u78BC\u3002

                                                      +helppopup.ldapautoshadowing.title = \u5728 {0} \u81EA\u52D5\u5EFA\u7ACB LDAP \u5E33\u865F +helppopup.ldapautoshadowing.text =

                                                      \u8A2D\u5B9A\u9019\u500B\u9078\u9805\uFF0C\u5247LDAP \u7528\u6236\u4E0D\u5FC5\u5728\u767B\u5165\u4E4B\u524D\u624B\u52D5\u5EFA\u7ACB{0}\u7684\u5E33\u865F\u3002

                                                      \ +

                                                      \u6CE8\u610F\uFF01 \u9019\u8868\u793A\u6240\u6709\u5728LDAP\u4E0A\u7684\u4F7F\u7528\u8005\u90FD\u53EF\u4EE5\u767B\u5165\u60A8\u7684{0}\uFF0C\ + \u4E5F\u8A31\u9019\u4E0D\u662F\u60A8\u60F3\u8981\u7684\u529F\u80FD\u3002

                                                      +helppopup.playername.title = \u64A5\u653E\u5668\u540D\u7A31 +helppopup.playername.text =

                                                      \u8B93\u60A8\u5E6B\u64AD\u653E\u5668\u6307\u5B9A\u4E00\u500B\u5BB9\u6613\u8A18\u4F4F\u7684\u540D\u5B57\uFF0C\u5982\u201C\u5DE5\u4F5C\u5BA4\u201D\u6216\u201C\u5BA2\u5EF3\u201D

                                                      +helppopup.autocontrol.title = \u63A7\u5236\u64AD\u653E\u5668\u81EA\u52D5\u64AD\u653E +helppopup.autocontrol.text =

                                                      \u8A2D\u5B9A\u9019\u500B\u9078\u9805\uFF0C {0} \u5728\u60A8\u958B\u59CB\u64AD\u653E\u6642\uFF0C\u6703\u81EA\u52D5\u555F\u52D5\u64AD\u653E\u5668\ + \u5426\u5247\u60A8\u5FC5\u9808\u81EA\u5DF1\u555F\u52D5\u4E26\u4E14\u9023\u63A5\u60A8\u7684\u64A5\u653E\u5668\u3002

                                                      +helppopup.dynamicip.title = \u52D5\u614B IP \u4F4D\u5740 +helppopup.dynamicip.text =

                                                      \u95DC\u9589\u6B64\u9078\u9805\uFF0C\u5982\u679C\u60A8\u4F7F\u7528\u975C\u614BIP\u4F4D\u5740\u3002

                                                      +helppopup.smtpServer.title = SMTP \u4F3A\u670D\u5668 +helppopup.smtpServer.text =

                                                      The hostname of the SMTP server. This server will be used to send e-mails to users \ + who have requested a password reset.

                                                      +helppopup.smtpPort.title = SMTP Port +helppopup.smtpPort.text =

                                                      The server's port that should be connected to for SMTP traffic.

                                                      +helppopup.smtpCredentials.title = SMTP Credentials +helppopup.smtpCredentials.text =

                                                      The credentials to be used to connect to the SMTP server. Leave empty to connect without authentication.

                                                      +helppopup.smtpEncryption.title = SMTP Encryption +helppopup.smtpEncryption.text =

                                                      The encryption method to be used to connect to the SMTP server. Choose "None" for no encryption.

                                                      +helppopup.smtpFrom.title = From address +helppopup.smtpFrom.text =

                                                      The sender address for mails originating from the Libresonic server. Must be a valid e-mail address.

                                                      + +# wap/index.jsp +wap.index.missing = \u627E\u4E0D\u5230\u97F3\u6A02 +wap.index.playlist = \u64AD\u653E\u6E05\u55AE +wap.index.search = \u641C\u5C0B +wap.index.settings = \u8A2D\u5B9A + +# wap/browse.jsp +wap.browse.playone = \u64AD\u653E\u6B4C\u66F2 +wap.browse.playall = \u5168\u90E8\u64AD\u653E +wap.browse.addone = \u52A0\u5165\u6B4C\u66F2 +wap.browse.addall = \u5168\u90E8\u52A0\u5165 +wap.browse.downloadone = \u4E0B\u8F09\u6B4C\u66F2 +wap.browse.downloadall = \u5168\u90E8\u4E0B\u8F09 + +# wap/playlist.jsp +wap.playlist.title = \u64AD\u653E\u6E05\u55AE +wap.playlist.noplayer = \u9023\u63A5\u4E0D\u5230\u64AD\u653E\u5668 +wap.playlist.clear = \u6E05\u9664 +wap.playlist.load = \u8F09\u5165 +wap.playlist.random = \u96A8\u8208 +wap.playlist.play = \u5728\u96FB\u8A71\u4E2D\u64AD\u9001 + +# wap/search.jsp +wap.search.title = \u641C\u5C0B + +# wap/searchResult.jsp +wap.searchresult.index = \u6B63\u5728\u5EFA\u7ACB\u641C\u5C0B\u7D22\u5F15\u3002\u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002 + +# wap/settings.jsp +wap.settings.selectplayer = \u9078\u64C7\u64AD\u653E\u5668 +wap.settings.allplayers = \u5168\u90E8 diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/locales.txt b/libresonic-main/src/main/resources/org/libresonic/player/i18n/locales.txt similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/locales.txt rename to libresonic-main/src/main/resources/org/libresonic/player/i18n/locales.txt diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/service/logo-512.png b/libresonic-main/src/main/resources/org/libresonic/player/service/logo-512.png similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/service/logo-512.png rename to libresonic-main/src/main/resources/org/libresonic/player/service/logo-512.png diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/2010.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/2010.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/2010.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/2010.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/barents.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/barents.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/barents.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/barents.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/black.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/black.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/black.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/black.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/buuftheme.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/buuftheme.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/buuftheme.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/buuftheme.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/coolandclean.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/coolandclean.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/coolandclean.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/coolandclean.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/default.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/default.properties similarity index 75% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/default.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/default.properties index d100cbae..58d687b2 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/default.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/theme/default.properties @@ -1,5 +1,5 @@ -# Definition of the "Subsonic Default" theme. +# Definition of the "Libresonic Default" theme. # Author: Sindre Mehus styleSheet = style/default.css diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/default_dark.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/default_dark.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/default_dark.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/default_dark.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/default_light.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/default_light.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/default_light.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/default_light.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/denim.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/denim.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/denim.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/denim.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/groove.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/groove.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/groove.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/groove.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/groove_simple.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/groove_simple.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/groove_simple.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/groove_simple.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hd1080.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/hd1080.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hd1080.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/hd1080.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hd720.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/hd720.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hd720.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/hd720.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hd768.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/hd768.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hd768.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/hd768.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hicon.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/hicon.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hicon.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/hicon.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hiconi.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/hiconi.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hiconi.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/hiconi.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hitech.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/hitech.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/hitech.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/hitech.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/midnight.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/midnight.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/midnight.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/midnight.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/midnightfun.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/midnightfun.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/midnightfun.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/midnightfun.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/monochrome.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/monochrome.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/monochrome.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/monochrome.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/monochrome_black.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/monochrome_black.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/monochrome_black.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/monochrome_black.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/pinkpanther.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/pinkpanther.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/pinkpanther.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/pinkpanther.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/ripserver.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/ripserver.properties similarity index 96% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/ripserver.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/ripserver.properties index 7bec36a2..7ba47620 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/ripserver.properties +++ b/libresonic-main/src/main/resources/org/libresonic/player/theme/ripserver.properties @@ -17,7 +17,7 @@ helpImage = icons/ripserver/help.png helpPopupImage = icons/ripserver/help_small.png homeImage = icons/ripserver/home.png logImage = icons/ripserver/log.png -logoImage = icons/ripserver/subsonic_black.png +logoImage = icons/ripserver/libresonic_black.png moreImage = icons/ripserver/more.png nowPlayingImage = icons/ripserver/now_playing.png paypalImage = icons/ripserver/paypal.gif diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/sandstorm.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/sandstorm.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/sandstorm.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/sandstorm.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/simplify.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/simplify.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/simplify.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/simplify.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/slick.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/slick.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/slick.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/slick.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/sonic.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/sonic.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/sonic.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/sonic.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/sonic_blue.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/sonic_blue.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/sonic_blue.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/sonic_blue.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/sonic_white.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/sonic_white.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/sonic_white.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/sonic_white.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/subStandard.properties b/libresonic-main/src/main/resources/org/libresonic/player/theme/subStandard.properties similarity index 100% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/subStandard.properties rename to libresonic-main/src/main/resources/org/libresonic/player/theme/subStandard.properties diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/themes.txt b/libresonic-main/src/main/resources/org/libresonic/player/theme/themes.txt similarity index 95% rename from subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/themes.txt rename to libresonic-main/src/main/resources/org/libresonic/player/theme/themes.txt index 06e46e65..f2b71983 100644 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/theme/themes.txt +++ b/libresonic-main/src/main/resources/org/libresonic/player/theme/themes.txt @@ -5,8 +5,8 @@ # # Author: Sindre Mehus -# The original Subsonic theme. -default "Subsonic Default" default_light +# The original Libresonic theme. +default "Libresonic Default" default_light # Theme with dark colors. midnight "2 Minutes To Midnight" default_dark diff --git a/subsonic-main/src/main/webapp/WEB-INF/applicationContext-cache.xml b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-cache.xml similarity index 88% rename from subsonic-main/src/main/webapp/WEB-INF/applicationContext-cache.xml rename to libresonic-main/src/main/webapp/WEB-INF/applicationContext-cache.xml index 7cb28df5..da4c296a 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/applicationContext-cache.xml +++ b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-cache.xml @@ -4,7 +4,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - + diff --git a/subsonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml similarity index 91% rename from subsonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml rename to libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml index 2111c71b..b2af9b4b 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml +++ b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml @@ -4,9 +4,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> - + - + @@ -50,7 +50,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -90,7 +90,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -179,10 +179,10 @@ - + - + @@ -203,13 +203,13 @@ - + + class="org.libresonic.player.ldap.UserDetailsServiceBasedAuthoritiesPopulator"> @@ -219,8 +219,8 @@ - net.sourceforge.subsonic.ajax.TagService.setTags=ROLE_COVERART - net.sourceforge.subsonic.ajax.TransferService.getUploadInfo=ROLE_UPLOAD + org.libresonic.player.ajax.TagService.setTags=ROLE_COVERART + org.libresonic.player.ajax.TransferService.getUploadInfo=ROLE_UPLOAD diff --git a/subsonic-main/src/main/webapp/WEB-INF/applicationContext-service.xml b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-service.xml similarity index 66% rename from subsonic-main/src/main/webapp/WEB-INF/applicationContext-service.xml rename to libresonic-main/src/main/webapp/WEB-INF/applicationContext-service.xml index c7ce1d67..ee7ab0ac 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/applicationContext-service.xml +++ b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-service.xml @@ -6,72 +6,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -80,13 +80,13 @@ - + - + @@ -94,7 +94,7 @@ - + @@ -104,25 +104,25 @@ - + - + - + - + @@ -130,41 +130,41 @@ - + - + - + - + - + - + - + - + @@ -172,11 +172,11 @@ - + - + @@ -185,7 +185,7 @@ - + @@ -193,19 +193,19 @@ - + - + - + @@ -214,21 +214,21 @@ - + - - + + - + - + @@ -236,14 +236,14 @@ - + - + @@ -259,7 +259,7 @@ - + @@ -269,30 +269,30 @@ - + - + - + - + - + - + - + diff --git a/subsonic-main/src/main/webapp/WEB-INF/applicationContext-sonos.xml b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-sonos.xml similarity index 89% rename from subsonic-main/src/main/webapp/WEB-INF/applicationContext-sonos.xml rename to libresonic-main/src/main/webapp/WEB-INF/applicationContext-sonos.xml index 5a9efb6b..ae2e9b60 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/applicationContext-sonos.xml +++ b/libresonic-main/src/main/webapp/WEB-INF/applicationContext-sonos.xml @@ -9,11 +9,11 @@ - + - + diff --git a/subsonic-main/src/main/webapp/WEB-INF/dwr.xml b/libresonic-main/src/main/webapp/WEB-INF/dwr.xml similarity index 52% rename from subsonic-main/src/main/webapp/WEB-INF/dwr.xml rename to libresonic-main/src/main/webapp/WEB-INF/dwr.xml index 06ad8a91..2ac93368 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/dwr.xml +++ b/libresonic-main/src/main/webapp/WEB-INF/dwr.xml @@ -44,23 +44,23 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/accessDenied.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/accessDenied.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/accessDenied.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/accessDenied.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp similarity index 64% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp index 3d67c4bd..69291892 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/advancedSettings.jsp @@ -1,5 +1,5 @@ <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="iso-8859-1" %> -<%--@elvariable id="command" type="net.sourceforge.subsonic.command.AdvancedSettingsCommand"--%> +<%--@elvariable id="command" type="org.libresonic.player.command.AdvancedSettingsCommand"--%> <%@ include file="head.jsp" %> @@ -41,6 +41,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                      + + +
                                                      + + +
                                                      + + +
                                                      + + + + + + + + + + +
                                                      + + + + +
                                                      +
                                                      diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/albumMain.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/albumMain.jsp similarity index 98% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/albumMain.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/albumMain.jsp index 083fd281..429275b5 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/albumMain.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/albumMain.jsp @@ -299,7 +299,7 @@ - <%--@elvariable id="song" type="net.sourceforge.subsonic.domain.MediaFile"--%> + <%--@elvariable id="song" type="org.libresonic.player.domain.MediaFile"--%> @@ -400,16 +400,16 @@ Upgrade to Subsonic Premium and get:

                                                      -

                                                      Apps for Android, iPhone, Windows Phone ++.

                                                      +

                                                      Apps for Android, iPhone, Windows Phone ++.

                                                      Video streaming.

                                                      Chromecast and Sonos support.

                                                      DLNA/UPnP support

                                                      Share on Facebook, Twitter, Google+

                                                      No ads.

                                                      -

                                                      Your personal server address: you.subsonic.org

                                                      +

                                                      Your personal server address: you.libresonic.org

                                                      Podcast receiver.

                                                      -

                                                      Get Subsonic Premium

                                                      +

                                                      Get Subsonic Premium

                                                      @@ -481,6 +481,7 @@ + diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/allmusic.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/allmusic.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/allmusic.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/allmusic.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/artistMain.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/artistMain.jsp similarity index 98% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/artistMain.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/artistMain.jsp index ef43fab1..f843dac0 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/artistMain.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/artistMain.jsp @@ -1,19 +1,19 @@ <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="iso-8859-1"%> <%-- - ~ This file is part of Subsonic. + ~ This file is part of Libresonic. ~ - ~ Subsonic is free software: you can redistribute it and/or modify + ~ Libresonic is free software: you can redistribute it and/or modify ~ it under the terms of the GNU General Public License as published by ~ the Free Software Foundation, either version 3 of the License, or ~ (at your option) any later version. ~ - ~ Subsonic is distributed in the hope that it will be useful, + ~ Libresonic is distributed in the hope that it will be useful, ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ~ GNU General Public License for more details. ~ ~ You should have received a copy of the GNU General Public License - ~ along with Subsonic. If not, see . + ~ along with Libresonic. If not, see . ~ ~ Copyright 2014 (C) Sindre Mehus --%> @@ -273,6 +273,7 @@ + diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/avatarUploadResult.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/avatarUploadResult.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/avatarUploadResult.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/avatarUploadResult.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/changeCoverArt.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/changeCoverArt.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/changeCoverArt.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/changeCoverArt.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/coverArt.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/coverArt.jsp similarity index 96% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/coverArt.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/coverArt.jsp index c4242ecd..8d9eee77 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/coverArt.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/coverArt.jsp @@ -15,6 +15,7 @@ PARAMETERS showZoom: Whether to display a link for zooming the cover art. showChange: Whether to display a link for changing the cover art. appearAfter: Fade in after this many milliseconds, or nil if no fading in should happen. + hideOverflow: Hide cover art overflow when height is greater than width --%> @@ -32,7 +33,7 @@ PARAMETERS
                                                      -
                                                      +
                                                      overflow:hidden;" title="${param.caption1}" id="${divId}"> diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/createShare.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/createShare.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/createShare.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/createShare.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/db.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/db.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/db.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/db.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/dlnaSettings.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/dlnaSettings.jsp similarity index 89% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/dlnaSettings.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/dlnaSettings.jsp index 2fe43e85..21c49b10 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/dlnaSettings.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/dlnaSettings.jsp @@ -1,19 +1,19 @@ <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="iso-8859-1" %> <%-- - ~ This file is part of Subsonic. + ~ This file is part of Libresonic. ~ - ~ Subsonic is free software: you can redistribute it and/or modify + ~ Libresonic is free software: you can redistribute it and/or modify ~ it under the terms of the GNU General Public License as published by ~ the Free Software Foundation, either version 3 of the License, or ~ (at your option) any later version. ~ - ~ Subsonic is distributed in the hope that it will be useful, + ~ Libresonic is distributed in the hope that it will be useful, ~ but WITHOUT ANY WARRANTY; without even the implied warranty of ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ~ GNU General Public License for more details. ~ ~ You should have received a copy of the GNU General Public License - ~ along with Subsonic. If not, see . + ~ along with Libresonic. If not, see . ~ ~ Copyright 2013 (C) Sindre Mehus --%> diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/editTags.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/editTags.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/editTags.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/editTags.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/externalPlayer.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/externalPlayer.jsp similarity index 96% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/externalPlayer.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/externalPlayer.jsp index fb9f6674..fa262dcf 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/externalPlayer.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/externalPlayer.jsp @@ -45,7 +45,7 @@ var list = new Array(); - <%--@elvariable id="song" type="net.sourceforge.subsonic.domain.MediaFile"--%> + <%--@elvariable id="song" type="org.libresonic.player.domain.MediaFile"--%> @@ -94,7 +94,7 @@

                                                      ${empty model.share.description ? model.songs[0].albumName : fn:escapeXml(model.share.username)}

                                                      -
                                                      Streaming by Subsonic
                                                      +
                                                      Streaming by Libresonic
                                                      diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/generalSettings.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/generalSettings.jsp similarity index 98% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/generalSettings.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/generalSettings.jsp index 596581c5..c1dd9244 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/generalSettings.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/generalSettings.jsp @@ -1,5 +1,5 @@ <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="iso-8859-1" %> -<%--@elvariable id="command" type="net.sourceforge.subsonic.command.GeneralSettingsCommand"--%> +<%--@elvariable id="command" type="org.libresonic.player.command.GeneralSettingsCommand"--%> <%@ include file="head.jsp" %> diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/gettingStarted.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/gettingStarted.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/gettingStarted.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/gettingStarted.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/head.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/head.jsp similarity index 96% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/head.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/head.jsp index dd912c77..b14d62a2 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/head.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/head.jsp @@ -9,4 +9,4 @@ " type="text/css"> -Subsonic +Libresonic diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/help.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/help.jsp similarity index 100% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/help.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/help.jsp diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/helpToolTip.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/helpToolTip.jsp similarity index 87% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/helpToolTip.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/helpToolTip.jsp index 720603f6..5a31c570 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/helpToolTip.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/helpToolTip.jsp @@ -12,7 +12,7 @@ PARAMETERS ${help} diff --git a/subsonic-main/src/main/webapp/WEB-INF/jsp/home.jsp b/libresonic-main/src/main/webapp/WEB-INF/jsp/home.jsp similarity index 95% rename from subsonic-main/src/main/webapp/WEB-INF/jsp/home.jsp rename to libresonic-main/src/main/webapp/WEB-INF/jsp/home.jsp index 124d16a3..38040f27 100644 --- a/subsonic-main/src/main/webapp/WEB-INF/jsp/home.jsp +++ b/libresonic-main/src/main/webapp/WEB-INF/jsp/home.jsp @@ -7,7 +7,9 @@ + + \ No newline at end of file diff --git a/subsonic-main/src/main/webapp/crossdomain.xml b/libresonic-main/src/main/webapp/crossdomain.xml similarity index 100% rename from subsonic-main/src/main/webapp/crossdomain.xml rename to libresonic-main/src/main/webapp/crossdomain.xml diff --git a/subsonic-main/src/main/webapp/error.jsp b/libresonic-main/src/main/webapp/error.jsp similarity index 92% rename from subsonic-main/src/main/webapp/error.jsp rename to libresonic-main/src/main/webapp/error.jsp index 903a782e..e1b4d758 100644 --- a/subsonic-main/src/main/webapp/error.jsp +++ b/libresonic-main/src/main/webapp/error.jsp @@ -16,8 +16,8 @@

                                                      - Subsonic encountered an internal error. You can report this error in the - Subsonic Forum. + Libresonic encountered an internal error. You can report this error in the + Libresonic Forum. Please include the information below.

                                                      diff --git a/subsonic-main/src/main/webapp/flash/jw-player-5.10.swf b/libresonic-main/src/main/webapp/flash/jw-player-5.10.swf similarity index 100% rename from subsonic-main/src/main/webapp/flash/jw-player-5.10.swf rename to libresonic-main/src/main/webapp/flash/jw-player-5.10.swf diff --git a/subsonic-main/src/main/webapp/flash/jw-player-subsonic-skin.zip b/libresonic-main/src/main/webapp/flash/jw-player-libresonic-skin.zip similarity index 100% rename from subsonic-main/src/main/webapp/flash/jw-player-subsonic-skin.zip rename to libresonic-main/src/main/webapp/flash/jw-player-libresonic-skin.zip diff --git a/subsonic-main/src/main/webapp/flash/whotube.zip b/libresonic-main/src/main/webapp/flash/whotube.zip similarity index 100% rename from subsonic-main/src/main/webapp/flash/whotube.zip rename to libresonic-main/src/main/webapp/flash/whotube.zip diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/add.png b/libresonic-main/src/main/webapp/icons/buuftheme/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/add.png rename to libresonic-main/src/main/webapp/icons/buuftheme/add.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/android.png b/libresonic-main/src/main/webapp/icons/buuftheme/android.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/android.png rename to libresonic-main/src/main/webapp/icons/buuftheme/android.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/back.png b/libresonic-main/src/main/webapp/icons/buuftheme/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/back.png rename to libresonic-main/src/main/webapp/icons/buuftheme/back.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/background_main.png b/libresonic-main/src/main/webapp/icons/buuftheme/background_main.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/background_main.png rename to libresonic-main/src/main/webapp/icons/buuftheme/background_main.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/clear_rating.png b/libresonic-main/src/main/webapp/icons/buuftheme/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/clear_rating.png rename to libresonic-main/src/main/webapp/icons/buuftheme/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/donate.png b/libresonic-main/src/main/webapp/icons/buuftheme/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/donate.png rename to libresonic-main/src/main/webapp/icons/buuftheme/donate.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/donate_small.png b/libresonic-main/src/main/webapp/icons/buuftheme/donate_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/donate_small.png rename to libresonic-main/src/main/webapp/icons/buuftheme/donate_small.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/down.png b/libresonic-main/src/main/webapp/icons/buuftheme/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/down.png rename to libresonic-main/src/main/webapp/icons/buuftheme/down.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/download.png b/libresonic-main/src/main/webapp/icons/buuftheme/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/download.png rename to libresonic-main/src/main/webapp/icons/buuftheme/download.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/error.png b/libresonic-main/src/main/webapp/icons/buuftheme/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/error.png rename to libresonic-main/src/main/webapp/icons/buuftheme/error.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/favicon.ico b/libresonic-main/src/main/webapp/icons/buuftheme/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/favicon.ico rename to libresonic-main/src/main/webapp/icons/buuftheme/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/forward.png b/libresonic-main/src/main/webapp/icons/buuftheme/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/forward.png rename to libresonic-main/src/main/webapp/icons/buuftheme/forward.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/gpl.png b/libresonic-main/src/main/webapp/icons/buuftheme/gpl.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/gpl.png rename to libresonic-main/src/main/webapp/icons/buuftheme/gpl.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/help.png b/libresonic-main/src/main/webapp/icons/buuftheme/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/help.png rename to libresonic-main/src/main/webapp/icons/buuftheme/help.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/help_small.png b/libresonic-main/src/main/webapp/icons/buuftheme/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/help_small.png rename to libresonic-main/src/main/webapp/icons/buuftheme/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/home.png b/libresonic-main/src/main/webapp/icons/buuftheme/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/home.png rename to libresonic-main/src/main/webapp/icons/buuftheme/home.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/home_hover.png b/libresonic-main/src/main/webapp/icons/buuftheme/home_hover.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/home_hover.png rename to libresonic-main/src/main/webapp/icons/buuftheme/home_hover.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/list_heading.png b/libresonic-main/src/main/webapp/icons/buuftheme/list_heading.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/list_heading.png rename to libresonic-main/src/main/webapp/icons/buuftheme/list_heading.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/log.png b/libresonic-main/src/main/webapp/icons/buuftheme/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/log.png rename to libresonic-main/src/main/webapp/icons/buuftheme/log.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/logo.png b/libresonic-main/src/main/webapp/icons/buuftheme/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/logo.png rename to libresonic-main/src/main/webapp/icons/buuftheme/logo.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/more.png b/libresonic-main/src/main/webapp/icons/buuftheme/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/more.png rename to libresonic-main/src/main/webapp/icons/buuftheme/more.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/now_playing.png b/libresonic-main/src/main/webapp/icons/buuftheme/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/now_playing.png rename to libresonic-main/src/main/webapp/icons/buuftheme/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/paypal.gif b/libresonic-main/src/main/webapp/icons/buuftheme/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/paypal.gif rename to libresonic-main/src/main/webapp/icons/buuftheme/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/phone.png b/libresonic-main/src/main/webapp/icons/buuftheme/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/phone.png rename to libresonic-main/src/main/webapp/icons/buuftheme/phone.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/play.png b/libresonic-main/src/main/webapp/icons/buuftheme/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/play.png rename to libresonic-main/src/main/webapp/icons/buuftheme/play.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/playing.png b/libresonic-main/src/main/webapp/icons/buuftheme/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/playing.png rename to libresonic-main/src/main/webapp/icons/buuftheme/playing.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/podcast.png b/libresonic-main/src/main/webapp/icons/buuftheme/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/podcast.png rename to libresonic-main/src/main/webapp/icons/buuftheme/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/podcast_small.png b/libresonic-main/src/main/webapp/icons/buuftheme/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/podcast_small.png rename to libresonic-main/src/main/webapp/icons/buuftheme/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/progress.png b/libresonic-main/src/main/webapp/icons/buuftheme/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/progress.png rename to libresonic-main/src/main/webapp/icons/buuftheme/progress.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/random.png b/libresonic-main/src/main/webapp/icons/buuftheme/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/random.png rename to libresonic-main/src/main/webapp/icons/buuftheme/random.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/rating_half.png b/libresonic-main/src/main/webapp/icons/buuftheme/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/rating_half.png rename to libresonic-main/src/main/webapp/icons/buuftheme/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/rating_off.png b/libresonic-main/src/main/webapp/icons/buuftheme/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/rating_off.png rename to libresonic-main/src/main/webapp/icons/buuftheme/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/rating_on.png b/libresonic-main/src/main/webapp/icons/buuftheme/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/rating_on.png rename to libresonic-main/src/main/webapp/icons/buuftheme/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/remove.png b/libresonic-main/src/main/webapp/icons/buuftheme/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/remove.png rename to libresonic-main/src/main/webapp/icons/buuftheme/remove.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/search.png b/libresonic-main/src/main/webapp/icons/buuftheme/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/search.png rename to libresonic-main/src/main/webapp/icons/buuftheme/search.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/settings.png b/libresonic-main/src/main/webapp/icons/buuftheme/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/settings.png rename to libresonic-main/src/main/webapp/icons/buuftheme/settings.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/status.png b/libresonic-main/src/main/webapp/icons/buuftheme/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/status.png rename to libresonic-main/src/main/webapp/icons/buuftheme/status.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/subair.png b/libresonic-main/src/main/webapp/icons/buuftheme/subair.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/subair.png rename to libresonic-main/src/main/webapp/icons/buuftheme/subair.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/up.png b/libresonic-main/src/main/webapp/icons/buuftheme/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/up.png rename to libresonic-main/src/main/webapp/icons/buuftheme/up.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/upload.png b/libresonic-main/src/main/webapp/icons/buuftheme/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/upload.png rename to libresonic-main/src/main/webapp/icons/buuftheme/upload.png diff --git a/subsonic-main/src/main/webapp/icons/buuftheme/wap.png b/libresonic-main/src/main/webapp/icons/buuftheme/wap.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/buuftheme/wap.png rename to libresonic-main/src/main/webapp/icons/buuftheme/wap.png diff --git a/subsonic-main/src/main/webapp/icons/cast/cast_icon_active.png b/libresonic-main/src/main/webapp/icons/cast/cast_icon_active.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/cast/cast_icon_active.png rename to libresonic-main/src/main/webapp/icons/cast/cast_icon_active.png diff --git a/subsonic-main/src/main/webapp/icons/cast/cast_icon_error.png b/libresonic-main/src/main/webapp/icons/cast/cast_icon_error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/cast/cast_icon_error.png rename to libresonic-main/src/main/webapp/icons/cast/cast_icon_error.png diff --git a/subsonic-main/src/main/webapp/icons/cast/cast_icon_idle.png b/libresonic-main/src/main/webapp/icons/cast/cast_icon_idle.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/cast/cast_icon_idle.png rename to libresonic-main/src/main/webapp/icons/cast/cast_icon_idle.png diff --git a/subsonic-main/src/main/webapp/icons/cast/cast_icon_warning.png b/libresonic-main/src/main/webapp/icons/cast/cast_icon_warning.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/cast/cast_icon_warning.png rename to libresonic-main/src/main/webapp/icons/cast/cast_icon_warning.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/add.png b/libresonic-main/src/main/webapp/icons/coolandclean/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/add.png rename to libresonic-main/src/main/webapp/icons/coolandclean/add.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/back.png b/libresonic-main/src/main/webapp/icons/coolandclean/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/back.png rename to libresonic-main/src/main/webapp/icons/coolandclean/back.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/background.png b/libresonic-main/src/main/webapp/icons/coolandclean/background.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/background.png rename to libresonic-main/src/main/webapp/icons/coolandclean/background.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/background_main.png b/libresonic-main/src/main/webapp/icons/coolandclean/background_main.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/background_main.png rename to libresonic-main/src/main/webapp/icons/coolandclean/background_main.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/clear_rating.png b/libresonic-main/src/main/webapp/icons/coolandclean/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/clear_rating.png rename to libresonic-main/src/main/webapp/icons/coolandclean/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/donate.png b/libresonic-main/src/main/webapp/icons/coolandclean/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/donate.png rename to libresonic-main/src/main/webapp/icons/coolandclean/donate.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/down.png b/libresonic-main/src/main/webapp/icons/coolandclean/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/down.png rename to libresonic-main/src/main/webapp/icons/coolandclean/down.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/download.png b/libresonic-main/src/main/webapp/icons/coolandclean/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/download.png rename to libresonic-main/src/main/webapp/icons/coolandclean/download.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/error.png b/libresonic-main/src/main/webapp/icons/coolandclean/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/error.png rename to libresonic-main/src/main/webapp/icons/coolandclean/error.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/favicon.ico b/libresonic-main/src/main/webapp/icons/coolandclean/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/favicon.ico rename to libresonic-main/src/main/webapp/icons/coolandclean/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/forward.png b/libresonic-main/src/main/webapp/icons/coolandclean/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/forward.png rename to libresonic-main/src/main/webapp/icons/coolandclean/forward.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/help.png b/libresonic-main/src/main/webapp/icons/coolandclean/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/help.png rename to libresonic-main/src/main/webapp/icons/coolandclean/help.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/help_small.png b/libresonic-main/src/main/webapp/icons/coolandclean/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/help_small.png rename to libresonic-main/src/main/webapp/icons/coolandclean/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/home.png b/libresonic-main/src/main/webapp/icons/coolandclean/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/home.png rename to libresonic-main/src/main/webapp/icons/coolandclean/home.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/home_hover.png b/libresonic-main/src/main/webapp/icons/coolandclean/home_hover.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/home_hover.png rename to libresonic-main/src/main/webapp/icons/coolandclean/home_hover.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/list_heading.png b/libresonic-main/src/main/webapp/icons/coolandclean/list_heading.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/list_heading.png rename to libresonic-main/src/main/webapp/icons/coolandclean/list_heading.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/log.png b/libresonic-main/src/main/webapp/icons/coolandclean/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/log.png rename to libresonic-main/src/main/webapp/icons/coolandclean/log.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/logo.png b/libresonic-main/src/main/webapp/icons/coolandclean/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/logo.png rename to libresonic-main/src/main/webapp/icons/coolandclean/logo.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/more.png b/libresonic-main/src/main/webapp/icons/coolandclean/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/more.png rename to libresonic-main/src/main/webapp/icons/coolandclean/more.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/now_playing.png b/libresonic-main/src/main/webapp/icons/coolandclean/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/now_playing.png rename to libresonic-main/src/main/webapp/icons/coolandclean/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/paypal.gif b/libresonic-main/src/main/webapp/icons/coolandclean/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/paypal.gif rename to libresonic-main/src/main/webapp/icons/coolandclean/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/phone.png b/libresonic-main/src/main/webapp/icons/coolandclean/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/phone.png rename to libresonic-main/src/main/webapp/icons/coolandclean/phone.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/play.png b/libresonic-main/src/main/webapp/icons/coolandclean/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/play.png rename to libresonic-main/src/main/webapp/icons/coolandclean/play.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/playing.png b/libresonic-main/src/main/webapp/icons/coolandclean/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/playing.png rename to libresonic-main/src/main/webapp/icons/coolandclean/playing.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/podcast.png b/libresonic-main/src/main/webapp/icons/coolandclean/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/podcast.png rename to libresonic-main/src/main/webapp/icons/coolandclean/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/podcast_small.png b/libresonic-main/src/main/webapp/icons/coolandclean/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/podcast_small.png rename to libresonic-main/src/main/webapp/icons/coolandclean/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/progress.png b/libresonic-main/src/main/webapp/icons/coolandclean/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/progress.png rename to libresonic-main/src/main/webapp/icons/coolandclean/progress.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/random.png b/libresonic-main/src/main/webapp/icons/coolandclean/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/random.png rename to libresonic-main/src/main/webapp/icons/coolandclean/random.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/rating_half.png b/libresonic-main/src/main/webapp/icons/coolandclean/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/rating_half.png rename to libresonic-main/src/main/webapp/icons/coolandclean/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/rating_off.png b/libresonic-main/src/main/webapp/icons/coolandclean/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/rating_off.png rename to libresonic-main/src/main/webapp/icons/coolandclean/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/rating_on.png b/libresonic-main/src/main/webapp/icons/coolandclean/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/rating_on.png rename to libresonic-main/src/main/webapp/icons/coolandclean/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/remove.png b/libresonic-main/src/main/webapp/icons/coolandclean/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/remove.png rename to libresonic-main/src/main/webapp/icons/coolandclean/remove.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/search.png b/libresonic-main/src/main/webapp/icons/coolandclean/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/search.png rename to libresonic-main/src/main/webapp/icons/coolandclean/search.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/settings.png b/libresonic-main/src/main/webapp/icons/coolandclean/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/settings.png rename to libresonic-main/src/main/webapp/icons/coolandclean/settings.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/starred.png b/libresonic-main/src/main/webapp/icons/coolandclean/starred.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/starred.png rename to libresonic-main/src/main/webapp/icons/coolandclean/starred.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/status.png b/libresonic-main/src/main/webapp/icons/coolandclean/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/status.png rename to libresonic-main/src/main/webapp/icons/coolandclean/status.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/up.png b/libresonic-main/src/main/webapp/icons/coolandclean/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/up.png rename to libresonic-main/src/main/webapp/icons/coolandclean/up.png diff --git a/subsonic-main/src/main/webapp/icons/coolandclean/upload.png b/libresonic-main/src/main/webapp/icons/coolandclean/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/coolandclean/upload.png rename to libresonic-main/src/main/webapp/icons/coolandclean/upload.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/add.png b/libresonic-main/src/main/webapp/icons/default_dark/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/add.png rename to libresonic-main/src/main/webapp/icons/default_dark/add.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/add_next.png b/libresonic-main/src/main/webapp/icons/default_dark/add_next.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/add_next.png rename to libresonic-main/src/main/webapp/icons/default_dark/add_next.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/android.png b/libresonic-main/src/main/webapp/icons/default_dark/android.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/android.png rename to libresonic-main/src/main/webapp/icons/default_dark/android.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/apps.png b/libresonic-main/src/main/webapp/icons/default_dark/apps.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/apps.png rename to libresonic-main/src/main/webapp/icons/default_dark/apps.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/back.png b/libresonic-main/src/main/webapp/icons/default_dark/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/back.png rename to libresonic-main/src/main/webapp/icons/default_dark/back.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/cast_active.png b/libresonic-main/src/main/webapp/icons/default_dark/cast_active.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/cast_active.png rename to libresonic-main/src/main/webapp/icons/default_dark/cast_active.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/cast_idle.png b/libresonic-main/src/main/webapp/icons/default_dark/cast_idle.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/cast_idle.png rename to libresonic-main/src/main/webapp/icons/default_dark/cast_idle.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/cast_pause.png b/libresonic-main/src/main/webapp/icons/default_dark/cast_pause.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/cast_pause.png rename to libresonic-main/src/main/webapp/icons/default_dark/cast_pause.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/cast_play.png b/libresonic-main/src/main/webapp/icons/default_dark/cast_play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/cast_play.png rename to libresonic-main/src/main/webapp/icons/default_dark/cast_play.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/current.png b/libresonic-main/src/main/webapp/icons/default_dark/current.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/current.png rename to libresonic-main/src/main/webapp/icons/default_dark/current.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/donate.png b/libresonic-main/src/main/webapp/icons/default_dark/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/donate.png rename to libresonic-main/src/main/webapp/icons/default_dark/donate.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/donate_small.png b/libresonic-main/src/main/webapp/icons/default_dark/donate_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/donate_small.png rename to libresonic-main/src/main/webapp/icons/default_dark/donate_small.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/down.png b/libresonic-main/src/main/webapp/icons/default_dark/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/down.png rename to libresonic-main/src/main/webapp/icons/default_dark/down.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/download.png b/libresonic-main/src/main/webapp/icons/default_dark/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/download.png rename to libresonic-main/src/main/webapp/icons/default_dark/download.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/error.png b/libresonic-main/src/main/webapp/icons/default_dark/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/error.png rename to libresonic-main/src/main/webapp/icons/default_dark/error.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/favicon.ico b/libresonic-main/src/main/webapp/icons/default_dark/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/favicon.ico rename to libresonic-main/src/main/webapp/icons/default_dark/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/default_dark/forward.png b/libresonic-main/src/main/webapp/icons/default_dark/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/forward.png rename to libresonic-main/src/main/webapp/icons/default_dark/forward.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/gpl.png b/libresonic-main/src/main/webapp/icons/default_dark/gpl.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/gpl.png rename to libresonic-main/src/main/webapp/icons/default_dark/gpl.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/help.png b/libresonic-main/src/main/webapp/icons/default_dark/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/help.png rename to libresonic-main/src/main/webapp/icons/default_dark/help.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/help_small.png b/libresonic-main/src/main/webapp/icons/default_dark/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/help_small.png rename to libresonic-main/src/main/webapp/icons/default_dark/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/home.png b/libresonic-main/src/main/webapp/icons/default_dark/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/home.png rename to libresonic-main/src/main/webapp/icons/default_dark/home.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/html5.png b/libresonic-main/src/main/webapp/icons/default_dark/html5.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/html5.png rename to libresonic-main/src/main/webapp/icons/default_dark/html5.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/jamstash.png b/libresonic-main/src/main/webapp/icons/default_dark/jamstash.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/jamstash.png rename to libresonic-main/src/main/webapp/icons/default_dark/jamstash.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/log.png b/libresonic-main/src/main/webapp/icons/default_dark/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/log.png rename to libresonic-main/src/main/webapp/icons/default_dark/log.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/logo_light.png b/libresonic-main/src/main/webapp/icons/default_dark/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/logo_light.png rename to libresonic-main/src/main/webapp/icons/default_dark/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/more.png b/libresonic-main/src/main/webapp/icons/default_dark/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/more.png rename to libresonic-main/src/main/webapp/icons/default_dark/more.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/mute.png b/libresonic-main/src/main/webapp/icons/default_dark/mute.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/mute.png rename to libresonic-main/src/main/webapp/icons/default_dark/mute.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/now_playing.png b/libresonic-main/src/main/webapp/icons/default_dark/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/now_playing.png rename to libresonic-main/src/main/webapp/icons/default_dark/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/play.png b/libresonic-main/src/main/webapp/icons/default_dark/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/play.png rename to libresonic-main/src/main/webapp/icons/default_dark/play.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/play_overlay.png b/libresonic-main/src/main/webapp/icons/default_dark/play_overlay.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/play_overlay.png rename to libresonic-main/src/main/webapp/icons/default_dark/play_overlay.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/playlist.png b/libresonic-main/src/main/webapp/icons/default_dark/playlist.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/playlist.png rename to libresonic-main/src/main/webapp/icons/default_dark/playlist.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/podcast.png b/libresonic-main/src/main/webapp/icons/default_dark/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/podcast.png rename to libresonic-main/src/main/webapp/icons/default_dark/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/podcast_large.png b/libresonic-main/src/main/webapp/icons/default_dark/podcast_large.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/podcast_large.png rename to libresonic-main/src/main/webapp/icons/default_dark/podcast_large.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/progress.png b/libresonic-main/src/main/webapp/icons/default_dark/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/progress.png rename to libresonic-main/src/main/webapp/icons/default_dark/progress.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/random.png b/libresonic-main/src/main/webapp/icons/default_dark/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/random.png rename to libresonic-main/src/main/webapp/icons/default_dark/random.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/ratingHalf.png b/libresonic-main/src/main/webapp/icons/default_dark/ratingHalf.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/ratingHalf.png rename to libresonic-main/src/main/webapp/icons/default_dark/ratingHalf.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/ratingOff.png b/libresonic-main/src/main/webapp/icons/default_dark/ratingOff.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/ratingOff.png rename to libresonic-main/src/main/webapp/icons/default_dark/ratingOff.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/ratingOn.png b/libresonic-main/src/main/webapp/icons/default_dark/ratingOn.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/ratingOn.png rename to libresonic-main/src/main/webapp/icons/default_dark/ratingOn.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/remove.png b/libresonic-main/src/main/webapp/icons/default_dark/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/remove.png rename to libresonic-main/src/main/webapp/icons/default_dark/remove.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/search.png b/libresonic-main/src/main/webapp/icons/default_dark/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/search.png rename to libresonic-main/src/main/webapp/icons/default_dark/search.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/settings.png b/libresonic-main/src/main/webapp/icons/default_dark/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/settings.png rename to libresonic-main/src/main/webapp/icons/default_dark/settings.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/share.png b/libresonic-main/src/main/webapp/icons/default_dark/share.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/share.png rename to libresonic-main/src/main/webapp/icons/default_dark/share.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/share_facebook.png b/libresonic-main/src/main/webapp/icons/default_dark/share_facebook.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/share_facebook.png rename to libresonic-main/src/main/webapp/icons/default_dark/share_facebook.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/share_googleplus.png b/libresonic-main/src/main/webapp/icons/default_dark/share_googleplus.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/share_googleplus.png rename to libresonic-main/src/main/webapp/icons/default_dark/share_googleplus.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/share_small.png b/libresonic-main/src/main/webapp/icons/default_dark/share_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/share_small.png rename to libresonic-main/src/main/webapp/icons/default_dark/share_small.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/share_twitter.png b/libresonic-main/src/main/webapp/icons/default_dark/share_twitter.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/share_twitter.png rename to libresonic-main/src/main/webapp/icons/default_dark/share_twitter.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/shuffle.png b/libresonic-main/src/main/webapp/icons/default_dark/shuffle.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/shuffle.png rename to libresonic-main/src/main/webapp/icons/default_dark/shuffle.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/spinner.gif b/libresonic-main/src/main/webapp/icons/default_dark/spinner.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/spinner.gif rename to libresonic-main/src/main/webapp/icons/default_dark/spinner.gif diff --git a/subsonic-main/src/main/webapp/icons/default_dark/starred.png b/libresonic-main/src/main/webapp/icons/default_dark/starred.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/starred.png rename to libresonic-main/src/main/webapp/icons/default_dark/starred.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/status.png b/libresonic-main/src/main/webapp/icons/default_dark/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/status.png rename to libresonic-main/src/main/webapp/icons/default_dark/status.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/status_small.png b/libresonic-main/src/main/webapp/icons/default_dark/status_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/status_small.png rename to libresonic-main/src/main/webapp/icons/default_dark/status_small.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/up.png b/libresonic-main/src/main/webapp/icons/default_dark/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/up.png rename to libresonic-main/src/main/webapp/icons/default_dark/up.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/upload.png b/libresonic-main/src/main/webapp/icons/default_dark/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/upload.png rename to libresonic-main/src/main/webapp/icons/default_dark/upload.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/view_as_grid.png b/libresonic-main/src/main/webapp/icons/default_dark/view_as_grid.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/view_as_grid.png rename to libresonic-main/src/main/webapp/icons/default_dark/view_as_grid.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/view_as_list.png b/libresonic-main/src/main/webapp/icons/default_dark/view_as_list.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/view_as_list.png rename to libresonic-main/src/main/webapp/icons/default_dark/view_as_list.png diff --git a/subsonic-main/src/main/webapp/icons/default_dark/volume.png b/libresonic-main/src/main/webapp/icons/default_dark/volume.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_dark/volume.png rename to libresonic-main/src/main/webapp/icons/default_dark/volume.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/add.png b/libresonic-main/src/main/webapp/icons/default_light/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/add.png rename to libresonic-main/src/main/webapp/icons/default_light/add.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/add_next.png b/libresonic-main/src/main/webapp/icons/default_light/add_next.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/add_next.png rename to libresonic-main/src/main/webapp/icons/default_light/add_next.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/android.png b/libresonic-main/src/main/webapp/icons/default_light/android.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/android.png rename to libresonic-main/src/main/webapp/icons/default_light/android.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/apps.png b/libresonic-main/src/main/webapp/icons/default_light/apps.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/apps.png rename to libresonic-main/src/main/webapp/icons/default_light/apps.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/back.png b/libresonic-main/src/main/webapp/icons/default_light/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/back.png rename to libresonic-main/src/main/webapp/icons/default_light/back.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/cast_active.png b/libresonic-main/src/main/webapp/icons/default_light/cast_active.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/cast_active.png rename to libresonic-main/src/main/webapp/icons/default_light/cast_active.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/cast_idle.png b/libresonic-main/src/main/webapp/icons/default_light/cast_idle.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/cast_idle.png rename to libresonic-main/src/main/webapp/icons/default_light/cast_idle.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/cast_pause.png b/libresonic-main/src/main/webapp/icons/default_light/cast_pause.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/cast_pause.png rename to libresonic-main/src/main/webapp/icons/default_light/cast_pause.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/cast_play.png b/libresonic-main/src/main/webapp/icons/default_light/cast_play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/cast_play.png rename to libresonic-main/src/main/webapp/icons/default_light/cast_play.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/current.png b/libresonic-main/src/main/webapp/icons/default_light/current.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/current.png rename to libresonic-main/src/main/webapp/icons/default_light/current.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/donate.png b/libresonic-main/src/main/webapp/icons/default_light/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/donate.png rename to libresonic-main/src/main/webapp/icons/default_light/donate.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/donate_small.png b/libresonic-main/src/main/webapp/icons/default_light/donate_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/donate_small.png rename to libresonic-main/src/main/webapp/icons/default_light/donate_small.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/down.png b/libresonic-main/src/main/webapp/icons/default_light/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/down.png rename to libresonic-main/src/main/webapp/icons/default_light/down.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/download.png b/libresonic-main/src/main/webapp/icons/default_light/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/download.png rename to libresonic-main/src/main/webapp/icons/default_light/download.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/error.png b/libresonic-main/src/main/webapp/icons/default_light/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/error.png rename to libresonic-main/src/main/webapp/icons/default_light/error.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/favicon.ico b/libresonic-main/src/main/webapp/icons/default_light/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/favicon.ico rename to libresonic-main/src/main/webapp/icons/default_light/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/default_light/forward.png b/libresonic-main/src/main/webapp/icons/default_light/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/forward.png rename to libresonic-main/src/main/webapp/icons/default_light/forward.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/gpl.png b/libresonic-main/src/main/webapp/icons/default_light/gpl.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/gpl.png rename to libresonic-main/src/main/webapp/icons/default_light/gpl.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/help.png b/libresonic-main/src/main/webapp/icons/default_light/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/help.png rename to libresonic-main/src/main/webapp/icons/default_light/help.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/help_small.png b/libresonic-main/src/main/webapp/icons/default_light/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/help_small.png rename to libresonic-main/src/main/webapp/icons/default_light/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/home.png b/libresonic-main/src/main/webapp/icons/default_light/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/home.png rename to libresonic-main/src/main/webapp/icons/default_light/home.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/html5.png b/libresonic-main/src/main/webapp/icons/default_light/html5.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/html5.png rename to libresonic-main/src/main/webapp/icons/default_light/html5.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/jamstash.png b/libresonic-main/src/main/webapp/icons/default_light/jamstash.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/jamstash.png rename to libresonic-main/src/main/webapp/icons/default_light/jamstash.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/log.png b/libresonic-main/src/main/webapp/icons/default_light/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/log.png rename to libresonic-main/src/main/webapp/icons/default_light/log.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/logo.png b/libresonic-main/src/main/webapp/icons/default_light/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/logo.png rename to libresonic-main/src/main/webapp/icons/default_light/logo.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/more.png b/libresonic-main/src/main/webapp/icons/default_light/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/more.png rename to libresonic-main/src/main/webapp/icons/default_light/more.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/mute.png b/libresonic-main/src/main/webapp/icons/default_light/mute.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/mute.png rename to libresonic-main/src/main/webapp/icons/default_light/mute.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/now_playing.png b/libresonic-main/src/main/webapp/icons/default_light/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/now_playing.png rename to libresonic-main/src/main/webapp/icons/default_light/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/play.png b/libresonic-main/src/main/webapp/icons/default_light/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/play.png rename to libresonic-main/src/main/webapp/icons/default_light/play.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/play_overlay.png b/libresonic-main/src/main/webapp/icons/default_light/play_overlay.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/play_overlay.png rename to libresonic-main/src/main/webapp/icons/default_light/play_overlay.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/playlist.png b/libresonic-main/src/main/webapp/icons/default_light/playlist.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/playlist.png rename to libresonic-main/src/main/webapp/icons/default_light/playlist.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/podcast.png b/libresonic-main/src/main/webapp/icons/default_light/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/podcast.png rename to libresonic-main/src/main/webapp/icons/default_light/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/podcast_large.png b/libresonic-main/src/main/webapp/icons/default_light/podcast_large.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/podcast_large.png rename to libresonic-main/src/main/webapp/icons/default_light/podcast_large.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/progress.png b/libresonic-main/src/main/webapp/icons/default_light/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/progress.png rename to libresonic-main/src/main/webapp/icons/default_light/progress.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/random.png b/libresonic-main/src/main/webapp/icons/default_light/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/random.png rename to libresonic-main/src/main/webapp/icons/default_light/random.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/ratingHalf.png b/libresonic-main/src/main/webapp/icons/default_light/ratingHalf.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/ratingHalf.png rename to libresonic-main/src/main/webapp/icons/default_light/ratingHalf.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/ratingOff.png b/libresonic-main/src/main/webapp/icons/default_light/ratingOff.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/ratingOff.png rename to libresonic-main/src/main/webapp/icons/default_light/ratingOff.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/ratingOn.png b/libresonic-main/src/main/webapp/icons/default_light/ratingOn.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/ratingOn.png rename to libresonic-main/src/main/webapp/icons/default_light/ratingOn.png diff --git a/libresonic-main/src/main/webapp/icons/default_light/remove.gif b/libresonic-main/src/main/webapp/icons/default_light/remove.gif new file mode 100644 index 00000000..05880438 Binary files /dev/null and b/libresonic-main/src/main/webapp/icons/default_light/remove.gif differ diff --git a/subsonic-main/src/main/webapp/icons/default_light/remove.png b/libresonic-main/src/main/webapp/icons/default_light/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/remove.png rename to libresonic-main/src/main/webapp/icons/default_light/remove.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/search.png b/libresonic-main/src/main/webapp/icons/default_light/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/search.png rename to libresonic-main/src/main/webapp/icons/default_light/search.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/settings.png b/libresonic-main/src/main/webapp/icons/default_light/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/settings.png rename to libresonic-main/src/main/webapp/icons/default_light/settings.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/share.png b/libresonic-main/src/main/webapp/icons/default_light/share.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/share.png rename to libresonic-main/src/main/webapp/icons/default_light/share.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/share_facebook.png b/libresonic-main/src/main/webapp/icons/default_light/share_facebook.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/share_facebook.png rename to libresonic-main/src/main/webapp/icons/default_light/share_facebook.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/share_googleplus.png b/libresonic-main/src/main/webapp/icons/default_light/share_googleplus.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/share_googleplus.png rename to libresonic-main/src/main/webapp/icons/default_light/share_googleplus.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/share_small.png b/libresonic-main/src/main/webapp/icons/default_light/share_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/share_small.png rename to libresonic-main/src/main/webapp/icons/default_light/share_small.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/share_twitter.png b/libresonic-main/src/main/webapp/icons/default_light/share_twitter.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/share_twitter.png rename to libresonic-main/src/main/webapp/icons/default_light/share_twitter.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/shuffle.png b/libresonic-main/src/main/webapp/icons/default_light/shuffle.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/shuffle.png rename to libresonic-main/src/main/webapp/icons/default_light/shuffle.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/spinner.gif b/libresonic-main/src/main/webapp/icons/default_light/spinner.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/spinner.gif rename to libresonic-main/src/main/webapp/icons/default_light/spinner.gif diff --git a/subsonic-main/src/main/webapp/icons/default_light/star_off.png b/libresonic-main/src/main/webapp/icons/default_light/star_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/star_off.png rename to libresonic-main/src/main/webapp/icons/default_light/star_off.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/starred.png b/libresonic-main/src/main/webapp/icons/default_light/starred.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/starred.png rename to libresonic-main/src/main/webapp/icons/default_light/starred.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/status.png b/libresonic-main/src/main/webapp/icons/default_light/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/status.png rename to libresonic-main/src/main/webapp/icons/default_light/status.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/status_small.png b/libresonic-main/src/main/webapp/icons/default_light/status_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/status_small.png rename to libresonic-main/src/main/webapp/icons/default_light/status_small.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/up.png b/libresonic-main/src/main/webapp/icons/default_light/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/up.png rename to libresonic-main/src/main/webapp/icons/default_light/up.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/upload.png b/libresonic-main/src/main/webapp/icons/default_light/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/upload.png rename to libresonic-main/src/main/webapp/icons/default_light/upload.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/view_as_grid.png b/libresonic-main/src/main/webapp/icons/default_light/view_as_grid.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/view_as_grid.png rename to libresonic-main/src/main/webapp/icons/default_light/view_as_grid.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/view_as_list.png b/libresonic-main/src/main/webapp/icons/default_light/view_as_list.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/view_as_list.png rename to libresonic-main/src/main/webapp/icons/default_light/view_as_list.png diff --git a/subsonic-main/src/main/webapp/icons/default_light/volume.png b/libresonic-main/src/main/webapp/icons/default_light/volume.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/default_light/volume.png rename to libresonic-main/src/main/webapp/icons/default_light/volume.png diff --git a/subsonic-main/src/main/webapp/icons/denim/add.png b/libresonic-main/src/main/webapp/icons/denim/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/add.png rename to libresonic-main/src/main/webapp/icons/denim/add.png diff --git a/subsonic-main/src/main/webapp/icons/denim/back.png b/libresonic-main/src/main/webapp/icons/denim/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/back.png rename to libresonic-main/src/main/webapp/icons/denim/back.png diff --git a/subsonic-main/src/main/webapp/icons/denim/clear_rating.png b/libresonic-main/src/main/webapp/icons/denim/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/clear_rating.png rename to libresonic-main/src/main/webapp/icons/denim/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/denim/donate.png b/libresonic-main/src/main/webapp/icons/denim/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/donate.png rename to libresonic-main/src/main/webapp/icons/denim/donate.png diff --git a/subsonic-main/src/main/webapp/icons/denim/down.png b/libresonic-main/src/main/webapp/icons/denim/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/down.png rename to libresonic-main/src/main/webapp/icons/denim/down.png diff --git a/subsonic-main/src/main/webapp/icons/denim/download.png b/libresonic-main/src/main/webapp/icons/denim/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/download.png rename to libresonic-main/src/main/webapp/icons/denim/download.png diff --git a/subsonic-main/src/main/webapp/icons/denim/error.png b/libresonic-main/src/main/webapp/icons/denim/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/error.png rename to libresonic-main/src/main/webapp/icons/denim/error.png diff --git a/subsonic-main/src/main/webapp/icons/denim/favicon.ico b/libresonic-main/src/main/webapp/icons/denim/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/favicon.ico rename to libresonic-main/src/main/webapp/icons/denim/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/denim/forward.png b/libresonic-main/src/main/webapp/icons/denim/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/forward.png rename to libresonic-main/src/main/webapp/icons/denim/forward.png diff --git a/subsonic-main/src/main/webapp/icons/denim/help.png b/libresonic-main/src/main/webapp/icons/denim/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/help.png rename to libresonic-main/src/main/webapp/icons/denim/help.png diff --git a/subsonic-main/src/main/webapp/icons/denim/help_small.png b/libresonic-main/src/main/webapp/icons/denim/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/help_small.png rename to libresonic-main/src/main/webapp/icons/denim/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/denim/home.png b/libresonic-main/src/main/webapp/icons/denim/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/home.png rename to libresonic-main/src/main/webapp/icons/denim/home.png diff --git a/subsonic-main/src/main/webapp/icons/denim/log.png b/libresonic-main/src/main/webapp/icons/denim/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/log.png rename to libresonic-main/src/main/webapp/icons/denim/log.png diff --git a/subsonic-main/src/main/webapp/icons/denim/logo_light.png b/libresonic-main/src/main/webapp/icons/denim/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/logo_light.png rename to libresonic-main/src/main/webapp/icons/denim/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/denim/more.png b/libresonic-main/src/main/webapp/icons/denim/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/more.png rename to libresonic-main/src/main/webapp/icons/denim/more.png diff --git a/subsonic-main/src/main/webapp/icons/denim/now_playing.png b/libresonic-main/src/main/webapp/icons/denim/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/now_playing.png rename to libresonic-main/src/main/webapp/icons/denim/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/denim/paypal.gif b/libresonic-main/src/main/webapp/icons/denim/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/paypal.gif rename to libresonic-main/src/main/webapp/icons/denim/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/denim/phone.png b/libresonic-main/src/main/webapp/icons/denim/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/phone.png rename to libresonic-main/src/main/webapp/icons/denim/phone.png diff --git a/subsonic-main/src/main/webapp/icons/denim/play.png b/libresonic-main/src/main/webapp/icons/denim/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/play.png rename to libresonic-main/src/main/webapp/icons/denim/play.png diff --git a/subsonic-main/src/main/webapp/icons/denim/playing.png b/libresonic-main/src/main/webapp/icons/denim/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/playing.png rename to libresonic-main/src/main/webapp/icons/denim/playing.png diff --git a/subsonic-main/src/main/webapp/icons/denim/podcast.png b/libresonic-main/src/main/webapp/icons/denim/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/podcast.png rename to libresonic-main/src/main/webapp/icons/denim/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/denim/podcast_small.png b/libresonic-main/src/main/webapp/icons/denim/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/podcast_small.png rename to libresonic-main/src/main/webapp/icons/denim/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/denim/progress.png b/libresonic-main/src/main/webapp/icons/denim/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/progress.png rename to libresonic-main/src/main/webapp/icons/denim/progress.png diff --git a/subsonic-main/src/main/webapp/icons/denim/random.png b/libresonic-main/src/main/webapp/icons/denim/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/random.png rename to libresonic-main/src/main/webapp/icons/denim/random.png diff --git a/subsonic-main/src/main/webapp/icons/denim/rating_half.png b/libresonic-main/src/main/webapp/icons/denim/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/rating_half.png rename to libresonic-main/src/main/webapp/icons/denim/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/denim/rating_off.png b/libresonic-main/src/main/webapp/icons/denim/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/rating_off.png rename to libresonic-main/src/main/webapp/icons/denim/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/denim/rating_on.png b/libresonic-main/src/main/webapp/icons/denim/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/rating_on.png rename to libresonic-main/src/main/webapp/icons/denim/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/denim/remove.png b/libresonic-main/src/main/webapp/icons/denim/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/remove.png rename to libresonic-main/src/main/webapp/icons/denim/remove.png diff --git a/subsonic-main/src/main/webapp/icons/denim/search.png b/libresonic-main/src/main/webapp/icons/denim/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/search.png rename to libresonic-main/src/main/webapp/icons/denim/search.png diff --git a/subsonic-main/src/main/webapp/icons/denim/settings.png b/libresonic-main/src/main/webapp/icons/denim/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/settings.png rename to libresonic-main/src/main/webapp/icons/denim/settings.png diff --git a/subsonic-main/src/main/webapp/icons/denim/status.png b/libresonic-main/src/main/webapp/icons/denim/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/status.png rename to libresonic-main/src/main/webapp/icons/denim/status.png diff --git a/subsonic-main/src/main/webapp/icons/denim/up.png b/libresonic-main/src/main/webapp/icons/denim/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/up.png rename to libresonic-main/src/main/webapp/icons/denim/up.png diff --git a/subsonic-main/src/main/webapp/icons/denim/upload.png b/libresonic-main/src/main/webapp/icons/denim/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/denim/upload.png rename to libresonic-main/src/main/webapp/icons/denim/upload.png diff --git a/subsonic-main/src/main/webapp/icons/favicon.png b/libresonic-main/src/main/webapp/icons/favicon.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/favicon.png rename to libresonic-main/src/main/webapp/icons/favicon.png diff --git a/subsonic-main/src/main/webapp/icons/groove/add.png b/libresonic-main/src/main/webapp/icons/groove/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/add.png rename to libresonic-main/src/main/webapp/icons/groove/add.png diff --git a/subsonic-main/src/main/webapp/icons/groove/back.png b/libresonic-main/src/main/webapp/icons/groove/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/back.png rename to libresonic-main/src/main/webapp/icons/groove/back.png diff --git a/subsonic-main/src/main/webapp/icons/groove/background_main.png b/libresonic-main/src/main/webapp/icons/groove/background_main.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/background_main.png rename to libresonic-main/src/main/webapp/icons/groove/background_main.png diff --git a/subsonic-main/src/main/webapp/icons/groove/background_main_blank.png b/libresonic-main/src/main/webapp/icons/groove/background_main_blank.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/background_main_blank.png rename to libresonic-main/src/main/webapp/icons/groove/background_main_blank.png diff --git a/subsonic-main/src/main/webapp/icons/groove/clear_rating.png b/libresonic-main/src/main/webapp/icons/groove/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/clear_rating.png rename to libresonic-main/src/main/webapp/icons/groove/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/groove/donate.png b/libresonic-main/src/main/webapp/icons/groove/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/donate.png rename to libresonic-main/src/main/webapp/icons/groove/donate.png diff --git a/subsonic-main/src/main/webapp/icons/groove/down.png b/libresonic-main/src/main/webapp/icons/groove/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/down.png rename to libresonic-main/src/main/webapp/icons/groove/down.png diff --git a/subsonic-main/src/main/webapp/icons/groove/download.png b/libresonic-main/src/main/webapp/icons/groove/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/download.png rename to libresonic-main/src/main/webapp/icons/groove/download.png diff --git a/subsonic-main/src/main/webapp/icons/groove/error.png b/libresonic-main/src/main/webapp/icons/groove/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/error.png rename to libresonic-main/src/main/webapp/icons/groove/error.png diff --git a/subsonic-main/src/main/webapp/icons/groove/favicon.ico b/libresonic-main/src/main/webapp/icons/groove/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/favicon.ico rename to libresonic-main/src/main/webapp/icons/groove/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/groove/forward.png b/libresonic-main/src/main/webapp/icons/groove/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/forward.png rename to libresonic-main/src/main/webapp/icons/groove/forward.png diff --git a/subsonic-main/src/main/webapp/icons/groove/help.png b/libresonic-main/src/main/webapp/icons/groove/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/help.png rename to libresonic-main/src/main/webapp/icons/groove/help.png diff --git a/subsonic-main/src/main/webapp/icons/groove/help_small.png b/libresonic-main/src/main/webapp/icons/groove/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/help_small.png rename to libresonic-main/src/main/webapp/icons/groove/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/groove/home.png b/libresonic-main/src/main/webapp/icons/groove/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/home.png rename to libresonic-main/src/main/webapp/icons/groove/home.png diff --git a/subsonic-main/src/main/webapp/icons/groove/log.png b/libresonic-main/src/main/webapp/icons/groove/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/log.png rename to libresonic-main/src/main/webapp/icons/groove/log.png diff --git a/subsonic-main/src/main/webapp/icons/groove/logo.png b/libresonic-main/src/main/webapp/icons/groove/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/logo.png rename to libresonic-main/src/main/webapp/icons/groove/logo.png diff --git a/subsonic-main/src/main/webapp/icons/groove/more.png b/libresonic-main/src/main/webapp/icons/groove/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/more.png rename to libresonic-main/src/main/webapp/icons/groove/more.png diff --git a/subsonic-main/src/main/webapp/icons/groove/now_playing.png b/libresonic-main/src/main/webapp/icons/groove/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/now_playing.png rename to libresonic-main/src/main/webapp/icons/groove/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/groove/paypal.gif b/libresonic-main/src/main/webapp/icons/groove/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/paypal.gif rename to libresonic-main/src/main/webapp/icons/groove/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/groove/phone.png b/libresonic-main/src/main/webapp/icons/groove/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/phone.png rename to libresonic-main/src/main/webapp/icons/groove/phone.png diff --git a/subsonic-main/src/main/webapp/icons/groove/play.png b/libresonic-main/src/main/webapp/icons/groove/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/play.png rename to libresonic-main/src/main/webapp/icons/groove/play.png diff --git a/subsonic-main/src/main/webapp/icons/groove/playing.png b/libresonic-main/src/main/webapp/icons/groove/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/playing.png rename to libresonic-main/src/main/webapp/icons/groove/playing.png diff --git a/subsonic-main/src/main/webapp/icons/groove/podcast.png b/libresonic-main/src/main/webapp/icons/groove/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/podcast.png rename to libresonic-main/src/main/webapp/icons/groove/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/groove/podcast_small.png b/libresonic-main/src/main/webapp/icons/groove/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/podcast_small.png rename to libresonic-main/src/main/webapp/icons/groove/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/groove/progress.png b/libresonic-main/src/main/webapp/icons/groove/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/progress.png rename to libresonic-main/src/main/webapp/icons/groove/progress.png diff --git a/subsonic-main/src/main/webapp/icons/groove/random.png b/libresonic-main/src/main/webapp/icons/groove/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/random.png rename to libresonic-main/src/main/webapp/icons/groove/random.png diff --git a/subsonic-main/src/main/webapp/icons/groove/rating_half.png b/libresonic-main/src/main/webapp/icons/groove/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/rating_half.png rename to libresonic-main/src/main/webapp/icons/groove/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/groove/rating_off.png b/libresonic-main/src/main/webapp/icons/groove/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/rating_off.png rename to libresonic-main/src/main/webapp/icons/groove/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/groove/rating_on.png b/libresonic-main/src/main/webapp/icons/groove/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/rating_on.png rename to libresonic-main/src/main/webapp/icons/groove/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/groove/remove.png b/libresonic-main/src/main/webapp/icons/groove/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/remove.png rename to libresonic-main/src/main/webapp/icons/groove/remove.png diff --git a/subsonic-main/src/main/webapp/icons/groove/search.png b/libresonic-main/src/main/webapp/icons/groove/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/search.png rename to libresonic-main/src/main/webapp/icons/groove/search.png diff --git a/subsonic-main/src/main/webapp/icons/groove/settings.png b/libresonic-main/src/main/webapp/icons/groove/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/settings.png rename to libresonic-main/src/main/webapp/icons/groove/settings.png diff --git a/subsonic-main/src/main/webapp/icons/groove/status.png b/libresonic-main/src/main/webapp/icons/groove/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/status.png rename to libresonic-main/src/main/webapp/icons/groove/status.png diff --git a/subsonic-main/src/main/webapp/icons/groove/up.png b/libresonic-main/src/main/webapp/icons/groove/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/up.png rename to libresonic-main/src/main/webapp/icons/groove/up.png diff --git a/subsonic-main/src/main/webapp/icons/groove/upload.png b/libresonic-main/src/main/webapp/icons/groove/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/groove/upload.png rename to libresonic-main/src/main/webapp/icons/groove/upload.png diff --git a/subsonic-main/src/main/webapp/icons/hd/background.png b/libresonic-main/src/main/webapp/icons/hd/background.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hd/background.png rename to libresonic-main/src/main/webapp/icons/hd/background.png diff --git a/subsonic-main/src/main/webapp/icons/hicon/favicon.ico b/libresonic-main/src/main/webapp/icons/hicon/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/favicon.ico rename to libresonic-main/src/main/webapp/icons/hicon/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/hicon/help.png b/libresonic-main/src/main/webapp/icons/hicon/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/help.png rename to libresonic-main/src/main/webapp/icons/hicon/help.png diff --git a/subsonic-main/src/main/webapp/icons/hicon/home.png b/libresonic-main/src/main/webapp/icons/hicon/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/home.png rename to libresonic-main/src/main/webapp/icons/hicon/home.png diff --git a/subsonic-main/src/main/webapp/icons/hicon/logo.png b/libresonic-main/src/main/webapp/icons/hicon/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/logo.png rename to libresonic-main/src/main/webapp/icons/hicon/logo.png diff --git a/subsonic-main/src/main/webapp/icons/hicon/more.png b/libresonic-main/src/main/webapp/icons/hicon/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/more.png rename to libresonic-main/src/main/webapp/icons/hicon/more.png diff --git a/subsonic-main/src/main/webapp/icons/hicon/now_playing.png b/libresonic-main/src/main/webapp/icons/hicon/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/now_playing.png rename to libresonic-main/src/main/webapp/icons/hicon/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/hicon/podcast_large.png b/libresonic-main/src/main/webapp/icons/hicon/podcast_large.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/podcast_large.png rename to libresonic-main/src/main/webapp/icons/hicon/podcast_large.png diff --git a/subsonic-main/src/main/webapp/icons/hicon/settings.png b/libresonic-main/src/main/webapp/icons/hicon/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/settings.png rename to libresonic-main/src/main/webapp/icons/hicon/settings.png diff --git a/subsonic-main/src/main/webapp/icons/hicon/status.png b/libresonic-main/src/main/webapp/icons/hicon/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hicon/status.png rename to libresonic-main/src/main/webapp/icons/hicon/status.png diff --git a/subsonic-main/src/main/webapp/icons/hiconi/Untitled-1.ico b/libresonic-main/src/main/webapp/icons/hiconi/Untitled-1.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/Untitled-1.ico rename to libresonic-main/src/main/webapp/icons/hiconi/Untitled-1.ico diff --git a/subsonic-main/src/main/webapp/icons/hiconi/help.png b/libresonic-main/src/main/webapp/icons/hiconi/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/help.png rename to libresonic-main/src/main/webapp/icons/hiconi/help.png diff --git a/subsonic-main/src/main/webapp/icons/hiconi/home.png b/libresonic-main/src/main/webapp/icons/hiconi/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/home.png rename to libresonic-main/src/main/webapp/icons/hiconi/home.png diff --git a/subsonic-main/src/main/webapp/icons/hiconi/logo_light.png b/libresonic-main/src/main/webapp/icons/hiconi/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/logo_light.png rename to libresonic-main/src/main/webapp/icons/hiconi/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/hiconi/more.png b/libresonic-main/src/main/webapp/icons/hiconi/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/more.png rename to libresonic-main/src/main/webapp/icons/hiconi/more.png diff --git a/subsonic-main/src/main/webapp/icons/hiconi/now_playing.png b/libresonic-main/src/main/webapp/icons/hiconi/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/now_playing.png rename to libresonic-main/src/main/webapp/icons/hiconi/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/hiconi/podcast_large.png b/libresonic-main/src/main/webapp/icons/hiconi/podcast_large.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/podcast_large.png rename to libresonic-main/src/main/webapp/icons/hiconi/podcast_large.png diff --git a/subsonic-main/src/main/webapp/icons/hiconi/settings.png b/libresonic-main/src/main/webapp/icons/hiconi/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/settings.png rename to libresonic-main/src/main/webapp/icons/hiconi/settings.png diff --git a/subsonic-main/src/main/webapp/icons/hiconi/status.png b/libresonic-main/src/main/webapp/icons/hiconi/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hiconi/status.png rename to libresonic-main/src/main/webapp/icons/hiconi/status.png diff --git a/subsonic-main/src/main/webapp/icons/hitech/bg.jpg b/libresonic-main/src/main/webapp/icons/hitech/bg.jpg similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/bg.jpg rename to libresonic-main/src/main/webapp/icons/hitech/bg.jpg diff --git a/subsonic-main/src/main/webapp/icons/hitech/bg2.jpg b/libresonic-main/src/main/webapp/icons/hitech/bg2.jpg similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/bg2.jpg rename to libresonic-main/src/main/webapp/icons/hitech/bg2.jpg diff --git a/subsonic-main/src/main/webapp/icons/hitech/favicon.ico b/libresonic-main/src/main/webapp/icons/hitech/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/favicon.ico rename to libresonic-main/src/main/webapp/icons/hitech/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/hitech/help.png b/libresonic-main/src/main/webapp/icons/hitech/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/help.png rename to libresonic-main/src/main/webapp/icons/hitech/help.png diff --git a/subsonic-main/src/main/webapp/icons/hitech/home.png b/libresonic-main/src/main/webapp/icons/hitech/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/home.png rename to libresonic-main/src/main/webapp/icons/hitech/home.png diff --git a/subsonic-main/src/main/webapp/icons/hitech/logo_light.png b/libresonic-main/src/main/webapp/icons/hitech/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/logo_light.png rename to libresonic-main/src/main/webapp/icons/hitech/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/hitech/more.png b/libresonic-main/src/main/webapp/icons/hitech/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/more.png rename to libresonic-main/src/main/webapp/icons/hitech/more.png diff --git a/subsonic-main/src/main/webapp/icons/hitech/now_playing.png b/libresonic-main/src/main/webapp/icons/hitech/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/now_playing.png rename to libresonic-main/src/main/webapp/icons/hitech/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/hitech/podcast_large.png b/libresonic-main/src/main/webapp/icons/hitech/podcast_large.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/podcast_large.png rename to libresonic-main/src/main/webapp/icons/hitech/podcast_large.png diff --git a/subsonic-main/src/main/webapp/icons/hitech/settings.png b/libresonic-main/src/main/webapp/icons/hitech/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/settings.png rename to libresonic-main/src/main/webapp/icons/hitech/settings.png diff --git a/subsonic-main/src/main/webapp/icons/hitech/status.png b/libresonic-main/src/main/webapp/icons/hitech/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/hitech/status.png rename to libresonic-main/src/main/webapp/icons/hitech/status.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/error.png b/libresonic-main/src/main/webapp/icons/midnightfun/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/error.png rename to libresonic-main/src/main/webapp/icons/midnightfun/error.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/favicon.ico b/libresonic-main/src/main/webapp/icons/midnightfun/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/favicon.ico rename to libresonic-main/src/main/webapp/icons/midnightfun/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/logo.png b/libresonic-main/src/main/webapp/icons/midnightfun/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/logo.png rename to libresonic-main/src/main/webapp/icons/midnightfun/logo.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_Now_Playing.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_Now_Playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_Now_Playing.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_Now_Playing.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_add.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_add.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_add.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_back.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_back.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_back.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_background.gif b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_background.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_background.gif rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_background.gif diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_clear_Rating.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_clear_Rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_clear_Rating.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_clear_Rating.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_donate.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_donate.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_donate.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_down.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_down.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_down.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_download.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_download.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_download.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_form_controls.jpg b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_form_controls.jpg similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_form_controls.jpg rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_form_controls.jpg diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_form_controls_hover.jpg b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_form_controls_hover.jpg similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_form_controls_hover.jpg rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_form_controls_hover.jpg diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_forward.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_forward.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_forward.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_help.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_help.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_help.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_help_small.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_help_small.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_help_small.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_home.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_home.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_home.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_home_hover.jpg b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_home_hover.jpg similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_home_hover.jpg rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_home_hover.jpg diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_log.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_log.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_log.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_logo_favicon.ico b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_logo_favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_logo_favicon.ico rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_logo_favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_more.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_more.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_more.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_paypal.gif b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_paypal.gif rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_phone.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_phone.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_phone.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_play.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_play.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_play.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_playing.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_playing.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_playing.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_podcast.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_podcast.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_podcast.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_podcast_small.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_podcast_small.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_random.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_random.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_random.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_remove.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_remove.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_remove.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_search.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_search.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_search.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_settings.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_settings.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_settings.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_status.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_status.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_status.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_table.jpg b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_table.jpg similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_table.jpg rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_table.jpg diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_text_back.jpg b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_text_back.jpg similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_text_back.jpg rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_text_back.jpg diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_up.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_up.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_up.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_upload.png b/libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/midnightfun_upload.png rename to libresonic-main/src/main/webapp/icons/midnightfun/midnightfun_upload.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/progress.png b/libresonic-main/src/main/webapp/icons/midnightfun/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/progress.png rename to libresonic-main/src/main/webapp/icons/midnightfun/progress.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/ratingHalf.png b/libresonic-main/src/main/webapp/icons/midnightfun/ratingHalf.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/ratingHalf.png rename to libresonic-main/src/main/webapp/icons/midnightfun/ratingHalf.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/ratingOff.png b/libresonic-main/src/main/webapp/icons/midnightfun/ratingOff.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/ratingOff.png rename to libresonic-main/src/main/webapp/icons/midnightfun/ratingOff.png diff --git a/subsonic-main/src/main/webapp/icons/midnightfun/ratingOn.png b/libresonic-main/src/main/webapp/icons/midnightfun/ratingOn.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/midnightfun/ratingOn.png rename to libresonic-main/src/main/webapp/icons/midnightfun/ratingOn.png diff --git a/subsonic-main/src/main/webapp/icons/monochrome/logo.png b/libresonic-main/src/main/webapp/icons/monochrome/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/monochrome/logo.png rename to libresonic-main/src/main/webapp/icons/monochrome/logo.png diff --git a/subsonic-main/src/main/webapp/icons/monochrome/logo_light.png b/libresonic-main/src/main/webapp/icons/monochrome/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/monochrome/logo_light.png rename to libresonic-main/src/main/webapp/icons/monochrome/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/add.png b/libresonic-main/src/main/webapp/icons/pinkpanther/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/add.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/add.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/back.png b/libresonic-main/src/main/webapp/icons/pinkpanther/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/back.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/back.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/clear_rating.png b/libresonic-main/src/main/webapp/icons/pinkpanther/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/clear_rating.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/donate.png b/libresonic-main/src/main/webapp/icons/pinkpanther/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/donate.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/donate.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/down.png b/libresonic-main/src/main/webapp/icons/pinkpanther/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/down.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/down.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/download.png b/libresonic-main/src/main/webapp/icons/pinkpanther/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/download.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/download.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/error.png b/libresonic-main/src/main/webapp/icons/pinkpanther/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/error.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/error.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/favicon.ico b/libresonic-main/src/main/webapp/icons/pinkpanther/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/favicon.ico rename to libresonic-main/src/main/webapp/icons/pinkpanther/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/forward.png b/libresonic-main/src/main/webapp/icons/pinkpanther/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/forward.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/forward.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/help.png b/libresonic-main/src/main/webapp/icons/pinkpanther/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/help.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/help.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/help_small.png b/libresonic-main/src/main/webapp/icons/pinkpanther/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/help_small.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/home.png b/libresonic-main/src/main/webapp/icons/pinkpanther/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/home.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/home.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/log.png b/libresonic-main/src/main/webapp/icons/pinkpanther/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/log.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/log.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/logo_light.png b/libresonic-main/src/main/webapp/icons/pinkpanther/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/logo_light.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/more.png b/libresonic-main/src/main/webapp/icons/pinkpanther/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/more.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/more.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/now_playing.png b/libresonic-main/src/main/webapp/icons/pinkpanther/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/now_playing.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/paypal.gif b/libresonic-main/src/main/webapp/icons/pinkpanther/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/paypal.gif rename to libresonic-main/src/main/webapp/icons/pinkpanther/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/phone.png b/libresonic-main/src/main/webapp/icons/pinkpanther/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/phone.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/phone.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/play.png b/libresonic-main/src/main/webapp/icons/pinkpanther/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/play.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/play.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/playing.png b/libresonic-main/src/main/webapp/icons/pinkpanther/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/playing.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/playing.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/podcast.png b/libresonic-main/src/main/webapp/icons/pinkpanther/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/podcast.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/podcast_small.png b/libresonic-main/src/main/webapp/icons/pinkpanther/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/podcast_small.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/progress.png b/libresonic-main/src/main/webapp/icons/pinkpanther/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/progress.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/progress.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/random.png b/libresonic-main/src/main/webapp/icons/pinkpanther/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/random.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/random.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/rating_half.png b/libresonic-main/src/main/webapp/icons/pinkpanther/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/rating_half.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/rating_off.png b/libresonic-main/src/main/webapp/icons/pinkpanther/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/rating_off.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/rating_on.png b/libresonic-main/src/main/webapp/icons/pinkpanther/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/rating_on.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/remove.png b/libresonic-main/src/main/webapp/icons/pinkpanther/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/remove.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/remove.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/search.png b/libresonic-main/src/main/webapp/icons/pinkpanther/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/search.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/search.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/settings.png b/libresonic-main/src/main/webapp/icons/pinkpanther/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/settings.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/settings.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/status.png b/libresonic-main/src/main/webapp/icons/pinkpanther/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/status.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/status.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/up.png b/libresonic-main/src/main/webapp/icons/pinkpanther/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/up.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/up.png diff --git a/subsonic-main/src/main/webapp/icons/pinkpanther/upload.png b/libresonic-main/src/main/webapp/icons/pinkpanther/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/pinkpanther/upload.png rename to libresonic-main/src/main/webapp/icons/pinkpanther/upload.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/add.gif b/libresonic-main/src/main/webapp/icons/ripserver/add.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/add.gif rename to libresonic-main/src/main/webapp/icons/ripserver/add.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/back.gif b/libresonic-main/src/main/webapp/icons/ripserver/back.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/back.gif rename to libresonic-main/src/main/webapp/icons/ripserver/back.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/background.png b/libresonic-main/src/main/webapp/icons/ripserver/background.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/background.png rename to libresonic-main/src/main/webapp/icons/ripserver/background.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/clearRating.png b/libresonic-main/src/main/webapp/icons/ripserver/clearRating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/clearRating.png rename to libresonic-main/src/main/webapp/icons/ripserver/clearRating.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/current.gif b/libresonic-main/src/main/webapp/icons/ripserver/current.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/current.gif rename to libresonic-main/src/main/webapp/icons/ripserver/current.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/donate.png b/libresonic-main/src/main/webapp/icons/ripserver/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/donate.png rename to libresonic-main/src/main/webapp/icons/ripserver/donate.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/down.gif b/libresonic-main/src/main/webapp/icons/ripserver/down.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/down.gif rename to libresonic-main/src/main/webapp/icons/ripserver/down.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/download.gif b/libresonic-main/src/main/webapp/icons/ripserver/download.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/download.gif rename to libresonic-main/src/main/webapp/icons/ripserver/download.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/error.png b/libresonic-main/src/main/webapp/icons/ripserver/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/error.png rename to libresonic-main/src/main/webapp/icons/ripserver/error.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/favicon.ico b/libresonic-main/src/main/webapp/icons/ripserver/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/favicon.ico rename to libresonic-main/src/main/webapp/icons/ripserver/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/ripserver/forward.gif b/libresonic-main/src/main/webapp/icons/ripserver/forward.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/forward.gif rename to libresonic-main/src/main/webapp/icons/ripserver/forward.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/help.png b/libresonic-main/src/main/webapp/icons/ripserver/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/help.png rename to libresonic-main/src/main/webapp/icons/ripserver/help.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/help_small.png b/libresonic-main/src/main/webapp/icons/ripserver/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/help_small.png rename to libresonic-main/src/main/webapp/icons/ripserver/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/home.png b/libresonic-main/src/main/webapp/icons/ripserver/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/home.png rename to libresonic-main/src/main/webapp/icons/ripserver/home.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/subsonic_black.png b/libresonic-main/src/main/webapp/icons/ripserver/libresonic_black.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/subsonic_black.png rename to libresonic-main/src/main/webapp/icons/ripserver/libresonic_black.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/subsonic_white.png b/libresonic-main/src/main/webapp/icons/ripserver/libresonic_white.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/subsonic_white.png rename to libresonic-main/src/main/webapp/icons/ripserver/libresonic_white.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/log.png b/libresonic-main/src/main/webapp/icons/ripserver/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/log.png rename to libresonic-main/src/main/webapp/icons/ripserver/log.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/more.png b/libresonic-main/src/main/webapp/icons/ripserver/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/more.png rename to libresonic-main/src/main/webapp/icons/ripserver/more.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/now_playing.png b/libresonic-main/src/main/webapp/icons/ripserver/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/now_playing.png rename to libresonic-main/src/main/webapp/icons/ripserver/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/paypal.gif b/libresonic-main/src/main/webapp/icons/ripserver/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/paypal.gif rename to libresonic-main/src/main/webapp/icons/ripserver/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/play.gif b/libresonic-main/src/main/webapp/icons/ripserver/play.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/play.gif rename to libresonic-main/src/main/webapp/icons/ripserver/play.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/podcast.png b/libresonic-main/src/main/webapp/icons/ripserver/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/podcast.png rename to libresonic-main/src/main/webapp/icons/ripserver/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/podcast_large.png b/libresonic-main/src/main/webapp/icons/ripserver/podcast_large.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/podcast_large.png rename to libresonic-main/src/main/webapp/icons/ripserver/podcast_large.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/progress.png b/libresonic-main/src/main/webapp/icons/ripserver/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/progress.png rename to libresonic-main/src/main/webapp/icons/ripserver/progress.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/random.png b/libresonic-main/src/main/webapp/icons/ripserver/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/random.png rename to libresonic-main/src/main/webapp/icons/ripserver/random.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/ratingHalf.png b/libresonic-main/src/main/webapp/icons/ripserver/ratingHalf.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/ratingHalf.png rename to libresonic-main/src/main/webapp/icons/ripserver/ratingHalf.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/ratingOff.png b/libresonic-main/src/main/webapp/icons/ripserver/ratingOff.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/ratingOff.png rename to libresonic-main/src/main/webapp/icons/ripserver/ratingOff.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/ratingOn.png b/libresonic-main/src/main/webapp/icons/ripserver/ratingOn.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/ratingOn.png rename to libresonic-main/src/main/webapp/icons/ripserver/ratingOn.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/remove.gif b/libresonic-main/src/main/webapp/icons/ripserver/remove.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/remove.gif rename to libresonic-main/src/main/webapp/icons/ripserver/remove.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/search.png b/libresonic-main/src/main/webapp/icons/ripserver/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/search.png rename to libresonic-main/src/main/webapp/icons/ripserver/search.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/settings.png b/libresonic-main/src/main/webapp/icons/ripserver/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/settings.png rename to libresonic-main/src/main/webapp/icons/ripserver/settings.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/status.png b/libresonic-main/src/main/webapp/icons/ripserver/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/status.png rename to libresonic-main/src/main/webapp/icons/ripserver/status.png diff --git a/subsonic-main/src/main/webapp/icons/ripserver/up.gif b/libresonic-main/src/main/webapp/icons/ripserver/up.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/up.gif rename to libresonic-main/src/main/webapp/icons/ripserver/up.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/upload.gif b/libresonic-main/src/main/webapp/icons/ripserver/upload.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/upload.gif rename to libresonic-main/src/main/webapp/icons/ripserver/upload.gif diff --git a/subsonic-main/src/main/webapp/icons/ripserver/wap.png b/libresonic-main/src/main/webapp/icons/ripserver/wap.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/ripserver/wap.png rename to libresonic-main/src/main/webapp/icons/ripserver/wap.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/add.png b/libresonic-main/src/main/webapp/icons/simplify/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/add.png rename to libresonic-main/src/main/webapp/icons/simplify/add.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/back.png b/libresonic-main/src/main/webapp/icons/simplify/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/back.png rename to libresonic-main/src/main/webapp/icons/simplify/back.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/clear_rating.png b/libresonic-main/src/main/webapp/icons/simplify/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/clear_rating.png rename to libresonic-main/src/main/webapp/icons/simplify/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/donate.png b/libresonic-main/src/main/webapp/icons/simplify/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/donate.png rename to libresonic-main/src/main/webapp/icons/simplify/donate.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/down.png b/libresonic-main/src/main/webapp/icons/simplify/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/down.png rename to libresonic-main/src/main/webapp/icons/simplify/down.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/download.png b/libresonic-main/src/main/webapp/icons/simplify/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/download.png rename to libresonic-main/src/main/webapp/icons/simplify/download.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/error.png b/libresonic-main/src/main/webapp/icons/simplify/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/error.png rename to libresonic-main/src/main/webapp/icons/simplify/error.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/favicon.ico b/libresonic-main/src/main/webapp/icons/simplify/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/favicon.ico rename to libresonic-main/src/main/webapp/icons/simplify/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/simplify/forward.png b/libresonic-main/src/main/webapp/icons/simplify/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/forward.png rename to libresonic-main/src/main/webapp/icons/simplify/forward.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/help.png b/libresonic-main/src/main/webapp/icons/simplify/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/help.png rename to libresonic-main/src/main/webapp/icons/simplify/help.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/help_small.png b/libresonic-main/src/main/webapp/icons/simplify/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/help_small.png rename to libresonic-main/src/main/webapp/icons/simplify/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/home.png b/libresonic-main/src/main/webapp/icons/simplify/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/home.png rename to libresonic-main/src/main/webapp/icons/simplify/home.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/log.png b/libresonic-main/src/main/webapp/icons/simplify/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/log.png rename to libresonic-main/src/main/webapp/icons/simplify/log.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/logo_light.png b/libresonic-main/src/main/webapp/icons/simplify/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/logo_light.png rename to libresonic-main/src/main/webapp/icons/simplify/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/more.png b/libresonic-main/src/main/webapp/icons/simplify/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/more.png rename to libresonic-main/src/main/webapp/icons/simplify/more.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/now_playing.png b/libresonic-main/src/main/webapp/icons/simplify/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/now_playing.png rename to libresonic-main/src/main/webapp/icons/simplify/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/paypal.gif b/libresonic-main/src/main/webapp/icons/simplify/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/paypal.gif rename to libresonic-main/src/main/webapp/icons/simplify/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/simplify/phone.png b/libresonic-main/src/main/webapp/icons/simplify/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/phone.png rename to libresonic-main/src/main/webapp/icons/simplify/phone.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/play.png b/libresonic-main/src/main/webapp/icons/simplify/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/play.png rename to libresonic-main/src/main/webapp/icons/simplify/play.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/playing.png b/libresonic-main/src/main/webapp/icons/simplify/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/playing.png rename to libresonic-main/src/main/webapp/icons/simplify/playing.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/podcast.png b/libresonic-main/src/main/webapp/icons/simplify/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/podcast.png rename to libresonic-main/src/main/webapp/icons/simplify/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/podcast_small.png b/libresonic-main/src/main/webapp/icons/simplify/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/podcast_small.png rename to libresonic-main/src/main/webapp/icons/simplify/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/progress.png b/libresonic-main/src/main/webapp/icons/simplify/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/progress.png rename to libresonic-main/src/main/webapp/icons/simplify/progress.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/random.png b/libresonic-main/src/main/webapp/icons/simplify/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/random.png rename to libresonic-main/src/main/webapp/icons/simplify/random.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/rating_half.png b/libresonic-main/src/main/webapp/icons/simplify/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/rating_half.png rename to libresonic-main/src/main/webapp/icons/simplify/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/rating_off.png b/libresonic-main/src/main/webapp/icons/simplify/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/rating_off.png rename to libresonic-main/src/main/webapp/icons/simplify/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/rating_on.png b/libresonic-main/src/main/webapp/icons/simplify/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/rating_on.png rename to libresonic-main/src/main/webapp/icons/simplify/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/remove.png b/libresonic-main/src/main/webapp/icons/simplify/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/remove.png rename to libresonic-main/src/main/webapp/icons/simplify/remove.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/search.png b/libresonic-main/src/main/webapp/icons/simplify/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/search.png rename to libresonic-main/src/main/webapp/icons/simplify/search.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/settings.png b/libresonic-main/src/main/webapp/icons/simplify/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/settings.png rename to libresonic-main/src/main/webapp/icons/simplify/settings.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/status.png b/libresonic-main/src/main/webapp/icons/simplify/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/status.png rename to libresonic-main/src/main/webapp/icons/simplify/status.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/up.png b/libresonic-main/src/main/webapp/icons/simplify/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/up.png rename to libresonic-main/src/main/webapp/icons/simplify/up.png diff --git a/subsonic-main/src/main/webapp/icons/simplify/upload.png b/libresonic-main/src/main/webapp/icons/simplify/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/simplify/upload.png rename to libresonic-main/src/main/webapp/icons/simplify/upload.png diff --git a/subsonic-main/src/main/webapp/icons/slick/favicon.ico b/libresonic-main/src/main/webapp/icons/slick/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/favicon.ico rename to libresonic-main/src/main/webapp/icons/slick/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/slick/help.png b/libresonic-main/src/main/webapp/icons/slick/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/help.png rename to libresonic-main/src/main/webapp/icons/slick/help.png diff --git a/subsonic-main/src/main/webapp/icons/slick/home.png b/libresonic-main/src/main/webapp/icons/slick/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/home.png rename to libresonic-main/src/main/webapp/icons/slick/home.png diff --git a/subsonic-main/src/main/webapp/icons/slick/logo_light.png b/libresonic-main/src/main/webapp/icons/slick/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/logo_light.png rename to libresonic-main/src/main/webapp/icons/slick/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/slick/more.png b/libresonic-main/src/main/webapp/icons/slick/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/more.png rename to libresonic-main/src/main/webapp/icons/slick/more.png diff --git a/subsonic-main/src/main/webapp/icons/slick/now_playing.png b/libresonic-main/src/main/webapp/icons/slick/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/now_playing.png rename to libresonic-main/src/main/webapp/icons/slick/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/slick/podcast_large.png b/libresonic-main/src/main/webapp/icons/slick/podcast_large.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/podcast_large.png rename to libresonic-main/src/main/webapp/icons/slick/podcast_large.png diff --git a/subsonic-main/src/main/webapp/icons/slick/settings.png b/libresonic-main/src/main/webapp/icons/slick/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/settings.png rename to libresonic-main/src/main/webapp/icons/slick/settings.png diff --git a/subsonic-main/src/main/webapp/icons/slick/status.png b/libresonic-main/src/main/webapp/icons/slick/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/status.png rename to libresonic-main/src/main/webapp/icons/slick/status.png diff --git a/subsonic-main/src/main/webapp/icons/slick/top_bg.jpg b/libresonic-main/src/main/webapp/icons/slick/top_bg.jpg similarity index 100% rename from subsonic-main/src/main/webapp/icons/slick/top_bg.jpg rename to libresonic-main/src/main/webapp/icons/slick/top_bg.jpg diff --git a/subsonic-main/src/main/webapp/icons/sonic/add.png b/libresonic-main/src/main/webapp/icons/sonic/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/add.png rename to libresonic-main/src/main/webapp/icons/sonic/add.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/back.png b/libresonic-main/src/main/webapp/icons/sonic/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/back.png rename to libresonic-main/src/main/webapp/icons/sonic/back.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/clear_rating.png b/libresonic-main/src/main/webapp/icons/sonic/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/clear_rating.png rename to libresonic-main/src/main/webapp/icons/sonic/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/donate.png b/libresonic-main/src/main/webapp/icons/sonic/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/donate.png rename to libresonic-main/src/main/webapp/icons/sonic/donate.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/down.png b/libresonic-main/src/main/webapp/icons/sonic/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/down.png rename to libresonic-main/src/main/webapp/icons/sonic/down.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/download.png b/libresonic-main/src/main/webapp/icons/sonic/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/download.png rename to libresonic-main/src/main/webapp/icons/sonic/download.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/error.png b/libresonic-main/src/main/webapp/icons/sonic/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/error.png rename to libresonic-main/src/main/webapp/icons/sonic/error.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/favicon.ico b/libresonic-main/src/main/webapp/icons/sonic/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/favicon.ico rename to libresonic-main/src/main/webapp/icons/sonic/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/sonic/forward.png b/libresonic-main/src/main/webapp/icons/sonic/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/forward.png rename to libresonic-main/src/main/webapp/icons/sonic/forward.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/help.png b/libresonic-main/src/main/webapp/icons/sonic/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/help.png rename to libresonic-main/src/main/webapp/icons/sonic/help.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/help_small.png b/libresonic-main/src/main/webapp/icons/sonic/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/help_small.png rename to libresonic-main/src/main/webapp/icons/sonic/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/home.png b/libresonic-main/src/main/webapp/icons/sonic/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/home.png rename to libresonic-main/src/main/webapp/icons/sonic/home.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/log.png b/libresonic-main/src/main/webapp/icons/sonic/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/log.png rename to libresonic-main/src/main/webapp/icons/sonic/log.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/logo.png b/libresonic-main/src/main/webapp/icons/sonic/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/logo.png rename to libresonic-main/src/main/webapp/icons/sonic/logo.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/more.png b/libresonic-main/src/main/webapp/icons/sonic/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/more.png rename to libresonic-main/src/main/webapp/icons/sonic/more.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/now_playing.png b/libresonic-main/src/main/webapp/icons/sonic/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/now_playing.png rename to libresonic-main/src/main/webapp/icons/sonic/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/paypal.gif b/libresonic-main/src/main/webapp/icons/sonic/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/paypal.gif rename to libresonic-main/src/main/webapp/icons/sonic/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/sonic/phone.png b/libresonic-main/src/main/webapp/icons/sonic/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/phone.png rename to libresonic-main/src/main/webapp/icons/sonic/phone.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/play.png b/libresonic-main/src/main/webapp/icons/sonic/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/play.png rename to libresonic-main/src/main/webapp/icons/sonic/play.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/playing.png b/libresonic-main/src/main/webapp/icons/sonic/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/playing.png rename to libresonic-main/src/main/webapp/icons/sonic/playing.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/podcast.png b/libresonic-main/src/main/webapp/icons/sonic/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/podcast.png rename to libresonic-main/src/main/webapp/icons/sonic/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/podcast_small.png b/libresonic-main/src/main/webapp/icons/sonic/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/podcast_small.png rename to libresonic-main/src/main/webapp/icons/sonic/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/progress.png b/libresonic-main/src/main/webapp/icons/sonic/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/progress.png rename to libresonic-main/src/main/webapp/icons/sonic/progress.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/random.png b/libresonic-main/src/main/webapp/icons/sonic/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/random.png rename to libresonic-main/src/main/webapp/icons/sonic/random.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/rating_half.png b/libresonic-main/src/main/webapp/icons/sonic/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/rating_half.png rename to libresonic-main/src/main/webapp/icons/sonic/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/rating_off.png b/libresonic-main/src/main/webapp/icons/sonic/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/rating_off.png rename to libresonic-main/src/main/webapp/icons/sonic/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/rating_on.png b/libresonic-main/src/main/webapp/icons/sonic/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/rating_on.png rename to libresonic-main/src/main/webapp/icons/sonic/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/remove.png b/libresonic-main/src/main/webapp/icons/sonic/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/remove.png rename to libresonic-main/src/main/webapp/icons/sonic/remove.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/search.png b/libresonic-main/src/main/webapp/icons/sonic/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/search.png rename to libresonic-main/src/main/webapp/icons/sonic/search.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/settings.png b/libresonic-main/src/main/webapp/icons/sonic/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/settings.png rename to libresonic-main/src/main/webapp/icons/sonic/settings.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/status.png b/libresonic-main/src/main/webapp/icons/sonic/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/status.png rename to libresonic-main/src/main/webapp/icons/sonic/status.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/up.png b/libresonic-main/src/main/webapp/icons/sonic/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/up.png rename to libresonic-main/src/main/webapp/icons/sonic/up.png diff --git a/subsonic-main/src/main/webapp/icons/sonic/upload.png b/libresonic-main/src/main/webapp/icons/sonic/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic/upload.png rename to libresonic-main/src/main/webapp/icons/sonic/upload.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/add.png b/libresonic-main/src/main/webapp/icons/sonic_blue/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/add.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/add.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/back.png b/libresonic-main/src/main/webapp/icons/sonic_blue/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/back.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/back.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/clear_rating.png b/libresonic-main/src/main/webapp/icons/sonic_blue/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/clear_rating.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/donate.png b/libresonic-main/src/main/webapp/icons/sonic_blue/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/donate.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/donate.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/down.png b/libresonic-main/src/main/webapp/icons/sonic_blue/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/down.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/down.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/download.png b/libresonic-main/src/main/webapp/icons/sonic_blue/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/download.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/download.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/error.png b/libresonic-main/src/main/webapp/icons/sonic_blue/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/error.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/error.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/favicon.ico b/libresonic-main/src/main/webapp/icons/sonic_blue/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/favicon.ico rename to libresonic-main/src/main/webapp/icons/sonic_blue/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/forward.png b/libresonic-main/src/main/webapp/icons/sonic_blue/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/forward.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/forward.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/help.png b/libresonic-main/src/main/webapp/icons/sonic_blue/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/help.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/help.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/help_small.png b/libresonic-main/src/main/webapp/icons/sonic_blue/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/help_small.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/home.png b/libresonic-main/src/main/webapp/icons/sonic_blue/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/home.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/home.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/log.png b/libresonic-main/src/main/webapp/icons/sonic_blue/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/log.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/log.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/logo_light.png b/libresonic-main/src/main/webapp/icons/sonic_blue/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/logo_light.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/more.png b/libresonic-main/src/main/webapp/icons/sonic_blue/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/more.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/more.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/now_playing.png b/libresonic-main/src/main/webapp/icons/sonic_blue/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/now_playing.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/paypal.gif b/libresonic-main/src/main/webapp/icons/sonic_blue/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/paypal.gif rename to libresonic-main/src/main/webapp/icons/sonic_blue/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/phone.png b/libresonic-main/src/main/webapp/icons/sonic_blue/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/phone.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/phone.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/play.png b/libresonic-main/src/main/webapp/icons/sonic_blue/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/play.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/play.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/playing.png b/libresonic-main/src/main/webapp/icons/sonic_blue/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/playing.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/playing.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/podcast.png b/libresonic-main/src/main/webapp/icons/sonic_blue/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/podcast.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/podcast_small.png b/libresonic-main/src/main/webapp/icons/sonic_blue/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/podcast_small.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/progress.png b/libresonic-main/src/main/webapp/icons/sonic_blue/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/progress.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/progress.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/random.png b/libresonic-main/src/main/webapp/icons/sonic_blue/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/random.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/random.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/rating_half.png b/libresonic-main/src/main/webapp/icons/sonic_blue/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/rating_half.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/rating_off.png b/libresonic-main/src/main/webapp/icons/sonic_blue/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/rating_off.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/rating_on.png b/libresonic-main/src/main/webapp/icons/sonic_blue/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/rating_on.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/remove.png b/libresonic-main/src/main/webapp/icons/sonic_blue/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/remove.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/remove.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/search.png b/libresonic-main/src/main/webapp/icons/sonic_blue/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/search.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/search.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/settings.png b/libresonic-main/src/main/webapp/icons/sonic_blue/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/settings.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/settings.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/status.png b/libresonic-main/src/main/webapp/icons/sonic_blue/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/status.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/status.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/up.png b/libresonic-main/src/main/webapp/icons/sonic_blue/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/up.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/up.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_blue/upload.png b/libresonic-main/src/main/webapp/icons/sonic_blue/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_blue/upload.png rename to libresonic-main/src/main/webapp/icons/sonic_blue/upload.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/add.png b/libresonic-main/src/main/webapp/icons/sonic_white/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/add.png rename to libresonic-main/src/main/webapp/icons/sonic_white/add.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/back.png b/libresonic-main/src/main/webapp/icons/sonic_white/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/back.png rename to libresonic-main/src/main/webapp/icons/sonic_white/back.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/clear_rating.png b/libresonic-main/src/main/webapp/icons/sonic_white/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/clear_rating.png rename to libresonic-main/src/main/webapp/icons/sonic_white/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/donate.png b/libresonic-main/src/main/webapp/icons/sonic_white/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/donate.png rename to libresonic-main/src/main/webapp/icons/sonic_white/donate.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/down.png b/libresonic-main/src/main/webapp/icons/sonic_white/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/down.png rename to libresonic-main/src/main/webapp/icons/sonic_white/down.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/download.png b/libresonic-main/src/main/webapp/icons/sonic_white/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/download.png rename to libresonic-main/src/main/webapp/icons/sonic_white/download.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/error.png b/libresonic-main/src/main/webapp/icons/sonic_white/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/error.png rename to libresonic-main/src/main/webapp/icons/sonic_white/error.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/favicon.ico b/libresonic-main/src/main/webapp/icons/sonic_white/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/favicon.ico rename to libresonic-main/src/main/webapp/icons/sonic_white/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/forward.png b/libresonic-main/src/main/webapp/icons/sonic_white/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/forward.png rename to libresonic-main/src/main/webapp/icons/sonic_white/forward.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/help.png b/libresonic-main/src/main/webapp/icons/sonic_white/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/help.png rename to libresonic-main/src/main/webapp/icons/sonic_white/help.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/help_small.png b/libresonic-main/src/main/webapp/icons/sonic_white/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/help_small.png rename to libresonic-main/src/main/webapp/icons/sonic_white/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/home.png b/libresonic-main/src/main/webapp/icons/sonic_white/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/home.png rename to libresonic-main/src/main/webapp/icons/sonic_white/home.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/log.png b/libresonic-main/src/main/webapp/icons/sonic_white/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/log.png rename to libresonic-main/src/main/webapp/icons/sonic_white/log.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/logo.png b/libresonic-main/src/main/webapp/icons/sonic_white/logo.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/logo.png rename to libresonic-main/src/main/webapp/icons/sonic_white/logo.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/more.png b/libresonic-main/src/main/webapp/icons/sonic_white/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/more.png rename to libresonic-main/src/main/webapp/icons/sonic_white/more.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/now_playing.png b/libresonic-main/src/main/webapp/icons/sonic_white/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/now_playing.png rename to libresonic-main/src/main/webapp/icons/sonic_white/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/paypal.gif b/libresonic-main/src/main/webapp/icons/sonic_white/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/paypal.gif rename to libresonic-main/src/main/webapp/icons/sonic_white/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/phone.png b/libresonic-main/src/main/webapp/icons/sonic_white/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/phone.png rename to libresonic-main/src/main/webapp/icons/sonic_white/phone.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/play.png b/libresonic-main/src/main/webapp/icons/sonic_white/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/play.png rename to libresonic-main/src/main/webapp/icons/sonic_white/play.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/playing.png b/libresonic-main/src/main/webapp/icons/sonic_white/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/playing.png rename to libresonic-main/src/main/webapp/icons/sonic_white/playing.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/podcast.png b/libresonic-main/src/main/webapp/icons/sonic_white/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/podcast.png rename to libresonic-main/src/main/webapp/icons/sonic_white/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/podcast_small.png b/libresonic-main/src/main/webapp/icons/sonic_white/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/podcast_small.png rename to libresonic-main/src/main/webapp/icons/sonic_white/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/progress.png b/libresonic-main/src/main/webapp/icons/sonic_white/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/progress.png rename to libresonic-main/src/main/webapp/icons/sonic_white/progress.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/random.png b/libresonic-main/src/main/webapp/icons/sonic_white/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/random.png rename to libresonic-main/src/main/webapp/icons/sonic_white/random.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/rating_half.png b/libresonic-main/src/main/webapp/icons/sonic_white/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/rating_half.png rename to libresonic-main/src/main/webapp/icons/sonic_white/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/rating_off.png b/libresonic-main/src/main/webapp/icons/sonic_white/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/rating_off.png rename to libresonic-main/src/main/webapp/icons/sonic_white/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/rating_on.png b/libresonic-main/src/main/webapp/icons/sonic_white/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/rating_on.png rename to libresonic-main/src/main/webapp/icons/sonic_white/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/remove.png b/libresonic-main/src/main/webapp/icons/sonic_white/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/remove.png rename to libresonic-main/src/main/webapp/icons/sonic_white/remove.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/search.png b/libresonic-main/src/main/webapp/icons/sonic_white/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/search.png rename to libresonic-main/src/main/webapp/icons/sonic_white/search.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/settings.png b/libresonic-main/src/main/webapp/icons/sonic_white/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/settings.png rename to libresonic-main/src/main/webapp/icons/sonic_white/settings.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/status.png b/libresonic-main/src/main/webapp/icons/sonic_white/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/status.png rename to libresonic-main/src/main/webapp/icons/sonic_white/status.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/up.png b/libresonic-main/src/main/webapp/icons/sonic_white/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/up.png rename to libresonic-main/src/main/webapp/icons/sonic_white/up.png diff --git a/subsonic-main/src/main/webapp/icons/sonic_white/upload.png b/libresonic-main/src/main/webapp/icons/sonic_white/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/sonic_white/upload.png rename to libresonic-main/src/main/webapp/icons/sonic_white/upload.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/add.png b/libresonic-main/src/main/webapp/icons/subStandard/add.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/add.png rename to libresonic-main/src/main/webapp/icons/subStandard/add.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/android.png b/libresonic-main/src/main/webapp/icons/subStandard/android.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/android.png rename to libresonic-main/src/main/webapp/icons/subStandard/android.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/back.png b/libresonic-main/src/main/webapp/icons/subStandard/back.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/back.png rename to libresonic-main/src/main/webapp/icons/subStandard/back.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/background_main.png b/libresonic-main/src/main/webapp/icons/subStandard/background_main.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/background_main.png rename to libresonic-main/src/main/webapp/icons/subStandard/background_main.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/clear_rating.png b/libresonic-main/src/main/webapp/icons/subStandard/clear_rating.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/clear_rating.png rename to libresonic-main/src/main/webapp/icons/subStandard/clear_rating.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/donate.png b/libresonic-main/src/main/webapp/icons/subStandard/donate.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/donate.png rename to libresonic-main/src/main/webapp/icons/subStandard/donate.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/donate_small.png b/libresonic-main/src/main/webapp/icons/subStandard/donate_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/donate_small.png rename to libresonic-main/src/main/webapp/icons/subStandard/donate_small.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/down.png b/libresonic-main/src/main/webapp/icons/subStandard/down.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/down.png rename to libresonic-main/src/main/webapp/icons/subStandard/down.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/download.png b/libresonic-main/src/main/webapp/icons/subStandard/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/download.png rename to libresonic-main/src/main/webapp/icons/subStandard/download.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/error.png b/libresonic-main/src/main/webapp/icons/subStandard/error.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/error.png rename to libresonic-main/src/main/webapp/icons/subStandard/error.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/facebook.png b/libresonic-main/src/main/webapp/icons/subStandard/facebook.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/facebook.png rename to libresonic-main/src/main/webapp/icons/subStandard/facebook.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/favicon.ico b/libresonic-main/src/main/webapp/icons/subStandard/favicon.ico similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/favicon.ico rename to libresonic-main/src/main/webapp/icons/subStandard/favicon.ico diff --git a/subsonic-main/src/main/webapp/icons/subStandard/forward.png b/libresonic-main/src/main/webapp/icons/subStandard/forward.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/forward.png rename to libresonic-main/src/main/webapp/icons/subStandard/forward.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/googleplus.png b/libresonic-main/src/main/webapp/icons/subStandard/googleplus.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/googleplus.png rename to libresonic-main/src/main/webapp/icons/subStandard/googleplus.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/help.png b/libresonic-main/src/main/webapp/icons/subStandard/help.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/help.png rename to libresonic-main/src/main/webapp/icons/subStandard/help.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/help_small.png b/libresonic-main/src/main/webapp/icons/subStandard/help_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/help_small.png rename to libresonic-main/src/main/webapp/icons/subStandard/help_small.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/home.png b/libresonic-main/src/main/webapp/icons/subStandard/home.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/home.png rename to libresonic-main/src/main/webapp/icons/subStandard/home.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/log.png b/libresonic-main/src/main/webapp/icons/subStandard/log.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/log.png rename to libresonic-main/src/main/webapp/icons/subStandard/log.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/logo_light.png b/libresonic-main/src/main/webapp/icons/subStandard/logo_light.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/logo_light.png rename to libresonic-main/src/main/webapp/icons/subStandard/logo_light.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/more.png b/libresonic-main/src/main/webapp/icons/subStandard/more.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/more.png rename to libresonic-main/src/main/webapp/icons/subStandard/more.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/now_playing.png b/libresonic-main/src/main/webapp/icons/subStandard/now_playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/now_playing.png rename to libresonic-main/src/main/webapp/icons/subStandard/now_playing.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/paypal.gif b/libresonic-main/src/main/webapp/icons/subStandard/paypal.gif similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/paypal.gif rename to libresonic-main/src/main/webapp/icons/subStandard/paypal.gif diff --git a/subsonic-main/src/main/webapp/icons/subStandard/phone.png b/libresonic-main/src/main/webapp/icons/subStandard/phone.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/phone.png rename to libresonic-main/src/main/webapp/icons/subStandard/phone.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/play.png b/libresonic-main/src/main/webapp/icons/subStandard/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/play.png rename to libresonic-main/src/main/webapp/icons/subStandard/play.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/playing.png b/libresonic-main/src/main/webapp/icons/subStandard/playing.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/playing.png rename to libresonic-main/src/main/webapp/icons/subStandard/playing.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/podcast.png b/libresonic-main/src/main/webapp/icons/subStandard/podcast.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/podcast.png rename to libresonic-main/src/main/webapp/icons/subStandard/podcast.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/podcast_small.png b/libresonic-main/src/main/webapp/icons/subStandard/podcast_small.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/podcast_small.png rename to libresonic-main/src/main/webapp/icons/subStandard/podcast_small.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/progress.png b/libresonic-main/src/main/webapp/icons/subStandard/progress.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/progress.png rename to libresonic-main/src/main/webapp/icons/subStandard/progress.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/random.png b/libresonic-main/src/main/webapp/icons/subStandard/random.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/random.png rename to libresonic-main/src/main/webapp/icons/subStandard/random.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/rating_half.png b/libresonic-main/src/main/webapp/icons/subStandard/rating_half.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/rating_half.png rename to libresonic-main/src/main/webapp/icons/subStandard/rating_half.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/rating_off.png b/libresonic-main/src/main/webapp/icons/subStandard/rating_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/rating_off.png rename to libresonic-main/src/main/webapp/icons/subStandard/rating_off.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/rating_on.png b/libresonic-main/src/main/webapp/icons/subStandard/rating_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/rating_on.png rename to libresonic-main/src/main/webapp/icons/subStandard/rating_on.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/remove.png b/libresonic-main/src/main/webapp/icons/subStandard/remove.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/remove.png rename to libresonic-main/src/main/webapp/icons/subStandard/remove.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/search.png b/libresonic-main/src/main/webapp/icons/subStandard/search.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/search.png rename to libresonic-main/src/main/webapp/icons/subStandard/search.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/settings.png b/libresonic-main/src/main/webapp/icons/subStandard/settings.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/settings.png rename to libresonic-main/src/main/webapp/icons/subStandard/settings.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/starred.png b/libresonic-main/src/main/webapp/icons/subStandard/starred.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/starred.png rename to libresonic-main/src/main/webapp/icons/subStandard/starred.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/status.png b/libresonic-main/src/main/webapp/icons/subStandard/status.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/status.png rename to libresonic-main/src/main/webapp/icons/subStandard/status.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/twitter.png b/libresonic-main/src/main/webapp/icons/subStandard/twitter.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/twitter.png rename to libresonic-main/src/main/webapp/icons/subStandard/twitter.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/up.png b/libresonic-main/src/main/webapp/icons/subStandard/up.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/up.png rename to libresonic-main/src/main/webapp/icons/subStandard/up.png diff --git a/subsonic-main/src/main/webapp/icons/subStandard/upload.png b/libresonic-main/src/main/webapp/icons/subStandard/upload.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/subStandard/upload.png rename to libresonic-main/src/main/webapp/icons/subStandard/upload.png diff --git a/subsonic-main/src/main/webapp/icons/video/audio_off.png b/libresonic-main/src/main/webapp/icons/video/audio_off.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/video/audio_off.png rename to libresonic-main/src/main/webapp/icons/video/audio_off.png diff --git a/subsonic-main/src/main/webapp/icons/video/audio_on.png b/libresonic-main/src/main/webapp/icons/video/audio_on.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/video/audio_on.png rename to libresonic-main/src/main/webapp/icons/video/audio_on.png diff --git a/subsonic-main/src/main/webapp/icons/video/cast_active.png b/libresonic-main/src/main/webapp/icons/video/cast_active.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/video/cast_active.png rename to libresonic-main/src/main/webapp/icons/video/cast_active.png diff --git a/subsonic-main/src/main/webapp/icons/video/cast_idle.png b/libresonic-main/src/main/webapp/icons/video/cast_idle.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/video/cast_idle.png rename to libresonic-main/src/main/webapp/icons/video/cast_idle.png diff --git a/subsonic-main/src/main/webapp/icons/video/download.png b/libresonic-main/src/main/webapp/icons/video/download.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/video/download.png rename to libresonic-main/src/main/webapp/icons/video/download.png diff --git a/subsonic-main/src/main/webapp/icons/video/pause.png b/libresonic-main/src/main/webapp/icons/video/pause.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/video/pause.png rename to libresonic-main/src/main/webapp/icons/video/pause.png diff --git a/subsonic-main/src/main/webapp/icons/video/play.png b/libresonic-main/src/main/webapp/icons/video/play.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/video/play.png rename to libresonic-main/src/main/webapp/icons/video/play.png diff --git a/subsonic-main/src/main/webapp/icons/video/share.png b/libresonic-main/src/main/webapp/icons/video/share.png similarity index 100% rename from subsonic-main/src/main/webapp/icons/video/share.png rename to libresonic-main/src/main/webapp/icons/video/share.png diff --git a/subsonic-main/src/main/webapp/index.html b/libresonic-main/src/main/webapp/index.html similarity index 100% rename from subsonic-main/src/main/webapp/index.html rename to libresonic-main/src/main/webapp/index.html diff --git a/subsonic-main/src/main/webapp/index.jsp b/libresonic-main/src/main/webapp/index.jsp similarity index 100% rename from subsonic-main/src/main/webapp/index.jsp rename to libresonic-main/src/main/webapp/index.jsp diff --git a/subsonic-main/src/main/webapp/script/AC_OETags.js b/libresonic-main/src/main/webapp/script/AC_OETags.js similarity index 100% rename from subsonic-main/src/main/webapp/script/AC_OETags.js rename to libresonic-main/src/main/webapp/script/AC_OETags.js diff --git a/subsonic-main/src/main/webapp/script/builder.js b/libresonic-main/src/main/webapp/script/builder.js similarity index 100% rename from subsonic-main/src/main/webapp/script/builder.js rename to libresonic-main/src/main/webapp/script/builder.js diff --git a/subsonic-main/src/main/webapp/script/cast_sender-v1.js b/libresonic-main/src/main/webapp/script/cast_sender-v1.js similarity index 100% rename from subsonic-main/src/main/webapp/script/cast_sender-v1.js rename to libresonic-main/src/main/webapp/script/cast_sender-v1.js diff --git a/subsonic-main/src/main/webapp/script/controls.js b/libresonic-main/src/main/webapp/script/controls.js similarity index 100% rename from subsonic-main/src/main/webapp/script/controls.js rename to libresonic-main/src/main/webapp/script/controls.js diff --git a/subsonic-main/src/main/webapp/script/effects.js b/libresonic-main/src/main/webapp/script/effects.js similarity index 100% rename from subsonic-main/src/main/webapp/script/effects.js rename to libresonic-main/src/main/webapp/script/effects.js diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/FancyZoom.js b/libresonic-main/src/main/webapp/script/fancyzoom/FancyZoom.js similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/FancyZoom.js rename to libresonic-main/src/main/webapp/script/fancyzoom/FancyZoom.js diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/FancyZoomHTML.js b/libresonic-main/src/main/webapp/script/fancyzoom/FancyZoomHTML.js similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/FancyZoomHTML.js rename to libresonic-main/src/main/webapp/script/fancyzoom/FancyZoomHTML.js diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/closebox.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/closebox.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/closebox.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/closebox.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/spacer.gif b/libresonic-main/src/main/webapp/script/fancyzoom/images/spacer.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/spacer.gif rename to libresonic-main/src/main/webapp/script/fancyzoom/images/spacer.gif diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-fill.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-fill.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-fill.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-fill.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-l.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-l.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-l.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-l.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-r.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-r.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-r.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-caption-r.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow1.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow1.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow1.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow1.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow2.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow2.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow2.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow2.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow3.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow3.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow3.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow3.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow4.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow4.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow4.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow4.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow5.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow5.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow5.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow5.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow6.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow6.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow6.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow6.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow7.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow7.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow7.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow7.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow8.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow8.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow8.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-shadow8.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-1.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-1.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-1.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-1.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-10.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-10.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-10.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-10.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-11.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-11.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-11.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-11.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-12.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-12.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-12.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-12.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-2.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-2.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-2.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-2.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-3.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-3.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-3.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-3.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-4.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-4.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-4.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-4.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-5.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-5.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-5.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-5.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-6.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-6.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-6.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-6.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-7.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-7.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-7.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-7.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-8.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-8.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-8.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-8.png diff --git a/subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-9.png b/libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-9.png similarity index 100% rename from subsonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-9.png rename to libresonic-main/src/main/webapp/script/fancyzoom/images/zoom-spin-9.png diff --git a/subsonic-main/src/main/webapp/script/jquery-1.7.1.min.js b/libresonic-main/src/main/webapp/script/jquery-1.7.1.min.js similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery-1.7.1.min.js rename to libresonic-main/src/main/webapp/script/jquery-1.7.1.min.js diff --git a/subsonic-main/src/main/webapp/script/jquery-ui-1.11.1.min.js b/libresonic-main/src/main/webapp/script/jquery-ui-1.11.1.min.js similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery-ui-1.11.1.min.js rename to libresonic-main/src/main/webapp/script/jquery-ui-1.11.1.min.js diff --git a/subsonic-main/src/main/webapp/script/jquery.contextMenu.js b/libresonic-main/src/main/webapp/script/jquery.contextMenu.js similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery.contextMenu.js rename to libresonic-main/src/main/webapp/script/jquery.contextMenu.js diff --git a/subsonic-main/src/main/webapp/script/jquery.toastmessage/css/jquery.toastmessage.css b/libresonic-main/src/main/webapp/script/jquery.toastmessage/css/jquery.toastmessage.css similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery.toastmessage/css/jquery.toastmessage.css rename to libresonic-main/src/main/webapp/script/jquery.toastmessage/css/jquery.toastmessage.css diff --git a/subsonic-main/src/main/webapp/script/jquery.toastmessage/images/close.gif b/libresonic-main/src/main/webapp/script/jquery.toastmessage/images/close.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery.toastmessage/images/close.gif rename to libresonic-main/src/main/webapp/script/jquery.toastmessage/images/close.gif diff --git a/subsonic-main/src/main/webapp/script/jquery.toastmessage/images/error.png b/libresonic-main/src/main/webapp/script/jquery.toastmessage/images/error.png similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery.toastmessage/images/error.png rename to libresonic-main/src/main/webapp/script/jquery.toastmessage/images/error.png diff --git a/subsonic-main/src/main/webapp/script/jquery.toastmessage/images/notice.png b/libresonic-main/src/main/webapp/script/jquery.toastmessage/images/notice.png similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery.toastmessage/images/notice.png rename to libresonic-main/src/main/webapp/script/jquery.toastmessage/images/notice.png diff --git a/subsonic-main/src/main/webapp/script/jquery.toastmessage/images/success.png b/libresonic-main/src/main/webapp/script/jquery.toastmessage/images/success.png similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery.toastmessage/images/success.png rename to libresonic-main/src/main/webapp/script/jquery.toastmessage/images/success.png diff --git a/subsonic-main/src/main/webapp/script/jquery.toastmessage/images/warning.png b/libresonic-main/src/main/webapp/script/jquery.toastmessage/images/warning.png similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery.toastmessage/images/warning.png rename to libresonic-main/src/main/webapp/script/jquery.toastmessage/images/warning.png diff --git a/subsonic-main/src/main/webapp/script/jquery.toastmessage/jquery.toastmessage.js b/libresonic-main/src/main/webapp/script/jquery.toastmessage/jquery.toastmessage.js similarity index 100% rename from subsonic-main/src/main/webapp/script/jquery.toastmessage/jquery.toastmessage.js rename to libresonic-main/src/main/webapp/script/jquery.toastmessage/jquery.toastmessage.js diff --git a/subsonic-main/src/main/webapp/script/jwplayer-5.10.min.js b/libresonic-main/src/main/webapp/script/jwplayer-5.10.min.js similarity index 100% rename from subsonic-main/src/main/webapp/script/jwplayer-5.10.min.js rename to libresonic-main/src/main/webapp/script/jwplayer-5.10.min.js diff --git a/subsonic-main/src/main/webapp/script/pngfix.js b/libresonic-main/src/main/webapp/script/pngfix.js similarity index 100% rename from subsonic-main/src/main/webapp/script/pngfix.js rename to libresonic-main/src/main/webapp/script/pngfix.js diff --git a/subsonic-main/src/main/webapp/script/prototype.js b/libresonic-main/src/main/webapp/script/prototype.js similarity index 100% rename from subsonic-main/src/main/webapp/script/prototype.js rename to libresonic-main/src/main/webapp/script/prototype.js diff --git a/subsonic-main/src/main/webapp/script/scripts-2.0.js b/libresonic-main/src/main/webapp/script/scripts-2.0.js similarity index 100% rename from subsonic-main/src/main/webapp/script/scripts-2.0.js rename to libresonic-main/src/main/webapp/script/scripts-2.0.js diff --git a/subsonic-main/src/main/webapp/script/swfobject.js b/libresonic-main/src/main/webapp/script/swfobject.js similarity index 100% rename from subsonic-main/src/main/webapp/script/swfobject.js rename to libresonic-main/src/main/webapp/script/swfobject.js diff --git a/subsonic-main/src/main/webapp/script/tip_balloon.js b/libresonic-main/src/main/webapp/script/tip_balloon.js similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon.js rename to libresonic-main/src/main/webapp/script/tip_balloon.js diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/b.gif b/libresonic-main/src/main/webapp/script/tip_balloon/b.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/b.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/b.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/background.gif b/libresonic-main/src/main/webapp/script/tip_balloon/background.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/background.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/background.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/l.gif b/libresonic-main/src/main/webapp/script/tip_balloon/l.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/l.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/l.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/lb.gif b/libresonic-main/src/main/webapp/script/tip_balloon/lb.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/lb.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/lb.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/lt.gif b/libresonic-main/src/main/webapp/script/tip_balloon/lt.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/lt.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/lt.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/r.gif b/libresonic-main/src/main/webapp/script/tip_balloon/r.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/r.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/r.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/rb.gif b/libresonic-main/src/main/webapp/script/tip_balloon/rb.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/rb.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/rb.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/rt.gif b/libresonic-main/src/main/webapp/script/tip_balloon/rt.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/rt.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/rt.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/stemb.gif b/libresonic-main/src/main/webapp/script/tip_balloon/stemb.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/stemb.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/stemb.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/stemt.gif b/libresonic-main/src/main/webapp/script/tip_balloon/stemt.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/stemt.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/stemt.gif diff --git a/subsonic-main/src/main/webapp/script/tip_balloon/t.gif b/libresonic-main/src/main/webapp/script/tip_balloon/t.gif similarity index 100% rename from subsonic-main/src/main/webapp/script/tip_balloon/t.gif rename to libresonic-main/src/main/webapp/script/tip_balloon/t.gif diff --git a/subsonic-main/src/main/webapp/script/webfx/boxsizing.htc b/libresonic-main/src/main/webapp/script/webfx/boxsizing.htc similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/boxsizing.htc rename to libresonic-main/src/main/webapp/script/webfx/boxsizing.htc diff --git a/subsonic-main/src/main/webapp/script/webfx/handle.horizontal.hover.png b/libresonic-main/src/main/webapp/script/webfx/handle.horizontal.hover.png similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/handle.horizontal.hover.png rename to libresonic-main/src/main/webapp/script/webfx/handle.horizontal.hover.png diff --git a/subsonic-main/src/main/webapp/script/webfx/handle.horizontal.png b/libresonic-main/src/main/webapp/script/webfx/handle.horizontal.png similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/handle.horizontal.png rename to libresonic-main/src/main/webapp/script/webfx/handle.horizontal.png diff --git a/subsonic-main/src/main/webapp/script/webfx/handle.vertical.hover.png b/libresonic-main/src/main/webapp/script/webfx/handle.vertical.hover.png similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/handle.vertical.hover.png rename to libresonic-main/src/main/webapp/script/webfx/handle.vertical.hover.png diff --git a/subsonic-main/src/main/webapp/script/webfx/handle.vertical.png b/libresonic-main/src/main/webapp/script/webfx/handle.vertical.png similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/handle.vertical.png rename to libresonic-main/src/main/webapp/script/webfx/handle.vertical.png diff --git a/subsonic-main/src/main/webapp/script/webfx/luna.css b/libresonic-main/src/main/webapp/script/webfx/luna.css similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/luna.css rename to libresonic-main/src/main/webapp/script/webfx/luna.css diff --git a/subsonic-main/src/main/webapp/script/webfx/range.js b/libresonic-main/src/main/webapp/script/webfx/range.js similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/range.js rename to libresonic-main/src/main/webapp/script/webfx/range.js diff --git a/subsonic-main/src/main/webapp/script/webfx/slider.js b/libresonic-main/src/main/webapp/script/webfx/slider.js similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/slider.js rename to libresonic-main/src/main/webapp/script/webfx/slider.js diff --git a/subsonic-main/src/main/webapp/script/webfx/timer.js b/libresonic-main/src/main/webapp/script/webfx/timer.js similarity index 100% rename from subsonic-main/src/main/webapp/script/webfx/timer.js rename to libresonic-main/src/main/webapp/script/webfx/timer.js diff --git a/subsonic-main/src/main/webapp/script/wz_tooltip.js b/libresonic-main/src/main/webapp/script/wz_tooltip.js similarity index 100% rename from subsonic-main/src/main/webapp/script/wz_tooltip.js rename to libresonic-main/src/main/webapp/script/wz_tooltip.js diff --git a/subsonic-main/src/main/webapp/sonos/presentationMap.xml b/libresonic-main/src/main/webapp/sonos/presentationMap.xml similarity index 100% rename from subsonic-main/src/main/webapp/sonos/presentationMap.xml rename to libresonic-main/src/main/webapp/sonos/presentationMap.xml diff --git a/subsonic-main/src/main/webapp/sonos/presentationMap.xsd b/libresonic-main/src/main/webapp/sonos/presentationMap.xsd similarity index 100% rename from subsonic-main/src/main/webapp/sonos/presentationMap.xsd rename to libresonic-main/src/main/webapp/sonos/presentationMap.xsd diff --git a/subsonic-main/src/main/webapp/sonos/strings.xml b/libresonic-main/src/main/webapp/sonos/strings.xml similarity index 60% rename from subsonic-main/src/main/webapp/sonos/strings.xml rename to libresonic-main/src/main/webapp/sonos/strings.xml index aa3ca339..78913cfa 100644 --- a/subsonic-main/src/main/webapp/sonos/strings.xml +++ b/libresonic-main/src/main/webapp/sonos/strings.xml @@ -2,8 +2,8 @@ - Stream music from your own Subsonic server. Please log on with an existing Subsonic account. Requires Subsonic Premium. - Sorry, wrong Subsonic username or password. + Stream music from your own Libresonic server. Please log on with an existing Libresonic account. Requires Subsonic Premium. + Sorry, wrong Libresonic username or password. Please upgrade to Subsonic Premium to continue to use this service. diff --git a/subsonic-main/src/main/webapp/style/barents.css b/libresonic-main/src/main/webapp/style/barents.css similarity index 100% rename from subsonic-main/src/main/webapp/style/barents.css rename to libresonic-main/src/main/webapp/style/barents.css diff --git a/subsonic-main/src/main/webapp/style/black.css b/libresonic-main/src/main/webapp/style/black.css similarity index 100% rename from subsonic-main/src/main/webapp/style/black.css rename to libresonic-main/src/main/webapp/style/black.css diff --git a/subsonic-main/src/main/webapp/style/buuftheme.css b/libresonic-main/src/main/webapp/style/buuftheme.css similarity index 100% rename from subsonic-main/src/main/webapp/style/buuftheme.css rename to libresonic-main/src/main/webapp/style/buuftheme.css diff --git a/subsonic-main/src/main/webapp/style/coolandclean.css b/libresonic-main/src/main/webapp/style/coolandclean.css similarity index 100% rename from subsonic-main/src/main/webapp/style/coolandclean.css rename to libresonic-main/src/main/webapp/style/coolandclean.css diff --git a/subsonic-main/src/main/webapp/style/default.css b/libresonic-main/src/main/webapp/style/default.css similarity index 100% rename from subsonic-main/src/main/webapp/style/default.css rename to libresonic-main/src/main/webapp/style/default.css diff --git a/subsonic-main/src/main/webapp/style/denim.css b/libresonic-main/src/main/webapp/style/denim.css similarity index 100% rename from subsonic-main/src/main/webapp/style/denim.css rename to libresonic-main/src/main/webapp/style/denim.css diff --git a/subsonic-main/src/main/webapp/style/groove.css b/libresonic-main/src/main/webapp/style/groove.css similarity index 100% rename from subsonic-main/src/main/webapp/style/groove.css rename to libresonic-main/src/main/webapp/style/groove.css diff --git a/subsonic-main/src/main/webapp/style/groove_simple.css b/libresonic-main/src/main/webapp/style/groove_simple.css similarity index 100% rename from subsonic-main/src/main/webapp/style/groove_simple.css rename to libresonic-main/src/main/webapp/style/groove_simple.css diff --git a/subsonic-main/src/main/webapp/style/hd.css b/libresonic-main/src/main/webapp/style/hd.css similarity index 100% rename from subsonic-main/src/main/webapp/style/hd.css rename to libresonic-main/src/main/webapp/style/hd.css diff --git a/subsonic-main/src/main/webapp/style/hd1080.css b/libresonic-main/src/main/webapp/style/hd1080.css similarity index 100% rename from subsonic-main/src/main/webapp/style/hd1080.css rename to libresonic-main/src/main/webapp/style/hd1080.css diff --git a/subsonic-main/src/main/webapp/style/hd720.css b/libresonic-main/src/main/webapp/style/hd720.css similarity index 100% rename from subsonic-main/src/main/webapp/style/hd720.css rename to libresonic-main/src/main/webapp/style/hd720.css diff --git a/subsonic-main/src/main/webapp/style/hd768.css b/libresonic-main/src/main/webapp/style/hd768.css similarity index 100% rename from subsonic-main/src/main/webapp/style/hd768.css rename to libresonic-main/src/main/webapp/style/hd768.css diff --git a/subsonic-main/src/main/webapp/style/hicon.css b/libresonic-main/src/main/webapp/style/hicon.css similarity index 100% rename from subsonic-main/src/main/webapp/style/hicon.css rename to libresonic-main/src/main/webapp/style/hicon.css diff --git a/subsonic-main/src/main/webapp/style/hiconi.css b/libresonic-main/src/main/webapp/style/hiconi.css similarity index 100% rename from subsonic-main/src/main/webapp/style/hiconi.css rename to libresonic-main/src/main/webapp/style/hiconi.css diff --git a/subsonic-main/src/main/webapp/style/hitech.css b/libresonic-main/src/main/webapp/style/hitech.css similarity index 100% rename from subsonic-main/src/main/webapp/style/hitech.css rename to libresonic-main/src/main/webapp/style/hitech.css diff --git a/subsonic-main/src/main/webapp/style/jquery.contextMenu.css b/libresonic-main/src/main/webapp/style/jquery.contextMenu.css similarity index 100% rename from subsonic-main/src/main/webapp/style/jquery.contextMenu.css rename to libresonic-main/src/main/webapp/style/jquery.contextMenu.css diff --git a/subsonic-main/src/main/webapp/style/midnight.css b/libresonic-main/src/main/webapp/style/midnight.css similarity index 100% rename from subsonic-main/src/main/webapp/style/midnight.css rename to libresonic-main/src/main/webapp/style/midnight.css diff --git a/subsonic-main/src/main/webapp/style/midnightfun.css b/libresonic-main/src/main/webapp/style/midnightfun.css similarity index 100% rename from subsonic-main/src/main/webapp/style/midnightfun.css rename to libresonic-main/src/main/webapp/style/midnightfun.css diff --git a/subsonic-main/src/main/webapp/style/monochrome.css b/libresonic-main/src/main/webapp/style/monochrome.css similarity index 100% rename from subsonic-main/src/main/webapp/style/monochrome.css rename to libresonic-main/src/main/webapp/style/monochrome.css diff --git a/subsonic-main/src/main/webapp/style/monochrome_black.css b/libresonic-main/src/main/webapp/style/monochrome_black.css similarity index 100% rename from subsonic-main/src/main/webapp/style/monochrome_black.css rename to libresonic-main/src/main/webapp/style/monochrome_black.css diff --git a/subsonic-main/src/main/webapp/style/pinkpanther.css b/libresonic-main/src/main/webapp/style/pinkpanther.css similarity index 100% rename from subsonic-main/src/main/webapp/style/pinkpanther.css rename to libresonic-main/src/main/webapp/style/pinkpanther.css diff --git a/subsonic-main/src/main/webapp/style/ripserver.css b/libresonic-main/src/main/webapp/style/ripserver.css similarity index 100% rename from subsonic-main/src/main/webapp/style/ripserver.css rename to libresonic-main/src/main/webapp/style/ripserver.css diff --git a/subsonic-main/src/main/webapp/style/sandstorm.css b/libresonic-main/src/main/webapp/style/sandstorm.css similarity index 100% rename from subsonic-main/src/main/webapp/style/sandstorm.css rename to libresonic-main/src/main/webapp/style/sandstorm.css diff --git a/subsonic-main/src/main/webapp/style/simplify.css b/libresonic-main/src/main/webapp/style/simplify.css similarity index 100% rename from subsonic-main/src/main/webapp/style/simplify.css rename to libresonic-main/src/main/webapp/style/simplify.css diff --git a/subsonic-main/src/main/webapp/style/slick.css b/libresonic-main/src/main/webapp/style/slick.css similarity index 100% rename from subsonic-main/src/main/webapp/style/slick.css rename to libresonic-main/src/main/webapp/style/slick.css diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_flat_75_ffffff_40x100.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_flat_75_ffffff_40x100.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_65_ffffff_1x400.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_65_ffffff_1x400.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_75_dadada_1x400.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_75_dadada_1x400.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_75_dadada_1x400.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_222222_256x240.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_222222_256x240.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_222222_256x240.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_222222_256x240.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_2e83ff_256x240.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_2e83ff_256x240.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_2e83ff_256x240.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_2e83ff_256x240.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_454545_256x240.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_454545_256x240.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_454545_256x240.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_454545_256x240.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_888888_256x240.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_888888_256x240.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_888888_256x240.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_888888_256x240.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_cd0a0a_256x240.png b/libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_cd0a0a_256x240.png similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/images/ui-icons_cd0a0a_256x240.png rename to libresonic-main/src/main/webapp/style/smoothness/images/ui-icons_cd0a0a_256x240.png diff --git a/subsonic-main/src/main/webapp/style/smoothness/jquery-ui-1.8.18.custom.css b/libresonic-main/src/main/webapp/style/smoothness/jquery-ui-1.8.18.custom.css similarity index 100% rename from subsonic-main/src/main/webapp/style/smoothness/jquery-ui-1.8.18.custom.css rename to libresonic-main/src/main/webapp/style/smoothness/jquery-ui-1.8.18.custom.css diff --git a/subsonic-main/src/main/webapp/style/sonic.css b/libresonic-main/src/main/webapp/style/sonic.css similarity index 100% rename from subsonic-main/src/main/webapp/style/sonic.css rename to libresonic-main/src/main/webapp/style/sonic.css diff --git a/subsonic-main/src/main/webapp/style/sonic_blue.css b/libresonic-main/src/main/webapp/style/sonic_blue.css similarity index 100% rename from subsonic-main/src/main/webapp/style/sonic_blue.css rename to libresonic-main/src/main/webapp/style/sonic_blue.css diff --git a/subsonic-main/src/main/webapp/style/sonic_white.css b/libresonic-main/src/main/webapp/style/sonic_white.css similarity index 100% rename from subsonic-main/src/main/webapp/style/sonic_white.css rename to libresonic-main/src/main/webapp/style/sonic_white.css diff --git a/subsonic-main/src/main/webapp/style/subStandard.css b/libresonic-main/src/main/webapp/style/subStandard.css similarity index 100% rename from subsonic-main/src/main/webapp/style/subStandard.css rename to libresonic-main/src/main/webapp/style/subStandard.css diff --git a/subsonic-main/src/main/webapp/style/videoPlayer.css b/libresonic-main/src/main/webapp/style/videoPlayer.css similarity index 93% rename from subsonic-main/src/main/webapp/style/videoPlayer.css rename to libresonic-main/src/main/webapp/style/videoPlayer.css index e70aae71..9e6d4db9 100644 --- a/subsonic-main/src/main/webapp/style/videoPlayer.css +++ b/libresonic-main/src/main/webapp/style/videoPlayer.css @@ -1,18 +1,18 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/MissingTranslations.java b/libresonic-main/src/test/java/org/libresonic/player/MissingTranslations.java similarity index 87% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/MissingTranslations.java rename to libresonic-main/src/test/java/org/libresonic/player/MissingTranslations.java index 690c4f7d..7c67efc4 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/MissingTranslations.java +++ b/libresonic-main/src/test/java/org/libresonic/player/MissingTranslations.java @@ -1,4 +1,4 @@ -package net.sourceforge.subsonic; +package org.libresonic.player; import java.io.IOException; import java.util.Map; @@ -19,11 +19,11 @@ public class MissingTranslations { private static void diff(String locale1, String locale2) throws IOException { Properties en = new Properties(); - en.load(MissingTranslations.class.getResourceAsStream("/net/sourceforge/subsonic/i18n/ResourceBundle_" + locale1 + ".properties")); + en.load(MissingTranslations.class.getResourceAsStream("/org/libresonic/player/i18n/ResourceBundle_" + locale1 + ".properties")); SortedMap enSorted = new TreeMap(en); Properties mk = new Properties(); - mk.load(MissingTranslations.class.getResourceAsStream("/net/sourceforge/subsonic/i18n/ResourceBundle_" + locale2 + ".properties")); + mk.load(MissingTranslations.class.getResourceAsStream("/org/libresonic/player/i18n/ResourceBundle_" + locale2 + ".properties")); System.out.println("\nMessages present in locale " + locale1 + " and missing in locale " + locale2 + ":"); int count = 0; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/controller/HLSControllerTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/controller/HLSControllerTestCase.java similarity index 79% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/controller/HLSControllerTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/controller/HLSControllerTestCase.java index 1c026aba..4090cd64 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/controller/HLSControllerTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/controller/HLSControllerTestCase.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.awt.Dimension; import junit.framework.TestCase; -import net.sourceforge.subsonic.util.Pair; +import org.libresonic.player.util.Pair; /** * @author Sindre Mehus diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/controller/StreamControllerTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/controller/StreamControllerTestCase.java similarity index 93% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/controller/StreamControllerTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/controller/StreamControllerTestCase.java index 05ce96c4..6cf91393 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/controller/StreamControllerTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/controller/StreamControllerTestCase.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.controller; +package org.libresonic.player.controller; import java.awt.Dimension; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/DaoTestCaseBase.java b/libresonic-main/src/test/java/org/libresonic/player/dao/DaoTestCaseBase.java similarity index 89% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/dao/DaoTestCaseBase.java rename to libresonic-main/src/test/java/org/libresonic/player/dao/DaoTestCaseBase.java index 8b4bd79a..426fb89c 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/DaoTestCaseBase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/dao/DaoTestCaseBase.java @@ -1,7 +1,7 @@ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import junit.framework.TestCase; -import net.sourceforge.subsonic.util.FileUtil; +import org.libresonic.player.util.FileUtil; import org.springframework.jdbc.core.JdbcTemplate; import java.io.File; @@ -61,9 +61,9 @@ public abstract class DaoTestCaseBase extends TestCase { } private static void deleteDatabase() { - File subsonicHome = new File("/tmp/subsonic"); - File dbHome = new File(subsonicHome, "db"); - System.setProperty("subsonic.home", subsonicHome.getPath()); + File libresonicHome = new File("/tmp/libresonic"); + File dbHome = new File(libresonicHome, "db"); + System.setProperty("libresonic.home", libresonicHome.getPath()); long now = System.currentTimeMillis(); if (now - dbHome.lastModified() > MAX_DB_AGE_MILLIS) { diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/InternetRadioDaoTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/dao/InternetRadioDaoTestCase.java similarity index 96% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/dao/InternetRadioDaoTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/dao/InternetRadioDaoTestCase.java index 5e5c64e7..f411aab3 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/InternetRadioDaoTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/dao/InternetRadioDaoTestCase.java @@ -1,8 +1,8 @@ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.util.Date; -import net.sourceforge.subsonic.domain.InternetRadio; +import org.libresonic.player.domain.InternetRadio; /** * Unit test of {@link InternetRadioDao}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/MusicFolderDaoTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/dao/MusicFolderDaoTestCase.java similarity index 88% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/dao/MusicFolderDaoTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/dao/MusicFolderDaoTestCase.java index b65e8b17..173bddea 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/MusicFolderDaoTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/dao/MusicFolderDaoTestCase.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.io.File; import java.util.Date; -import net.sourceforge.subsonic.domain.MusicFolder; +import org.libresonic.player.domain.MusicFolder; /** * Unit test of {@link MusicFolderDao}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/PlayerDaoTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/dao/PlayerDaoTestCase.java similarity index 96% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/dao/PlayerDaoTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/dao/PlayerDaoTestCase.java index ed930db5..c33583fc 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/PlayerDaoTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/dao/PlayerDaoTestCase.java @@ -1,12 +1,12 @@ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.util.Date; import java.util.List; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.PlayerTechnology; -import net.sourceforge.subsonic.domain.PlayQueue; -import net.sourceforge.subsonic.domain.TranscodeScheme; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.PlayerTechnology; +import org.libresonic.player.domain.PlayQueue; +import org.libresonic.player.domain.TranscodeScheme; /** * Unit test of {@link PlayerDao}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/PodcastDaoTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/dao/PodcastDaoTestCase.java similarity index 97% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/dao/PodcastDaoTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/dao/PodcastDaoTestCase.java index 8aafa1e6..759bfea3 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/PodcastDaoTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/dao/PodcastDaoTestCase.java @@ -1,11 +1,11 @@ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.util.Date; import java.util.List; -import net.sourceforge.subsonic.domain.PodcastChannel; -import net.sourceforge.subsonic.domain.PodcastEpisode; -import net.sourceforge.subsonic.domain.PodcastStatus; +import org.libresonic.player.domain.PodcastChannel; +import org.libresonic.player.domain.PodcastEpisode; +import org.libresonic.player.domain.PodcastStatus; /** * Unit test of {@link PodcastDao}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/TranscodingDaoTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/dao/TranscodingDaoTestCase.java similarity index 98% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/dao/TranscodingDaoTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/dao/TranscodingDaoTestCase.java index 9cf4441b..70a080aa 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/TranscodingDaoTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/dao/TranscodingDaoTestCase.java @@ -1,9 +1,9 @@ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; import java.util.List; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.Transcoding; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.Transcoding; /** * Unit test of {@link TranscodingDao}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/UserDaoTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/dao/UserDaoTestCase.java similarity index 97% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/dao/UserDaoTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/dao/UserDaoTestCase.java index d08c5a45..934eb7cc 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/dao/UserDaoTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/dao/UserDaoTestCase.java @@ -1,9 +1,9 @@ -package net.sourceforge.subsonic.dao; +package org.libresonic.player.dao; -import net.sourceforge.subsonic.domain.AvatarScheme; -import net.sourceforge.subsonic.domain.TranscodeScheme; -import net.sourceforge.subsonic.domain.User; -import net.sourceforge.subsonic.domain.UserSettings; +import org.libresonic.player.domain.AvatarScheme; +import org.libresonic.player.domain.TranscodeScheme; +import org.libresonic.player.domain.User; +import org.libresonic.player.domain.UserSettings; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/CacheElementTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/domain/CacheElementTestCase.java similarity index 76% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/domain/CacheElementTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/domain/CacheElementTestCase.java index 6c6e871a..5c91f9da 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/CacheElementTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/domain/CacheElementTestCase.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import junit.framework.TestCase; /** - * Unit test of {@link net.sourceforge.subsonic.domain.CacheElement}. + * Unit test of {@link org.libresonic.player.domain.CacheElement}. * * @author Sindre Mehus */ diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/domain/MediaFileComparatorTestCase.java similarity index 92% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/domain/MediaFileComparatorTestCase.java index 6e1047f4..5e023e11 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/MediaFileComparatorTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/domain/MediaFileComparatorTestCase.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import junit.framework.TestCase; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/PlayQueueTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/domain/PlayQueueTestCase.java similarity index 95% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/domain/PlayQueueTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/domain/PlayQueueTestCase.java index 23a3b454..d7592d97 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/PlayQueueTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/domain/PlayQueueTestCase.java @@ -1,30 +1,31 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.io.File; import java.io.IOException; import java.util.Arrays; import junit.framework.TestCase; -import net.sourceforge.subsonic.domain.PlayQueue.SortOrder; -import net.sourceforge.subsonic.domain.PlayQueue.Status; +import org.libresonic.player.domain.PlayQueue.SortOrder; +import org.libresonic.player.domain.PlayQueue.Status; /** * Unit test of {@link PlayQueue}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/SortableArtistTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/domain/SortableArtistTestCase.java similarity index 93% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/domain/SortableArtistTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/domain/SortableArtistTestCase.java index 2213e2c8..f897f0bd 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/SortableArtistTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/domain/SortableArtistTestCase.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import java.text.Collator; import java.util.ArrayList; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/TranscodeSchemeTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/domain/TranscodeSchemeTestCase.java similarity index 74% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/domain/TranscodeSchemeTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/domain/TranscodeSchemeTestCase.java index 634ac41c..686cb1ce 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/TranscodeSchemeTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/domain/TranscodeSchemeTestCase.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; import junit.framework.TestCase; -import static net.sourceforge.subsonic.domain.TranscodeScheme.*; +import static org.libresonic.player.domain.TranscodeScheme.*; /** * Unit test of {@link TranscodeScheme}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/VersionTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/domain/VersionTestCase.java similarity index 84% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/domain/VersionTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/domain/VersionTestCase.java index 79a8bfdf..ef63a772 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/domain/VersionTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/domain/VersionTestCase.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.domain; +package org.libresonic.player.domain; /** * Unit test of {@link Version}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/io/RangeOutputStreamTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/io/RangeOutputStreamTestCase.java similarity index 88% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/io/RangeOutputStreamTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/io/RangeOutputStreamTestCase.java index 983b8efa..ae282797 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/io/RangeOutputStreamTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/io/RangeOutputStreamTestCase.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2014 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2014 (C) Sindre Mehus */ -package net.sourceforge.subsonic.io; +package org.libresonic.player.io; import junit.framework.TestCase; -import net.sourceforge.subsonic.util.HttpRange; +import org.libresonic.player.util.HttpRange; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/MusicIndexServiceTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/service/MusicIndexServiceTestCase.java similarity index 86% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/service/MusicIndexServiceTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/service/MusicIndexServiceTestCase.java index 18fa2443..69b64949 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/MusicIndexServiceTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/service/MusicIndexServiceTestCase.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import junit.framework.TestCase; -import net.sourceforge.subsonic.domain.MusicIndex; +import org.libresonic.player.domain.MusicIndex; import java.util.List; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/SecurityServiceTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/service/SecurityServiceTestCase.java similarity index 86% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/service/SecurityServiceTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/service/SecurityServiceTestCase.java index 001b124c..2bd4da2b 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/SecurityServiceTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/service/SecurityServiceTestCase.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import junit.framework.*; /** diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/SettingsServiceTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/service/SettingsServiceTestCase.java similarity index 91% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/service/SettingsServiceTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/service/SettingsServiceTestCase.java index 87bd95a4..449e47cd 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/SettingsServiceTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/service/SettingsServiceTestCase.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import java.io.File; import java.util.Arrays; @@ -32,19 +33,19 @@ import junit.framework.TestCase; */ public class SettingsServiceTestCase extends TestCase { - private static final File SUBSONIC_HOME = new File("/tmp/subsonic"); + private static final File LIBRESONIC_HOME = new File("/tmp/libresonic"); private SettingsService settingsService; @Override protected void setUp() throws Exception { - System.setProperty("subsonic.home", SUBSONIC_HOME.getPath()); - new File(SUBSONIC_HOME, "subsonic.properties").delete(); + System.setProperty("libresonic.home", LIBRESONIC_HOME.getPath()); + new File(LIBRESONIC_HOME, "libresonic.properties").delete(); settingsService = new SettingsService(); } - public void testSubsonicHome() { - assertEquals("Wrong Subsonic home.", SUBSONIC_HOME, SettingsService.getSubsonicHome()); + public void testLibresonicHome() { + assertEquals("Wrong Libresonic home.", LIBRESONIC_HOME, SettingsService.getLibresonicHome()); } public void testDefaultValues() { diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/SonosServiceTest.java b/libresonic-main/src/test/java/org/libresonic/player/service/SonosServiceTest.java similarity index 81% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/service/SonosServiceTest.java rename to libresonic-main/src/test/java/org/libresonic/player/service/SonosServiceTest.java index da2aaa4e..677a39cc 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/SonosServiceTest.java +++ b/libresonic-main/src/test/java/org/libresonic/player/service/SonosServiceTest.java @@ -1,23 +1,23 @@ /* - * This file is part of Subsonic. + * This file is part of Libresonic. * - * Subsonic is free software: you can redistribute it and/or modify + * Libresonic is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * - * Subsonic is distributed in the hope that it will be useful, + * Libresonic is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with Subsonic. If not, see . + * along with Libresonic. If not, see . * * Copyright 2015 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import junit.framework.TestCase; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/StatusServiceTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/service/StatusServiceTestCase.java similarity index 87% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/service/StatusServiceTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/service/StatusServiceTestCase.java index 47f27fbf..6dba29d5 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/StatusServiceTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/service/StatusServiceTestCase.java @@ -1,26 +1,27 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service; +package org.libresonic.player.service; import junit.framework.TestCase; -import net.sourceforge.subsonic.domain.Player; -import net.sourceforge.subsonic.domain.TransferStatus; +import org.libresonic.player.domain.Player; +import org.libresonic.player.domain.TransferStatus; import java.util.Arrays; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/metadata/MediaFileTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/service/metadata/MediaFileTestCase.java similarity index 82% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/service/metadata/MediaFileTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/service/metadata/MediaFileTestCase.java index ccc728ea..fd532429 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/metadata/MediaFileTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/service/metadata/MediaFileTestCase.java @@ -1,25 +1,26 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.metadata; +package org.libresonic.player.service.metadata; import junit.framework.TestCase; -import net.sourceforge.subsonic.domain.MediaFile; +import org.libresonic.player.domain.MediaFile; /** * Unit test of {@link MediaFile}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/metadata/MetaDataParserTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/service/metadata/MetaDataParserTestCase.java similarity index 90% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/service/metadata/MetaDataParserTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/service/metadata/MetaDataParserTestCase.java index 39695cb5..9990bfa5 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/service/metadata/MetaDataParserTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/service/metadata/MetaDataParserTestCase.java @@ -1,27 +1,28 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.service.metadata; +package org.libresonic.player.service.metadata; import java.io.File; import junit.framework.TestCase; -import net.sourceforge.subsonic.domain.MediaFile; +import org.libresonic.player.domain.MediaFile; /** * Unit test of {@link MetaDataParser}. diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/util/HttpRangeTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/util/HttpRangeTestCase.java similarity index 89% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/util/HttpRangeTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/util/HttpRangeTestCase.java index 96948905..d2ba5487 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/util/HttpRangeTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/util/HttpRangeTestCase.java @@ -1,22 +1,23 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import junit.framework.TestCase; diff --git a/subsonic-main/src/test/java/net/sourceforge/subsonic/util/StringUtilTestCase.java b/libresonic-main/src/test/java/org/libresonic/player/util/StringUtilTestCase.java similarity index 90% rename from subsonic-main/src/test/java/net/sourceforge/subsonic/util/StringUtilTestCase.java rename to libresonic-main/src/test/java/org/libresonic/player/util/StringUtilTestCase.java index 6e619c28..d8b73d5a 100644 --- a/subsonic-main/src/test/java/net/sourceforge/subsonic/util/StringUtilTestCase.java +++ b/libresonic-main/src/test/java/org/libresonic/player/util/StringUtilTestCase.java @@ -1,29 +1,30 @@ /* - This file is part of Subsonic. + This file is part of Libresonic. - Subsonic is free software: you can redistribute it and/or modify + Libresonic is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - Subsonic is distributed in the hope that it will be useful, + Libresonic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with Subsonic. If not, see . + along with Libresonic. If not, see . - Copyright 2009 (C) Sindre Mehus + Copyright 2016 (C) Libresonic Authors + Based upon Subsonic, Copyright 2009 (C) Sindre Mehus */ -package net.sourceforge.subsonic.util; +package org.libresonic.player.util; import java.net.MalformedURLException; import java.util.Arrays; import java.util.Locale; import junit.framework.TestCase; -import net.sourceforge.subsonic.domain.UrlRedirectType; +import org.libresonic.player.domain.UrlRedirectType; /** * Unit test of {@link StringUtil}. @@ -207,20 +208,20 @@ public class StringUtilTestCase extends TestCase { String urlRedirectCustomUrl = null; assertEquals("http://192.168.1.10:4040/stream?id=42", StringUtil.rewriteRemoteUrl("http://localhost:4040/stream?id=42", false, urlRedirectType, null, urlRedirectCustomUrl, "", "192.168.1.10", 4040)); - assertEquals("http://192.168.1.10:4040/subsonic/stream?id=42", - StringUtil.rewriteRemoteUrl("http://localhost:4040/subsonic/stream?id=42", false, urlRedirectType, null, urlRedirectCustomUrl, "subsonic", "192.168.1.10", 4040)); + assertEquals("http://192.168.1.10:4040/libresonic/stream?id=42", + StringUtil.rewriteRemoteUrl("http://localhost:4040/libresonic/stream?id=42", false, urlRedirectType, null, urlRedirectCustomUrl, "libresonic", "192.168.1.10", 4040)); assertEquals("http://192.168.1.10:4040/stream?id=42", StringUtil.rewriteRemoteUrl("https://localhost:4443/stream?id=42", false, urlRedirectType, null, urlRedirectCustomUrl, "", "192.168.1.10", 4040)); - assertEquals("http://192.168.1.10:4040/subsonic/stream?id=42", - StringUtil.rewriteRemoteUrl("https://localhost:4443/subsonic/stream?id=42", false, urlRedirectType, null, urlRedirectCustomUrl, "subsonic", "192.168.1.10", 4040)); + assertEquals("http://192.168.1.10:4040/libresonic/stream?id=42", + StringUtil.rewriteRemoteUrl("https://localhost:4443/libresonic/stream?id=42", false, urlRedirectType, null, urlRedirectCustomUrl, "libresonic", "192.168.1.10", 4040)); - assertEquals("http://sindre.subsonic.org:80/stream?id=42", + assertEquals("http://sindre.libresonic.org:80/stream?id=42", StringUtil.rewriteRemoteUrl("http://localhost:4040/stream?id=42", true, urlRedirectType, "sindre", urlRedirectCustomUrl, "", "192.168.1.10", 4040)); - assertEquals("http://sindre.subsonic.org:80/stream?id=42", - StringUtil.rewriteRemoteUrl("http://localhost:4040/subsonic/stream?id=42", true, urlRedirectType, "sindre", urlRedirectCustomUrl, "subsonic", "192.168.1.10", 4040)); - assertEquals("http://sindre.subsonic.org:80/stream?id=42", + assertEquals("http://sindre.libresonic.org:80/stream?id=42", + StringUtil.rewriteRemoteUrl("http://localhost:4040/libresonic/stream?id=42", true, urlRedirectType, "sindre", urlRedirectCustomUrl, "libresonic", "192.168.1.10", 4040)); + assertEquals("http://sindre.libresonic.org:80/stream?id=42", StringUtil.rewriteRemoteUrl("https://localhost:4443/stream?id=42", true, urlRedirectType, "sindre", urlRedirectCustomUrl, "", "192.168.1.10", 4040)); - assertEquals("http://sindre.subsonic.org:80/stream?id=42", - StringUtil.rewriteRemoteUrl("https://localhost:4443/subsonic/stream?id=42", true, urlRedirectType, "sindre", urlRedirectCustomUrl, "subsonic", "192.168.1.10", 4040)); + assertEquals("http://sindre.libresonic.org:80/stream?id=42", + StringUtil.rewriteRemoteUrl("https://localhost:4443/libresonic/stream?id=42", true, urlRedirectType, "sindre", urlRedirectCustomUrl, "libresonic", "192.168.1.10", 4040)); } } diff --git a/subsonic-rest-api/pom.xml b/libresonic-rest-api/pom.xml similarity index 78% rename from subsonic-rest-api/pom.xml rename to libresonic-rest-api/pom.xml index b0228e68..4508a551 100644 --- a/subsonic-rest-api/pom.xml +++ b/libresonic-rest-api/pom.xml @@ -2,14 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - net.sourceforge.subsonic - subsonic-rest-api - Subsonic REST API + libresonic-rest-api + Libresonic REST API - net.sourceforge.subsonic + org.libresonic.player libresonic - 6.0.1 + 6.1.rc1 diff --git a/subsonic-rest-api/src/main/resources/subsonic-rest-api.xsd b/libresonic-rest-api/src/main/resources/libresonic-rest-api.xsd similarity index 99% rename from subsonic-rest-api/src/main/resources/subsonic-rest-api.xsd rename to libresonic-rest-api/src/main/resources/libresonic-rest-api.xsd index 2e92613c..4d982a69 100644 --- a/subsonic-rest-api/src/main/resources/subsonic-rest-api.xsd +++ b/libresonic-rest-api/src/main/resources/libresonic-rest-api.xsd @@ -1,7 +1,7 @@ diff --git a/subsonic-rest-api/src/main/resources/org/subsonic/restapi/jaxb.properties b/libresonic-rest-api/src/main/resources/org/libresonic/restapi/jaxb.properties similarity index 100% rename from subsonic-rest-api/src/main/resources/org/subsonic/restapi/jaxb.properties rename to libresonic-rest-api/src/main/resources/org/libresonic/restapi/jaxb.properties diff --git a/subsonic-sonos-api/pom.xml b/libresonic-sonos-api/pom.xml similarity index 91% rename from subsonic-sonos-api/pom.xml rename to libresonic-sonos-api/pom.xml index ba657f22..393bb9b8 100644 --- a/subsonic-sonos-api/pom.xml +++ b/libresonic-sonos-api/pom.xml @@ -2,13 +2,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - subsonic-sonos-api + libresonic-sonos-api Sonos API - net.sourceforge.subsonic + org.libresonic.player libresonic - 6.0.1 + 6.1.rc1 diff --git a/subsonic-sonos-api/src/main/resources/sonos-1.1.wsdl b/libresonic-sonos-api/src/main/resources/sonos-1.1.wsdl similarity index 100% rename from subsonic-sonos-api/src/main/resources/sonos-1.1.wsdl rename to libresonic-sonos-api/src/main/resources/sonos-1.1.wsdl diff --git a/subsonic-tools/ehcache-monitor/ehcache-monitor-kit-1.0.3-distribution.tar.gz b/libresonic-tools/ehcache-monitor/ehcache-monitor-kit-1.0.3-distribution.tar.gz similarity index 100% rename from subsonic-tools/ehcache-monitor/ehcache-monitor-kit-1.0.3-distribution.tar.gz rename to libresonic-tools/ehcache-monitor/ehcache-monitor-kit-1.0.3-distribution.tar.gz diff --git a/subsonic-tools/exe4j/exe4j_windows_4_5_1.exe b/libresonic-tools/exe4j/exe4j_windows_4_5_1.exe similarity index 100% rename from subsonic-tools/exe4j/exe4j_windows_4_5_1.exe rename to libresonic-tools/exe4j/exe4j_windows_4_5_1.exe diff --git a/subsonic-tools/exe4j/exe4j_windows_4_5_1.zip b/libresonic-tools/exe4j/exe4j_windows_4_5_1.zip similarity index 100% rename from subsonic-tools/exe4j/exe4j_windows_4_5_1.zip rename to libresonic-tools/exe4j/exe4j_windows_4_5_1.zip diff --git a/subsonic-tools/nsis/NSIS_Simple_Firewall_Plugin_1.20.zip b/libresonic-tools/nsis/NSIS_Simple_Firewall_Plugin_1.20.zip similarity index 100% rename from subsonic-tools/nsis/NSIS_Simple_Firewall_Plugin_1.20.zip rename to libresonic-tools/nsis/NSIS_Simple_Firewall_Plugin_1.20.zip diff --git a/subsonic-tools/nsis/Processes.zip b/libresonic-tools/nsis/Processes.zip similarity index 100% rename from subsonic-tools/nsis/Processes.zip rename to libresonic-tools/nsis/Processes.zip diff --git a/subsonic-tools/nsis/nsis-2.46-setup.exe b/libresonic-tools/nsis/nsis-2.46-setup.exe similarity index 100% rename from subsonic-tools/nsis/nsis-2.46-setup.exe rename to libresonic-tools/nsis/nsis-2.46-setup.exe diff --git a/subsonic-tools/packages/Packages.dmg b/libresonic-tools/packages/Packages.dmg similarity index 100% rename from subsonic-tools/packages/Packages.dmg rename to libresonic-tools/packages/Packages.dmg diff --git a/subsonic-tools/sonos-selftest/smapiConfig.cfg b/libresonic-tools/sonos-selftest/smapiConfig.cfg similarity index 98% rename from subsonic-tools/sonos-selftest/smapiConfig.cfg rename to libresonic-tools/sonos-selftest/smapiConfig.cfg index 7eb817f6..a30ffe80 100644 --- a/subsonic-tools/sonos-selftest/smapiConfig.cfg +++ b/libresonic-tools/sonos-selftest/smapiConfig.cfg @@ -1,5 +1,5 @@ [Service Name] -servicename = Subsonic +servicename = Libresonic serviceid = [Endpoints] diff --git a/subsonic-transcode/README.TXT b/libresonic-transcode/README.TXT similarity index 97% rename from subsonic-transcode/README.TXT rename to libresonic-transcode/README.TXT index b5a8d731..a3be63f3 100644 --- a/subsonic-transcode/README.TXT +++ b/libresonic-transcode/README.TXT @@ -1,6 +1,6 @@ Upgrade ffmpeg http://ffmpegmac.net/ - http://www.activeobjects.no/subsonic/forum/viewtopic.php?t=5466&highlight= + http://www.activeobjects.no/libresonic/forum/viewtopic.php?t=5466&highlight= FFmpeg now accesses x264 presets via libx264. This extends functionality by introducing several new libx264 options including -preset, -tune, and -profile. You can read more detailed information about these options with "x264 --fullhelp". The syntax has changed so be sure to update your commands. Example: ffmpeg -i input -vcodec libx264 -preset fast -tune film -profile main -crf 22 -threads 0 output diff --git a/subsonic-transcode/linux/ffmpeg b/libresonic-transcode/linux/ffmpeg similarity index 100% rename from subsonic-transcode/linux/ffmpeg rename to libresonic-transcode/linux/ffmpeg diff --git a/subsonic-transcode/linux/lame b/libresonic-transcode/linux/lame similarity index 100% rename from subsonic-transcode/linux/lame rename to libresonic-transcode/linux/lame diff --git a/subsonic-transcode/mac/ffmpeg b/libresonic-transcode/mac/ffmpeg similarity index 100% rename from subsonic-transcode/mac/ffmpeg rename to libresonic-transcode/mac/ffmpeg diff --git a/subsonic-transcode/mac/lame b/libresonic-transcode/mac/lame similarity index 100% rename from subsonic-transcode/mac/lame rename to libresonic-transcode/mac/lame diff --git a/subsonic-transcode/windows/README.TXT b/libresonic-transcode/windows/README.TXT similarity index 68% rename from subsonic-transcode/windows/README.TXT rename to libresonic-transcode/windows/README.TXT index a927ea6a..a3104ac7 100644 --- a/subsonic-transcode/windows/README.TXT +++ b/libresonic-transcode/windows/README.TXT @@ -1,11 +1,11 @@ ========================================================== - SUBSONIC TRANSCODING PACK + LIBRESONIC TRANSCODING PACK ========================================================== This is a collection of free audio codecs for Windows. -To be installed in c:\subsonic\transcode +To be installed in c:\libresonic\transcode -See http://subsonic.org for details. +See http://libresonic.org for details. Sindre Mehus, Aug 10 2011 ========================================================== diff --git a/subsonic-transcode/windows/ffmpeg.exe b/libresonic-transcode/windows/ffmpeg.exe similarity index 100% rename from subsonic-transcode/windows/ffmpeg.exe rename to libresonic-transcode/windows/ffmpeg.exe diff --git a/subsonic-transcode/windows/ffmpeg_license.txt b/libresonic-transcode/windows/ffmpeg_license.txt similarity index 100% rename from subsonic-transcode/windows/ffmpeg_license.txt rename to libresonic-transcode/windows/ffmpeg_license.txt diff --git a/subsonic-transcode/windows/lame.exe b/libresonic-transcode/windows/lame.exe similarity index 100% rename from subsonic-transcode/windows/lame.exe rename to libresonic-transcode/windows/lame.exe diff --git a/subsonic-transcode/windows/lame_license.txt b/libresonic-transcode/windows/lame_license.txt similarity index 100% rename from subsonic-transcode/windows/lame_license.txt rename to libresonic-transcode/windows/lame_license.txt diff --git a/pom.xml b/pom.xml index 52ca0742..336b4f78 100644 --- a/pom.xml +++ b/pom.xml @@ -2,9 +2,9 @@ 4.0.0 - net.sourceforge.subsonic + org.libresonic.player libresonic - 6.0.1 + 6.1.rc1 Libresonic pom @@ -22,13 +22,8 @@ local1 - Local Repository 1 - file:repo - - - local2 - Local Repository 2 - file:../repo + Local Repository + file://${project.basedir}/../repo java_net @@ -45,13 +40,8 @@ local1 - Local Repository 1 - file:repo - - - local2 - Local Repository 2 - file:../repo + Local Repository + file://${project.basedir}/../repo @@ -81,21 +71,21 @@ - subsonic-rest-api - subsonic-sonos-api - subsonic-main + libresonic-rest-api + libresonic-sonos-api + libresonic-main full - subsonic-booter - subsonic-installer-windows - subsonic-installer-mac - subsonic-installer-debian - subsonic-installer-rpm - subsonic-assembly + libresonic-booter + libresonic-installer-windows + libresonic-installer-mac + libresonic-installer-debian + libresonic-installer-rpm + libresonic-assembly @@ -107,27 +97,27 @@ org.apache.maven.plugins maven-compiler-plugin - 2.3.2 + 3.5.1 org.apache.maven.plugins maven-assembly-plugin - 2.2.1 + 2.6 org.apache.maven.plugins maven-antrun-plugin - 1.6 + 1.8 org.apache.maven.plugins maven-dependency-plugin - 2.2 + 2.10 org.codehaus.mojo buildnumber-maven-plugin - 1.0 + 1.4 org.apache.cxf @@ -148,11 +138,11 @@ org.apache.maven.plugins maven-compiler-plugin - 1.6 - 1.6 + 1.8 + 1.8 ISO-8859-1 false - 1.6 + 1.8 true @@ -169,6 +159,10 @@ ${failOnDependencyWarning} true + + com.sun.mail:javax.mail* + org.seamless:seamless-http* + diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/SubsonicDeployerService.java b/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/SubsonicDeployerService.java deleted file mode 100644 index a0bf087f..00000000 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/deployer/SubsonicDeployerService.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.sourceforge.subsonic.booter.deployer; - -/** - * RMI interface implemented by the Subsonic deployer and used by the agent. - * - * @author Sindre Mehus - */ -public interface SubsonicDeployerService { - - /** - * Returns information about the Subsonic deployment, such - * as URL, memory consumption, start time etc. - * - * @return Deployment information. - */ - DeploymentStatus getDeploymentInfo(); -} diff --git a/subsonic-booter/src/main/resources/META-INF/MANIFEST.MF b/subsonic-booter/src/main/resources/META-INF/MANIFEST.MF deleted file mode 100644 index 2eafdfc8..00000000 --- a/subsonic-booter/src/main/resources/META-INF/MANIFEST.MF +++ /dev/null @@ -1,2 +0,0 @@ -Manifest-Version: 1.0 -Main-Class: net.sourceforge.subsonic.booter.Main diff --git a/subsonic-booter/src/main/script/subsonic.bat b/subsonic-booter/src/main/script/subsonic.bat deleted file mode 100644 index 2f2b4b13..00000000 --- a/subsonic-booter/src/main/script/subsonic.bat +++ /dev/null @@ -1,24 +0,0 @@ -@echo off - -REM The directory where Subsonic will create files. Make sure it is writable. -set SUBSONIC_HOME=c:\subsonic - -REM The host name or IP address on which to bind Subsonic. Only relevant if you have -REM multiple network interfaces and want to make Subsonic available on only one of them. -REM The default value 0.0.0.0 will bind Subsonic to all available network interfaces. -set SUBSONIC_HOST=0.0.0.0 - -REM The port on which Subsonic will listen for incoming HTTP traffic. -set SUBSONIC_PORT=4040 - -REM The port on which Subsonic will listen for incoming HTTPS traffic (0 to disable). -set SUBSONIC_HTTPS_PORT=0 - -REM The context path (i.e., the last part of the Subsonic URL). Typically "/" or "/subsonic". -set SUBSONIC_CONTEXT_PATH=/ - -REM The memory limit (max Java heap size) in megabytes. -set MAX_MEMORY=150 - -java -Xmx%MAX_MEMORY%m -Dsubsonic.home=%SUBSONIC_HOME% -Dsubsonic.host=%SUBSONIC_HOST% -Dsubsonic.port=%SUBSONIC_PORT% -Dsubsonic.httpsPort=%SUBSONIC_HTTPS_PORT% -Dsubsonic.contextPath=%SUBSONIC_CONTEXT_PATH% -jar subsonic-booter-jar-with-dependencies.jar - diff --git a/subsonic-booter/src/main/script/subsonic.sh b/subsonic-booter/src/main/script/subsonic.sh deleted file mode 100755 index 4022fb72..00000000 --- a/subsonic-booter/src/main/script/subsonic.sh +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/sh - -################################################################################### -# Shell script for starting Subsonic. See http://subsonic.org. -# -# Author: Sindre Mehus -################################################################################### - -SUBSONIC_HOME=/var/subsonic -SUBSONIC_HOST=0.0.0.0 -SUBSONIC_PORT=4040 -SUBSONIC_HTTPS_PORT=0 -SUBSONIC_CONTEXT_PATH=/ -SUBSONIC_MAX_MEMORY=150 -SUBSONIC_PIDFILE= -SUBSONIC_DEFAULT_MUSIC_FOLDER=/var/music -SUBSONIC_DEFAULT_PODCAST_FOLDER=/var/music/Podcast -SUBSONIC_DEFAULT_PLAYLIST_FOLDER=/var/playlists - -quiet=0 - -usage() { - echo "Usage: subsonic.sh [options]" - echo " --help This small usage guide." - echo " --home=DIR The directory where Subsonic will create files." - echo " Make sure it is writable. Default: /var/subsonic" - echo " --host=HOST The host name or IP address on which to bind Subsonic." - echo " Only relevant if you have multiple network interfaces and want" - echo " to make Subsonic available on only one of them. The default value" - echo " will bind Subsonic to all available network interfaces. Default: 0.0.0.0" - echo " --port=PORT The port on which Subsonic will listen for" - echo " incoming HTTP traffic. Default: 4040" - echo " --https-port=PORT The port on which Subsonic will listen for" - echo " incoming HTTPS traffic. Default: 0 (disabled)" - echo " --context-path=PATH The context path, i.e., the last part of the Subsonic" - echo " URL. Typically '/' or '/subsonic'. Default '/'" - echo " --max-memory=MB The memory limit (max Java heap size) in megabytes." - echo " Default: 100" - echo " --pidfile=PIDFILE Write PID to this file. Default not created." - echo " --quiet Don't print anything to standard out. Default false." - echo " --default-music-folder=DIR Configure Subsonic to use this folder for music. This option " - echo " only has effect the first time Subsonic is started. Default '/var/music'" - echo " --default-podcast-folder=DIR Configure Subsonic to use this folder for Podcasts. This option " - echo " only has effect the first time Subsonic is started. Default '/var/music/Podcast'" - echo " --default-playlist-folder=DIR Configure Subsonic to use this folder for playlists. This option " - echo " only has effect the first time Subsonic is started. Default '/var/playlists'" - exit 1 -} - -# Parse arguments. -while [ $# -ge 1 ]; do - case $1 in - --help) - usage - ;; - --home=?*) - SUBSONIC_HOME=${1#--home=} - ;; - --host=?*) - SUBSONIC_HOST=${1#--host=} - ;; - --port=?*) - SUBSONIC_PORT=${1#--port=} - ;; - --https-port=?*) - SUBSONIC_HTTPS_PORT=${1#--https-port=} - ;; - --context-path=?*) - SUBSONIC_CONTEXT_PATH=${1#--context-path=} - ;; - --max-memory=?*) - SUBSONIC_MAX_MEMORY=${1#--max-memory=} - ;; - --pidfile=?*) - SUBSONIC_PIDFILE=${1#--pidfile=} - ;; - --quiet) - quiet=1 - ;; - --default-music-folder=?*) - SUBSONIC_DEFAULT_MUSIC_FOLDER=${1#--default-music-folder=} - ;; - --default-podcast-folder=?*) - SUBSONIC_DEFAULT_PODCAST_FOLDER=${1#--default-podcast-folder=} - ;; - --default-playlist-folder=?*) - SUBSONIC_DEFAULT_PLAYLIST_FOLDER=${1#--default-playlist-folder=} - ;; - *) - usage - ;; - esac - shift -done - -# Use JAVA_HOME if set, otherwise assume java is in the path. -JAVA=java -if [ -e "${JAVA_HOME}" ] - then - JAVA=${JAVA_HOME}/bin/java -fi - -# Create Subsonic home directory. -mkdir -p ${SUBSONIC_HOME} -LOG=${SUBSONIC_HOME}/subsonic_sh.log -rm -f ${LOG} - -cd $(dirname $0) -if [ -L $0 ] && ([ -e /bin/readlink ] || [ -e /usr/bin/readlink ]); then - cd $(dirname $(readlink $0)) -fi - -${JAVA} -Xmx${SUBSONIC_MAX_MEMORY}m \ - -Dsubsonic.home=${SUBSONIC_HOME} \ - -Dsubsonic.host=${SUBSONIC_HOST} \ - -Dsubsonic.port=${SUBSONIC_PORT} \ - -Dsubsonic.httpsPort=${SUBSONIC_HTTPS_PORT} \ - -Dsubsonic.contextPath=${SUBSONIC_CONTEXT_PATH} \ - -Dsubsonic.defaultMusicFolder=${SUBSONIC_DEFAULT_MUSIC_FOLDER} \ - -Dsubsonic.defaultPodcastFolder=${SUBSONIC_DEFAULT_PODCAST_FOLDER} \ - -Dsubsonic.defaultPlaylistFolder=${SUBSONIC_DEFAULT_PLAYLIST_FOLDER} \ - -Djava.awt.headless=true \ - -verbose:gc \ - -jar subsonic-booter-jar-with-dependencies.jar > ${LOG} 2>&1 & - -# Write pid to pidfile if it is defined. -if [ $SUBSONIC_PIDFILE ]; then - echo $! > ${SUBSONIC_PIDFILE} -fi - -if [ $quiet = 0 ]; then - echo Started Subsonic [PID $!, ${LOG}] -fi - diff --git a/subsonic-installer-debian/src/DEBIAN/conffiles b/subsonic-installer-debian/src/DEBIAN/conffiles deleted file mode 100644 index 06573282..00000000 --- a/subsonic-installer-debian/src/DEBIAN/conffiles +++ /dev/null @@ -1 +0,0 @@ -/etc/default/subsonic diff --git a/subsonic-installer-debian/src/DEBIAN/postinst b/subsonic-installer-debian/src/DEBIAN/postinst deleted file mode 100644 index da88dd9e..00000000 --- a/subsonic-installer-debian/src/DEBIAN/postinst +++ /dev/null @@ -1,16 +0,0 @@ -#! /bin/sh - -set -e - -ln -sf /usr/share/subsonic/subsonic.sh /usr/bin/subsonic - -chmod 750 /var/subsonic - -# Clear jetty cache. -rm -rf /var/subsonic/jetty - -# Configure Subsonic service. -update-rc.d subsonic defaults 99 - -# Start Subsonic service. -invoke-rc.d subsonic start diff --git a/subsonic-installer-debian/src/DEBIAN/preinst b/subsonic-installer-debian/src/DEBIAN/preinst deleted file mode 100644 index a5b7f1ca..00000000 --- a/subsonic-installer-debian/src/DEBIAN/preinst +++ /dev/null @@ -1,15 +0,0 @@ -#! /bin/sh - -set -e - -# Stop Subsonic service. -if [ -e /etc/init.d/subsonic ]; then - invoke-rc.d subsonic stop -fi - -# Backup database. -if [ -e /var/subsonic/db ]; then - rm -rf /var/subsonic/db.backup - cp -R /var/subsonic/db /var/subsonic/db.backup -fi - diff --git a/subsonic-installer-debian/src/DEBIAN/prerm b/subsonic-installer-debian/src/DEBIAN/prerm deleted file mode 100644 index e15501e5..00000000 --- a/subsonic-installer-debian/src/DEBIAN/prerm +++ /dev/null @@ -1,8 +0,0 @@ -#! /bin/sh - -set -e - -# Stop Subsonic service. -if [ -e /etc/init.d/subsonic ]; then - invoke-rc.d subsonic stop -fi diff --git a/subsonic-installer-debian/src/etc/default/subsonic b/subsonic-installer-debian/src/etc/default/subsonic deleted file mode 100644 index c056edfd..00000000 --- a/subsonic-installer-debian/src/etc/default/subsonic +++ /dev/null @@ -1,25 +0,0 @@ -# -# This is the configuration file for the Subsonic service -# (/etc/init.d/subsonic) -# -# To change the startup parameters of Subsonic, modify -# the SUBSONIC_ARGS variable below. -# -# Type "/usr/share/subsonic/subsonic.sh --help" on the command line to read an -# explanation of the different options. -# -# For example, to specify that Subsonic should use port 80 (for http) -# and 443 (for https), and use a Java memory heap size of 200 MB, use -# the following: -# -# SUBSONIC_ARGS="--port=80 --https-port=443 --max-memory=200" - -SUBSONIC_ARGS="--max-memory=150" - - -# The user which should run the Subsonic process. Default "root". -# Note that non-root users are by default not allowed to use ports -# below 1024. Also make sure to grant the user write permissions in -# the music directories, otherwise changing album art and tags will fail. - -SUBSONIC_USER=root \ No newline at end of file diff --git a/subsonic-installer-mac/src/postinstall.sh b/subsonic-installer-mac/src/postinstall.sh deleted file mode 100644 index 95ddc230..00000000 --- a/subsonic-installer-mac/src/postinstall.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -SUBSONIC_HOME="/Library/Application Support/Subsonic" - -chmod oug+rwx "$SUBSONIC_HOME" -chown root:admin "$SUBSONIC_HOME" - -chmod oug+rx "$SUBSONIC_HOME/transcode" -chown root:admin "$SUBSONIC_HOME/transcode" - -rm -rf "$SUBSONIC_HOME/jetty" - -echo Subsonic installation done diff --git a/subsonic-installer-mac/src/preinstall.sh b/subsonic-installer-mac/src/preinstall.sh deleted file mode 100755 index 84055f5e..00000000 --- a/subsonic-installer-mac/src/preinstall.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -SUBSONIC_HOME="/Library/Application Support/Subsonic" - -# Backup database. - -if [ -e "$SUBSONIC_HOME/db" ]; then - rm -rf "$SUBSONIC_HOME/db.backup" - cp -R "$SUBSONIC_HOME/db" "$SUBSONIC_HOME/db.backup" -fi - diff --git a/subsonic-installer-rpm/src/etc/sysconfig/subsonic b/subsonic-installer-rpm/src/etc/sysconfig/subsonic deleted file mode 100644 index 25fa2453..00000000 --- a/subsonic-installer-rpm/src/etc/sysconfig/subsonic +++ /dev/null @@ -1,25 +0,0 @@ -# -# This is the configuration file for the Subsonic service -# (/etc/init.d/subsonic) -# -# To change the startup parameters of Subsonic, modify -# the SUBSONIC_ARGS variable below. -# -# Type "/usr/share/subsonic/subsonic.sh --help" on the command line to read an -# explanation of the different options. -# -# For example, to specify that Subsonic should use port 80 (for http) -# and 443 (for https), and use a Java memory heap size of 200 MB, use -# the following: -# -# SUBSONIC_ARGS="--port=80 --https-port=443 --max-memory=200" - -SUBSONIC_ARGS="--max-memory=150" - - -# The user which should run the Subsonic process. Default "root". -# Note that non-root users are by default not allowed to use ports -# below 1024. Also make sure to grant the user write permissions in -# the music directories, otherwise changing album art and tags will fail. - -SUBSONIC_USER=root diff --git a/subsonic-installer-rpm/src/subsonic.spec b/subsonic-installer-rpm/src/subsonic.spec deleted file mode 100644 index 2e145b5f..00000000 --- a/subsonic-installer-rpm/src/subsonic.spec +++ /dev/null @@ -1,78 +0,0 @@ -Name: subsonic -Version: @VERSION@ -Release: @BUILD_NUMBER@ -Summary: A web-based music streamer, jukebox and Podcast receiver - -Group: Applications/Multimedia -License: GPLv3 -URL: http://subsonic.org - -%description -Subsonic is a web-based music streamer, jukebox and Podcast receiver, -providing access to your music collection wherever you are. Use it -to share your music with friends, or to listen to your music while away -from home. - -Apps for Android, iPhone and Windows Phone are also available. - -Java 1.6 or higher is required to run Subsonic. - -Subsonic can be found at http://subsonic.org - -%files -%defattr(644,root,root,755) -/usr/share/subsonic/subsonic-booter-jar-with-dependencies.jar -/usr/share/subsonic/subsonic.war -%attr(755,root,root) /usr/share/subsonic/subsonic.sh -%attr(755,root,root) /etc/init.d/subsonic -%attr(755,root,root) /var/subsonic/transcode/ffmpeg -%attr(755,root,root) /var/subsonic/transcode/lame -%config(noreplace) /etc/sysconfig/subsonic - -%pre -# Stop Subsonic service. -if [ -e /etc/init.d/subsonic ]; then - service subsonic stop -fi - -# Backup database. -if [ -e /var/subsonic/db ]; then - rm -rf /var/subsonic/db.backup - cp -R /var/subsonic/db /var/subsonic/db.backup -fi - -exit 0 - -%post -ln -sf /usr/share/subsonic/subsonic.sh /usr/bin/subsonic -chmod 750 /var/subsonic - -# Clear jetty cache. -rm -rf /var/subsonic/jetty - -# For SELinux: Set security context -chcon -t java_exec_t /etc/init.d/subsonic 2>/dev/null - -# Configure and start Subsonic service. -chkconfig --add subsonic -service subsonic start - -exit 0 - -%preun -# Only do it if uninstalling, not upgrading. -if [ $1 = 0 ] ; then - - # Stop the service. - [ -e /etc/init.d/subsonic ] && service subsonic stop - - # Remove symlink. - rm -f /usr/bin/subsonic - - # Remove startup scripts. - chkconfig --del subsonic - -fi - -exit 0 - diff --git a/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe.vmoptions b/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe.vmoptions deleted file mode 100644 index 72a857fe..00000000 --- a/subsonic-installer-windows/src/main/exe4j/subsonic-service.exe.vmoptions +++ /dev/null @@ -1,6 +0,0 @@ --Xmx150m --verbose:gc --Dsubsonic.host=0.0.0.0 --Dsubsonic.port=4040 --Dsubsonic.httpsPort=0 --Dsubsonic.contextPath=/ diff --git a/subsonic-installer-windows/src/main/nsis/subsonic.nsi b/subsonic-installer-windows/src/main/nsis/subsonic.nsi deleted file mode 100644 index 1a40bc82..00000000 --- a/subsonic-installer-windows/src/main/nsis/subsonic.nsi +++ /dev/null @@ -1,213 +0,0 @@ -# subsonic.nsi - -!include "WordFunc.nsh" -!include "MUI.nsh" - -!insertmacro VersionCompare - -# The name of the installer -Name "Subsonic" - -# The default installation directory -InstallDir $PROGRAMFILES\Subsonic - -# Registry key to check for directory (so if you install again, it will -# overwrite the old one automatically) -InstallDirRegKey HKLM "Software\Subsonic" "Install_Dir" - -#-------------------------------- -#Interface Configuration - -!define MUI_HEADERIMAGE -!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\orange.bmp" -!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Getting Started.html" -!define MUI_FINISHPAGE_SHOWREADME_TEXT "View Getting Started document" - -#-------------------------------- -# Pages - -# This page checks for JRE -Page custom CheckInstalledJRE - -!insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_DIRECTORY -!insertmacro MUI_PAGE_INSTFILES -!insertmacro MUI_PAGE_FINISH - -!insertmacro MUI_UNPAGE_WELCOME -!insertmacro MUI_UNPAGE_CONFIRM -!insertmacro MUI_UNPAGE_INSTFILES - -# Languages -!insertmacro MUI_LANGUAGE "English" - -Section "Subsonic" - - SectionIn RO - - # Install for all users - SetShellVarContext "all" - - # Take backup of existing subsonic-service.exe.vmoptions - CopyFiles /SILENT $INSTDIR\subsonic-service.exe.vmoptions $TEMP\subsonic-service.exe.vmoptions - - # Silently uninstall existing version. - ExecWait '"$INSTDIR\uninstall.exe" /S _?=$INSTDIR' - - # Remove previous Jetty temp directory. - RMDir /r "c:\subsonic\jetty" - - # Backup database. - RMDir /r "c:\subsonic\db.backup" - CreateDirectory "c:\subsonic\db.backup" - CopyFiles /SILENT "c:\subsonic\db\*" "c:\subsonic\db.backup" - - # Set output path to the installation directory. - SetOutPath $INSTDIR - - # Write files. - File ..\..\..\target\subsonic-agent.exe - File ..\..\..\target\subsonic-agent.exe.vmoptions - File ..\..\..\target\subsonic-agent-elevated.exe - File ..\..\..\target\subsonic-agent-elevated.exe.vmoptions - File ..\..\..\target\subsonic-service.exe - File ..\..\..\target\subsonic-service.exe.vmoptions - File ..\..\..\..\subsonic-booter\target\subsonic-booter-jar-with-dependencies.jar - File ..\..\..\..\subsonic-main\README.TXT - File ..\..\..\..\subsonic-main\LICENSE.TXT - File "..\..\..\..\subsonic-main\Getting Started.html" - File ..\..\..\..\subsonic-main\target\subsonic.war - File ..\..\..\..\subsonic-main\target\classes\version.txt - File ..\..\..\..\subsonic-main\target\classes\build_number.txt - - # Write the installation path into the registry - WriteRegStr HKLM SOFTWARE\Subsonic "Install_Dir" "$INSTDIR" - - # Write the uninstall keys for Windows - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" "DisplayName" "Subsonic" - WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" "UninstallString" '"$INSTDIR\uninstall.exe"' - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" "NoModify" 1 - WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" "NoRepair" 1 - WriteUninstaller "uninstall.exe" - - # Restore subsonic-service.exe.vmoptions - CopyFiles /SILENT $TEMP\subsonic-service.exe.vmoptions $INSTDIR\subsonic-service.exe.vmoptions - Delete $TEMP\subsonic-service.exe.vmoptions - - # Write transcoding pack files. - SetOutPath "c:\subsonic\transcode" - File ..\..\..\..\subsonic-transcode\windows\*.* - - # Add Windows Firewall exception. - # (Requires NSIS plugin found on http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin to be installed - # as NSIS_HOME/Plugins/SimpleFC.dll) - - SimpleFC::AdvAddRule "Subsonic Service (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\subsonic-service.exe" "" "" "Subsonic" "" "" "" "" - SimpleFC::AdvAddRule "Subsonic Service (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\subsonic-service.exe" "" "" "Subsonic" "" "" "" "" - SimpleFC::AdvAddRule "Subsonic Agent (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\subsonic-agent.exe" "" "" "Subsonic" "" "" "" "" - SimpleFC::AdvAddRule "Subsonic Agent (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\subsonic-agent.exe" "" "" "Subsonic" "" "" "" "" - SimpleFC::AdvAddRule "Subsonic Agent Elevated (TCP)" "" "6" "1" "1" "7" "1" "$INSTDIR\subsonic-agent-elevated.exe" "" "" "Subsonic" "" "" "" "" - SimpleFC::AdvAddRule "Subsonic Agent Elevated (UDP)" "" "17" "1" "1" "7" "1" "$INSTDIR\subsonic-agent-elevated.exe" "" "" "Subsonic" "" "" "" "" - - # Install and start service. - ExecWait '"$INSTDIR\subsonic-service.exe" -install' - ExecWait '"$INSTDIR\subsonic-service.exe" -start' - - # Start agent. - Exec '"$INSTDIR\subsonic-agent-elevated.exe" -balloon' - -SectionEnd - - -Section "Start Menu Shortcuts" - - CreateDirectory "$SMPROGRAMS\Subsonic" - CreateShortCut "$SMPROGRAMS\Subsonic\Open Subsonic.lnk" "$INSTDIR\subsonic.url" "" "$INSTDIR\subsonic-agent.exe" 0 - CreateShortCut "$SMPROGRAMS\Subsonic\Subsonic Tray Icon.lnk" "$INSTDIR\subsonic-agent.exe" "-balloon" "$INSTDIR\subsonic-agent.exe" 0 - CreateShortCut "$SMPROGRAMS\Subsonic\Start Subsonic Service.lnk" "$INSTDIR\subsonic-service.exe" "-start" "$INSTDIR\subsonic-service.exe" 0 - CreateShortCut "$SMPROGRAMS\Subsonic\Stop Subsonic Service.lnk" "$INSTDIR\subsonic-service.exe" "-stop" "$INSTDIR\subsonic-service.exe" 0 - CreateShortCut "$SMPROGRAMS\Subsonic\Uninstall Subsonic.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 - CreateShortCut "$SMPROGRAMS\Subsonic\Getting Started.lnk" "$INSTDIR\Getting Started.html" "" "$INSTDIR\Getting Started.html" 0 - - CreateShortCut "$SMSTARTUP\Subsonic.lnk" "$INSTDIR\subsonic-agent.exe" "" "$INSTDIR\subsonic-agent.exe" 0 - -SectionEnd - - -# Uninstaller - -Section "Uninstall" - - # Uninstall for all users - SetShellVarContext "all" - - # Stop and uninstall service if present. - ExecWait '"$INSTDIR\subsonic-service.exe" -stop' - ExecWait '"$INSTDIR\subsonic-service.exe" -uninstall' - - # Stop agent by killing it. - # (Requires NSIS plugin found on http://nsis.sourceforge.net/Processes_plug-in to be installed - # as NSIS_HOME/Plugins/Processes.dll) - Processes::KillProcess "subsonic-agent" - Processes::KillProcess "subsonic-agent-elevated" - Processes::KillProcess "ffmpeg" - - # Remove registry keys - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Subsonic" - DeleteRegKey HKLM SOFTWARE\Subsonic - - # Remove files. - Delete "$SMSTARTUP\Subsonic.lnk" - RMDir /r "$SMPROGRAMS\Subsonic" - Delete "$INSTDIR\build_number.txt" - Delete "$INSTDIR\elevate.exe" - Delete "$INSTDIR\Getting Started.html" - Delete "$INSTDIR\LICENSE.TXT" - Delete "$INSTDIR\README.TXT" - Delete "$INSTDIR\subsonic.url" - Delete "$INSTDIR\subsonic.war" - Delete "$INSTDIR\subsonic-agent.exe" - Delete "$INSTDIR\subsonic-agent.exe.vmoptions" - Delete "$INSTDIR\subsonic-agent-elevated.exe" - Delete "$INSTDIR\subsonic-agent-elevated.exe.vmoptions" - Delete "$INSTDIR\subsonic-booter-jar-with-dependencies.jar" - Delete "$INSTDIR\subsonic-service.exe" - Delete "$INSTDIR\subsonic-service.exe.vmoptions" - Delete "$INSTDIR\uninstall.exe" - Delete "$INSTDIR\version.txt" - RMDir /r "$INSTDIR\log" - RMDir "$INSTDIR" - - # Remove Windows Firewall exception. - # (Requires NSIS plugin found on http://nsis.sourceforge.net/NSIS_Simple_Firewall_Plugin to be installed - # as NSIS_HOME/Plugins/SimpleFC.dll) - SimpleFC::AdvRemoveRule "Subsonic Service (TCP)" - SimpleFC::AdvRemoveRule "Subsonic Service (UDP)" - SimpleFC::AdvRemoveRule "Subsonic Agent (TCP)" - SimpleFC::AdvRemoveRule "Subsonic Agent (UDP)" - SimpleFC::AdvRemoveRule "Subsonic Agent Elevated (TCP)" - SimpleFC::AdvRemoveRule "Subsonic Agent Elevated (UDP)" - -SectionEnd - - -Function CheckInstalledJRE - # Read the value from the registry into the $0 register - ReadRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion - - # Check JRE version. At least 1.6 is required. - # $1=0 Versions are equal - # $1=1 Installed version is newer - # $1=2 Installed version is older (or non-existent) - ${VersionCompare} $0 "1.6" $1 - IntCmp $1 2 InstallJRE 0 0 - Return - - InstallJRE: - # Launch Java web installer. - MessageBox MB_OK "Java was not found and will now be installed." - File /oname=$TEMP\jre-setup.exe jre-8u31-windows-i586-iftw.exe - ExecWait '"$TEMP\jre-setup.exe"' $0 - Delete "$TEMP\jre-setup.exe" - -FunctionEnd diff --git a/subsonic-main/Getting Started.html b/subsonic-main/Getting Started.html deleted file mode 100644 index a5160bd8..00000000 --- a/subsonic-main/Getting Started.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/subsonic-main/README.TXT b/subsonic-main/README.TXT deleted file mode 100644 index f9a620ba..00000000 --- a/subsonic-main/README.TXT +++ /dev/null @@ -1,16 +0,0 @@ - -WELCOME TO SUBSONIC! --------------------- - -Subsonic is a free, web-based media streamer and jukebox. - -More information, including installation instructions, is found at http://subsonic.org/ - -Subsonic is free software: you can redistribute it and/or modify it under the terms of the -GNU General Public License. - -Subsonic is developed and maintained by Sindre Mehus (sindre@activeobjects.no). - -If you have any questions, comments or suggestions for improvements, please visit the -Subsonic Forum (http://forum.subsonic.org). - diff --git a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_zh_TW.properties b/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_zh_TW.properties deleted file mode 100644 index 972c56ab..00000000 --- a/subsonic-main/src/main/resources/net/sourceforge/subsonic/i18n/ResourceBundle_zh_TW.properties +++ /dev/null @@ -1,634 +0,0 @@ -# -# Taiwan localization. -# Author: Cheng Jen Li -# chengjen.li@gmail.com -# - -common.home = \u9996\u9801 -common.back = \u56DE\u5FA9 -common.help = \u5354\u52A9 -common.play = \u64AD\u653E -common.add = \u65B0\u589E -common.download = \u4E0B\u8F09 -common.close = \u95DC\u9589 -common.refresh = \u5237\u65B0 -common.next = \u4E0B\u9801 -common.previous = \u4E0A\u9801 -common.more = \u66F4\u591A -common.ok = \u78BA\u5B9A -common.cancel = \u53D6\u6D88 -common.save = \u5132\u5B58 -common.create = \u5EFA\u7ACB -common.delete = \u522A\u9664 -common.unknown = (\u672A\u77E5) -common.default = (\u9810\u8A2D\u503C) - -# login.jsp -login.username = \u5E33\u865F -login.password = \u5BC6\u78BC -login.login = \u767B\u5165 -login.remember = \u8A18\u5F97\u6211 -login.logout = \u60A8\u5DF2\u7D93\u767B\u51FA. -login.error = \u5E33\u865F\u6216\u662F\u5BC6\u78BC\u932F\u8AA4. -login.insecure = {0} \u672A\u53D7\u4FDD\u8B77. \u8ACB\u5148\u4EE5\u4F7F\u7528\u8005\u53CA\u5BC6\u78BC "admin"\u767B\u5165, \u6216\u9EDE\u64CA \u9019\u88E1. \u4E26\u4E14\u7ACB\u523B\u8B8A\u66F4\u60A8\u7684\u5BC6\u78BC. - -# accessDenied.jsp -accessDenied.title = \u62D2\u7D55\u5B58\u53D6 -accessDenied.text = \u62B1\u6B49\uFF0C\u60A8\u7121\u6B0A\u57F7\u884C\u6240\u8ACB\u6C42\u7684\u64CD\u4F5C. - -# top.jsp -top.home = \u9996\u9801 -top.now_playing = \u64AD\u653E -top.settings = \u8A2D\u5B9A -top.status = \u72C0\u614B -top.podcast = \u64AD\u5BA2 -top.more = \u5176\u4ED6 -top.help = \u95DC\u65BC -top.search = \u641C\u5C0B -top.upgrade = \u6709\u65B0\u7248\u672C\u63D0\u4F9B. \u4E0B\u8F09 {0} {1} \ - \u9019\u88E1. -top.missing = \u627E\u4E0D\u5230\u97F3\u6A02\u593E\uFF0C\u8ACB\u91CD\u65B0\u8A2D\u5B9A. -top.logout =\u767B\u51FA{0} - -# left.jsp -left.statistics = \u97F3\u6A02\u76D2\u6709 \ - {0} \u4F4D\u6B4C\u624B
                                                      \ - {1} \u5F35\u5C08\u8F2F
                                                      \ - {2} \u9996\u6B4C\u66F2
                                                      \ - {3} (\u7D04 {4} \u5C0F\u6642) -left.shortcut = \u6377\u5F91 -left.radio = \u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F -left.allfolders = \u5168\u90E8 - -# playlist.jsp -playlist.stop = \u505C\u6B62 -playlist.start = \u64AD\u653E -playlist.confirmclear = \u78BA\u5B9A\u522A\u9664\u9EDE\u64AD\u6E05\u55AE? -playlist.clear = \u6E05\u9664 -playlist.shuffle = \u96A8\u8208\u64AD\u653E -playlist.repeat_on = \u91CD\u64AD -playlist.repeat_off = \u4E0D\u91CD\u64AD -playlist.undo = \u53D6\u6D88 -playlist.settings = \u8A2D\u5B9A -playlist.more = \u5176\u4ED6... -playlist.more.playlist = \u9EDE\u64AD\u6E05\u55AE -playlist.more.sortbytrack = \u97F3\u8ECC\u6392\u5E8F -playlist.more.sortbyartist = \u6B4C\u624B\u6392\u5E8F -playlist.more.sortbyalbum = \u5C08\u8F2F\u6392\u5E8F -playlist.more.selection = \u9078\u6B4C -playlist.more.selectall = \u5168\u9078 -playlist.more.selectnone = \u5168\u4E0D\u9078 -playlist.getflash = \u53D6\u5F97Flash\u64A5\u653E\u5668 -playlist.save = \u5132\u5B58 -playlist.append = \u52A0\u5165\u6E05\u55AE -playlist.remove = \u79FB\u9664 -playlist.up = \u4E0A -playlist.down = \u4E0B -playlist.empty = \u7A7A\u7684\u9EDE\u64AD\u6E05\u55AE - -# status.jsp -status.title = \u72C0\u614B -status.type = \u5F62\u5F0F -status.stream = \u4E32\u6D41 -status.download = \u4E0B\u8F09 -status.upload = \u4E0A\u50B3 -status.player = \u64A5\u653E\u5668 -status.user = \u4F7F\u7528\u8005 -status.current = \u76EE\u524D\u64AD\u653E -status.transmitted = \u50B3\u8F38 -status.bitrate = Bitrate (Kbps) - -# search.jsp -search.title = \u641C\u5C0B -search.search = \u641C\u5C0B -search.index = \u6B63\u5728\u5EFA\u7ACB\u7D22\u5F15\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66! -search.hits.none = \u627E\u4E0D\u5230. - -# gettingStarted.jsp -gettingStarted.title = \u521D\u6B21\u4F7F\u7528 -gettingStarted.text =

                                                      \u6B61\u8FCE\u4F7F\u7528Libresonic!
                                                      \u8ACB\u4F9D\u7167\u4E0B\u9762\u7684\u6B65\u9A5F\u8A2D\u5B9A.
                                                      \ - \u9EDE\u64CA\u5DE5\u5177\u5217\u4E0A\u7684"\u9996\u9801"\uFF0C\u5C31\u80FD\u96A8\u6642\u56DE\u4F86\u9019\u88E1\uFF01.

                                                      \ -

                                                      \u9700\u8981\u66F4\u591A\u8A0A\u606F\u8ACB\u53C3\u8003\u5165\u9580\u6307\u5357

                                                      -gettingStarted.step1.title = \u8B8A\u66F4\u7BA1\u7406\u54E1\u7684\u5BC6\u78BC. -gettingStarted.step1.text = \u8ACB\u4FEE\u6539\u9810\u8A2D\u7684\u7BA1\u7406\u54E1\u5BC6\u78BC\uFF0C\u4EE5\u78BA\u4FDD\u4F3A\u670D\u5668\u7684\u5B89\u5168\u3002\ - \u4E5F\u53EF\u4EE5\u5EFA\u7ACB\u65B0\u7684\u4F7F\u7528\u8005\u4E26\u7D66\u4E88\u4E0D\u540C\u7684\u6B0A\u9650 -gettingStarted.step2.title = \u8A2D\u5B9A\u97F3\u6A02\u593E. -gettingStarted.step2.text = \u8A2D\u5B9A\u60A8\u97F3\u6A02\u6240\u653E\u7F6E\u7684\u8CC7\u6599\u593E\u3002 -gettingStarted.step3.title = \u914D\u7F6E\u7DB2\u8DEF\u8A2D\u5B9A. -gettingStarted.step3.text = \u5982\u679C\u60A8\u8981\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u6216\u662F\u8207\u60A8\u7684\u670B\u53CB\u3001\u5BB6\u4EBA\u5206\u4EAB\u3002\ - \u4E26\u53D6\u5F97\u60A8\u7684\u5C08\u5C6C\u7DB2\u5740\u50CF\u662Fyourname.subsonic.org. -gettingStarted.hide = \u4E0B\u6B21\u4E0D\u986F\u793A\u672C\u9801\uFF01 -gettingStarted.hidealert = \u5982\u679C\u4E0B\u6B21\u9084\u9700\u8981\u986F\u793A\u63D0\u793A,\u8ACB\u5F9E \u8A2D\u5B9A->\u4E00\u822C \u4E2D\u52FE\u9078. - -# home.jsp -home.random.title = \u96A8\u8208\u64AD\u653E -home.newest.title = \u6700\u65B0\u97F3\u6A02 -home.highest.title = \u559C\u597D\u7A0B\u5EA6 -home.frequent.title = \u9EDE\u64AD\u7387 -home.recent.title = \u6700\u8FD1\u64AD\u653E -home.users.title = \u4F7F\u7528\u8005 -home.random.text = \u96A8\u8208\u9078\u64AD\u5C08\u8F2F -home.newest.text = \u6700\u65B0\u5C08\u8F2F -home.highest.text = \u8A55\u50F9\u9AD8\u7684\u5C08\u8F2F -home.frequent.text = \u6700\u591A\u9EDE\u64AD\u5C08\u8F2F -home.recent.text =\u6700\u8FD1\u64AD\u653E\u5C08\u8F2F -home.users.text = \u4F7F\u7528\u8005\u7D71\u8A08 -home.scan = \u97F3\u6A02\u593E\u5DF2\u7D93\u6383\u63CF. \u6240\u6709\u529F\u80FD\u5C1A\u672A\u958B\u653E. -home.albums = \u5C08\u8F2F {0} - {1} -home.playcount = \u64AD\u653E\u4E86 {0} \u9996\u6B4C -home.lastplayed = \u64AD\u653E {0} -home.created = \u5EFA\u7ACB {0} -home.chart.total = \u7E3D\u8A08 (MB) -home.chart.stream = \u4E32\u6D41 (MB) -home.chart.download = \u5DF2\u4E0B\u8F09(MB) -home.chart.upload = \u5DF2\u4E0A\u50B3 (MB) - -# more.jsp -more.title = \u5176\u4ED6 -more.random.title = \u96A8\u8208\u64AD\u653E -more.random.text = \u5EFA\u7ACB\u96A8\u8208\u6E05\u55AE -more.random.songs = {0} \u9996 -more.random.auto = \u7576\u9EDE\u64AD\u6E05\u55AE\u64AD\u653E\u5B8C\u7562\u6642\u7E7C\u7E8C\u64AD\u653E\u66F4\u591A\u7684\u96A8\u8208\u6B4C\u66F2 . -more.random.ok = \u78BA\u5B9A -more.random.genre = \u66F2\u98A8 -more.random.anygenre = \u4EFB\u610F -more.random.year = \u5E74\u4EFD -more.random.anyyear = \u4EFB\u610F -more.random.folder = \u97F3\u6A02\u593E -more.random.anyfolder = \u4EFB\u610F -more.apps.title = Subsonic Apps -more.apps.text =

                                                      \u652F\u63F4 iPhone, \ - Android \u548C AIR\u7684Subsonic apps.

                                                      -more.mobile.title = \u79FB\u52D5\u8A2D\u5099 -more.mobile.text =

                                                      \u53EF\u4EE5\u7531WAP\u96FB\u8A71\u6216PDA\u4F7F\u7528 {0} .
                                                      \ - \u7D93\u7531\u624B\u6A5F\u8F38\u5165\u9019\u6A23\u7684\u7DB2\u5740 http://yourhostname/wap

                                                      \ -

                                                      \u7576\u7136\u60A8\u624B\u6A5F\u5FC5\u9808\u8981\u6709\u4E0A\u7DB2\u529F\u80FD!.

                                                      -more.podcast.title = \u64AD\u5BA2 -more.podcast.text =

                                                      \u5132\u5B58\u9EDE\u64AD\u6E05\u55AE\u7576\u6210\u64AD\u5BA2.
                                                      \ - \u7D93\u7531\u9019\u500B\u7DB2\u5740\u53EF\u4EE5\u6536\u807D: http://yourhostname/podcast, \ - \u6216\u662F \u9EDE\u6211.

                                                      -more.upload.title = \u4E0A\u50B3\u6A94\u6848 -more.upload.source = \u9078\u64C7\u6A94\u6848 -more.upload.target = \u4E0A\u50B3\u5230 -more.upload.browse = \u9078\u64C7 -more.upload.ok = \u4E0A\u50B3 -more.upload.unzip = \u81EA\u52D5\u89E3\u58D3\u7E2Ezip\u6A94. -more.upload.progress = % \u5B8C\u6210. \u8ACB\u7A0D\u5019... - -# upload.jsp -upload.title = \u6A94\u6848\u4E0A\u50B3\u4E2D...... -upload.success = \u4E0A\u50B3\u6210\u529F {0} -upload.empty = \u6C92\u6709\u4E0A\u50B3\u7684\u6A94\u6848\u5594. -upload.failed = \u6A94\u6848\u4E0A\u50B3\u5931\u6557\u56E0\u70BA:
                                                      "{0}" -upload.unzipped = \u89E3\u58D3\u7E2E {0} - -# help.jsp -help.title = \u95DC\u65BC {0} -help.upgrade = \u6CE8\u610F! \u5DF2\u7D93\u6709\u65B0\u7684\u7248\u672C\u4E86\uFF0C\u4E0B\u8F09\u65B0\u7248 {0} {1} \ - \u5728\u9019. -help.version.title = \u7248\u672C -help.builddate.title = \u65E5\u671F -help.server.title = \u4F3A\u670D\u5668 -help.license.title = \u6388\u6B0A -help.license.text = {0} \u662F\u4EE5 GPL \u578B\u5F0F\u767C\u4F48\u6388\u6B0A\u7684\u81EA\u7531\u8EDF\u9AD4.
                                                      \ - {0} \u4F7F\u7528 \u7B2C\u4E09\u65B9\u6388\u6B0A. -help.homepage.title = \u9996\u9801 -help.forum.title = \u8AD6\u58C7 -help.shop.title = \u5546\u54C1 -help.contact.title = \u806F\u7E6B -help.contact.text = {0} \u7531 Sindre Mehus \u958B\u767C\u53CA\u7DAD\u8B77 \ - (sindre@activeobjects.no). \ - \u5982\u679C\u60A8\u6709\u4EFB\u4F55\u7591\u554F\uFF0C\u610F\u898B\u6216\u5EFA\u8B70\u6539\u5584\uFF0C\u8ACB\u5230 \ - Subsonic\u8AD6\u58C7. -help.log = \u8A18\u9304 -help.logfile = \u5B8C\u6574\u7684\u7D00\u9304\u5B58\u653E\u5728 {0}. - -# settingsHeader.jsp -settingsheader.title = \u8A2D\u5B9A -settingsheader.general = \u4E00\u822C -settingsheader.advanced = \u9032\u968E -settingsheader.personal = \u500B\u4EBA\u5316 -settingsheader.musicFolder = \u97F3\u6A02\u593E -settingsheader.internetRadio = \u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F -settingsheader.podcast = \u64AD\u5BA2 -settingsheader.player = \u64AD\u653E\u5668 -settingsheader.network = \u7DB2\u8DEF -settingsheader.transcoding = \u8F49\u6A94 -settingsheader.user = \u4F7F\u7528\u8005 -settingsheader.search = \u641C\u5C0B -settingsheader.coverArt = \u5C08\u8F2F\u5C01\u9762 -settingsheader.password = \u5BC6\u78BC - -# generalSettings.jsp -generalsettings.playlistfolder = \u9EDE\u64AD\u6E05\u55AE\u8CC7\u6599\u593E -generalsettings.musicmask = \u97F3\u6A02\u7684\u9644\u5C6C\u6A94\u540D: -generalsettings.videomask = \u8996\u8A0A\u7684\u9644\u5C6C\u6A94\u540D: -generalsettings.coverartmask = \u5C08\u8F2F\u5C01\u9762\u9644\u5C6C\u6A94\u540D -generalsettings.index = \u7D22\u5F15 -generalsettings.ignoredarticles = \u5FFD\u7565\u7684\u6B4C\u624B\u540D\u7A31 -generalsettings.shortcuts = \u6377\u5F91 -generalsettings.showgettingstarted = \u5728\u9996\u9801\u986F\u793A "\u521D\u6B21\u4F7F\u7528" -generalsettings.welcometitle = \u6B61\u8FCE\u6A19\u984C -generalsettings.welcomesubtitle = \u6B61\u8FCE\u6B21\u6A19\u984C -generalsettings.welcomemessage = \u6B61\u8FCE\u8A0A\u606F -generalsettings.loginmessage = \u767B\u5165\u8A0A\u606F -generalsettings.language = Default language -generalsettings.theme = \u9810\u8A2D\u4F48\u666F\u4E3B\u984C - -# advancedSettings.jsp -advancedsettings.downsamplecommand = \u964D\u983B\u6307\u4EE4 -advancedsettings.coverartlimit = \u5C01\u9762\u9650\u5236
                                                      (0 = \u4E0D\u9650)
                                                      -advancedsettings.downloadlimit = \u4E0B\u8F09\u9650\u5236 (Kbps)
                                                      (0 = \u4E0D\u9650)
                                                      -advancedsettings.uploadlimit = \u4E0A\u50B3\u9650\u5236 (Kbps)
                                                      (0 = \u4E0D\u9650)
                                                      -advancedsettings.streamport = \u975ESSL \u4E32\u6D41Port
                                                      (0 = \u53D6\u6D88)
                                                      -advancedsettings.ldapenabled = \u555F\u52D5LDAP\u9A57\u8B49 -advancedsettings.ldapurl = LDAP\u7DB2\u5740 -advancedsettings.ldapsearchfilter = LDAP\u641C\u5C0B\u904E\u6FFE -advancedsettings.ldapmanagerdn = LDAP \u7BA1\u7406\u8005DN
                                                      (\u53EF\u9078\u64C7)
                                                      -advancedsettings.ldapmanagerpassword = \u5BC6\u78BC -advancedsettings.ldapautoshadowing = \u81EA\u52D5\u5728{0}\u5EFA\u7ACB\u4F7F\u7528\u8005 - -# personalSettings.jsp -personalsettings.title = {0}\u7684\u500B\u4EBA\u5316\u8A2D\u5B9A -personalsettings.language = Language -personalsettings.theme = \u4F48\u666F\u4E3B\u984C -personalsettings.display = \u986F\u793A -personalsettings.browse = \u700F\u89BD -personalsettings.playlist = \u9EDE\u64AD\u6E05\u55AE -personalsettings.tracknumber = \u97F3\u8ECC # -personalsettings.artist = \u6B4C\u624B -personalsettings.album = \u5C08\u8F2F -personalsettings.genre = \u66F2\u98A8\u578B\u614B -personalsettings.year = \u767C\u884C -personalsettings.bitrate = Bit rate -personalsettings.duration = \u6642\u6548 -personalsettings.format = \u683C\u5F0F -personalsettings.filesize = \u6587\u4EF6\u5927\u5C0F -personalsettings.captioncutoff = Caption cutoff -personalsettings.partymode = \u5BB4\u6703\u6A21\u5F0F -personalsettings.shownowplaying = \u5176\u4ED6\u4EBA\u5728\u807D\u4EC0\u9EBC -personalsettings.nowplayingallowed = \u8B93\u5225\u4EBA\u770B\u6211\u5728\u807D\u4EC0\u9EBC -personalsettings.showchat = \u986F\u793A\u4EA4\u8AC7\u8A0A\u606F -personalsettings.finalversionnotification = \u63D0\u793A\u65B0\u7248\u672C -personalsettings.betaversionnotification = \u63D0\u793A\u65B0\u7684\u6E2C\u8A66\u7248 -personalsettings.lastfmenabled = \u767B\u9304\u6211\u5728 Last.fm\u7684\u5E33\u865F -personalsettings.lastfmusername = Last.fm \u5E33\u865F -personalsettings.lastfmpassword = Last.fm \u5BC6\u78BC -personalsettings.avatar.title = \u500B\u4EBA\u5716\u793A -personalsettings.avatar.none = \u4E0D\u7528\u5716\u793A -personalsettings.avatar.custom = \u81EA\u8A02\u5F71\u50CF -personalsettings.avatar.changecustom = \u8B8A\u66F4\u81EA\u8A02\u5716\u793A -personalsettings.avatar.upload = \u4E0A\u50B3 -personalsettings.avatar.courtesy = Icons courtesy of Afterglow, \ - Aha-Soft, \ - Icons-Land, and \ - Iconshock - -# avatarUploadResult.jsp -avataruploadresult.title = \u8B8A\u66F4\u500B\u4EBA\u5716\u793A -avataruploadresult.success = \u6210\u529F\u4E0A\u50B3\u500B\u4EBA\u5716\u793A "{0}". -avataruploadresult.failure = \u7121\u6CD5\u4E0A\u50B3\u500B\u4EBA\u5716\u793A. \u8ACB\u53C3\u95B1 \u8A18\u9304. - -# passwordSettings.jsp -passwordsettings.title = \u8B8A\u66F4\u5BC6\u78BC {0} - -# musicFolderSettings.jsp -musicfoldersettings.path = \u97F3\u6A02\u593E -musicfoldersettings.name = \u540D\u7A31 -musicfoldersettings.enabled = \u4F7F\u7528 -musicfoldersettings.add = \u65B0\u589E\u97F3\u6A02\u593E -musicfoldersettings.nopath = \u5E6B\u97F3\u6A02\u593E\u547D\u540D\u5427. - -# networkSettings.jsp -networksettings.text = \u4EE5\u4E0B\u8A2D\u5B9A\u8B93\u60A8\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u5B58\u53D6Libresonic\u4F3A\u670D\u5668.
                                                      \ - \u6709\u4EFB\u4F55\u554F\u984C, \u8ACB\u53C3\u8003 \u521D\u6B21\u4F7F\u7528\u624B\u518A. -networksettings.portforwardingenabled = \u81EA\u52D5\u914D\u7F6E\u8DEF\u7531\u5668\u5B58\u53D6Libresonic\u4F3A\u670D\u5668 (UPnP port \u8F49\u767C). -networksettings.portforwardinghelp = \u5982\u679C\u8DEF\u7531\u7121\u6CD5\u81EA\u52D5\u914D\u7F6E\uFF0C\u8ACB\u4F7F\u7528\u624B\u52D5\u914D\u7F6E.
                                                      \ - \u4F9D\u7167 portforward.com \u7684\u8AAA\u660E
                                                      \ - \u4F60\u5FC5\u9808\u8F49\u767CPort:{0}\u5230\u96FB\u8166\u4E0A\u904B\u884C\u7684Libresonic\u4F3A\u670D\u5668. -networksettings.urlredirectionenabled = \u7528\u7C21\u55AE\u597D\u8A18\u7684\u7DB2\u5740\u9023\u7DDA\u5230\u60A8\u7684\u4F3A\u670D\u5668. -networksettings.status = \u72C0\u614B: - -# transcodingSettings.jsp -transcodingsettings.name = \u8F49\u6A94\u540D\u7A31 -transcodingsettings.sourceformat = \u539F\u59CB\u6A94 -transcodingsettings.targetformat = \u8F49\u63DB\u6210 -transcodingsettings.step1 = \u6B65\u9A5F\u4E00 -transcodingsettings.step2 = \u6B65\u9A5F\u4E8C -transcodingsettings.step3 = \u6B65\u9A5F\u4E09 -transcodingsettings.defaultactive = \u9810\u8A2D -transcodingsettings.add = \u65B0\u589E\u8F49\u78BC\u5668 -transcodingsettings.noname = \u8ACB\u6307\u5B9A\u4E00\u500B\u540D\u7A31. -transcodingsettings.nosourceformat = \u8ACB\u6307\u5B9A\u8F49\u63DB\u683C\u5F0F. -transcodingsettings.notargetformat = \u8ACB\u6307\u5B9A\u8F49\u63DB\u683C\u5F0F. -transcodingsettings.nostep1 = \u8ACB\u81F3\u5C11\u6307\u5B9A\u4E00\u500B\u8F49\u63DB\u6B65\u9A5F. -transcodingsettings.info =

                                                      (%s = \u6A94\u6848\u5C07\u88AB\u8F49\u63DB, %b = \u64A5\u653E\u5668\u7684\u6700\u5927\u50B3\u8F38\u7387)

                                                      \ -

                                                      \u8F49\u6A94\u904E\u7A0B\u662F\u7531\u4E00\u500B\u97F3\u6A02\u683C\u5F0F\u7BA1\u63DB\u6210\u53E6\u4E00\u7A2E\u683C\u5F0F. {1}\u7684\u8F49\u6A94 \ - \u5F15\u64CE\u5C07\u975E\u4E32\u6D41\u683C\u5F0F\u8F49\u63DB\u6210\u4E32\u6D41. \u76F4\u63A5\u8F49\u6A94\u4E26\u4E14\u4E0D\u9700\u8981\u78C1\u789F\u904B\u4F5C

                                                      \ -

                                                      \u5BE6\u969B\u7684\u5C08\u63DB\u6771\u505A\u901A\u5E38\u662F\u900F\u904E\u7B2C\u4E09\u65B9\u8EDF\u9AD4\u4EE5\u547D\u4EE4\u5217\u65B9\u5F0F\u8F49\u63DB\uFF0C\u7A0B\u5F0F\u5B89\u88DD\u5728 {0}.

                                                      \ -

                                                      \u800CWindows\u7CFB\u7D71\u7684\u8F49\u63DB\u7A0B\u5F0F\u53EF\u4EE5\u5728\u9019\u88E1\u627E\u5230. \ - \u60A8\u4E5F\u80FD\u4EE5\u81EA\u5B9A\u7684\u8F49\u63DB\uFF0C\u53EA\u8981\u6EFF\u8DB3\u4E0B\u9762\u8981\u6C42\uFF1A\ -

                                                        \ -
                                                      • \u5FC5\u9808\u4EE5\u4E00\u500B\u547D\u4EE4\u884C\u6307\u4EE4\u754C\u9762.
                                                      • \ -
                                                      • \u5FC5\u9808\u80FD\u5920\u5C07\u8F38\u51FA\u767C\u9001\u5230\u6A19\u6E96\u8F38\u51FA(Stdout).
                                                      • \ -
                                                      • \u5982\u679C\u4F7F\u7528\u6B65\u9A5F2\u62163\uFF0C\u5B83\u5FC5\u9808\u80FD\u5920\u5F9E\u6A19\u6E96\u8F38\u5165(Stdin)\u8B80\u53D6.
                                                      • \ -
                                                      \ -

                                                      \ -

                                                      \u8ACB\u6CE8\u610F\uFF0C\u8F49\u63DB\u7684\u7A0B\u5E8F\u7684\u7531\u64A5\u653E\u5668\u8A2D\u5B9A\u4E2D\u52FE\u9078\u3002\u5982\u679C"\u9810\u8A2D"\u662F\u5DF2\u52FE\u9078\u7684\uFF0C\u90A3\u9EBC\u8F49\u63DB\u6703\u81EA\u52D5\u5728\u65B0\u64AD\u653E\u5668\u4E2D\u4F7F\u7528\u3002

                                                      - -# internetRadioSettings.jsp -internetradiosettings.streamurl = \u4E32\u6D41\u7DB2\u5740 -internetradiosettings.homepageurl = \u9996\u9801 -internetradiosettings.name = \u540D\u7A31 -internetradiosettings.enabled = \u63A1\u7528 -internetradiosettings.add = \u52A0\u5165\u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F -internetradiosettings.nourl = \u8ACB\u6307\u5B9A\u7DB2\u5740\u3002 -internetradiosettings.noname = \u8ACB\u6307\u5B9A\u540D\u7A31\u3002 - -# podcastSettings.jsp -podcastsettings.update = \u6AA2\u67E5\u65B0\u7684\u6536\u85CF -podcastsettings.keep = \u4FDD\u6301 -podcastsettings.keep.all = \u6240\u6709\u7684\u6536\u85CF -podcastsettings.keep.one = \u6700\u65B0\u7684\u6536\u85CF\u96C6 -podcastsettings.keep.many = \u6700\u8FD1 {0} \u7684\u6536\u85CF -podcastsettings.download = \u5982\u679C\u6709\u6700\u65B0\u7684\u6536\u85CF -podcastsettings.download.all = \u5168\u90E8\u4E0B\u8F09 -podcastsettings.download.one = \u4E0B\u8F09\u6700\u65B0\u7684 -podcastsettings.download.many = \u4E0B\u8F09\u6700\u8FD1{0}\u7684\u6536\u85CF -podcastsettings.download.none = \u4E0D\u505A -podcastsettings.interval.manually = \u624B\u52D5 -podcastsettings.interval.hourly = \u6BCF\u5C0F\u6642 -podcastsettings.interval.daily = \u6BCF\u5929 -podcastsettings.interval.weekly = \u6BCF\u9031 -podcastsettings.folder = \u5132\u5B58\u64AD\u5BA2\u5728 - -# playerSettings.jsp -playersettings.noplayers = \u6C92\u6709\u64A5\u653E\u5668. -playersettings.type = \u5F62\u614B -playersettings.lastseen = \u4E0A\u6B21\u767B\u5165 -playersettings.title = \u9078\u64C7\u64A5\u653E\u5668 - -playersettings.technology.web.title = \u7DB2\u9801\u64AD\u653E -playersettings.technology.external.title = \u76F4\u63A5\u7528\u5916\u90E8\u64AD\u653E\u5668\u64AD\u653E -playersettings.technology.external_with_playlist.title = \u4EE5\u9EDE\u64AD\u6E05\u55AE\u5728\u5916\u90E8\u64A5\u653E\u5668\u64AD\u653E -playersettings.technology.jukebox.title = \u9EDE\u64AD\u6A5F\u6A21\u5F0F -playersettings.technology.web.text = \u76F4\u63A5\u5728\u7DB2\u9801\u4E2D\u7684Flash\u64AD\u653E\u5668\u64AD\u653E. -playersettings.technology.external.text = \u5728\u60A8\u5E38\u7528\u7684\u64A5\u653E\u5668\u4E2D\u64AD\u653E\uFF0C\u4F8B\u5982:WinAmp\u3001Windows Media Player\u3001iTunes. -playersettings.technology.external_with_playlist.text = \u5982\u540C\u4E0A\u9762\u7684\u9078\u9805\uFF0C\u4F46\u662F\u9EDE\u64AD\u6E05\u55AE\u7531\u5BA2\u6236\u7AEF\u7BA1\u7406\uFF0C\u800C\u4E0D\u662F\u4F3A\u670D\u5668
                                                      \ - \u56E0\u6B64\u53EF\u80FD\u7684\u60C5\u6CC1\u4E0B\u53EF\u4EE5\u76F4\u63A5\u8DF3\u807D\u4E0B\u4E00\u9996\u6B4C\u66F2\u3002 -playersettings.technology.jukebox.text = \u76F4\u63A5\u5728Libresonic\u4F3A\u670D\u5668\u4E2D\u64AD\u653E. (\u9650\u5DF2\u6388\u6B0A\u7684\u7528\u6236). -playersettings.name = \u64A5\u653E\u5668\u540D\u7A31 -playersettings.coverartsize = \u5C08\u8F2F\u5C01\u9762\u5927\u5C0F -playersettings.maxbitrate = \u6700\u5927\u50B3\u8F38\u7387 -playersettings.coverart.off = \u4E0D\u986F\u793A -playersettings.coverart.small = \u5C0F -playersettings.coverart.medium = \u4E2D -playersettings.coverart.large = \u5927 -playersettings.notranscoder = \u6CE8\u610F: ffmpeg \u5C1A\u672A\u5B89\u88DD.
                                                      \u9EDE\u64CA\u3010\u5354\u52A9\u3011. -playersettings.autocontrol = \u81EA\u52D5\u64AD\u653E -playersettings.dynamicip = \u64A5\u653E\u5668\u4F7F\u7528\u52D5\u614BIP\u4F4D\u5740 -playersettings.transcodings = \u555F\u52D5\u7684\u8F49\u78BC\u7A0B\u5F0F -playersettings.ok = \u5132\u5B58 -playersettings.forget = \u522A\u9664\u64A5\u653E\u5668 -playersettings.clone = \u8907\u88FD\u64A5\u653E\u5668 - -# userSettings.jsp -usersettings.title = \u9078\u64C7\u4F7F\u7528\u8005 -usersettings.newuser = \u65B0\u4F7F\u7528\u8005 -usersettings.admin = \u7BA1\u7406\u54E1\u6B0A\u9650 -usersettings.settings = \u53EF\u4EE5\u8B8A\u66F4\u8A2D\u5B9A\u53CA\u5BC6\u78BC -usersettings.stream = \u53EF\u4EE5\u64AD\u653E\u6A94\u6848 -usersettings.jukebox = \u53EF\u4EE5\u7528\u9EDE\u64A5\u6A5F\u6A21\u5F0F -usersettings.download = \u53EF\u4EE5\u4E0B\u8F09\u6A94\u6848 -usersettings.upload = \u53EF\u4EE5\u4E0A\u50B3\u6A94\u6848 -usersettings.coverart = \u53EF\u4EE5\u66F4\u63DB\u5C08\u8F2F\u5C01\u9762\u53CA\u6A19\u7C64 -usersettings.comment= \u53EF\u4EE5\u5EFA\u7ACB\u6216\u7DE8\u8F2F\u8A55\u8AD6\u53CA\u8A55\u5206 -usersettings.podcast= \u53EF\u4EE5\u7BA1\u7406\u64AD\u5BA2 -usersettings.username = \u4F7F\u7528\u8005 -usersettings.changepassword = \u8B8A\u66F4\u5BC6\u78BC -usersettings.password = \u5BC6\u78BC -usersettings.newpassword = \u65B0\u5BC6\u78BC -usersettings.confirmpassword = \u518D\u6B21\u78BA\u8A8D\u5BC6\u78BC -usersettings.delete = \u522A\u9664\u4F7F\u7528\u8005 -usersettings.ldap = \u5728LDAP\u9A57\u8B49\u7528\u6236 -usersettings.nousername = \u7F3A\u5C11\u4F7F\u7528\u8005\u540D\u7A31. -usersettings.useralreadyexists = \u4F7F\u7528\u8005\u540D\u7A31\u5DF2\u7D93\u88AB\u4F7F\u7528\u4E86\uFF01. -usersettings.nopassword = \u5FC5\u9808\u8A2D\u5B9A\u5BC6\u78BC. -usersettings.wrongpassword = \u5169\u6B21\u8F38\u5165\u5BC6\u78BC\u4E0D\u540C. -usersettings.ldapdisabled = LDAP\u9A57\u8B49\u6C92\u6709\u555F\u52D5. \u8ACB\u5148\u5230\u9032\u968E\u8A2D\u5B9A. -usersettings.passwordnotsupportedforldap = \u7121\u6CD5\u8A2D\u5B9A\u6216\u8B8A\u66F4LDAP\u9A57\u8B49\u7528\u6236\u7684\u5BC6\u78BC. -usersettings.ok = \u4F7F\u7528\u8005 {0}\u7684\u5BC6\u78BC\u5DF2\u7D93\u8B8A\u66F4. - -# musicFolderSettings.jsp -musicfoldersettings.interval.never = \u5F9E\u4E0D -musicfoldersettings.interval.one = \u6BCF\u5929 -musicfoldersettings.interval.many = \u6BCF\u9694 {0} \u5929 -musicfoldersettings.hour = \u5728 {0}:00 - -# main.jsp -main.up = \u4E0A\u4E00\u9801 -main.playall = \u5168\u90E8\u64AD\u653E -main.playrandom = \u96A8\u8208\u64AD\u653E -main.addall = \u5168\u90E8\u52A0\u5230\u9EDE\u64AD\u6E05\u55AE\u4E2D -main.downloadall = \u5168\u90E8\u4E0B\u8F09 -main.tags = \u7DE8\u8F2F\u6A19\u7C64 -main.playcount = \u9EDE\u64AD {0} \u6B21. -main.lastplayed =\u4E0A\u6B21\u9EDE\u64AD\u5728 {0}. -main.comment = \u8A55\u8AD6 -main.wiki =
                                                      \ - \ - \ - \ - \ -
                                                      __text__Bold text \\\\ Line break
                                                      ~~text~~Italic text (empty line) New paragraph
                                                      * text List item http://foo.com/ Link
                                                      1. text Enumerated list item{link:Foo|http://foo.com}Named link
                                                      -main.nowplaying =\u76EE\u524D\u64A5\u653E -main.lyrics = \u6B4C\u8A5E -main.minutesago = \u5206\u9418\u524D -main.chat = \u4EA4\u8AC7 -main.message = \u5BEB\u5728\u9019\u88E1 -main.clearchat = \u6E05\u9664 - -# rating.jsp -rating.rating = \u7B49\u7D1A -rating.clearrating = \u6E05\u9664\u7B49\u7D1A - -# coverArt.jsp -coverart.change = \u8B8A\u66F4 -coverart.zoom = \u653E\u5927 - -# allmusic.jsp -allmusic.text = \u5728 allmusic.com \u641C\u5C0B\u5C08\u8F2F {0} - \u8ACB\u7A0D\u5019. - -# changeCoverArt.jsp -changecoverart.title = \u8B8A\u66F4\u5C08\u8F2F\u5C01\u9762 -changecoverart.address = \u6216\u662F\u8F38\u5165\u5716\u5F62\u7684\u4F4D\u5740 -changecoverart.artist = \u6B4C\u624B -changecoverart.album = \u5C08\u8F2F -changecoverart.wait = \u8ACB\u7A0D\u5019... -changecoverart.success = \u5716\u5F62\u4E0B\u8F09\u6210\u529F. -changecoverart.error = \u7121\u6CD5\u4E0B\u8F09\u5716\u5F62. -changecoverart.noimagesfound = \u627E\u4E0D\u5230\u5716\u5F62\u6A94. - -# changeCoverArtConfirm.jsp -changeCoverArtConfirm.failed = \u7121\u6CD5\u4FEE\u6539\u5C08\u8F2F\u5C01\u9762:
                                                      "{0}" - -# editTags.jsp -edittags.title = \u7DE8\u8F2F\u6A19\u7C64 -edittags.file = \u6A94\u6848 -edittags.track = \u97F3\u8ECC -edittags.songtitle = \u66F2\u540D -edittags.artist = \u6B4C\u624B -edittags.album = \u5C08\u8F2F -edittags.year = \u767C\u884C -edittags.genre = \u66F2\u98A8 -edittags.status = \u72C0\u614B -edittags.suggest = \u5EFA\u8B70 -edittags.reset = \u91CD\u7F6E -edittags.suggest.short = S -edittags.reset.short = R -edittags.set = Set -edittags.working = Working -edittags.updated = Updated -edittags.skipped = \u7565\u904E -edittags.error = \u932F\u8AA4 - -# podcastReceiver.jsp -podcastreceiver.title = \u64AD\u5BA2\u63A5\u6536\u5668 -podcastreceiver.expandall = \u986F\u793A\u6536\u85CF\u96C6 -podcastreceiver.collapseall = \u96B1\u85CF\u6536\u85CF\u96C6 -podcastreceiver.status.new = \u65B0\u7684 -podcastreceiver.status.downloading = \u4E0B\u8F09\u4E2D -podcastreceiver.status.completed = \u5B8C\u6210 -podcastreceiver.status.error = \u932F\u8AA4 -podcastreceiver.status.deleted = \u5DF2\u522A\u9664 -podcastreceiver.status.skipped = \u7565\u904E -podcastreceiver.downloadselected= \u4E0B\u8F09\u5DF2\u9078\u7684 -podcastreceiver.deleteselected= \u522A\u9664\u5DF2\u9078\u64C7 -podcastreceiver.confirmdelete= \u771F\u7684\u8981\u522A\u9664\u64AD\u5BA2? -podcastreceiver.check = \u6838\u5C0D\u65B0\u7684\u6536\u85CF\u96C6 -podcastreceiver.refresh = \u5237\u65B0\u672C\u9801 -podcastreceiver.settings = \u64AD\u5BA2\u8A2D\u5B9A -podcastreceiver.subscribe = \u8A02\u95B1\u64AD\u5BA2 - -# lyrics.jsp -lyrics.title = \u6B4C\u8A5E -lyrics.artist = \u6B4C\u624B -lyrics.song = \u6B4C\u66F2 -lyrics.search = \u641C\u5C0B -lyrics.wait = \u641C\u5C0B\u6B4C\u8A5E\u4E2D, \u8ACB\u7A0D\u5019... -lyrics.courtesy = (\u6B4C\u8A5E\u7531chartlyrics.com\u63D0\u4F9B) -lyrics.nolyricsfound = \u627E\u4E0D\u5230\u6B4C\u8A5E. - -# helpPopup.jsp -helppopup.title = {0} \u5354\u52A9 -helppopup.cover.title = \u5C08\u8F2F\u5C01\u9762\u5927\u5C0F -helppopup.cover.text =

                                                      \u7531\u60A8\u6307\u5B9A\u986F\u793A\u5C08\u8F2F\u5C01\u9762\u7684\u5927\u5C0F\uFF0C\u4E5F\u53EF\u4EE5\u5B8C\u5168\u95DC\u9589.

                                                      -helppopup.transcode.title = \u6700\u5927\u50B3\u8F38\u7387 -helppopup.transcode.text =

                                                      \u5982\u679C\u60A8\u7684\u64AD\u653E\u983B\u5BEC\u6709\u9650\uFF0C\u53EF\u4EE5\u904E\u8A2D\u5B9A\u6700\u5927\u50B3\u8F38\u7387\u4F86\u6539\u5584. \ - \u4F8B\u5982,\u5982\u679Cmp3\u539F\u672C\u7684\u58D3\u7E2E\u6BD4\u4F8B\u70BA256Kbps(kilobits per second), \u5982\u679C\u8A2D\u5B9A\u6700\u5927\u50B3\u8F38\u7387\u70BA128\ - \u6703\u4F7F{0}\u81EA\u52D5\u5C07\u539F\u672C 256Kbps\u7684\u97F3\u6A02\u8ABF\u964D\u6210 128 Kbps.

                                                      -helppopup.playlistfolder.title = \u9EDE\u64AD\u6E05\u55AE\u8CC7\u6599\u593E -helppopup.playlistfolder.text =

                                                      \u5B58\u653E\u9EDE\u64AD\u6E05\u55AE\u7684\u8CC7\u6599\u593E.

                                                      -helppopup.musicmask.title = \u97F3\u6A02\u7684\u9644\u5C6C\u6A94\u540D -helppopup.musicmask.text =

                                                      \u6307\u5B9A\u97F3\u6A02\u6A94\u6848\u7684\u9644\u5C6C\u6A94\u540D

                                                      -helppopup.videomask.title = \u8996\u8A0A\u6A94\u7684\u9644\u5C6C\u6A94\u540D -helppopup.videomask.text =

                                                      \u6307\u5B9A\u8996\u8A0A\u6A94\u6848\u7684\u8CA0\u6578\u6A94\u540D

                                                      -helppopup.coverartmask.title = \u5C08\u8F2F\u5C01\u9762\u9644\u5C6C\u6A94\u540D -helppopup.coverartmask.text =

                                                      \u8207\u97F3\u6A02\u593E\u653E\u5728\u4E00\u8D77\u7684\u5C08\u8F2F\u5C01\u9762\uFF0C\u5148\u6307\u5B9A\u5C08\u8F2F\u5C01\u9762\u6A94\u6848\u7684\u9644\u5C6C\u6A94\u540D.

                                                      -helppopup.downsamplecommand.title = \u964D\u983B\u6307\u4EE4 -helppopup.downsamplecommand.text =

                                                      \u8B93\u60A8\u8A2D\u5B9A\u8ABF\u964D\u64AD\u653E\u97F3\u6A02\u6642\u964D\u4F4E\u53D6\u6A23\u983B\u7387\u7684\u6307\u4EE4.

                                                      \ -

                                                      (%s = \u8981\u964D\u983B\u7684\u6A94\u6848, %b = \u64A5\u653E\u5668\u7684\u6700\u5927\u50B3\u8F38\u7387)

                                                      -helppopup.index.title = \u5206\u985E\u6AA2\u7D22 -helppopup.index.text =

                                                      \u8A2D\u5B9A\u97F3\u6A02\u6AA2\u7D22\u7684\u65B9\u5F0F\uFF0C\uFF08\u5C31\u5982\u540C\u73FE\u5728\u5728\u87A2\u5E55\u5DE6\u4E0A\u65B9\u7684\u5206\u985E\uFF09. \u5728\u97F3\u6A02\u593E\u88E1\u7684\u6A94\u6848\u5F88\u5BB9\u6613\u5206\u985E\u6AA2\u7D22

                                                      \ -

                                                      \u901A\u5E38\u4EE5\u7A7A\u767D\u4F86\u5206\u9694\u6AA2\u7D22\u9805\u76EE. \u4E00\u822C\u4F86\u8AAA\uFF0C\u4E00\u500B\u5B57\u6BCD\uFF08\u570B\u5B57\uFF09\u70BA\u4E00\u500B\u9805\u76EE, \ - \u4F46\u4E5F\u53EF\u4EE5\u591A\u500B\u5B57\u6BCD\uFF08\u570B\u5B57\uFF09\u653E\u5728\u540C\u4E00\u5206\u985E\u9805\u76EE\u4E2D. \u4F8B\u5982\uFF1A\u3105(\u5305\u9B91),\u53EF\u4EE5\u5C07 \u5305\u9B91\u8996\u70BA\u540C\u4E00\u5206\u985E\ -

                                                      \u800C\u7121\u6CD5\u6B78\u985E\u7684\u6A94\u6848\uFF0C\u5C07\u5168\u90E8\u6B78\u65BC "#"\u9805\u76EE\u4E2D.

                                                      -helppopup.ignoredarticles.title = \u5FFD\u7565\u5B57\u9996 -helppopup.ignoredarticles.text =

                                                      \u6709\u4E9B\u5B57\u9996(\u4F8B\u5982"The") \u901A\u5E38\u5728\u66F2\u76EE\u6B78\u985E\u4E2D\u61C9\u8A72\u5FFD\u7565\uFF0C\u8ACB\u5728\u6B64\u8655\u8A2D\u5B9A.

                                                      -helppopup.shortcuts.title = \u6377\u5F91 -helppopup.shortcuts.text =

                                                      \u4EE5\u7A7A\u767D\u4F86\u5206\u9694\u5728\u6700\u4E0A\u5C64\u76EE\u9304\u4E2D\u5EFA\u7ACB\u6377\u5F91\u6AA2\u7D22. \u7528\u5F15\u865F\u4F86\u5206\u7D44\u5B57\u5143, \u4F8B\u5982:

                                                      \ -

                                                      New Incoming "Sound tracks"

                                                      -helppopup.language.title = Language -helppopup.language.text =

                                                      \u5728\u9019\u88E1\u9078\u64C7\u6240\u63D0\u4F9B\u7684\u986F\u793A\u8A9E\u8A00.

                                                      -helppopup.visibility.title = \u986F\u793A\u9805\u76EE -helppopup.visibility.text =

                                                      \u9078\u64C7\u5728\u700F\u89BD\u6216\u662F\u5728\u9EDE\u64AD\u6E05\u55AE\u4E2D\uFF0C\u986F\u793A\u97F3\u6A02\u7684\u5404\u7A2E\u8A73\u7D30\u8CC7\u8A0A

                                                      -helppopup.partymode.title = \u5BB4\u6703\u6A21\u5F0F -helppopup.partymode.text =

                                                      \u4F7F\u7528\u5BB4\u6703\u6A21\u5F0F\u7C21\u5316\u4F7F\u7528\u8005\u754C\u9762\uFF0C\u63D0\u4F9B\u7D66\u7121\u7D93\u9A57\u7684\u4F7F\u7528\u8005\u64CD\u4F5C\ - \u4E5F\u53EF\u4EE5\u907F\u514D\u56E0\u70BA\u610F\u5916\u64CD\u4F5C\u800C\u5F04\u4E82\u4E86\u9EDE\u64AD\u6E05\u55AE.

                                                      -helppopup.theme.title = \u4F48\u666F\u4E3B\u984C -helppopup.theme.text =

                                                      \u8B93\u60A8\u53EF\u4EE5\u9078\u64C7\u4E0D\u540C\u7684\u4F48\u666F\u4E3B\u984C. \u4F48\u666F\u4E3B\u984C\u900F\u904E\u4E0D\u540C\u7684\u984F\u8272\u3001\u5B57\u9AD4\u3001\u5716\u50CF\u7B49\uFF0C\u5E36\u7D66\u60A8\u4E0D\u540C\u7684{0}\u611F\u53D7.

                                                      -helppopup.welcomemessage.title = \u6B61\u8FCE\u6A19\u984C -helppopup.welcomemessage.text =

                                                      \u5728\u9996\u9801\u4E2D\u986F\u793A\u7684\u6A19\u984C.

                                                      -helppopup.loginmessage.title = \u767B\u5165\u8A0A\u606F -helppopup.loginmessage.text =

                                                      \u5728\u767B\u5165\u756B\u9762\u986F\u793A\u7684\u63D0\u793A\u8A0A\u606F.

                                                      -helppopup.coverartlimit.title = \u5C08\u8F2F\u5C01\u9762\u9650\u5236 -helppopup.coverartlimit.text =

                                                      \u5728\u4E00\u9801\u756B\u9762\u4E2D\u986F\u793A\u5C08\u8F2F\u5C01\u9762\u7684\u6700\u5927\u6578\u91CF.

                                                      -helppopup.downloadlimit.title = \u4E0B\u8F09\u9650\u5236 -helppopup.downloadlimit.text =

                                                      \u4E0B\u8F09\u6A94\u6848\u6642\u7684\u983B\u5BEC\u9650\u5236.

                                                      -helppopup.uploadlimit.title = \u4E0A\u50B3\u9650\u5236 -helppopup.uploadlimit.text =

                                                      \u4E0A\u50B3\u6A94\u6848\u6642\u7684\u983B\u5BEC\u9650\u5236.

                                                      -helppopup.streamport.title = \u975E-SSL \u4E32\u6D41 Port -helppopup.streamport.text =

                                                      \u672C\u9078\u9805\u53EA\u662F\u7528\u65BC\u5728\u4F3A\u670D\u5668\u4E0A\u7684 {0} \u4F7F\u7528 SSL (HTTPS)\u50B3\u8F38\u5354\u5B9A.

                                                      \u6709\u4E9B\u64AD\u653E\u5668 \ - (\u4F8B\u5982 Winamp) \u4E26\u672A\u652F\u63F4\u7D93\u7531SSL\u7684\u4E32\u6D41\u5354\u5B9A. \u5982\u679C\u60A8\u4E0D\u7D93\u7531SSL\u50B3\u9001\u4E32\u6D41\uFF0C\u8ACB\u6307\u5B9A\u901A\u8A0APORT(\u901A\u5E38\u662F80\u62164040)\ - \u8ACB\u6CE8\u610F\uFF0C\u4E32\u6D41\u97F3\u6A02\u4E26\u4E0D\u6703\u88AB\u52A0\u5BC6.

                                                      -helppopup.ldap.title = LDAP \u9A57\u8B49 -helppopup.ldap.text =

                                                      \u4F7F\u7528\u8005\u53EF\u4EE5\u7D93\u7531\u5916\u90E8\u7684LDAP\u4F3A\u670D\u5668\u9A57\u8B49 (\u5305\u62ECWindows Active Directory). \ - \u7576\u8A2D\u5B9A\u4F7F\u7528LDAP\u4F7F\u7528\u8005\u767B\u5165 {0}, \u5E33\u865F\u53CA\u5BC6\u78BC\u5C31\u7531\u5916\u90E8\u4F3A\u670D\u5668\u9A57\u8B49, \u800C\u4E0D\u662F\u7531{0}\u4F86\u9A57\u8B49.

                                                      -helppopup.ldapurl.title = LDAP \u4F4D\u5740 -helppopup.ldapurl.text =

                                                      \u8A2D\u5B9A LDAP \u4F3A\u670D\u5668\u7684\u4F4D\u5740. \u5354\u5B9A\u61C9\u8A72\u662F ldap:// \u6216 ldaps:// \ - (\u7D93\u7531SSL\u7684LDAP\u5354\u5B9A). \u8ACB\u53C3\u8003\u9019\u88E1 \ - \u6709\u66F4\u591A\u8A73\u7D30\u8AAA\u660E.

                                                      -helppopup.ldapsearchfilter.title = LDAP \u641C\u5C0B\u904E\u6FFE -helppopup.ldapsearchfilter.text =

                                                      \u8490\u5C0BLDAP\u7528\u6236\u6642\uFF0C\u5728\u9019\u88E1\u8A2D\u5B9A\u904E\u6FFE\u8868\u793A\u5F0F \ - (\u5B9A\u7FA9\u5728RFC 2254). \ - The pattern "'{0'}" is replaced by the username, \u4F8B\u5982: \ -

                                                        \ -
                                                      • (uid='{0'}) - this would search for a username match on the uid attribute.
                                                      • \ -
                                                      • (sAMAccountName='{0'}) - typically used for authentication in Microsoft Active Directory.
                                                      • \ -

                                                      -helppopup.ldapmanagerdn.title = LDAP \u7BA1\u7406\u8005 DN -helppopup.ldapmanagerdn.text =

                                                      \u5982\u679C LDAP \u4F3A\u670D\u5668\u4E0D\u652F\u63F4\u533F\u540D\u4F7F\u7528\u8005\u9023\u7DDA\uFF0C\u60A8\u5FC5\u9808\u6307\u5B9A DN \ - (Distinguished Name)\u53CALDAP\u4F7F\u7528\u8005\u7684\u5BC6\u78BC.

                                                      -helppopup.ldapautoshadowing.title = \u5728 {0} \u81EA\u52D5\u5EFA\u7ACB LDAP \u5E33\u865F -helppopup.ldapautoshadowing.text =

                                                      \u8A2D\u5B9A\u9019\u500B\u9078\u9805, \u5247LDAP \u7528\u6236\u4E0D\u5FC5\u5728\u767B\u5165\u4E4B\u524D\u624B\u52D5\u5EFA\u7ACB{0}\u7684\u5E33\u865F.

                                                      \ -

                                                      \u6CE8\u610F! \u9019\u610F\u5473\u6240\u6709\u5728LDAP\u4E0A\u7684\u4F7F\u7528\u8005\u90FD\u53EF\u4EE5\u767B\u5165\u60A8\u7684{0}, \ - \u4E5F\u8A31\u9019\u4E0D\u662F\u60A8\u60F3\u8981\u7684\u529F\u80FD.

                                                      -helppopup.playername.title = \u64A5\u653E\u5668\u540D\u7A31 -helppopup.playername.text =

                                                      \u8B93\u4F60\u5E6B\u64AD\u653E\u5668\u6307\u5B9A\u4E00\u500B\u5BB9\u6613\u8A18\u4F4F\u7684\u540D\u5B57\uFF0C\u5982\u201C\u5DE5\u4F5C\u5BA4\u201D\u6216\u201C\u5BA2\u5EF3\u201D

                                                      -helppopup.autocontrol.title = \u63A7\u5236\u64AD\u653E\u5668\u81EA\u52D5\u64AD\u653E -helppopup.autocontrol.text =

                                                      \u8A2D\u5B9A\u9019\u500B\u9078\u9805, {0} \u5728\u60A8\u958B\u59CB\u64AD\u653E\u6642\uFF0C\u6703\u81EA\u52D5\u555F\u52D5\u64AD\u653E\u5668\ - \u5426\u5247\u60A8\u5FC5\u9808\u81EA\u5DF1\u555F\u52D5\u4E26\u4E14\u9023\u63A5\u60A8\u7684\u64A5\u653E\u5668.

                                                      -helppopup.dynamicip.title = \u52D5\u614B IP \u4F4D\u5740 -helppopup.dynamicip.text =

                                                      \u95DC\u9589\u6B64\u9078\u9805\uFF0C\u5982\u679C\u60A8\u4F7F\u7528\u975C\u614BIP\u4F4D\u5740.

                                                      - -# wap/index.jsp -wap.index.missing = \u627E\u4E0D\u5230\u97F3\u6A02 -wap.index.playlist = \u9EDE\u64AD\u6E05\u55AE -wap.index.search = \u641C\u5C0B -wap.index.settings = \u8A2D\u5B9A - -# wap/browse.jsp -wap.browse.playone = \u64AD\u653E\u6B4C\u66F2 -wap.browse.playall = \u5168\u90E8\u64AD\u653E -wap.browse.addone = \u52A0\u5165\u6B4C\u66F2 -wap.browse.addall = \u5168\u90E8\u52A0\u5165 -wap.browse.downloadone = \u4E0B\u8F09\u6B4C\u66F2 -wap.browse.downloadall = \u5168\u90E8\u4E0B\u8F09 - -# wap/playlist.jsp -wap.playlist.title =\u9EDE\u64AD\u6E05\u55AE -wap.playlist.noplayer = \u9023\u63A5\u4E0D\u5230\u64AD\u653E\u5668 -wap.playlist.clear = \u6E05\u9664 -wap.playlist.load = \u8F09\u5165 -wap.playlist.random = \u96A8\u8208 -wap.playlist.play = \u5728\u96FB\u8A71\u4E2D\u64AD\u9001 - -# wap/search.jsp -wap.search.title = \u641C\u5C0B - -# wap/searchResult.jsp -wap.searchresult.index = \u6B63\u5728\u5EFA\u7ACB\u641C\u5C0B\u7D22\u5F15\u3002\u8ACB\u7A0D\u5F8C\u518D\u8A66. - -# wap/settings.jsp -wap.settings.selectplayer = \u9078\u64C7\u64AD\u653E\u5668 -wap.settings.allplayers = \u5168\u90E8 diff --git a/subsonic-main/src/main/webapp/ad/omakasa.html b/subsonic-main/src/main/webapp/ad/omakasa.html deleted file mode 100644 index 12145df8..00000000 --- a/subsonic-main/src/main/webapp/ad/omakasa.html +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/subsonic-main/src/main/webapp/icons/default_light/remove.gif b/subsonic-main/src/main/webapp/icons/default_light/remove.gif deleted file mode 100644 index b7656a88..00000000 Binary files a/subsonic-main/src/main/webapp/icons/default_light/remove.gif and /dev/null differ diff --git a/subsonic-main/subsonic-main.iml b/subsonic-main/subsonic-main.iml deleted file mode 100644 index 2a6f46df..00000000 --- a/subsonic-main/subsonic-main.iml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/subsonic-rest-api/subsonic-rest-api.iml b/subsonic-rest-api/subsonic-rest-api.iml deleted file mode 100644 index e8c2a00a..00000000 --- a/subsonic-rest-api/subsonic-rest-api.iml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/subsonic-sonos-api/subsonic-sonos-api.iml b/subsonic-sonos-api/subsonic-sonos-api.iml deleted file mode 100644 index e8c2a00a..00000000 --- a/subsonic-sonos-api/subsonic-sonos-api.iml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/subsonic.iml b/subsonic.iml deleted file mode 100644 index 987693c7..00000000 --- a/subsonic.iml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file