// This is an overload of redetectCaptureDevices. It is meant to only redetect devices for // one CaptureDeviceManager. For instance discover NetworkEncoder devices public void redetectCaptureDevices(CaptureDeviceManager mgr) { if (Sage.DBG) System.out.println("MMC is re-doing the capture device detection on " + mgr); mgr.detectCaptureDevices( (CaptureDevice[]) globalEncoderMap.values().toArray(new CaptureDevice[0])); CaptureDevice[] newDevs = mgr.getCaptureDevices(); if (Sage.DBG) System.out.println("devices detected=" + java.util.Arrays.asList(newDevs)); updateCaptureDeviceObjects(newDevs); if (Sage.DBG) System.out.println("EncoderMap=" + globalEncoderMap); NetworkClient.distributeRecursivePropertyChange("mmc/encoders"); Seeker.getInstance().kick(); Scheduler.getInstance().kick(true); }
private void init() { alive = true; for (int i = 0; i < capDevMgrs.size(); i++) { CaptureDeviceManager mgr = (CaptureDeviceManager) capDevMgrs.get(i); if (Sage.DBG) System.out.println("MMC calling detectCaptureDevices on " + mgr); mgr.detectCaptureDevices( (CaptureDevice[]) globalEncoderMap.values().toArray(new CaptureDevice[0])); CaptureDevice[] newDevs = mgr.getCaptureDevices(); if (Sage.DBG) System.out.println("devices detected=" + java.util.Arrays.asList(newDevs)); for (int j = 0; j < newDevs.length; j++) globalEncoderMap.put(newDevs[j].getName(), newDevs[j]); if (Sage.DBG) System.out.println("EncoderMap=" + globalEncoderMap); } }