package draggablemp3player;

import javafx.scene.media.*;
import javafx.scene.image.Image;
import java.lang.Exception;
import java.lang.Throwable;

public class Song {
    public-init var baseURL:String;
    public-init var filename:String;
    public-init var name:String;
    public-init var artist:String;
    public-init var album:String;
    public-init var cover:Image;
    
    var media:Media = null;
    public function getMedia():Media {
        if (media == null) {
            println("Loading song from: {baseURL}{filename}");
            media = Media {
                source: "{baseURL}{filename}"
                onError: function(e:MediaError) {
                    println("got a media error {e}");
                }
            }
        }
        return media;
    }

    public function closeMedia():Void {
        if (media != null) {
            media.source = null;
            media = null;
        }
    }
}