|
@@ -17,6 +17,7 @@
|
|
|
|
|
|
package de.nplusc.izc.iZpl;
|
|
package de.nplusc.izc.iZpl;
|
|
|
|
|
|
|
|
+import de.nplusc.izc.iZpl.API.shared.ActionPlayListItem;
|
|
import de.nplusc.izc.iZpl.API.shared.PlayListItem;
|
|
import de.nplusc.izc.iZpl.API.shared.PlayListItem;
|
|
import com.sun.net.httpserver.Headers;
|
|
import com.sun.net.httpserver.Headers;
|
|
import com.sun.net.httpserver.HttpExchange;
|
|
import com.sun.net.httpserver.HttpExchange;
|
|
@@ -24,6 +25,7 @@ import com.sun.net.httpserver.HttpHandler;
|
|
import de.nplusc.izc.iZpl.API.IZPLApi;
|
|
import de.nplusc.izc.iZpl.API.IZPLApi;
|
|
import de.nplusc.izc.iZpl.API.shared.InvalidPlayListFileException;
|
|
import de.nplusc.izc.iZpl.API.shared.InvalidPlayListFileException;
|
|
import de.nplusc.izc.iZpl.API.shared.SinglePlayListItem;
|
|
import de.nplusc.izc.iZpl.API.shared.SinglePlayListItem;
|
|
|
|
+import de.nplusc.izc.iZpl.Utils.QuitterFakePlaylistItem;
|
|
import de.nplusc.izc.iZpl.Utils.shared.PLFileIO;
|
|
import de.nplusc.izc.iZpl.Utils.shared.PLFileIO;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
@@ -63,7 +65,9 @@ public class PlProcessorV2 implements HttpHandler
|
|
private HashMap<String,Object> options;
|
|
private HashMap<String,Object> options;
|
|
private WatchService observer;
|
|
private WatchService observer;
|
|
private final Object lock;
|
|
private final Object lock;
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ private static final QuitterFakePlaylistItem quitter = new QuitterFakePlaylistItem();
|
|
|
|
+
|
|
public PlProcessorV2()
|
|
public PlProcessorV2()
|
|
{
|
|
{
|
|
lock = new Object();
|
|
lock = new Object();
|
|
@@ -153,8 +157,12 @@ public class PlProcessorV2 implements HttpHandler
|
|
PlProcessorV2.failRSP = failRSP;
|
|
PlProcessorV2.failRSP = failRSP;
|
|
}
|
|
}
|
|
//</editor-fold>
|
|
//</editor-fold>
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public boolean isFileChooserMode() {
|
|
|
|
+ return FileChooserMode;
|
|
|
|
+ }
|
|
|
|
+
|
|
public void InitializeOnPath(String PlPath)
|
|
public void InitializeOnPath(String PlPath)
|
|
{
|
|
{
|
|
if(PlPath.equals("///")) //abusing a invalid path for
|
|
if(PlPath.equals("///")) //abusing a invalid path for
|
|
@@ -263,7 +271,9 @@ public class PlProcessorV2 implements HttpHandler
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ lst.sort((x,y)->{return x.getTitle().compareTo(y.getTitle());});
|
|
l.trace(yp.dump(lst));
|
|
l.trace(yp.dump(lst));
|
|
|
|
+ lst.add(quitter);
|
|
return lst;
|
|
return lst;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -391,6 +401,7 @@ public class PlProcessorV2 implements HttpHandler
|
|
{
|
|
{
|
|
pool = poolTemp;
|
|
pool = poolTemp;
|
|
}
|
|
}
|
|
|
|
+ pool.putIfAbsent(quitter+"",quitter);
|
|
l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
l.trace("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>");
|
|
l.trace("<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>");
|
|
l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
l.trace("><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><");
|
|
@@ -488,6 +499,12 @@ public class PlProcessorV2 implements HttpHandler
|
|
response=forceList.get(0);
|
|
response=forceList.get(0);
|
|
forceList.remove(0);
|
|
forceList.remove(0);
|
|
}
|
|
}
|
|
|
|
+ if(response instanceof ActionPlayListItem) //magic unused path
|
|
|
|
+ {
|
|
|
|
+ ((ActionPlayListItem) response).executeAction();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
history.add(response);
|
|
history.add(response);
|
|
if(history.size()>1000)
|
|
if(history.size()>1000)
|
|
{
|
|
{
|