diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 3794c0f2a..76f5ca055 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -1000,6 +1000,8 @@ public class Editor extends JFrame implements RunnerListener { List ports = Base.getDiscoveryManager().discovery(); + ports = Base.getPlatform().filterPorts(ports, Preferences.getBoolean("serial.ports.showall")); + Collections.sort(ports, new Comparator() { @Override public int compare(BoardPort o1, BoardPort o2) { diff --git a/arduino-core/src/processing/app/Platform.java b/arduino-core/src/processing/app/Platform.java index 0ee14fe69..97f25aae6 100644 --- a/arduino-core/src/processing/app/Platform.java +++ b/arduino-core/src/processing/app/Platform.java @@ -30,6 +30,7 @@ import java.util.Map; import javax.swing.UIManager; +import cc.arduino.packages.BoardPort; import com.sun.jna.Library; import com.sun.jna.Native; import processing.app.debug.TargetBoard; @@ -217,4 +218,8 @@ public class Platform { _("Unspecified platform, no launcher available.\nTo enable opening URLs or folders, add a \n\"launcher=/path/to/app\" line to preferences.txt"), null); } + + public List filterPorts(List ports, boolean aBoolean) { + return new LinkedList(ports); + } } diff --git a/arduino-core/src/processing/app/macosx/Platform.java b/arduino-core/src/processing/app/macosx/Platform.java index 486a986ad..21ee82e08 100644 --- a/arduino-core/src/processing/app/macosx/Platform.java +++ b/arduino-core/src/processing/app/macosx/Platform.java @@ -22,6 +22,7 @@ package processing.app.macosx; +import cc.arduino.packages.BoardPort; import com.apple.eio.FileManager; import org.apache.commons.exec.CommandLine; import org.apache.commons.exec.Executor; @@ -35,7 +36,8 @@ import java.awt.*; import java.io.*; import java.lang.reflect.Method; import java.net.URI; -import java.util.Map; +import java.util.*; +import java.util.List; /** @@ -239,4 +241,20 @@ public class Platform extends processing.app.Platform { return super.preListAllCandidateDevices(); } } + + @Override + public java.util.List filterPorts(java.util.List ports, boolean showAll) { + if (showAll) { + return super.filterPorts(ports, true); + } + + List filteredPorts = new LinkedList(); + for (BoardPort port : ports) { + if (!port.getAddress().startsWith("/dev/cu.")) { + filteredPorts.add(port); + } + } + + return filteredPorts; + } }