Skip to content

Commit 13f1dd3

Browse files
committed
Initial restructuring and rebrand
0 parents  commit 13f1dd3

File tree

364 files changed

+41324
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

364 files changed

+41324
-0
lines changed

CHANGES

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
Version 1.1.1
2+
3+
* Tracker issue "Transcode.sh doesn't work on Linux due to DOS line endings" solved thanks to chocolateboy
4+
* Tracker issue "Lizzy produces invalid RSS" solved thanks to chocolateboy
5+
* Removed dependency on Apache Xerces-J 2
6+
* Castor version upgraded to 1.3.1
7+
* Jaxen version upgraded to 1.1.3
8+
* Apache Ant 1.8.1 has been used to build the distribution
9+
* The Sun JDK 1.6.0_21 has been used to build the distribution
10+
* Housekeeping
11+
12+
Version 1.1.0
13+
14+
* Support of the 'extension' element in XSPF 'playlist' and 'track' elements
15+
* Use of the JAXB API for the RMP playlist format, as an usage example
16+
* Castor version upgraded to 1.3
17+
* args4j version upgraded to 2.0.12
18+
* PMD version upgraded to 4.2.5
19+
* Jaxen version upgraded to 1.1.2
20+
* ObjectWeb ASM version upgraded to 3.2
21+
* Apache Ant 1.7.1 has been used to build the distribution
22+
* The Sun JDK 1.6.0_17 has been used to build the distribution
23+
24+
Version 1.0.1
25+
26+
* Support of the Hypetape XML playlist format
27+
* The build process is now documented in the main HTML page
28+
29+
Version 1.0.0
30+
31+
Note for the developer: API COMPATIBILITY ISSUES with previous versions (see below)
32+
33+
* CAUTION: refactoring of Java package christophedelory.content (see below)
34+
* CAUTION: refactoring of Java package christophedelory.playlist.spi (the specific playlist providers are now located in their dedicated package)
35+
* CAUTION: refactoring of Java package christophedelory.playlist.asx (simplifications)
36+
* CAUTION: The christophedelory.content.Content duration is now specified as a simple long (not a Long instance anymore)
37+
* The content definition (christophedelory.content.Content) may now specify a width and height in pixels
38+
* The RSS playlist provider now makes use of the new generic content's width and height
39+
* NEW: content metadata providers for content duration and dimension in christophedelory.content
40+
* NEW: Some media contents may now be analyzed in order to extract their duration and dimension: audio (WAV, AU, AIFF, MIDI, RMF through JavaSound), images (PNG, JPG, GIF, BMP, WBMP through ImageIO) and all media types supported by FFMPEG through FFMPEG-Java
41+
* CAUTION: the class christophedelory.playlist.AbstractPlaylistVisitor has been renamed to BasePlaylistVisitor, and is no more abstract
42+
* CAUTION: the interface christophedelory.playlist.smil.SmilPlaylistVisitor has been renamed to SmilVisitor
43+
* CAUTION: the class christophedelory.playlist.smil.AbstractSmilPlaylistVisitor has been renamed to BaseSmilVisitor, and is no more abstract
44+
* CAUTION: the class christophedelory.playlist.PlaylistComponent has been renamed to AbstractPlaylistComponent
45+
* CAUTION: the class christophedelory.playlist.TimeContainer has been renamed to AbstractTimeContainer
46+
* CAUTION: the class christophedelory.playlist.SpecificPlaylistFactory is now a singleton
47+
* Java code audit has been performed thanks to PMD (new build dependency)
48+
* CAUTION: the java.util.ArrayList class is now used instead of the java.util.Vector class (performance issue)
49+
* CAUTION: the class christophedelory.playlist.wpl.SourceFilter has been removed; christophedelory.playlist.wpl.Filter must be used instead
50+
* CAUTION: the class christophedelory.plist.AbstractPlistText has been renamed to PlistText, and is no more abstract
51+
* Removed dependency on Apache Commons IO
52+
* Support of Atom Web feeds as playlists
53+
54+
Version 0.3.0
55+
56+
* Support of Real Metadata Package playlists (".rmp")
57+
* Support of Kalliope playlists (".kpl")
58+
* Support of iTunes playlists (".plist")
59+
* Support of Media Player Classic playlists (".mpcpl")
60+
* Miscellaneous minor fixes
61+
62+
Version 0.2.0
63+
64+
* CAUTION: in the binary distribution, the directory layout has changed: the "cli" directory has been removed and its contents moved one level up.
65+
* CAUTION: the "lizzy" CLI has been renamed to "Transcode" (i.e. "Transcode.bat" and "Transcode.sh")
66+
* CAUTION: the "Transcode" CLI no more accepts a list of input playlists, but only ONE playlist
67+
* New CLI, "AddToPlaylist.bat" and "AddToPlaylist.sh", allowing to add to a new playlist (or an existing one) one or more files, directories and/or URLs; the output playlist can also be saved to a remote URL
68+
* Support of iRiver playlists (".pla")
69+
* Support of Sansa playlists (".plp")
70+
* Information about the media players supporting each type of playlist (in progress)
71+
* christophedelory.content.ContentType now extends the Swing abstract class javax.swing.filechooser.FileFilter (useful for JFileChooser usage)
72+
* New method "getProviders()" in the christophedelory.playlist.SpecificPlaylistFactory class, allowing to list all specific playlist providers
73+
74+
Version 0.1.0
75+
76+
Initial version
77+

LICENSE

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
Copyright (c) 2016, Andrew DeMaria
2+
Copyright (c) 2008-2009, Christophe Delory
3+
All rights reserved.
4+
5+
Redistribution and use in source and binary forms, with or without
6+
modification, are permitted provided that the following conditions are met:
7+
8+
* Redistributions of source code must retain the above copyright
9+
notice, this list of conditions and the following disclaimer.
10+
* Redistributions in binary form must reproduce the above copyright
11+
notice, this list of conditions and the following disclaimer in the
12+
documentation and/or other materials provided with the distribution.
13+
14+
THIS SOFTWARE IS PROVIDED BY CHRISTOPHE DELORY ``AS IS'' AND ANY
15+
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17+
DISCLAIMED. IN NO EVENT SHALL CHRISTOPHE DELORY BE LIABLE FOR ANY
18+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

VERSION

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1.1.1

contenttype/filename/pom.xml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<artifactId>contenttype-filename</artifactId>
8+
<parent>
9+
<groupId>com.github.muff1nman.chameleon</groupId>
10+
<artifactId>chameleon-parent</artifactId>
11+
<version>1.1.2-SNAPSHOT</version>
12+
<relativePath>../..</relativePath>
13+
</parent>
14+
15+
<packaging>jar</packaging>
16+
17+
<dependencies>
18+
<dependency>
19+
<groupId>com.github.muff1nman.chameleon</groupId>
20+
<artifactId>core</artifactId>
21+
</dependency>
22+
</dependencies>
23+
24+
<build>
25+
<plugins>
26+
<plugin>
27+
<groupId>org.apache.maven.plugins</groupId>
28+
<artifactId>maven-compiler-plugin</artifactId>
29+
<version>3.1</version>
30+
<configuration>
31+
<source>1.6</source>
32+
<target>1.6</target>
33+
</configuration>
34+
</plugin>
35+
</plugins>
36+
</build>
37+
38+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
* Copyright (c) 2008, Christophe Delory
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
*
8+
* * Redistributions of source code must retain the above copyright
9+
* notice, this list of conditions and the following disclaimer.
10+
* * Redistributions in binary form must reproduce the above copyright
11+
* notice, this list of conditions and the following disclaimer in the
12+
* documentation and/or other materials provided with the distribution.
13+
*
14+
* THIS SOFTWARE IS PROVIDED BY CHRISTOPHE DELORY ``AS IS'' AND ANY
15+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17+
* DISCLAIMED. IN NO EVENT SHALL CHRISTOPHE DELORY BE LIABLE FOR ANY
18+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
*/
25+
package chameleon.content.type;
26+
27+
import java.net.FileNameMap;
28+
import java.net.URLConnection;
29+
30+
/**
31+
* A content type provider based on {@link FileNameMap}.
32+
* @version $Revision: 90 $
33+
* @author Christophe Delory
34+
*/
35+
public class FileNameMapProvider implements ContentTypeProvider
36+
{
37+
@Override
38+
public ContentType getContentType(final String contentName)
39+
{
40+
ContentType ret = null;
41+
final int idx = contentName.lastIndexOf('.');
42+
43+
if (idx >= 0)
44+
{
45+
final String ext = contentName.substring(idx); // Shall not throw IndexOutOfBoundsException.
46+
47+
final FileNameMap map = URLConnection.getFileNameMap();
48+
final String contentType = map.getContentTypeFor(contentName);
49+
50+
if (contentType != null)
51+
{
52+
ret = new ContentType(new String[] { ext }, new String[] { contentType }, null, null);
53+
}
54+
}
55+
56+
return ret;
57+
}
58+
}

contenttype/filetype/pom.xml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<artifactId>contenttype-filetype</artifactId>
8+
<parent>
9+
<groupId>com.github.muff1nman.chameleon</groupId>
10+
<artifactId>chameleon-parent</artifactId>
11+
<version>1.1.2-SNAPSHOT</version>
12+
<relativePath>../..</relativePath>
13+
</parent>
14+
15+
<packaging>jar</packaging>
16+
17+
<dependencies>
18+
<dependency>
19+
<groupId>com.github.muff1nman.chameleon</groupId>
20+
<artifactId>core</artifactId>
21+
</dependency>
22+
</dependencies>
23+
24+
<build>
25+
<plugins>
26+
<plugin>
27+
<groupId>org.apache.maven.plugins</groupId>
28+
<artifactId>maven-compiler-plugin</artifactId>
29+
<version>3.1</version>
30+
<configuration>
31+
<source>1.6</source>
32+
<target>1.6</target>
33+
</configuration>
34+
</plugin>
35+
</plugins>
36+
</build>
37+
38+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
* Copyright (c) 2008, Christophe Delory
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
*
8+
* * Redistributions of source code must retain the above copyright
9+
* notice, this list of conditions and the following disclaimer.
10+
* * Redistributions in binary form must reproduce the above copyright
11+
* notice, this list of conditions and the following disclaimer in the
12+
* documentation and/or other materials provided with the distribution.
13+
*
14+
* THIS SOFTWARE IS PROVIDED BY CHRISTOPHE DELORY ``AS IS'' AND ANY
15+
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17+
* DISCLAIMED. IN NO EVENT SHALL CHRISTOPHE DELORY BE LIABLE FOR ANY
18+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
*/
25+
package chameleon.content.type;
26+
27+
import javax.activation.FileTypeMap;
28+
29+
/**
30+
* A content type provider based on {@link FileTypeMap}.
31+
* @version $Revision: 90 $
32+
* @author Christophe Delory
33+
*/
34+
public class FileTypeMapProvider implements ContentTypeProvider
35+
{
36+
@Override
37+
public ContentType getContentType(final String contentName)
38+
{
39+
ContentType ret = null;
40+
final int idx = contentName.lastIndexOf('.');
41+
42+
if (idx >= 0)
43+
{
44+
final String ext = contentName.substring(idx); // Shall not throw IndexOutOfBoundsException.
45+
46+
final FileTypeMap map = FileTypeMap.getDefaultFileTypeMap();
47+
final String contentType = map.getContentType(contentName);
48+
49+
// Test the default map.
50+
if (!"application/octet-stream".equals(contentType))
51+
{
52+
ret = new ContentType(new String[] { ext }, new String[] { contentType }, null, null);
53+
}
54+
}
55+
56+
return ret;
57+
}
58+
}

contenttype/specificplaylist/pom.xml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<artifactId>contenttype-specificplaylist</artifactId>
8+
<parent>
9+
<groupId>com.github.muff1nman.chameleon</groupId>
10+
<artifactId>chameleon-parent</artifactId>
11+
<version>1.1.2-SNAPSHOT</version>
12+
<relativePath>../..</relativePath>
13+
</parent>
14+
15+
<packaging>jar</packaging>
16+
17+
<dependencies>
18+
<dependency>
19+
<groupId>com.github.muff1nman.chameleon</groupId>
20+
<artifactId>core</artifactId>
21+
</dependency>
22+
</dependencies>
23+
24+
<build>
25+
<plugins>
26+
<plugin>
27+
<groupId>org.apache.maven.plugins</groupId>
28+
<artifactId>maven-compiler-plugin</artifactId>
29+
<version>3.1</version>
30+
<configuration>
31+
<source>1.6</source>
32+
<target>1.6</target>
33+
</configuration>
34+
</plugin>
35+
</plugins>
36+
</build>
37+
38+
</project>

0 commit comments

Comments
 (0)