Let models create their download
Add createDownload to Model. This method is called by the recorder to create and then start a download. It is a method of Model so that each site and each download can create a specialized download.
This commit is contained in:
parent
ad71f0cf11
commit
32807a2fde
|
@ -10,6 +10,7 @@ import com.squareup.moshi.JsonReader;
|
|||
import com.squareup.moshi.JsonWriter;
|
||||
|
||||
import ctbrec.Model;
|
||||
import ctbrec.recorder.download.Download;
|
||||
import ctbrec.recorder.download.StreamSource;
|
||||
import ctbrec.sites.Site;
|
||||
import javafx.beans.property.BooleanProperty;
|
||||
|
@ -212,4 +213,9 @@ public class JavaFxModel implements Model {
|
|||
public int compareTo(Model o) {
|
||||
return delegate.compareTo(o);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Download createDownload() {
|
||||
return delegate.createDownload();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,9 @@ import java.util.concurrent.ExecutionException;
|
|||
import com.squareup.moshi.JsonReader;
|
||||
import com.squareup.moshi.JsonWriter;
|
||||
|
||||
import ctbrec.recorder.download.Download;
|
||||
import ctbrec.recorder.download.HlsDownload;
|
||||
import ctbrec.recorder.download.MergedHlsDownload;
|
||||
import ctbrec.sites.Site;
|
||||
|
||||
public abstract class AbstractModel implements Model {
|
||||
|
@ -184,4 +187,13 @@ public abstract class AbstractModel implements Model {
|
|||
public Site getSite() {
|
||||
return site;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Download createDownload() {
|
||||
if(Config.isServerMode()) {
|
||||
return new HlsDownload(getSite().getHttpClient());
|
||||
} else {
|
||||
return new MergedHlsDownload(getSite().getHttpClient());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.iheartradio.m3u8.PlaylistException;
|
|||
import com.squareup.moshi.JsonReader;
|
||||
import com.squareup.moshi.JsonWriter;
|
||||
|
||||
import ctbrec.recorder.download.Download;
|
||||
import ctbrec.recorder.download.StreamSource;
|
||||
import ctbrec.sites.Site;
|
||||
|
||||
|
@ -101,6 +102,6 @@ public interface Model extends Comparable<Model> {
|
|||
|
||||
public void setSuspended(boolean suspended);
|
||||
|
||||
|
||||
public Download createDownload();
|
||||
|
||||
}
|
|
@ -61,8 +61,6 @@ import ctbrec.io.HttpClient;
|
|||
import ctbrec.io.StreamRedirectThread;
|
||||
import ctbrec.recorder.PlaylistGenerator.InvalidPlaylistException;
|
||||
import ctbrec.recorder.download.Download;
|
||||
import ctbrec.recorder.download.HlsDownload;
|
||||
import ctbrec.recorder.download.MergedHlsDownload;
|
||||
|
||||
public class LocalRecorder implements Recorder {
|
||||
|
||||
|
@ -194,13 +192,7 @@ public class LocalRecorder implements Recorder {
|
|||
}
|
||||
|
||||
LOG.debug("Starting recording for model {}", model.getName());
|
||||
Download download;
|
||||
if (Config.isServerMode()) {
|
||||
download = new HlsDownload(client);
|
||||
} else {
|
||||
download = new MergedHlsDownload(client);
|
||||
}
|
||||
|
||||
Download download = model.createDownload();
|
||||
recordingProcesses.put(model, download);
|
||||
new Thread() {
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue