Refactored and reformatted code to use less static variables
This commit is contained in:
@@ -1,13 +1,6 @@
|
||||
package eu.crushedpixel.replaymod.studio;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import de.johni0702.replaystudio.PacketData;
|
||||
import de.johni0702.replaystudio.filter.ChangeTimestampFilter;
|
||||
import de.johni0702.replaystudio.filter.RemoveFilter;
|
||||
@@ -18,48 +11,55 @@ import de.johni0702.replaystudio.studio.ReplayStudio;
|
||||
import eu.crushedpixel.replaymod.recording.ReplayMetaData;
|
||||
import eu.crushedpixel.replaymod.utils.ReplayFileIO;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
public class StudioImplementation {
|
||||
|
||||
public static void trimReplay(File replayFile, boolean isTmcpr, int beginning, int ending, File outputFile) throws IOException {
|
||||
ReplayStudio studio = new ReplayStudio();
|
||||
studio.setWrappingEnabled(false);
|
||||
|
||||
public static void trimReplay(File replayFile, boolean isTmcpr, int beginning, int ending, File outputFile) throws IOException {
|
||||
ReplayStudio studio = new ReplayStudio();
|
||||
studio.setWrappingEnabled(false);
|
||||
PacketStream stream = studio.createReplayStream(new FileInputStream(replayFile), isTmcpr);
|
||||
stream.addFilter(new SquashFilter(), -1, beginning);
|
||||
stream.addFilter(new RemoveFilter(), ending, -1);
|
||||
|
||||
|
||||
ChangeTimestampFilter ctf = new ChangeTimestampFilter();
|
||||
JsonObject cfg = new JsonObject();
|
||||
cfg.addProperty("offset", -beginning);
|
||||
ctf.init(studio, cfg);
|
||||
|
||||
|
||||
stream.addFilter(ctf, beginning, ending);
|
||||
|
||||
|
||||
File temp = File.createTempFile("trimmed", "tmcpr");
|
||||
temp.deleteOnExit();
|
||||
|
||||
|
||||
FileOutputStream fos = new FileOutputStream(temp);
|
||||
ReplayOutputStream out = new ReplayOutputStream(studio, fos);
|
||||
PacketData packetData;
|
||||
|
||||
|
||||
while((packetData = stream.next()) != null) {
|
||||
out.write(packetData);
|
||||
}
|
||||
for(PacketData data : stream.end()) {
|
||||
out.write(data);
|
||||
}
|
||||
|
||||
|
||||
out.close();
|
||||
|
||||
|
||||
ReplayMetaData metaData = ReplayFileIO.getMetaData(replayFile);
|
||||
ending = Math.min(metaData.getDuration(), ending);
|
||||
metaData.setDuration(ending-beginning);
|
||||
|
||||
metaData.setDuration(ending - beginning);
|
||||
|
||||
outputFile.createNewFile();
|
||||
|
||||
|
||||
ReplayFileIO.writeReplayFile(outputFile, temp, metaData);
|
||||
}
|
||||
|
||||
public static void connectReplayFiles(List<File> filesToConnect, File outputFile) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//TODO Work with Johni to connect multiple Replay Files
|
||||
public static void connectReplayFiles(List<File> filesToConnect, File outputFile) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user