newBuilder()
+ .setType(io.grpc.MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName(generateFullMethodName(
+ "proto.Builder", "Autocomplete"))
+ .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ cc.arduino.builder.BuildParams.getDefaultInstance()))
+ .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
+ cc.arduino.builder.Response.getDefaultInstance()))
+ .build();
+
+ /**
+ * Creates a new async stub that supports all call types for the service
+ */
+ public static BuilderStub newStub(io.grpc.Channel channel) {
+ return new BuilderStub(channel);
+ }
+
+ /**
+ * Creates a new blocking-style stub that supports unary and streaming output calls on the service
+ */
+ public static BuilderBlockingStub newBlockingStub(
+ io.grpc.Channel channel) {
+ return new BuilderBlockingStub(channel);
+ }
+
+ /**
+ * Creates a new ListenableFuture-style stub that supports unary calls on the service
+ */
+ public static BuilderFutureStub newFutureStub(
+ io.grpc.Channel channel) {
+ return new BuilderFutureStub(channel);
+ }
+
+ /**
+ *
+ * Interface exported by the server.
+ *
+ */
+ public static abstract class BuilderImplBase implements io.grpc.BindableService {
+
+ /**
+ *
+ * A server-to-client streaming RPC.
+ * Obtains the Features available within the given Rectangle. Results are
+ * streamed rather than returned at once (e.g. in a response message with a
+ * repeated field), as the rectangle may cover a large area and contain a
+ * huge number of features.
+ *
+ */
+ public void build(cc.arduino.builder.BuildParams request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ asyncUnimplementedUnaryCall(METHOD_BUILD, responseObserver);
+ }
+
+ /**
+ */
+ public void autocomplete(cc.arduino.builder.BuildParams request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ asyncUnimplementedUnaryCall(METHOD_AUTOCOMPLETE, responseObserver);
+ }
+
+ @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
+ return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+ .addMethod(
+ METHOD_BUILD,
+ asyncServerStreamingCall(
+ new MethodHandlers<
+ cc.arduino.builder.BuildParams,
+ cc.arduino.builder.Response>(
+ this, METHODID_BUILD)))
+ .addMethod(
+ METHOD_AUTOCOMPLETE,
+ asyncUnaryCall(
+ new MethodHandlers<
+ cc.arduino.builder.BuildParams,
+ cc.arduino.builder.Response>(
+ this, METHODID_AUTOCOMPLETE)))
+ .build();
+ }
+ }
+
+ /**
+ *
+ * Interface exported by the server.
+ *
+ */
+ public static final class BuilderStub extends io.grpc.stub.AbstractStub {
+ private BuilderStub(io.grpc.Channel channel) {
+ super(channel);
+ }
+
+ private BuilderStub(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected BuilderStub build(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ return new BuilderStub(channel, callOptions);
+ }
+
+ /**
+ *
+ * A server-to-client streaming RPC.
+ * Obtains the Features available within the given Rectangle. Results are
+ * streamed rather than returned at once (e.g. in a response message with a
+ * repeated field), as the rectangle may cover a large area and contain a
+ * huge number of features.
+ *
+ */
+ public void build(cc.arduino.builder.BuildParams request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ asyncServerStreamingCall(
+ getChannel().newCall(METHOD_BUILD, getCallOptions()), request, responseObserver);
+ }
+
+ /**
+ */
+ public void autocomplete(cc.arduino.builder.BuildParams request,
+ io.grpc.stub.StreamObserver responseObserver) {
+ asyncUnaryCall(
+ getChannel().newCall(METHOD_AUTOCOMPLETE, getCallOptions()), request, responseObserver);
+ }
+ }
+
+ /**
+ *
+ * Interface exported by the server.
+ *
+ */
+ public static final class BuilderBlockingStub extends io.grpc.stub.AbstractStub {
+ private BuilderBlockingStub(io.grpc.Channel channel) {
+ super(channel);
+ }
+
+ private BuilderBlockingStub(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected BuilderBlockingStub build(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ return new BuilderBlockingStub(channel, callOptions);
+ }
+
+ /**
+ *
+ * A server-to-client streaming RPC.
+ * Obtains the Features available within the given Rectangle. Results are
+ * streamed rather than returned at once (e.g. in a response message with a
+ * repeated field), as the rectangle may cover a large area and contain a
+ * huge number of features.
+ *
+ */
+ public java.util.Iterator build(
+ cc.arduino.builder.BuildParams request) {
+ return blockingServerStreamingCall(
+ getChannel(), METHOD_BUILD, getCallOptions(), request);
+ }
+
+ /**
+ */
+ public cc.arduino.builder.Response autocomplete(cc.arduino.builder.BuildParams request) {
+ return blockingUnaryCall(
+ getChannel(), METHOD_AUTOCOMPLETE, getCallOptions(), request);
+ }
+ }
+
+ /**
+ *
+ * Interface exported by the server.
+ *
+ */
+ public static final class BuilderFutureStub extends io.grpc.stub.AbstractStub {
+ private BuilderFutureStub(io.grpc.Channel channel) {
+ super(channel);
+ }
+
+ private BuilderFutureStub(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected BuilderFutureStub build(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ return new BuilderFutureStub(channel, callOptions);
+ }
+
+ /**
+ */
+ public com.google.common.util.concurrent.ListenableFuture autocomplete(
+ cc.arduino.builder.BuildParams request) {
+ return futureUnaryCall(
+ getChannel().newCall(METHOD_AUTOCOMPLETE, getCallOptions()), request);
+ }
+ }
+
+ private static final int METHODID_BUILD = 0;
+ private static final int METHODID_AUTOCOMPLETE = 1;
+
+ private static final class MethodHandlers implements
+ io.grpc.stub.ServerCalls.UnaryMethod,
+ io.grpc.stub.ServerCalls.ServerStreamingMethod,
+ io.grpc.stub.ServerCalls.ClientStreamingMethod,
+ io.grpc.stub.ServerCalls.BidiStreamingMethod {
+ private final BuilderImplBase serviceImpl;
+ private final int methodId;
+
+ MethodHandlers(BuilderImplBase serviceImpl, int methodId) {
+ this.serviceImpl = serviceImpl;
+ this.methodId = methodId;
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public void invoke(Req request, io.grpc.stub.StreamObserver responseObserver) {
+ switch (methodId) {
+ case METHODID_BUILD:
+ serviceImpl.build((cc.arduino.builder.BuildParams) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ case METHODID_AUTOCOMPLETE:
+ serviceImpl.autocomplete((cc.arduino.builder.BuildParams) request,
+ (io.grpc.stub.StreamObserver) responseObserver);
+ break;
+ default:
+ throw new AssertionError();
+ }
+ }
+
+ @java.lang.Override
+ public io.grpc.stub.StreamObserver invoke(
+ io.grpc.stub.StreamObserver responseObserver) {
+ switch (methodId) {
+ default:
+ throw new AssertionError();
+ }
+ }
+ }
+
+ private static final class BuilderDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier {
+ @java.lang.Override
+ public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
+ return cc.arduino.builder.BuilderProto.getDescriptor();
+ }
+ }
+
+ private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
+
+ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
+ io.grpc.ServiceDescriptor result = serviceDescriptor;
+ if (result == null) {
+ synchronized (BuilderGrpc.class) {
+ result = serviceDescriptor;
+ if (result == null) {
+ serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
+ .setSchemaDescriptor(new BuilderDescriptorSupplier())
+ .addMethod(METHOD_BUILD)
+ .addMethod(METHOD_AUTOCOMPLETE)
+ .build();
+ }
+ }
+ }
+ return result;
+ }
+}
diff --git a/arduino-core/src/cc/arduino/builder/BuilderProto.java b/arduino-core/src/cc/arduino/builder/BuilderProto.java
new file mode 100644
index 00000000000..ec4214ef5ca
--- /dev/null
+++ b/arduino-core/src/cc/arduino/builder/BuilderProto.java
@@ -0,0 +1,78 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: builder.proto
+
+package cc.arduino.builder;
+
+public final class BuilderProto {
+ private BuilderProto() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistryLite registry) {
+ }
+
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ registerAllExtensions(
+ (com.google.protobuf.ExtensionRegistryLite) registry);
+ }
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_proto_BuildParams_descriptor;
+ static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_proto_BuildParams_fieldAccessorTable;
+ static final com.google.protobuf.Descriptors.Descriptor
+ internal_static_proto_Response_descriptor;
+ static final
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internal_static_proto_Response_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\rbuilder.proto\022\005proto\"\307\002\n\013BuildParams\022\027" +
+ "\n\017hardwareFolders\030\001 \001(\t\022\024\n\014toolsFolders\030" +
+ "\002 \001(\t\022\037\n\027builtInLibrariesFolders\030\003 \001(\t\022\035" +
+ "\n\025otherLibrariesFolders\030\004 \001(\t\022\026\n\016sketchL" +
+ "ocation\030\005 \001(\t\022\014\n\004fQBN\030\006 \001(\t\022\031\n\021arduinoAP" +
+ "IVersion\030\007 \001(\t\022\035\n\025customBuildProperties\030" +
+ "\010 \001(\t\022\026\n\016buildCachePath\030\t \001(\t\022\021\n\tbuildPa" +
+ "th\030\n \001(\t\022\025\n\rwarningsLevel\030\013 \001(\t\022\026\n\016codeC" +
+ "ompleteAt\030\014 \001(\t\022\017\n\007verbose\030\r \001(\010\"\030\n\010Resp" +
+ "onse\022\014\n\004line\030\001 \001(\t2r\n\007Builder\0220\n\005Build\022\022",
+ ".proto.BuildParams\032\017.proto.Response\"\0000\001\022" +
+ "5\n\014Autocomplete\022\022.proto.BuildParams\032\017.pr" +
+ "oto.Response\"\000B$\n\022cc.arduino.builderB\014Bu" +
+ "ilderProtoP\001b\006proto3"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ }, assigner);
+ internal_static_proto_BuildParams_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_proto_BuildParams_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_proto_BuildParams_descriptor,
+ new java.lang.String[] { "HardwareFolders", "ToolsFolders", "BuiltInLibrariesFolders", "OtherLibrariesFolders", "SketchLocation", "FQBN", "ArduinoAPIVersion", "CustomBuildProperties", "BuildCachePath", "BuildPath", "WarningsLevel", "CodeCompleteAt", "Verbose", });
+ internal_static_proto_Response_descriptor =
+ getDescriptor().getMessageTypes().get(1);
+ internal_static_proto_Response_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
+ internal_static_proto_Response_descriptor,
+ new java.lang.String[] { "Line", });
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/arduino-core/src/cc/arduino/builder/Response.java b/arduino-core/src/cc/arduino/builder/Response.java
new file mode 100644
index 00000000000..a83b76e5042
--- /dev/null
+++ b/arduino-core/src/cc/arduino/builder/Response.java
@@ -0,0 +1,494 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: builder.proto
+
+package cc.arduino.builder;
+
+/**
+ * Protobuf type {@code proto.Response}
+ */
+public final class Response extends
+ com.google.protobuf.GeneratedMessageV3 implements
+ // @@protoc_insertion_point(message_implements:proto.Response)
+ ResponseOrBuilder {
+ // Use Response.newBuilder() to construct.
+ private Response(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
+ super(builder);
+ }
+ private Response() {
+ line_ = "";
+ }
+
+ @java.lang.Override
+ public final com.google.protobuf.UnknownFieldSet
+ getUnknownFields() {
+ return com.google.protobuf.UnknownFieldSet.getDefaultInstance();
+ }
+ private Response(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ this();
+ int mutable_bitField0_ = 0;
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!input.skipField(tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ java.lang.String s = input.readStringRequireUtf8();
+
+ line_ = s;
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e).setUnfinishedMessage(this);
+ } finally {
+ makeExtensionsImmutable();
+ }
+ }
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return cc.arduino.builder.BuilderProto.internal_static_proto_Response_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return cc.arduino.builder.BuilderProto.internal_static_proto_Response_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ cc.arduino.builder.Response.class, cc.arduino.builder.Response.Builder.class);
+ }
+
+ public static final int LINE_FIELD_NUMBER = 1;
+ private volatile java.lang.Object line_;
+ /**
+ * optional string line = 1;
+ */
+ public java.lang.String getLine() {
+ java.lang.Object ref = line_;
+ if (ref instanceof java.lang.String) {
+ return (java.lang.String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ line_ = s;
+ return s;
+ }
+ }
+ /**
+ * optional string line = 1;
+ */
+ public com.google.protobuf.ByteString
+ getLineBytes() {
+ java.lang.Object ref = line_;
+ if (ref instanceof java.lang.String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ line_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized == 1) return true;
+ if (isInitialized == 0) return false;
+
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ if (!getLineBytes().isEmpty()) {
+ com.google.protobuf.GeneratedMessageV3.writeString(output, 1, line_);
+ }
+ }
+
+ public int getSerializedSize() {
+ int size = memoizedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (!getLineBytes().isEmpty()) {
+ size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, line_);
+ }
+ memoizedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ public boolean equals(final java.lang.Object obj) {
+ if (obj == this) {
+ return true;
+ }
+ if (!(obj instanceof cc.arduino.builder.Response)) {
+ return super.equals(obj);
+ }
+ cc.arduino.builder.Response other = (cc.arduino.builder.Response) obj;
+
+ boolean result = true;
+ result = result && getLine()
+ .equals(other.getLine());
+ return result;
+ }
+
+ @java.lang.Override
+ public int hashCode() {
+ if (memoizedHashCode != 0) {
+ return memoizedHashCode;
+ }
+ int hash = 41;
+ hash = (19 * hash) + getDescriptorForType().hashCode();
+ hash = (37 * hash) + LINE_FIELD_NUMBER;
+ hash = (53 * hash) + getLine().hashCode();
+ hash = (29 * hash) + unknownFields.hashCode();
+ memoizedHashCode = hash;
+ return hash;
+ }
+
+ public static cc.arduino.builder.Response parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static cc.arduino.builder.Response parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static cc.arduino.builder.Response parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data);
+ }
+ public static cc.arduino.builder.Response parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return PARSER.parseFrom(data, extensionRegistry);
+ }
+ public static cc.arduino.builder.Response parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static cc.arduino.builder.Response parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static cc.arduino.builder.Response parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input);
+ }
+ public static cc.arduino.builder.Response parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+ }
+ public static cc.arduino.builder.Response parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input);
+ }
+ public static cc.arduino.builder.Response parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return com.google.protobuf.GeneratedMessageV3
+ .parseWithIOException(PARSER, input, extensionRegistry);
+ }
+
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder() {
+ return DEFAULT_INSTANCE.toBuilder();
+ }
+ public static Builder newBuilder(cc.arduino.builder.Response prototype) {
+ return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() {
+ return this == DEFAULT_INSTANCE
+ ? new Builder() : new Builder().mergeFrom(this);
+ }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ /**
+ * Protobuf type {@code proto.Response}
+ */
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessageV3.Builder implements
+ // @@protoc_insertion_point(builder_implements:proto.Response)
+ cc.arduino.builder.ResponseOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return cc.arduino.builder.BuilderProto.internal_static_proto_Response_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return cc.arduino.builder.BuilderProto.internal_static_proto_Response_fieldAccessorTable
+ .ensureFieldAccessorsInitialized(
+ cc.arduino.builder.Response.class, cc.arduino.builder.Response.Builder.class);
+ }
+
+ // Construct using cc.arduino.builder.Response.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(
+ com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessageV3
+ .alwaysUseFieldBuilders) {
+ }
+ }
+ public Builder clear() {
+ super.clear();
+ line_ = "";
+
+ return this;
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return cc.arduino.builder.BuilderProto.internal_static_proto_Response_descriptor;
+ }
+
+ public cc.arduino.builder.Response getDefaultInstanceForType() {
+ return cc.arduino.builder.Response.getDefaultInstance();
+ }
+
+ public cc.arduino.builder.Response build() {
+ cc.arduino.builder.Response result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ public cc.arduino.builder.Response buildPartial() {
+ cc.arduino.builder.Response result = new cc.arduino.builder.Response(this);
+ result.line_ = line_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder clone() {
+ return (Builder) super.clone();
+ }
+ public Builder setField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ Object value) {
+ return (Builder) super.setField(field, value);
+ }
+ public Builder clearField(
+ com.google.protobuf.Descriptors.FieldDescriptor field) {
+ return (Builder) super.clearField(field);
+ }
+ public Builder clearOneof(
+ com.google.protobuf.Descriptors.OneofDescriptor oneof) {
+ return (Builder) super.clearOneof(oneof);
+ }
+ public Builder setRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ int index, Object value) {
+ return (Builder) super.setRepeatedField(field, index, value);
+ }
+ public Builder addRepeatedField(
+ com.google.protobuf.Descriptors.FieldDescriptor field,
+ Object value) {
+ return (Builder) super.addRepeatedField(field, value);
+ }
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof cc.arduino.builder.Response) {
+ return mergeFrom((cc.arduino.builder.Response)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(cc.arduino.builder.Response other) {
+ if (other == cc.arduino.builder.Response.getDefaultInstance()) return this;
+ if (!other.getLine().isEmpty()) {
+ line_ = other.line_;
+ onChanged();
+ }
+ onChanged();
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ cc.arduino.builder.Response parsedMessage = null;
+ try {
+ parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ parsedMessage = (cc.arduino.builder.Response) e.getUnfinishedMessage();
+ throw e.unwrapIOException();
+ } finally {
+ if (parsedMessage != null) {
+ mergeFrom(parsedMessage);
+ }
+ }
+ return this;
+ }
+
+ private java.lang.Object line_ = "";
+ /**
+ * optional string line = 1;
+ */
+ public java.lang.String getLine() {
+ java.lang.Object ref = line_;
+ if (!(ref instanceof java.lang.String)) {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ java.lang.String s = bs.toStringUtf8();
+ line_ = s;
+ return s;
+ } else {
+ return (java.lang.String) ref;
+ }
+ }
+ /**
+ * optional string line = 1;
+ */
+ public com.google.protobuf.ByteString
+ getLineBytes() {
+ java.lang.Object ref = line_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8(
+ (java.lang.String) ref);
+ line_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+ /**
+ * optional string line = 1;
+ */
+ public Builder setLine(
+ java.lang.String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+
+ line_ = value;
+ onChanged();
+ return this;
+ }
+ /**
+ * optional string line = 1;
+ */
+ public Builder clearLine() {
+
+ line_ = getDefaultInstance().getLine();
+ onChanged();
+ return this;
+ }
+ /**
+ * optional string line = 1;
+ */
+ public Builder setLineBytes(
+ com.google.protobuf.ByteString value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ checkByteStringIsUtf8(value);
+
+ line_ = value;
+ onChanged();
+ return this;
+ }
+ public final Builder setUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return this;
+ }
+
+ public final Builder mergeUnknownFields(
+ final com.google.protobuf.UnknownFieldSet unknownFields) {
+ return this;
+ }
+
+
+ // @@protoc_insertion_point(builder_scope:proto.Response)
+ }
+
+ // @@protoc_insertion_point(class_scope:proto.Response)
+ private static final cc.arduino.builder.Response DEFAULT_INSTANCE;
+ static {
+ DEFAULT_INSTANCE = new cc.arduino.builder.Response();
+ }
+
+ public static cc.arduino.builder.Response getDefaultInstance() {
+ return DEFAULT_INSTANCE;
+ }
+
+ private static final com.google.protobuf.Parser
+ PARSER = new com.google.protobuf.AbstractParser() {
+ public Response parsePartialFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return new Response(input, extensionRegistry);
+ }
+ };
+
+ public static com.google.protobuf.Parser parser() {
+ return PARSER;
+ }
+
+ @java.lang.Override
+ public com.google.protobuf.Parser getParserForType() {
+ return PARSER;
+ }
+
+ public cc.arduino.builder.Response getDefaultInstanceForType() {
+ return DEFAULT_INSTANCE;
+ }
+
+}
+
diff --git a/arduino-core/src/cc/arduino/builder/ResponseOrBuilder.java b/arduino-core/src/cc/arduino/builder/ResponseOrBuilder.java
new file mode 100644
index 00000000000..3e77c03bde5
--- /dev/null
+++ b/arduino-core/src/cc/arduino/builder/ResponseOrBuilder.java
@@ -0,0 +1,19 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: builder.proto
+
+package cc.arduino.builder;
+
+public interface ResponseOrBuilder extends
+ // @@protoc_insertion_point(interface_extends:proto.Response)
+ com.google.protobuf.MessageOrBuilder {
+
+ /**
+ * optional string line = 1;
+ */
+ java.lang.String getLine();
+ /**
+ * optional string line = 1;
+ */
+ com.google.protobuf.ByteString
+ getLineBytes();
+}
diff --git a/arduino-core/src/cc/arduino/packages/DiscoveryManager.java b/arduino-core/src/cc/arduino/packages/DiscoveryManager.java
index 21876ffc47e..b8c4573aa3b 100644
--- a/arduino-core/src/cc/arduino/packages/DiscoveryManager.java
+++ b/arduino-core/src/cc/arduino/packages/DiscoveryManager.java
@@ -58,8 +58,8 @@ public DiscoveryManager(Map packages) {
// this.packages = packages;
discoverers = new ArrayList<>();
- discoverers.add(serialDiscoverer);
- discoverers.add(networkDiscoverer);
+ //discoverers.add(serialDiscoverer);
+ //discoverers.add(networkDiscoverer);
// Search for discoveries in installed packages
for (TargetPackage targetPackage : packages.values()) {
diff --git a/arduino-core/src/processing/app/BaseNoGui.java b/arduino-core/src/processing/app/BaseNoGui.java
index c47a82d69b8..b893aa0434b 100644
--- a/arduino-core/src/processing/app/BaseNoGui.java
+++ b/arduino-core/src/processing/app/BaseNoGui.java
@@ -1,5 +1,31 @@
package processing.app;
+import static processing.app.I18n.tr;
+import static processing.app.helpers.filefilters.OnlyDirs.ONLY_DIRS;
+
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import java.util.stream.Collectors;
+
+import org.apache.commons.compress.utils.IOUtils;
+import org.apache.commons.logging.impl.LogFactoryImpl;
+import org.apache.commons.logging.impl.NoOpLog;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+
import cc.arduino.Constants;
import cc.arduino.contributions.GPGDetachedSignatureVerifier;
import cc.arduino.contributions.VersionComparator;
@@ -7,13 +33,21 @@
import cc.arduino.contributions.packages.ContributedPlatform;
import cc.arduino.contributions.packages.ContributedTool;
import cc.arduino.contributions.packages.ContributionsIndexer;
+import cc.arduino.files.DeleteFilesOnShutdown;
+import cc.arduino.packages.BoardPort;
import cc.arduino.packages.DiscoveryManager;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import org.apache.commons.compress.utils.IOUtils;
-import org.apache.commons.logging.impl.LogFactoryImpl;
-import org.apache.commons.logging.impl.NoOpLog;
-import processing.app.debug.*;
-import processing.app.helpers.*;
+import processing.app.debug.LegacyTargetPackage;
+import processing.app.debug.LegacyTargetPlatform;
+import processing.app.debug.TargetBoard;
+import processing.app.debug.TargetPackage;
+import processing.app.debug.TargetPlatform;
+import processing.app.debug.TargetPlatformException;
+import processing.app.helpers.BasicUserNotifier;
+import processing.app.helpers.CommandlineParser;
+import processing.app.helpers.FileUtils;
+import processing.app.helpers.OSUtils;
+import processing.app.helpers.PreferencesMap;
+import processing.app.helpers.UserNotifier;
import processing.app.helpers.filefilters.OnlyDirs;
import processing.app.helpers.filefilters.OnlyFilesWithExtension;
import processing.app.legacy.PApplet;
@@ -41,9 +75,9 @@
public class BaseNoGui {
/** Version string to be used for build */
- public static final int REVISION = 10813;
+ public static final int REVISION = 10900;
/** Extended version string displayed on GUI */
- public static final String VERSION_NAME = "1.8.13";
+ public static final String VERSION_NAME = "1.9.0-beta";
public static final String VERSION_NAME_LONG;
// Current directory to use for relative paths specified on the
@@ -242,6 +276,22 @@ static public File getHardwareFolder() {
return getContentFile("hardware");
}
+ static public List getAllHardwareFolders() {
+ List res = new ArrayList<>();
+ res.add(getHardwareFolder());
+ res.add(new File(getSettingsFolder(), "packages"));
+ res.add(getSketchbookHardwareFolder());
+ return res.stream().filter(x -> x.isDirectory()).collect(Collectors.toList());
+ }
+
+ static public List getAllToolsFolders() {
+ List res = new ArrayList<>();
+ res.add(BaseNoGui.getContentFile("tools-builder"));
+ res.add(new File(new File(BaseNoGui.getHardwareFolder(), "tools"), "avr"));
+ res.add(new File(getSettingsFolder(), "packages"));
+ return res.stream().filter(x -> x.isDirectory()).collect(Collectors.toList());
+ }
+
static public String getHardwarePath() {
return getHardwareFolder().getAbsolutePath();
}
@@ -916,6 +966,12 @@ static public void saveFile(String str, File file) throws IOException {
}
}
+ static private LinkedList recentlyUsedBoards = new LinkedList();
+
+ static public LinkedList getRecentlyUsedBoards() {
+ return recentlyUsedBoards;
+ }
+
static public void selectBoard(TargetBoard targetBoard) {
TargetPlatform targetPlatform = targetBoard.getContainerPlatform();
TargetPackage targetPackage = targetPlatform.getContainerPackage();
@@ -927,6 +983,13 @@ static public void selectBoard(TargetBoard targetBoard) {
File platformFolder = targetPlatform.getFolder();
PreferencesData.set("runtime.platform.path", platformFolder.getAbsolutePath());
PreferencesData.set("runtime.hardware.path", platformFolder.getParentFile().getAbsolutePath());
+
+ if (!recentlyUsedBoards.contains(targetBoard)) {
+ recentlyUsedBoards.add(targetBoard);
+ }
+ if (recentlyUsedBoards.size() > PreferencesData.getInteger("editor.recent_boards.size", 4)) {
+ recentlyUsedBoards.remove();
+ }
}
public static void selectSerialPort(String port) {
diff --git a/arduino-core/src/processing/app/SketchFile.java b/arduino-core/src/processing/app/SketchFile.java
index f1341653b57..35682da60e0 100644
--- a/arduino-core/src/processing/app/SketchFile.java
+++ b/arduino-core/src/processing/app/SketchFile.java
@@ -246,7 +246,7 @@ public boolean isModified() {
public boolean equals(Object o) {
return (o instanceof SketchFile) && file.equals(((SketchFile) o).file);
}
-
+
/**
* Load this piece of code from a file and return the contents. This
* completely ignores any changes in the linked storage, if any, and
diff --git a/arduino-core/src/processing/app/windows/Platform.java b/arduino-core/src/processing/app/windows/Platform.java
index 6d344444f15..95666d3b6ac 100644
--- a/arduino-core/src/processing/app/windows/Platform.java
+++ b/arduino-core/src/processing/app/windows/Platform.java
@@ -213,6 +213,8 @@ public List preUninstallScripts(File folder) {
}
public void symlink(File something, File somewhere) throws IOException, InterruptedException {
+ Process process = Runtime.getRuntime().exec(new String[]{"mklink", somewhere.getAbsolutePath(), something.toString()}, null, somewhere.getParentFile());
+ process.waitFor();
}
@Override
diff --git a/build/arduino-builder-linux64-1.3.25-prepr-rc1.tar.bz2.sha b/build/arduino-builder-linux64-1.3.25-prepr-rc1.tar.bz2.sha
new file mode 100644
index 00000000000..ffb12d4f792
--- /dev/null
+++ b/build/arduino-builder-linux64-1.3.25-prepr-rc1.tar.bz2.sha
@@ -0,0 +1 @@
+5a752dc23ea0d5ebbc60547ea89e69491536c02d
diff --git a/build/arduino-cli-0.3.4-alpha.preview-linux32.tar.bz2.sha b/build/arduino-cli-0.3.4-alpha.preview-linux32.tar.bz2.sha
new file mode 100644
index 00000000000..d1c9006cd5e
--- /dev/null
+++ b/build/arduino-cli-0.3.4-alpha.preview-linux32.tar.bz2.sha
@@ -0,0 +1 @@
+18f6669f8a3c328f6a096eb6709a2c1e4c9cdeae
diff --git a/build/arduino-cli-0.3.4-alpha.preview-linux64.tar.bz2.sha b/build/arduino-cli-0.3.4-alpha.preview-linux64.tar.bz2.sha
new file mode 100644
index 00000000000..44b29c7491d
--- /dev/null
+++ b/build/arduino-cli-0.3.4-alpha.preview-linux64.tar.bz2.sha
@@ -0,0 +1 @@
+1309e3bf1685ec5cefbb46cb6397e7c452ac293a
diff --git a/build/arduino-cli-0.3.4-alpha.preview-linuxaarch64.tar.bz2.sha b/build/arduino-cli-0.3.4-alpha.preview-linuxaarch64.tar.bz2.sha
new file mode 100644
index 00000000000..461d58a95c0
--- /dev/null
+++ b/build/arduino-cli-0.3.4-alpha.preview-linuxaarch64.tar.bz2.sha
@@ -0,0 +1 @@
+2fd4bd6f4c196e45fa08bb1b6eae27494378708a
diff --git a/build/arduino-cli-0.3.4-alpha.preview-linuxarm.tar.bz2.sha b/build/arduino-cli-0.3.4-alpha.preview-linuxarm.tar.bz2.sha
new file mode 100644
index 00000000000..52bc08c06d6
--- /dev/null
+++ b/build/arduino-cli-0.3.4-alpha.preview-linuxarm.tar.bz2.sha
@@ -0,0 +1 @@
+a4977a3dffb2268eee3328bfa362aa31e8bfbbe9
diff --git a/build/arduino-cli-0.3.4-alpha.preview-macosx.tar.bz2.sha b/build/arduino-cli-0.3.4-alpha.preview-macosx.tar.bz2.sha
new file mode 100644
index 00000000000..d1004f25ae4
--- /dev/null
+++ b/build/arduino-cli-0.3.4-alpha.preview-macosx.tar.bz2.sha
@@ -0,0 +1 @@
+47f1beae490e214d2cbde36089fe45e91cc4bd21
diff --git a/build/arduino-cli-0.3.4-alpha.preview-windows.zip.sha b/build/arduino-cli-0.3.4-alpha.preview-windows.zip.sha
new file mode 100644
index 00000000000..01eacd79bf1
--- /dev/null
+++ b/build/arduino-cli-0.3.4-alpha.preview-windows.zip.sha
@@ -0,0 +1 @@
+30d454fb2d76bf08dd40f61414b809f3538a8d31
diff --git a/build/build.xml b/build/build.xml
index 6ddec060203..72ef2461620 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -101,10 +101,13 @@
+
+
+
@@ -207,6 +210,11 @@
+
+
+
+
+
@@ -487,8 +495,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -678,6 +705,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -703,6 +748,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -711,6 +774,7 @@
+
@@ -745,6 +809,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -753,6 +836,7 @@
+
@@ -771,6 +855,7 @@
+
@@ -789,6 +874,7 @@
+
@@ -837,6 +923,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1065,6 +1165,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1086,12 +1208,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/build_all_dist.bash b/build/build_all_dist.bash
index 65e67a743b8..c1dfacdb6e9 100755
--- a/build/build_all_dist.bash
+++ b/build/build_all_dist.bash
@@ -6,12 +6,12 @@ cd $DIR
rm -f ../arduino-*.tar.xz
rm -f ../arduino-*.zip
-ant -Djava.net.preferIPv4Stack=true -Dplatform=linux32 $@ clean dist
-mv linux/arduino-*-linux32.tar.xz ../
-
ant -Djava.net.preferIPv4Stack=true -Dplatform=linux64 $@ clean dist
mv linux/arduino-*-linux64.tar.xz ../
+ant -Djava.net.preferIPv4Stack=true -Dplatform=linux32 $@ clean dist
+mv linux/arduino-*-linux32.tar.xz ../
+
ant -Djava.net.preferIPv4Stack=true -Dplatform=linuxarm $@ clean dist
mv linux/arduino-*-linuxarm.tar.xz ../
diff --git a/build/macosx/processing.icns b/build/macosx/processing.icns
index 070a51fce07..55a286484b4 100644
Binary files a/build/macosx/processing.icns and b/build/macosx/processing.icns differ
diff --git a/build/mdns-discovery-0.0.1.zip.sha b/build/mdns-discovery-0.0.1.zip.sha
new file mode 100644
index 00000000000..3a25599d01d
--- /dev/null
+++ b/build/mdns-discovery-0.0.1.zip.sha
@@ -0,0 +1 @@
+11ac3c2f9313e1979e3488ab674fabd0884ec0b4
diff --git a/build/serial-discovery-0.0.3.zip.sha b/build/serial-discovery-0.0.3.zip.sha
new file mode 100644
index 00000000000..09f6c562fb7
--- /dev/null
+++ b/build/serial-discovery-0.0.3.zip.sha
@@ -0,0 +1 @@
+f9f0706dd7f327eb92cc0225f58b34677e709152
diff --git a/build/shared/discoverers/disco/boards.txt b/build/shared/discoverers/disco/boards.txt
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/build/shared/discoverers/disco/platform.txt b/build/shared/discoverers/disco/platform.txt
new file mode 100644
index 00000000000..f488dc0a066
--- /dev/null
+++ b/build/shared/discoverers/disco/platform.txt
@@ -0,0 +1,2 @@
+discovery.serial.pattern={runtime.ide.path}/tools/serial-discovery
+discovery.mdns.pattern={runtime.ide.path}/tools/mdns-discovery
diff --git a/build/shared/examples/09.USB/Mouse/JoystickMouseControl/JoystickMouseControl.ino b/build/shared/examples/09.USB/Mouse/JoystickMouseControl/JoystickMouseControl.ino
index aa608f870b1..87164e7d22a 100644
--- a/build/shared/examples/09.USB/Mouse/JoystickMouseControl/JoystickMouseControl.ino
+++ b/build/shared/examples/09.USB/Mouse/JoystickMouseControl/JoystickMouseControl.ino
@@ -69,8 +69,8 @@ void loop() {
lastSwitchState = switchState;
// read and scale the two axes:
- int xReading = readAxis(A0);
- int yReading = readAxis(A1);
+ int xReading = readAxis(xAxis);
+ int yReading = readAxis(yAxis);
// if the mouse control state is active, move the mouse:
if (mouseIsActive) {
diff --git a/build/shared/icons/128x128/apps/arduino.png b/build/shared/icons/128x128/apps/arduino.png
index 1cdfb28699b..2b3f66bfbf1 100644
Binary files a/build/shared/icons/128x128/apps/arduino.png and b/build/shared/icons/128x128/apps/arduino.png differ
diff --git a/build/shared/icons/16x16/apps/arduino.png b/build/shared/icons/16x16/apps/arduino.png
index 2f33f429bdf..76bfe5e3955 100644
Binary files a/build/shared/icons/16x16/apps/arduino.png and b/build/shared/icons/16x16/apps/arduino.png differ
diff --git a/build/shared/icons/24x24/apps/arduino.png b/build/shared/icons/24x24/apps/arduino.png
index 0a4b3952cb1..6bd50d781dd 100644
Binary files a/build/shared/icons/24x24/apps/arduino.png and b/build/shared/icons/24x24/apps/arduino.png differ
diff --git a/build/shared/icons/256x256/apps/arduino.png b/build/shared/icons/256x256/apps/arduino.png
index 6df847b035a..c2306783148 100644
Binary files a/build/shared/icons/256x256/apps/arduino.png and b/build/shared/icons/256x256/apps/arduino.png differ
diff --git a/build/shared/icons/32x32/apps/arduino.png b/build/shared/icons/32x32/apps/arduino.png
index c51d0be6450..425edd5fc0c 100644
Binary files a/build/shared/icons/32x32/apps/arduino.png and b/build/shared/icons/32x32/apps/arduino.png differ
diff --git a/build/shared/icons/48x48/apps/arduino.png b/build/shared/icons/48x48/apps/arduino.png
index 5a91c8eedd0..ce239f3af2a 100644
Binary files a/build/shared/icons/48x48/apps/arduino.png and b/build/shared/icons/48x48/apps/arduino.png differ
diff --git a/build/shared/icons/64x64/apps/arduino.png b/build/shared/icons/64x64/apps/arduino.png
index 48d578599c1..97fac9553e3 100644
Binary files a/build/shared/icons/64x64/apps/arduino.png and b/build/shared/icons/64x64/apps/arduino.png differ
diff --git a/build/shared/icons/72x72/apps/arduino.png b/build/shared/icons/72x72/apps/arduino.png
index 3d380c48acb..36d8f91f136 100644
Binary files a/build/shared/icons/72x72/apps/arduino.png and b/build/shared/icons/72x72/apps/arduino.png differ
diff --git a/build/shared/icons/96x96/apps/arduino.png b/build/shared/icons/96x96/apps/arduino.png
index 82c095468e7..c49ae3e2720 100644
Binary files a/build/shared/icons/96x96/apps/arduino.png and b/build/shared/icons/96x96/apps/arduino.png differ
diff --git a/build/shared/lib/about.png b/build/shared/lib/about.png
index 71cc20a417a..9436ef0644a 100644
Binary files a/build/shared/lib/about.png and b/build/shared/lib/about.png differ
diff --git a/build/shared/lib/about@2x.png b/build/shared/lib/about@2x.png
index 017d0815372..1fd46b70ce9 100644
Binary files a/build/shared/lib/about@2x.png and b/build/shared/lib/about@2x.png differ
diff --git a/build/shared/lib/arduino.png b/build/shared/lib/arduino.png
index 28fa03ab7f7..f5f04e8b5ec 100644
Binary files a/build/shared/lib/arduino.png and b/build/shared/lib/arduino.png differ
diff --git a/build/shared/lib/arduino_icon.ico b/build/shared/lib/arduino_icon.ico
index a9f3a7acbe5..6df734fa8ad 100644
Binary files a/build/shared/lib/arduino_icon.ico and b/build/shared/lib/arduino_icon.ico differ
diff --git a/build/shared/lib/splash.bmp b/build/shared/lib/splash.bmp
index a3148785081..cb9b0636594 100644
Binary files a/build/shared/lib/splash.bmp and b/build/shared/lib/splash.bmp differ
diff --git a/build/shared/lib/splash.png b/build/shared/lib/splash.png
index ba5902107d8..4fd166c19e7 100644
Binary files a/build/shared/lib/splash.png and b/build/shared/lib/splash.png differ
diff --git a/build/windows/launcher/application.ico b/build/windows/launcher/application.ico
index 1db9b9f4ee3..6df734fa8ad 100644
Binary files a/build/windows/launcher/application.ico and b/build/windows/launcher/application.ico differ
diff --git a/build/windows/launcher/config.xml b/build/windows/launcher/config.xml
index affef023c77..82d0d9b73eb 100644
--- a/build/windows/launcher/config.xml
+++ b/build/windows/launcher/config.xml
@@ -37,6 +37,21 @@
%EXEDIR%/lib/commons-logging-1.0.4.jar
%EXEDIR%/lib/commons-net-3.3.jar
%EXEDIR%/lib/commons-io-2.6.jar
+ %EXEDIR%/lib/grpc-auth-1.6.1.jar
+ %EXEDIR%/lib/grpc-context-1.6.1.jar
+ %EXEDIR%/lib/grpc-core-1.6.1.jar
+ %EXEDIR%/lib/grpc-grpclb-1.6.1.jar
+ %EXEDIR%/lib/grpc-netty-1.6.1.jar
+ %EXEDIR%/lib/grpc-okhttp-1.6.1.jar
+ %EXEDIR%/lib/grpc-protobuf-1.6.1.jar
+ %EXEDIR%/lib/grpc-protobuf-lite-1.6.1.jar
+ %EXEDIR%/lib/grpc-protobuf-nano-1.6.1.jar
+ %EXEDIR%/lib/grpc-services-1.6.1.jar
+ %EXEDIR%/lib/grpc-stub-1.6.1.jar
+ %EXEDIR%/lib/guava-19.0.jar
+ %EXEDIR%/lib/instrumentation-api-0.4.3.jar
+ %EXEDIR%/lib/protobuf-java-3.4.0.jar
+ %EXEDIR%/lib/netty-all-4.1.15.Final.jar
%EXEDIR%/lib/jackson-annotations-2.9.5.jar
%EXEDIR%/lib/jackson-core-2.9.5.jar
%EXEDIR%/lib/jackson-databind-2.9.5.jar
@@ -53,6 +68,7 @@
%EXEDIR%/lib/jssc-2.8.0-arduino4.jar
%EXEDIR%/lib/pde.jar
%EXEDIR%/lib/rsyntaxtextarea-3.0.3-SNAPSHOT.jar
+ %EXEDIR%/lib/autocomplete-2.6.1.jar
%EXEDIR%/lib/xml-apis-1.3.04.jar
%EXEDIR%/lib/xml-apis-ext-1.3.04.jar
%EXEDIR%/lib/xmlgraphics-commons-2.0.jar
diff --git a/build/windows/launcher/config_debug.xml b/build/windows/launcher/config_debug.xml
index 59d5a35ae0a..8de301563eb 100644
--- a/build/windows/launcher/config_debug.xml
+++ b/build/windows/launcher/config_debug.xml
@@ -37,6 +37,21 @@
%EXEDIR%/lib/commons-logging-1.0.4.jar
%EXEDIR%/lib/commons-net-3.3.jar
%EXEDIR%/lib/commons-io-2.6.jar
+ %EXEDIR%/lib/grpc-auth-1.6.1.jar
+ %EXEDIR%/lib/grpc-context-1.6.1.jar
+ %EXEDIR%/lib/grpc-core-1.6.1.jar
+ %EXEDIR%/lib/grpc-grpclb-1.6.1.jar
+ %EXEDIR%/lib/grpc-netty-1.6.1.jar
+ %EXEDIR%/lib/grpc-okhttp-1.6.1.jar
+ %EXEDIR%/lib/grpc-protobuf-1.6.1.jar
+ %EXEDIR%/lib/grpc-protobuf-lite-1.6.1.jar
+ %EXEDIR%/lib/grpc-protobuf-nano-1.6.1.jar
+ %EXEDIR%/lib/grpc-services-1.6.1.jar
+ %EXEDIR%/lib/grpc-stub-1.6.1.jar
+ %EXEDIR%/lib/guava-19.0.jar
+ %EXEDIR%/lib/instrumentation-api-0.4.3.jar
+ %EXEDIR%/lib/protobuf-java-3.4.0.jar
+ %EXEDIR%/lib/netty-all-4.1.15.Final.jar
%EXEDIR%/lib/jackson-annotations-2.9.5.jar
%EXEDIR%/lib/jackson-core-2.9.5.jar
%EXEDIR%/lib/jackson-databind-2.9.5.jar
@@ -53,6 +68,7 @@
%EXEDIR%/lib/jssc-2.8.0-arduino4.jar
%EXEDIR%/lib/pde.jar
%EXEDIR%/lib/rsyntaxtextarea-3.0.3-SNAPSHOT.jar
+ %EXEDIR%/lib/autocomplete-2.6.1.jar
%EXEDIR%/lib/xml-apis-1.3.04.jar
%EXEDIR%/lib/xml-apis-ext-1.3.04.jar
%EXEDIR%/lib/xmlgraphics-commons-2.0.jar