gui: change name, author
[fanfix.git] / src / be / nikiroo / fanfix / library / RemoteLibraryServer.java
index 7d5a0ae10d988f1a79f52f7732dfb0411e5f057e..aa5f3056a2536981850498c17fb5a6e560bd1f4f 100644 (file)
@@ -92,7 +92,7 @@ public class RemoteLibraryServer extends ServerObject {
                        }
                }
 
-               String trace = "[" + command + "] ";
+               String trace = "[ " + command + "] ";
                for (Object arg : args) {
                        trace += arg + " ";
                }
@@ -103,12 +103,39 @@ public class RemoteLibraryServer extends ServerObject {
                        return null;
                }
 
+               long start = new Date().getTime();
+               Object rep = doRequest(action, command, args);
+
+               getTraceHandler().trace(
+                               String.format("[>%s]: %d ms", command,
+                                               (new Date().getTime() - start)));
+
+               return rep;
+       }
+
+       private Object doRequest(ConnectActionServerObject action, String command,
+                       Object[] args) throws NoSuchFieldException, NoSuchMethodException,
+                       ClassNotFoundException, IOException {
                if ("PING".equals(command)) {
                        return "PONG";
                } else if ("GET_METADATA".equals(command)) {
                        if ("*".equals(args[0])) {
                                Progress pg = createPgForwarder(action);
-                               List<MetaData> metas = Instance.getLibrary().getMetas(pg);
+
+                               List<MetaData> metas = new ArrayList<MetaData>();
+
+                               for (MetaData meta : Instance.getLibrary().getMetas(pg)) {
+                                       MetaData light;
+                                       if (meta.getCover() == null) {
+                                               light = meta;
+                                       } else {
+                                               light = meta.clone();
+                                               light.setCover(null);
+                                       }
+
+                                       metas.add(light);
+                               }
+
                                forcePgDoneSent(pg);
                                return metas.toArray(new MetaData[] {});
                        }
@@ -158,10 +185,10 @@ public class RemoteLibraryServer extends ServerObject {
                } else if ("SET_SOURCE_COVER".equals(command)) {
                        Instance.getLibrary().setSourceCover((String) args[0],
                                        (String) args[1]);
-               } else if ("CHANGE_SOURCE".equals(command)) {
+               } else if ("CHANGE_STA".equals(command)) {
                        Progress pg = createPgForwarder(action);
-                       Instance.getLibrary().changeSource((String) args[0],
-                                       (String) args[1], pg);
+                       Instance.getLibrary().changeSTA((String) args[0], (String) args[1],
+                                       (String) args[2], (String) args[3], pg);
                        forcePgDoneSent(pg);
                } else if ("EXIT".equals(command)) {
                        stop(0, false);
@@ -304,9 +331,10 @@ public class RemoteLibraryServer extends ServerObject {
                                                Instance.getTraceHandler().error(e);
                                        }
 
-                                       isDoneForwarded[0] = pg.isDone();
                                        lastTime[0] = new Date().getTime();
                                }
+
+                               isDoneForwarded[0] = (pg.getProgress() >= pg.getMax());
                        }
                });