Package com.tulskiy.musique.playlist.formatting.tokens

Examples of com.tulskiy.musique.playlist.formatting.tokens.Expression


    public void saveM3U(File file) {
        try {
            PrintWriter pw = new PrintWriter(file);
            pw.println("#EXTM3U");
            Expression expression = Parser.parse("[%artist% - ]%title%");
            for (Track track : this) {
                if (track.getTrackData().isStream()) {
                    pw.println(track.getTrackData().getLocation());
                } else if (track.getTrackData().isFile()) {
                    int seconds = (int) AudioMath.samplesToMillis(
                            track.getTrackData().getTotalSamples(),
                            track.getTrackData().getSampleRate()) / 1000;
                    String title = String.valueOf(expression.eval(track));
                    pw.printf("#EXTINF:%d,%s\n%s\n",
                            seconds, title,
                            track.getTrackData().getFile().getAbsolutePath());
                }
            }
View Full Code Here


    }

    public void savePLS(File file) {
        try {
            PrintWriter pw = new PrintWriter(file);
            Expression expression = Parser.parse("[%artist% - ]%title%");
            pw.println("[playlist]");
            pw.println("NumberOfEntries=" + size());
            for (int i = 0; i < size(); i++) {
                Track track = get(i);
                int index = i + 1;
                if (track.getTrackData().isFile()) {
                    pw.printf("File%d=%s\n", index, track.getTrackData().getFile().getAbsolutePath());
                    pw.printf("Title%d=%s\n", index, expression.eval(track));
                    pw.printf("Length%d=%s\n", index, (int) AudioMath.samplesToMillis(
                            track.getTrackData().getTotalSamples(),
                            track.getTrackData().getSampleRate()) / 1000);
                } else if (track.getTrackData().isStream()) {
                    pw.printf("File%d=%s\n", index, track.getTrackData().getLocation().normalize());
View Full Code Here

        } else {
            sortAscending = true;
            sortBy = expression;
        }

        final Expression e = Parser.parse(expression);
        TrackComparator trackComparator = new TrackComparator(e);
        if (sortAscending)
            Collections.sort(this, trackComparator);
        else
            Collections.sort(this, Collections.reverseOrder(trackComparator));
View Full Code Here

        if (Util.isEmpty(view)) {
            view = DEFAULT_VIEW;
        }

        Expression expr = Parser.parse(view);
        for (Track track : data) {
            Object val = expr.eval(track);
            if (val != null) {
                String[] path = val.toString().split("\\|");

                if (path.length < 2) {
                    continue;
View Full Code Here

        s.getTrackData().setLocation(file.toURI().toString());
    }

    @Test
    public void testBrackets() {
        Expression t = Parser.parse("[%artist% - ]%title%");

        s.getTrackData().addTitle("title");
        assertEquals("title", t.eval(s));

        s.getTrackData().addArtist("artist");
        assertEquals("artist - title", t.eval(s));
    }
View Full Code Here

        assertEquals("artist - title", t.eval(s));
    }

    @Test
    public void testIf3() {
        Expression t = Parser.parse("$if3(%artist%, %title%, %albumArtist%, unknown)");

        s.getTrackData().setTagFieldValues(FieldKey.ARTIST, "artist");
        assertEquals("artist", t.eval(s));
        s.getTrackData().removeTagField(FieldKey.ARTIST);
        s.getTrackData().setTagFieldValues(FieldKey.TITLE, "title");
        assertEquals("title", t.eval(s));
        s.getTrackData().setTagFieldValues(FieldKey.TITLE, "");
        s.getTrackData().setTagFieldValues(FieldKey.ALBUM_ARTIST, "album artist");
        assertEquals("album artist", t.eval(s));
        s.getTrackData().removeTagField(FieldKey.ALBUM_ARTIST);
        // file name is taken once title is empty
        assertEquals("sample", t.eval(s));
       
        t = Parser.parse("$if3(%genre%, unknown)");
        s.getTrackData().setTagFieldValues(FieldKey.GENRE, "genre");
        assertEquals("genre", t.eval(s));
        s.getTrackData().setTagFieldValues(FieldKey.GENRE, "");
        assertEquals("unknown", t.eval(s));
        s.getTrackData().setTagFieldValues(FieldKey.GENRE, (String) null);
        assertEquals("unknown", t.eval(s));
    }
View Full Code Here

        assertEquals("unknown", t.eval(s));
    }

    @Test
    public void testIf1() {
        Expression t = Parser.parse("$if1(%artist%,%artist%,%title%)");

        s.getTrackData().setTagFieldValues(FieldKey.ARTIST, "artist");
        s.getTrackData().setTagFieldValues(FieldKey.TITLE, "title");
        assertEquals("artist", t.eval(s));

        s.getTrackData().removeTagField(FieldKey.ARTIST);
        assertEquals("title", t.eval(s));
    }
View Full Code Here

        assertEquals("title", t.eval(s));
    }

    @Test
    public void testQuot() {
        Expression t = Parser.parse("'%artist%'%title%");

        s.getTrackData().addArtist("artist here");
        s.getTrackData().addTitle("title here");

        assertEquals("%artist%title here", t.eval(s));
    }
View Full Code Here

        assertEquals("%artist%title here", t.eval(s));
    }

    @Test
    public void testSmth() {
        Expression t = Parser.parse("$if1($strcmp(%albumArtist%,%artist%),%artist%,$if3(%album%,Unknown))");

        s.getTrackData().addAlbumArtist("album artist");
        s.getTrackData().addYear("year");
        s.getTrackData().addAlbum("album");
        s.getTrackData().addDisc("1");
View Full Code Here

        String text = (String) namePattern.getEditor().getItem();
        previewModel.setRowCount(0);
        paths.clear();
        if (!Util.isEmpty(text)) {
            text = text.replaceAll("%([\\w]+)%", "\\$escape($0)");
            Expression expression = Parser.parse(text);
            for (Track track : tracks) {
                Object key;
                if (track.getTrackData().isFile() && !track.getTrackData().isCue()) {
                    File file = track.getTrackData().getFile();
                    key = file.getName();
                    StringBuilder sb = new StringBuilder();
                    Object o = expression.eval(track);
                    if (o == null)
                        continue;
                    sb.append(o);
                    sb.append(".").append(Util.getFileExt(file));
                    File output = null;
View Full Code Here

TOP

Related Classes of com.tulskiy.musique.playlist.formatting.tokens.Expression

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.