From ecda2b0ebc7d9b44d2c481b0638c0ca48bd05f91 Mon Sep 17 00:00:00 2001 From: lixiaolong <702156524@qq.com> Date: Wed, 22 Jul 2026 13:49:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(audio):=20=E5=AE=9E=E7=8E=B0=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E8=AF=AD=E9=9F=B3=E4=BC=9A=E8=AF=9D=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=AE=BE=E5=A4=87=E5=88=86=E7=A6=BB=E5=92=8C?= =?UTF-8?q?=E9=9F=B3=E9=A2=91=E7=BC=93=E5=86=B2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 配置Tomcat支持20MB大JSON请求处理PPE报警中的Base64图片 - 扩展AudioService支持独立的扬声器和麦克风设备ID参数处理 - 实现浏览器音频推送器,提供音频帧缓冲和定时推送机制 - 添加音频数据protobuf定义,支持多种音频格式和编解码参数 - 重构音频会话管理,实现音频队列、统计监控和性能优化 - 增强心跳检测机制,改进机器人离线状态处理逻辑 --- .../InspectionDetectionAlertController.java | 123 + .../src/main/resources/application.yml | 3 + .../client/adapter/RobotAudioGrpcAdapter.java | 1366 +-- .../client/manage/GrpcServiceManager.java | 3 +- .../edge/client/service/AudioService.java | 176 +- .../edge/client/webrtc/WebRtcAudioBridge.java | 1095 +- .../src/main/java/cmvr/api/Common.java | 1164 ++- .../java/cmvr/api/MicPhoneServiceGrpc.java | 95 +- .../main/java/cmvr/api/MicrophoneCommand.java | 1892 +++- .../main/java/cmvr/api/MicrophoneService.java | 16 +- .../src/main/java/cmvr/api/RobotAudio.java | 9090 ----------------- .../java/cmvr/api/RobotAudioServiceGrpc.java | 280 - .../main/java/cmvr/api/SpeakerCommand.java | 3201 +++--- .../java/cmvr/api/SpeakerServiceGrpc.java | 82 +- .../cmvr/api/SpeakerServiceOuterClass.java | 33 +- .../src/main/proto/cmvr/api/common.proto | 16 + .../proto/cmvr/api/microphone_command.proto | 17 +- .../proto/cmvr/api/microphone_service.proto | 7 +- .../src/main/proto/cmvr/api/robot_audio.proto | 81 - .../main/proto/cmvr/api/speaker_command.proto | 45 +- .../main/proto/cmvr/api/speaker_service.proto | 7 +- .../domain/InspectionDetectionAlert.java | 52 + .../domain/InspectionDetectionDetail.java | 30 + .../domain/dto/alert/AlertEnvelope.java | 55 + .../domain/dto/alert/AlertImage.java | 33 + .../domain/dto/alert/BoundingBox.java | 25 + .../domain/dto/alert/Detection.java | 29 + .../domain/dto/alert/DetectionAlert.java | 75 + .../DetectionAlertBadRequestException.java | 17 + .../DetectionAlertTemporaryException.java | 17 + .../InspectionDetectionAlertMapper.java | 11 + .../InspectionDetectionDetailMapper.java | 11 + .../IInspectionDetectionAlertService.java | 18 + .../InspectionDetectionAlertServiceImpl.java | 391 + .../robot-to-backend-1784086438864.wav | Bin 960044 -> 0 bytes .../robot-to-backend-1784086792085.wav | Bin 960044 -> 0 bytes sql/inspection_detection_alert.sql | 54 + 37 files changed, 6966 insertions(+), 12644 deletions(-) create mode 100644 cmvr-iot-admin/src/main/java/com/cmvr/web/controller/inspection/InspectionDetectionAlertController.java delete mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/RobotAudio.java delete mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/RobotAudioServiceGrpc.java delete mode 100644 cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/robot_audio.proto create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/InspectionDetectionAlert.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/InspectionDetectionDetail.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/AlertEnvelope.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/AlertImage.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/BoundingBox.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/Detection.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/DetectionAlert.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/exception/DetectionAlertBadRequestException.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/exception/DetectionAlertTemporaryException.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/InspectionDetectionAlertMapper.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/InspectionDetectionDetailMapper.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/IInspectionDetectionAlertService.java create mode 100644 cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/impl/InspectionDetectionAlertServiceImpl.java delete mode 100644 logs/audio-dump/robot-to-backend-1784086438864.wav delete mode 100644 logs/audio-dump/robot-to-backend-1784086792085.wav create mode 100644 sql/inspection_detection_alert.sql diff --git a/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/inspection/InspectionDetectionAlertController.java b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/inspection/InspectionDetectionAlertController.java new file mode 100644 index 0000000..cdbc476 --- /dev/null +++ b/cmvr-iot-admin/src/main/java/com/cmvr/web/controller/inspection/InspectionDetectionAlertController.java @@ -0,0 +1,123 @@ +package com.cmvr.web.controller.inspection; + +import com.cmvr.common.annotation.Anonymous; +import com.cmvr.inspection.domain.dto.alert.AlertEnvelope; +import com.cmvr.inspection.exception.DetectionAlertBadRequestException; +import com.cmvr.inspection.service.IInspectionDetectionAlertService; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +/** + * cmvr_edge_ai 检测报警推送入口。 + * + * 该接口由边缘服务主动调用,使用HTTP状态码表达处理结果,不使用项目通用AjaxResult包装。 + */ +@Slf4j +@Anonymous +@RestController +@RequiredArgsConstructor +@Api(tags = "智能巡检--PPE报警接收") +public class InspectionDetectionAlertController +{ + /** 包含Base64图片的JSON请求最大允许20MB,防止异常请求耗尽服务端内存。 */ + private static final int MAX_REQUEST_BYTES = 20 * 1024 * 1024; + + private final IInspectionDetectionAlertService detectionAlertService; + private final ObjectMapper objectMapper; + + /** + * 接收PPE违规报警。重复事件视为已处理,仍返回204,避免边缘端持续重试。 + */ + @ApiOperation("接收边缘AI的PPE违规报警") + @PostMapping(value = "/v1/detection-alerts", consumes = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity receive( + @RequestHeader(value = "Idempotency-Key", required = false) String idempotencyKey, + HttpServletRequest request) + { + try + { + String requestBody = readRequestBody(request); + AlertEnvelope envelope = objectMapper.readValue(requestBody, AlertEnvelope.class); + detectionAlertService.receive(envelope, idempotencyKey); + return ResponseEntity.noContent().build(); + } + catch (JsonProcessingException | DetectionAlertBadRequestException ex) + { + log.warn("拒绝不合法的PPE报警请求,idempotencyKey={},原因={}", idempotencyKey, ex.getMessage()); + return ResponseEntity.badRequest().build(); + } + catch (DuplicateKeyException ex) + { + // 预查与插入之间仍可能发生并发,由数据库唯一索引完成最终幂等。 + log.info("忽略并发重复的PPE报警,idempotencyKey={}", idempotencyKey); + return ResponseEntity.noContent().build(); + } + catch (IOException ex) + { + log.warn("读取PPE报警请求失败,idempotencyKey={},原因={}", idempotencyKey, ex.getMessage()); + return ResponseEntity.badRequest().build(); + } + catch (Exception ex) + { + log.error("PPE报警处理暂时失败,idempotencyKey={}", idempotencyKey, ex); + return ResponseEntity.status(HttpStatus.SERVICE_UNAVAILABLE).build(); + } + } + + private String readRequestBody(HttpServletRequest request) throws IOException + { + long contentLength = request.getContentLengthLong(); + if (contentLength > MAX_REQUEST_BYTES) + { + throw new DetectionAlertBadRequestException("请求体不能超过20MB"); + } + + try (ServletInputStream inputStream = request.getInputStream(); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(initialCapacity(contentLength))) + { + byte[] buffer = new byte[8192]; + int total = 0; + int length; + while ((length = inputStream.read(buffer)) != -1) + { + total += length; + if (total > MAX_REQUEST_BYTES) + { + throw new DetectionAlertBadRequestException("请求体不能超过20MB"); + } + outputStream.write(buffer, 0, length); + } + if (total == 0) + { + throw new DetectionAlertBadRequestException("请求体不能为空"); + } + return new String(outputStream.toByteArray(), StandardCharsets.UTF_8); + } + } + + private int initialCapacity(long contentLength) + { + if (contentLength <= 0 || contentLength > MAX_REQUEST_BYTES) + { + return 8192; + } + return (int) contentLength; + } +} diff --git a/cmvr-iot-admin/src/main/resources/application.yml b/cmvr-iot-admin/src/main/resources/application.yml index 1b9126e..a8f4a30 100644 --- a/cmvr-iot-admin/src/main/resources/application.yml +++ b/cmvr-iot-admin/src/main/resources/application.yml @@ -21,6 +21,9 @@ server: tomcat: # tomcat的URI编码 uri-encoding: UTF-8 + # PPE报警包含Base64图片,允许读取较大的JSON请求,同时限制异常请求的吞入大小 + max-http-form-post-size: 20MB + max-swallow-size: 20MB # 连接数满后的排队数,默认为100 accept-count: 1000 threads: diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/adapter/RobotAudioGrpcAdapter.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/adapter/RobotAudioGrpcAdapter.java index c746192..ab20267 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/adapter/RobotAudioGrpcAdapter.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/adapter/RobotAudioGrpcAdapter.java @@ -1,41 +1,44 @@ package com.cmvr.edge.client.adapter; -import cmvr.api.RobotAudio; -import cmvr.api.RobotAudioServiceGrpc; -import com.google.protobuf.ByteString; +import cmvr.api.Common; +import cmvr.api.MicPhoneServiceGrpc; +import cmvr.api.MicrophoneCommand; +import cmvr.api.SpeakerCommand; +import cmvr.api.SpeakerServiceGrpc; import com.cmvr.edge.client.manage.GrpcServiceManager; import com.cmvr.edge.client.utils.EdgeCommonUtil; +import com.google.protobuf.ByteString; import io.grpc.Status; +import io.grpc.stub.ClientCallStreamObserver; +import io.grpc.stub.ClientResponseObserver; import io.grpc.stub.StreamObserver; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardOpenOption; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.ConcurrentLinkedQueue; +import javax.annotation.PreDestroy; +import java.util.Arrays; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; /** - * 机器人实时语音 gRPC 适配层。 + * 实时语音对讲 gRPC 适配层。 * - * 约束: - * 1. Java 后端只作为 gRPC client; - * 2. 机器人终端作为 gRPC server; - * 3. Stub 必须复用项目现有 GrpcServiceManager,禁止在这里创建 ManagedChannel。 + *

当前机器人侧不再使用旧的 RobotAudio 双向流 proto,而是拆成两个现有服务: + * 浏览器 -> 机器人:SpeakerService.StreamAudio 客户端流; + * 机器人 -> 浏览器:MicPhoneService.StreamAudio 服务端流。

+ * + *

音频格式固定为 PCM_S16LE / 48000Hz / 单声道 / 10ms / 960 bytes。 + * 所有发送到 gRPC StreamObserver 的动作都绑定到会话内单线程,避免并发 onNext 引发底层崩溃。

*/ @Component @RequiredArgsConstructor @@ -43,498 +46,108 @@ public class RobotAudioGrpcAdapter { private static final Logger log = LoggerFactory.getLogger(RobotAudioGrpcAdapter.class); - /** 浏览器与机器人之间约定的音频格式:PCM-48K-16bit-单声道。 */ - public static final int SAMPLE_RATE = 48000; - public static final int CHANNELS = 1; - public static final int BITS_PER_SAMPLE = 16; - // WebRTC 与主流 PCM 设备默认使用 signed 16-bit little-endian,终端如需大端序应在设备边界自行转换。 - public static final String ENCODING = "PCM_S16LE"; + private static final int SAMPLE_RATE = 48000; + private static final int CHANNELS = 1; + private static final int BITS_PER_SAMPLE = 16; private static final int FRAME_MS = 10; private static final int FRAME_SAMPLES = SAMPLE_RATE * FRAME_MS / 1000; private static final int FRAME_BYTES = FRAME_SAMPLES * CHANNELS * (BITS_PER_SAMPLE / 8); - private static final int TARGET_QUEUED_BROWSER_FRAMES = 2; + private static final String CODEC = "PCM_S16LE"; + private static final int MAX_QUEUED_BROWSER_FRAMES = 10; - private static final long AUDIO_STATS_LOG_INTERVAL_MS = 5000L; - private static final int DEBUG_DUMP_SECONDS = 10; - private static final int DEBUG_DUMP_BYTES = SAMPLE_RATE * CHANNELS * (BITS_PER_SAMPLE / 8) * DEBUG_DUMP_SECONDS; + private static final int TARGET_QUEUED_BROWSER_FRAMES = 2; + private static final long HEARTBEAT_INTERVAL_MS = 1000L; + private static final long HEARTBEAT_DEADLINE_MS = 2000L; private final GrpcServiceManager grpcServiceManager; - private final ConcurrentHashMap lastGrpcInboundFormatLogAt = new ConcurrentHashMap<>(); - private final WavDumpRecorder robotInboundDumpRecorder = - new WavDumpRecorder("robot-to-backend", DEBUG_DUMP_BYTES); + private final ConcurrentMap streams = new ConcurrentHashMap<>(); - /** - * 打开机器人音频双向流。 - */ public RobotAudioStream openStream(String terminalId, String deviceId, String sessionId, String operatorId, RobotAudioStreamListener listener) { - RobotAudioServiceGrpc.RobotAudioServiceStub stub = - grpcServiceManager.getGrpcClient(terminalId, RobotAudioServiceGrpc.RobotAudioServiceStub.class); - - StreamObserver responseObserver = new StreamObserver() { - @Override - public void onNext(RobotAudio.RobotAudioResponse response) { - try { - handleRobotResponse(sessionId, response, listener); - } catch (Exception e) { - log.error("处理机器人音频响应失败,sessionId={}", sessionId, e); - listener.onError(sessionId, e); - } - } - - @Override - public void onError(Throwable t) { - log.error("机器人音频gRPC流异常,sessionId={}", sessionId, t); - listener.onError(sessionId, t); - } - - @Override - public void onCompleted() { - log.info("机器人音频gRPC流结束,sessionId={}", sessionId); - listener.onCompleted(sessionId); - } - }; - - StreamObserver requestObserver = stub.audioTalk(responseObserver); - RobotAudioStream stream = new RobotAudioStream(terminalId, deviceId, sessionId, requestObserver); - stream.sendStart(operatorId); - return stream; + return openStream(terminalId, deviceId, deviceId, sessionId, operatorId, listener); } - private void handleRobotResponse(String sessionId, - RobotAudio.RobotAudioResponse response, - RobotAudioStreamListener listener) { - if (response.hasHeader() - && !response.getHeader().getSuccess() - && response.getHeader().getErrorMessage() != null - && !response.getHeader().getErrorMessage().trim().isEmpty()) { - String errorMessage = response.getHeader().getErrorMessage(); - log.warn("机器人音频响应失败,sessionId={},error={}", sessionId, errorMessage); - listener.onError(sessionId, new RuntimeException(errorMessage)); - return; + public RobotAudioStream openStream(String terminalId, + String speakerDeviceId, + String micDeviceId, + String sessionId, + String operatorId, + RobotAudioStreamListener listener) { + SpeakerServiceGrpc.SpeakerServiceStub speakerStub = + grpcServiceManager.getGrpcClient(terminalId, SpeakerServiceGrpc.SpeakerServiceStub.class); + MicPhoneServiceGrpc.MicPhoneServiceStub micStub = + grpcServiceManager.getGrpcClient(terminalId, MicPhoneServiceGrpc.MicPhoneServiceStub.class); + SpeakerServiceGrpc.SpeakerServiceBlockingStub speakerBlockingStub = + grpcServiceManager.getGrpcClient(terminalId, SpeakerServiceGrpc.SpeakerServiceBlockingStub.class); + MicPhoneServiceGrpc.MicPhoneServiceBlockingStub micBlockingStub = + grpcServiceManager.getGrpcClient(terminalId, MicPhoneServiceGrpc.MicPhoneServiceBlockingStub.class); + + preflightDeviceStatus(speakerBlockingStub, micBlockingStub, speakerDeviceId, micDeviceId, sessionId); + + RobotAudioStream stream = new RobotAudioStream( + terminalId, speakerDeviceId, micDeviceId, sessionId, operatorId, speakerStub, micStub, listener); + RobotAudioStream exists = streams.putIfAbsent(sessionId, stream); + if (exists != null) { + throw new IllegalStateException("实时语音会话已存在:" + sessionId); } - switch (response.getPayloadCase()) { - case START_ACK: - listener.onStarted(sessionId, response.getStartAck().getAccepted(), response.getStartAck().getMessage()); - break; - case AUDIO_FRAME: - RobotAudio.RobotAudioFrame frame = response.getAudioFrame(); - byte[] pcm = frame.getPcm().toByteArray(); - robotInboundDumpRecorder.record(pcm); - logGrpcInboundFormatIfNeeded(sessionId, frame); - listener.onRobotAudio(sessionId, frame.getSequence(), frame.getTimestampMs(), pcm); - break; - case HEARTBEAT: - listener.onHeartbeat(sessionId, response.getHeartbeat().getTimestampMs()); - break; - case STOP: - listener.onRobotStop(sessionId, response.getStop().getReason()); - break; - case ERROR: - RobotAudio.RobotAudioError error = response.getError(); - listener.onError(sessionId, new RuntimeException(error.getCode() + ":" + error.getMessage())); - break; - case PAYLOAD_NOT_SET: - default: - log.debug("机器人音频响应为空payload,sessionId={}", sessionId); - break; + try { + stream.start(); + log.info("实时对讲 gRPC 流已创建,sessionId={},terminalId={},speakerDeviceId={},micDeviceId={},operatorId={},sampleRate={},channels={},bits={},frameMs={},frameBytes={}", + sessionId, terminalId, speakerDeviceId, micDeviceId, operatorId, SAMPLE_RATE, CHANNELS, BITS_PER_SAMPLE, FRAME_MS, FRAME_BYTES); + return stream; + } catch (RuntimeException e) { + streams.remove(sessionId, stream); + stream.closeLocalResources(); + throw e; } } - private void logGrpcInboundFormatIfNeeded(String sessionId, RobotAudio.RobotAudioFrame frame) { - long now = System.currentTimeMillis(); - Long last = lastGrpcInboundFormatLogAt.get(sessionId); - if (last != null && now - last < AUDIO_STATS_LOG_INTERVAL_MS) { - return; - } - lastGrpcInboundFormatLogAt.put(sessionId, now); - int bytes = frame.getPcm().size(); - int frameSamples = bytes / (CHANNELS * (BITS_PER_SAMPLE / 8)); - int frameMs = frameSamples * 1000 / SAMPLE_RATE; - log.info("gRPC机器人上行音频格式,sessionId={},sampleRate={},channels={},bitsPerSample={},encoding={},frameSamples={},frameMs={},bytes={},sequence={},timestampMs={}", - sessionId, - SAMPLE_RATE, - CHANNELS, - BITS_PER_SAMPLE, - ENCODING, - frameSamples, - frameMs, - bytes, - frame.getSequence(), - frame.getTimestampMs()); - logPcmStats("grpc-inbound-robot", sessionId, frame.getPcm().toByteArray(), frame.getSequence(), frame.getTimestampMs()); - } - - private void logPcmStats(String direction, String sessionId, byte[] pcm, long sequence, long timestampMs) { - PcmStats stats = PcmStats.fromPcm16Le(pcm); - log.info("PCM-STATS direction={} sessionId={} sequence={} timestampMs={} bytes={} samples={} rms={} peak={} zeroCrossRate={} firstSamples={}", - direction, - sessionId, - sequence, - timestampMs, - pcm == null ? 0 : pcm.length, - stats.samples, - stats.rms, - stats.peak, - stats.zeroCrossRate, - stats.firstSamples); - } - - /** - * 单个会话对应的一条 gRPC 双向流。 - */ - public class RobotAudioStream { - private final String terminalId; - private final String deviceId; - private final String sessionId; - private final StreamObserver requestObserver; - private final AtomicLong sequence = new AtomicLong(0); - private final AtomicBoolean closed = new AtomicBoolean(false); - private final Object sendLock = new Object(); - private final ConcurrentLinkedQueue browserAudioQueue = new ConcurrentLinkedQueue<>(); - private final AtomicInteger queuedBrowserFrames = new AtomicInteger(0); - private final Object browserAudioBufferLock = new Object(); - private byte[] browserAudioRemainder = new byte[FRAME_BYTES]; - private int browserAudioRemainderLength; - private final ScheduledExecutorService browserAudioSender; - private final ScheduledFuture browserAudioSenderFuture; - private volatile long browserAudioFramesEnqueued; - private volatile long browserAudioFramesSent; - private volatile long browserAudioFramesDropped; - private volatile long browserAudioSilentFramesSent; - private volatile boolean browserAudioStarted; - private volatile long lastAudioStatsLogAt; - private volatile long lastGrpcOutboundFormatLogAt; - - private RobotAudioStream(String terminalId, - String deviceId, - String sessionId, - StreamObserver requestObserver) { - this.terminalId = terminalId; - this.deviceId = deviceId; - this.sessionId = sessionId; - this.requestObserver = requestObserver; - this.browserAudioSender = Executors.newSingleThreadScheduledExecutor(runnable -> { - Thread thread = new Thread(runnable, "robot-audio-send-" + sessionId); - thread.setDaemon(true); - return thread; - }); - this.browserAudioSenderFuture = browserAudioSender.scheduleAtFixedRate( - this::sendQueuedBrowserAudio, - FRAME_MS, - FRAME_MS, - TimeUnit.MILLISECONDS); - } - - /** - * 通知机器人开启对讲。 - */ - public void sendStart(String operatorId) { - RobotAudio.RobotAudioFormat format = RobotAudio.RobotAudioFormat.newBuilder() - .setSampleRate(SAMPLE_RATE) - .setChannels(CHANNELS) - .setBitsPerSample(BITS_PER_SAMPLE) - .setEncoding(ENCODING) - .build(); - - RobotAudio.RobotAudioStart start = RobotAudio.RobotAudioStart.newBuilder() - .setSessionId(sessionId) - .setOperatorId(operatorId == null ? "" : operatorId) - .setFormat(format) - .build(); - - log.info("gRPC下发终端音频协商格式,sessionId={},terminalId={},deviceId={},sampleRate={},channels={},bitsPerSample={},encoding={},frameMs={},frameSamples={},frameBytes={}", - sessionId, - terminalId, - deviceId, - SAMPLE_RATE, - CHANNELS, - BITS_PER_SAMPLE, - ENCODING, - FRAME_MS, - FRAME_SAMPLES, - FRAME_BYTES); - - send(RobotAudio.RobotAudioRequest.newBuilder() - .setHeader(EdgeCommonUtil.buildRequest(deviceId)) - .setStart(start) - .build()); - } - - /** - * 将浏览器侧 WebRTC 媒体通道产出的 PCM 帧发送给机器人。 - */ - public void sendAudio(byte[] pcm) { - if (pcm == null || pcm.length == 0) { - return; - } - if (closed.get()) { - return; - } - enqueueBrowserAudio(pcm); - } - - private void enqueueBrowserAudio(byte[] pcm) { - if (closed.get()) { - return; - } - synchronized (browserAudioBufferLock) { - int offset = 0; - if (browserAudioRemainderLength > 0) { - int need = FRAME_BYTES - browserAudioRemainderLength; - int copy = Math.min(need, pcm.length); - System.arraycopy(pcm, 0, browserAudioRemainder, browserAudioRemainderLength, copy); - browserAudioRemainderLength += copy; - offset += copy; - if (browserAudioRemainderLength == FRAME_BYTES) { - offerBrowserAudioFrame(browserAudioRemainder); - browserAudioRemainder = new byte[FRAME_BYTES]; - browserAudioRemainderLength = 0; - } - } - - while (offset + FRAME_BYTES <= pcm.length) { - byte[] frame = new byte[FRAME_BYTES]; - System.arraycopy(pcm, offset, frame, 0, FRAME_BYTES); - offerBrowserAudioFrame(frame); - offset += FRAME_BYTES; - } - - int remain = pcm.length - offset; - if (remain > 0) { - System.arraycopy(pcm, offset, browserAudioRemainder, 0, remain); - browserAudioRemainderLength = remain; - } - } - } - - private void offerBrowserAudioFrame(byte[] frame) { - if (queuedBrowserFrames.get() >= MAX_QUEUED_BROWSER_FRAMES) { - if (browserAudioQueue.poll() != null) { - queuedBrowserFrames.decrementAndGet(); - browserAudioFramesDropped++; - } - } - browserAudioQueue.offer(frame.clone()); - queuedBrowserFrames.incrementAndGet(); - browserAudioFramesEnqueued++; - browserAudioStarted = true; - logBrowserAudioStatsIfNeeded("browserAudioEnqueue"); - } - - private void sendQueuedBrowserAudio() { - if (closed.get()) { - return; - } - trimBrowserAudioQueue(); - byte[] pcm = browserAudioQueue.poll(); - if (pcm == null) { - if (!browserAudioStarted) { - return; - } - pcm = new byte[FRAME_BYTES]; - browserAudioSilentFramesSent++; - } else { - queuedBrowserFrames.decrementAndGet(); - } - - RobotAudio.RobotAudioFrame frame = RobotAudio.RobotAudioFrame.newBuilder() - .setSessionId(sessionId) - .setSequence(sequence.incrementAndGet()) - .setTimestampMs(System.currentTimeMillis()) - .setPcm(ByteString.copyFrom(pcm)) - .build(); - logGrpcOutboundFormatIfNeeded(frame); - - sendDirect(RobotAudio.RobotAudioRequest.newBuilder() - .setHeader(EdgeCommonUtil.buildRequest(deviceId)) - .setAudioFrame(frame) - .build()); - browserAudioFramesSent++; - logBrowserAudioStatsIfNeeded("browserAudioGrpcSend"); - } - - private void trimBrowserAudioQueue() { - while (queuedBrowserFrames.get() > TARGET_QUEUED_BROWSER_FRAMES) { - byte[] dropped = browserAudioQueue.poll(); - if (dropped == null) { - queuedBrowserFrames.set(0); - break; - } - queuedBrowserFrames.decrementAndGet(); - browserAudioFramesDropped++; - } - } - - private void logBrowserAudioStatsIfNeeded(String source) { - long now = System.currentTimeMillis(); - if (now - lastAudioStatsLogAt < AUDIO_STATS_LOG_INTERVAL_MS) { - return; - } - lastAudioStatsLogAt = now; - log.info("gRPC浏览器音频统计,source={},sessionId={},enqueued={},sent={},dropped={},queued={}", - source, - sessionId, - browserAudioFramesEnqueued, - browserAudioFramesSent, - browserAudioFramesDropped, - queuedBrowserFrames.get()); - log.info("GRPC-BROWSER-AUDIO-STATS source={} sessionId={} enqueued={} sent={} dropped={} silentSent={} queued={}", - source, - sessionId, - browserAudioFramesEnqueued, - browserAudioFramesSent, - browserAudioFramesDropped, - browserAudioSilentFramesSent, - queuedBrowserFrames.get()); - } - - private void logGrpcOutboundFormatIfNeeded(RobotAudio.RobotAudioFrame frame) { - long now = System.currentTimeMillis(); - if (now - lastGrpcOutboundFormatLogAt < AUDIO_STATS_LOG_INTERVAL_MS) { - return; - } - lastGrpcOutboundFormatLogAt = now; - int bytes = frame.getPcm().size(); - int frameSamples = bytes / (CHANNELS * (BITS_PER_SAMPLE / 8)); - int frameMs = frameSamples * 1000 / SAMPLE_RATE; - log.info("gRPC浏览器下行音频格式,sessionId={},sampleRate={},channels={},bitsPerSample={},encoding={},frameSamples={},frameMs={},bytes={},sequence={},timestampMs={}", - sessionId, - SAMPLE_RATE, - CHANNELS, - BITS_PER_SAMPLE, - ENCODING, - frameSamples, - frameMs, - bytes, - frame.getSequence(), - frame.getTimestampMs()); - logPcmStats("grpc-outbound-browser", sessionId, frame.getPcm().toByteArray(), frame.getSequence(), frame.getTimestampMs()); - } - - - /** - * Java 侧保活心跳。机器人仍需按协议每秒上报心跳。 - */ - public void sendHeartbeat() { - RobotAudio.RobotAudioHeartbeat heartbeat = RobotAudio.RobotAudioHeartbeat.newBuilder() - .setSessionId(sessionId) - .setTimestampMs(System.currentTimeMillis()) - .build(); - - send(RobotAudio.RobotAudioRequest.newBuilder() - .setHeader(EdgeCommonUtil.buildRequest(deviceId)) - .setHeartbeat(heartbeat) - .build()); - } - - /** - * 正常结束对讲。 - */ - public void sendStop(String reason) { - if (!closed.compareAndSet(false, true)) { - return; - } - RobotAudio.RobotAudioStop stop = RobotAudio.RobotAudioStop.newBuilder() - .setSessionId(sessionId) - .setReason(reason == null ? "" : reason) - .build(); - RobotAudio.RobotAudioRequest request = RobotAudio.RobotAudioRequest.newBuilder() - .setHeader(EdgeCommonUtil.buildRequest(deviceId)) - .setStop(stop) - .build(); - executeOnGrpcSendThread(() -> { - sendDirect(request); - completeDirect(); - shutdownBrowserAudioSender(); - }); - } - - /** - * 异常关闭流。 - */ - public void cancel(String reason) { - if (closed.compareAndSet(false, true)) { - executeOnGrpcSendThread(() -> { - synchronized (sendLock) { - requestObserver.onError(Status.CANCELLED.withDescription(reason).asRuntimeException()); - } - shutdownBrowserAudioSender(); - }); - } - } - - private void complete() { - if (closed.compareAndSet(false, true)) { - executeOnGrpcSendThread(() -> { - completeDirect(); - shutdownBrowserAudioSender(); - }); - } - } - - private void completeDirect() { - synchronized (sendLock) { - requestObserver.onCompleted(); - } - } - - private void shutdownBrowserAudioSender() { - if (browserAudioSenderFuture != null) { - browserAudioSenderFuture.cancel(false); - } - browserAudioQueue.clear(); - queuedBrowserFrames.set(0); - browserAudioSender.shutdown(); - } - - private void send(RobotAudio.RobotAudioRequest request) { - if (closed.get()) { - log.warn("机器人音频流已关闭,忽略发送,sessionId={}", sessionId); - return; - } - executeOnGrpcSendThread(() -> { - if (closed.get()) { - return; - } - sendDirect(request); - }); - } - - private void executeOnGrpcSendThread(Runnable runnable) { + @PreDestroy + public void destroy() { + for (RobotAudioStream stream : streams.values()) { try { - browserAudioSender.execute(runnable); + stream.cancel("application shutdown"); } catch (Exception e) { - log.warn("机器人音频gRPC发送线程不可用,sessionId={}", sessionId, e); + log.debug("关闭实时语音流异常,sessionId={}", stream.getSessionId(), e); } } + streams.clear(); + } - private void sendDirect(RobotAudio.RobotAudioRequest request) { - synchronized (sendLock) { - requestObserver.onNext(request); + private void preflightDeviceStatus(SpeakerServiceGrpc.SpeakerServiceBlockingStub speakerStub, + MicPhoneServiceGrpc.MicPhoneServiceBlockingStub micStub, + String speakerDeviceId, + String micDeviceId, + String sessionId) { + try { + SpeakerCommand.GetSpeakerStateCommand.Request speakerRequest = SpeakerCommand.GetSpeakerStateCommand.Request.newBuilder() + .setHeader(EdgeCommonUtil.buildRequest(speakerDeviceId)) + .build(); + SpeakerCommand.GetSpeakerStateCommand.Feedback speakerFeedback = + speakerStub.withDeadlineAfter(HEARTBEAT_DEADLINE_MS, TimeUnit.MILLISECONDS).getStatus(speakerRequest); + if (speakerFeedback != null && speakerFeedback.hasHeader() && !speakerFeedback.getHeader().getSuccess()) { + throw new IllegalStateException("speaker device unavailable: " + speakerFeedback.getHeader().getErrorMessage()); } - } - public String getTerminalId() { - return terminalId; - } - - public String getDeviceId() { - return deviceId; - } - - public String getSessionId() { - return sessionId; + MicrophoneCommand.GetMicStateCommand.Request micRequest = MicrophoneCommand.GetMicStateCommand.Request.newBuilder() + .setHeader(EdgeCommonUtil.buildRequest(micDeviceId)) + .build(); + MicrophoneCommand.GetMicStateCommand.Feedback micFeedback = + micStub.withDeadlineAfter(HEARTBEAT_DEADLINE_MS, TimeUnit.MILLISECONDS).getStatus(micRequest); + if (micFeedback != null && micFeedback.hasHeader() && !micFeedback.getHeader().getSuccess()) { + throw new IllegalStateException("microphone device unavailable: " + micFeedback.getHeader().getErrorMessage()); + } + log.info("实时对讲设备预检通过,sessionId={},speakerDeviceId={},micDeviceId={}", sessionId, speakerDeviceId, micDeviceId); + } catch (RuntimeException e) { + log.error("实时对讲设备预检失败,sessionId={},speakerDeviceId={},micDeviceId={}", sessionId, speakerDeviceId, micDeviceId, e); + throw e; } } - /** - * gRPC 流事件监听器,由业务层实现会话状态更新和音频转发。 - */ public interface RobotAudioStreamListener { void onStarted(String sessionId, boolean accepted, String message); @@ -549,151 +162,684 @@ public class RobotAudioGrpcAdapter { void onCompleted(String sessionId); } - private static class WavDumpRecorder { - private final String name; - private final int maxBytes; - private final ByteArrayOutputStream buffer; - private Path filePath; - private int writtenBytes; - private boolean completed; + public class RobotAudioStream { + private final String terminalId; + private final String speakerDeviceId; + private final String micDeviceId; + private final String sessionId; + private final String operatorId; + private final SpeakerServiceGrpc.SpeakerServiceStub speakerStub; + private final MicPhoneServiceGrpc.MicPhoneServiceStub micStub; + private final RobotAudioStreamListener listener; + private final ScheduledExecutorService sendExecutor; + private final ArrayBlockingQueue browserFrameQueue = new ArrayBlockingQueue<>(MAX_QUEUED_BROWSER_FRAMES); + private final Object browserBufferLock = new Object(); + private final AtomicBoolean closed = new AtomicBoolean(false); + private final AtomicBoolean terminalNotified = new AtomicBoolean(false); + private final AtomicBoolean heartbeatInFlight = new AtomicBoolean(false); + private final AtomicLong outboundSequence = new AtomicLong(0); + private final AtomicLong inboundSequence = new AtomicLong(0); + private final AtomicLong enqueued = new AtomicLong(0); + private final AtomicLong sent = new AtomicLong(0); + private final AtomicLong dropped = new AtomicLong(0); - private WavDumpRecorder(String name, int maxBytes) { - this.name = name; - this.maxBytes = maxBytes; - this.buffer = new ByteArrayOutputStream(maxBytes); + private volatile StreamObserver speakerRequestObserver; + private volatile ClientCallStreamObserver micRequestObserver; + private volatile ScheduledFuture sendFuture; + private volatile ScheduledFuture heartbeatFuture; + private volatile long lastStatsLogAt; + private volatile byte[] pendingBrowserBytes = new byte[0]; + + private RobotAudioStream(String terminalId, + String speakerDeviceId, + String micDeviceId, + String sessionId, + String operatorId, + SpeakerServiceGrpc.SpeakerServiceStub speakerStub, + MicPhoneServiceGrpc.MicPhoneServiceStub micStub, + RobotAudioStreamListener listener) { + this.terminalId = terminalId; + this.speakerDeviceId = speakerDeviceId; + this.micDeviceId = micDeviceId; + this.sessionId = sessionId; + this.operatorId = operatorId; + this.speakerStub = speakerStub; + this.micStub = micStub; + this.listener = listener; + this.sendExecutor = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory("robot-audio-send-" + sessionId)); } - private synchronized void record(byte[] pcm) { - if (completed || pcm == null || pcm.length == 0) { + private void start() { + openSpeakerStream(); + openMicStream(); + this.sendFuture = sendExecutor.scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + sendOneBrowserFrame(); + } + }, 0L, FRAME_MS, TimeUnit.MILLISECONDS); + this.heartbeatFuture = sendExecutor.scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + probeHeartbeat(); + } + }, HEARTBEAT_INTERVAL_MS, HEARTBEAT_INTERVAL_MS, TimeUnit.MILLISECONDS); + listener.onStarted(sessionId, true, "audio stream started"); + } + + private void openSpeakerStream() { + StreamObserver responseObserver = + new StreamObserver() { + @Override + public void onNext(SpeakerCommand.StreamSpeakerAudioCommand.Feedback feedback) { + if (closed.get()) { + return; + } + if (feedback != null && feedback.hasHeader() && !feedback.getHeader().getSuccess()) { + fail("speaker feedback", new IllegalStateException("speaker stream feedback failed: " + feedback.getHeader().getErrorMessage())); + } else { + listener.onHeartbeat(sessionId, System.currentTimeMillis()); + } + } + + @Override + public void onError(Throwable t) { + if (closed.get()) { + return; + } + fail("speaker stream", t); + } + + @Override + public void onCompleted() { + if (closed.get()) { + return; + } + completeFromRemote(); + } + }; + this.speakerRequestObserver = speakerStub.streamAudio(responseObserver); + } + + private void openMicStream() { + MicrophoneCommand.StreamMicAudioCommand.Request request = MicrophoneCommand.StreamMicAudioCommand.Request.newBuilder() + .setHeader(EdgeCommonUtil.buildRequest(micDeviceId)) + .build(); + + micStub.streamAudio(request, + new ClientResponseObserver() { + @Override + public void beforeStart(ClientCallStreamObserver requestStream) { + micRequestObserver = requestStream; + requestStream.disableAutoInboundFlowControl(); + log.info("麦克风音频流已启用手动入站流控,sessionId={},micDeviceId={}", sessionId, micDeviceId); + } + + @Override + public void onNext(MicrophoneCommand.StreamMicAudioCommand.Feedback feedback) { + handleMicFeedback(feedback); + } + + @Override + public void onError(Throwable t) { + if (closed.get()) { + return; + } + fail("mic stream", t); + } + + @Override + public void onCompleted() { + if (closed.get()) { + return; + } + completeFromRemote(); + } + }); + requestNextMicFrame(1L); + } + + /** + * 接收浏览器 WebSocket 二进制 PCM。允许前端一次发多帧或半帧,这里按 10ms 固定帧重组。 + */ + public void sendAudio(byte[] pcm) { + if (closed.get() || pcm == null || pcm.length == 0) { return; } + synchronized (browserBufferLock) { + byte[] merged = new byte[pendingBrowserBytes.length + pcm.length]; + System.arraycopy(pendingBrowserBytes, 0, merged, 0, pendingBrowserBytes.length); + System.arraycopy(pcm, 0, merged, pendingBrowserBytes.length, pcm.length); + + int offset = 0; + while (merged.length - offset >= FRAME_BYTES) { + byte[] frame = Arrays.copyOfRange(merged, offset, offset + FRAME_BYTES); + enqueueBrowserFrame(frame); + offset += FRAME_BYTES; + } + pendingBrowserBytes = Arrays.copyOfRange(merged, offset, merged.length); + } + } + + public void sendHeartbeat() { + if (!closed.get()) { + probeHeartbeat(); + } + } + + public void sendStop(String reason) { + if (!closed.compareAndSet(false, true)) { + return; + } + log.info("关闭实时对讲 gRPC 流,sessionId={},reason={}", sessionId, reason); + sendExecutor.execute(new Runnable() { + @Override + public void run() { + completeSpeakerStream(); + cancelMicStream("browser stop"); + stopTerminalAudio(); + closeLocalResources(); + streams.remove(sessionId, RobotAudioStream.this); + } + }); + } + + public void cancel(String reason) { + if (!closed.compareAndSet(false, true)) { + return; + } + log.warn("取消实时对讲 gRPC 流,sessionId={},reason={}", sessionId, reason); + sendExecutor.execute(new Runnable() { + @Override + public void run() { + errorSpeakerStream(reason); + cancelMicStream(reason); + stopTerminalAudio(); + closeLocalResources(); + streams.remove(sessionId, RobotAudioStream.this); + } + }); + } + + public String getSessionId() { + return sessionId; + } + + public String getTerminalId() { + return terminalId; + } + + public String getDeviceId() { + return speakerDeviceId; + } + + private void enqueueBrowserFrame(byte[] frame) { + if (browserFrameQueue.remainingCapacity() == 0) { + int targetDrops = Math.max(1, browserFrameQueue.size() - TARGET_QUEUED_BROWSER_FRAMES + 1); + for (int i = 0; i < targetDrops; i++) { + if (browserFrameQueue.poll() != null) { + dropped.incrementAndGet(); + } + } + } + if (browserFrameQueue.offer(frame)) { + enqueued.incrementAndGet(); + } else { + dropped.incrementAndGet(); + } + logBrowserAudioStatsIfNeeded("browserAudioEnqueue"); + } + + private void sendOneBrowserFrame() { + if (closed.get()) { + return; + } + byte[] frame = browserFrameQueue.poll(); + if (frame == null) { + return; + } + StreamObserver observer = speakerRequestObserver; + if (observer == null) { + dropped.incrementAndGet(); + return; + } + long sequence = outboundSequence.incrementAndGet(); + long timestampMs = System.currentTimeMillis(); try { - if (filePath == null) { - Path dir = Paths.get("logs", "audio-dump"); - Files.createDirectories(dir); - filePath = dir.resolve(name + "-" + System.currentTimeMillis() + ".wav"); - log.info("开始保存10秒WAV音频,name={},file={},sampleRate={},channels={},bitsPerSample={}", - name, filePath.toAbsolutePath(), SAMPLE_RATE, CHANNELS, BITS_PER_SAMPLE); - } - int remain = maxBytes - writtenBytes; - int writeBytes = Math.min(remain, pcm.length); - buffer.write(pcm, 0, writeBytes); - writtenBytes += writeBytes; - if (writtenBytes >= maxBytes) { - writeWavFile(filePath, buffer.toByteArray(), SAMPLE_RATE, CHANNELS, BITS_PER_SAMPLE); - completed = true; - log.info("WAV音频保存完成,name={},file={},pcmBytes={}", - name, filePath == null ? "" : filePath.toAbsolutePath(), writtenBytes); - } - } catch (IOException e) { - completed = true; - log.warn("保存WAV音频失败,name={},file={}", name, filePath, e); + observer.onNext(buildSpeakerAudioRequest(frame, timestampMs)); + sent.incrementAndGet(); + logGrpcOutboundFormatIfNeeded(sequence, timestampMs, frame); + logPcmStatsIfNeeded("grpc-outbound-browser", sequence, timestampMs, frame); + logBrowserAudioStatsIfNeeded("browserAudioGrpcSend"); + } catch (Throwable t) { + fail("speaker send", t); } } - private void writeWavFile(Path path, byte[] pcm, int sampleRate, int channels, int bitsPerSample) throws IOException { - try (OutputStream out = Files.newOutputStream(path, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE)) { - writeAscii(out, "RIFF"); - writeIntLe(out, 36 + pcm.length); - writeAscii(out, "WAVE"); - writeAscii(out, "fmt "); - writeIntLe(out, 16); - writeShortLe(out, 1); - writeShortLe(out, channels); - writeIntLe(out, sampleRate); - writeIntLe(out, sampleRate * channels * bitsPerSample / 8); - writeShortLe(out, channels * bitsPerSample / 8); - writeShortLe(out, bitsPerSample); - writeAscii(out, "data"); - writeIntLe(out, pcm.length); - out.write(pcm); + private SpeakerCommand.StreamSpeakerAudioCommand.Request buildSpeakerAudioRequest(byte[] frame, long timestampMs) { + Common.AudioData audio = Common.AudioData.newBuilder() + .setData(ByteString.copyFrom(frame)) + .setSampleRate(SAMPLE_RATE) + .setChannels(CHANNELS) + .setFormat(Common.AudioData.AudioFormat.PCM) + .setCodec(CODEC) + .setPts(timestampMs) + .setNbSamples(FRAME_SAMPLES) + .build(); + return SpeakerCommand.StreamSpeakerAudioCommand.Request.newBuilder() + .setHeader(EdgeCommonUtil.buildRequest(speakerDeviceId)) + .setAudio(audio) + .build(); + } + + private void handleMicFeedback(MicrophoneCommand.StreamMicAudioCommand.Feedback feedback) { + if (closed.get()) { + return; + } + if (feedback == null) { + listener.onHeartbeat(sessionId, System.currentTimeMillis()); + requestNextMicFrame(FRAME_MS); + return; + } + if (feedback.hasHeader() && !feedback.getHeader().getSuccess()) { + fail("mic feedback", new IllegalStateException("microphone stream feedback failed: " + feedback.getHeader().getErrorMessage())); + return; + } + listener.onHeartbeat(sessionId, System.currentTimeMillis()); + if (!feedback.hasAudio()) { + requestNextMicFrame(FRAME_MS); + return; + } + + Common.AudioData audio = feedback.getAudio(); + byte[] pcm = audio.getData().toByteArray(); + if (!validateInboundAudio(audio, pcm)) { + requestNextMicFrame(FRAME_MS); + return; + } + long audioDurationMs = calculateAudioDurationMs(audio, pcm); + long sequence = inboundSequence.incrementAndGet(); + long timestampMs = audio.getPts() > 0 ? audio.getPts() : System.currentTimeMillis(); + logGrpcInboundFormatIfNeeded(sequence, timestampMs, audio, pcm); + logPcmStatsIfNeeded("grpc-inbound-robot", sequence, timestampMs, pcm); + byte[] normalizedPcm = normalizeInboundAudio(audio, pcm, sequence, timestampMs); + logPcmStatsIfNeeded("webrtc-outbound-robot-normalized", sequence, timestampMs, normalizedPcm); + try { + listener.onRobotAudio(sessionId, sequence, timestampMs, normalizedPcm); + } catch (Throwable t) { + log.error("投递机器人音频到业务层失败,sessionId={},sequence={}", sessionId, sequence, t); + fail("business callback", t); + return; + } + requestNextMicFrame(audioDurationMs); + } + + private boolean validateInboundAudio(Common.AudioData audio, byte[] pcm) { + if (pcm == null || pcm.length == 0) { + return false; + } + if ((pcm.length & 1) != 0) { + log.warn("机器人上行 PCM 字节数不是偶数,sessionId={},bytes={}", sessionId, pcm.length); + return false; + } + if (audio.getFormat() != Common.AudioData.AudioFormat.PCM) { + log.warn("机器人上行音频格式不是 PCM,sessionId={},format={}", sessionId, audio.getFormat()); + return false; + } + String codec = audio.getCodec(); + if (codec != null && codec.length() > 0 && !CODEC.equalsIgnoreCase(codec)) { + log.warn("机器人上行编码不匹配,sessionId={},codec={},expected={}", sessionId, codec, CODEC); + } + return true; + } + + private long calculateAudioDurationMs(Common.AudioData audio, byte[] pcm) { + int sampleRate = audio.getSampleRate() <= 0 ? SAMPLE_RATE : audio.getSampleRate(); + int channels = audio.getChannels() <= 0 ? CHANNELS : audio.getChannels(); + int samples = audio.getNbSamples(); + if (samples <= 0 && pcm != null && pcm.length > 0) { + samples = pcm.length / 2 / Math.max(1, channels); + } + if (sampleRate <= 0 || samples <= 0) { + return FRAME_MS; + } + return Math.max(1L, Math.round(samples * 1000.0D / sampleRate)); + } + + private void requestNextMicFrame(long delayMs) { + if (closed.get()) { + return; + } + final long safeDelayMs = Math.max(1L, delayMs); + sendExecutor.schedule(new Runnable() { + @Override + public void run() { + if (closed.get()) { + return; + } + ClientCallStreamObserver observer = micRequestObserver; + if (observer == null) { + return; + } + try { + observer.request(1); + } catch (Throwable t) { + fail("mic flow-control request", t); + } + } + }, safeDelayMs, TimeUnit.MILLISECONDS); + } + + private byte[] normalizeInboundAudio(Common.AudioData audio, byte[] pcm, long sequence, long timestampMs) { + int sourceSampleRate = audio.getSampleRate() <= 0 ? SAMPLE_RATE : audio.getSampleRate(); + int sourceChannels = audio.getChannels() <= 0 ? CHANNELS : audio.getChannels(); + if (sourceSampleRate == SAMPLE_RATE && sourceChannels == CHANNELS) { + return pcm; + } + + short[] monoSamples = decodeToMonoSamples(pcm, sourceChannels); + short[] normalizedSamples = sourceSampleRate == SAMPLE_RATE + ? monoSamples + : resampleLinear(monoSamples, sourceSampleRate, SAMPLE_RATE); + byte[] normalizedPcm = encodeMonoSamples(normalizedSamples); + if (sequence == 1 || sequence % 500 == 0) { + log.info("机器人上行音频已标准化,sessionId={},sourceSampleRate={},sourceChannels={},targetSampleRate={},targetChannels={},sourceBytes={},targetBytes={},sequence={},timestampMs={}", + sessionId, sourceSampleRate, sourceChannels, SAMPLE_RATE, CHANNELS, pcm.length, normalizedPcm.length, sequence, timestampMs); + } + return normalizedPcm; + } + + private short[] decodeToMonoSamples(byte[] pcm, int sourceChannels) { + int channels = Math.max(1, sourceChannels); + int frameCount = pcm.length / 2 / channels; + short[] mono = new short[frameCount]; + for (int frame = 0; frame < frameCount; frame++) { + int sum = 0; + for (int channel = 0; channel < channels; channel++) { + int sampleIndex = (frame * channels + channel) * 2; + int lo = pcm[sampleIndex] & 0xff; + int hi = pcm[sampleIndex + 1]; + sum += (short) ((hi << 8) | lo); + } + mono[frame] = (short) (sum / channels); + } + return mono; + } + + private short[] resampleLinear(short[] input, int sourceSampleRate, int targetSampleRate) { + if (input.length == 0 || sourceSampleRate <= 0 || targetSampleRate <= 0) { + return input; + } + int outputLength = Math.max(1, (int) Math.round(input.length * (targetSampleRate / (double) sourceSampleRate))); + short[] output = new short[outputLength]; + double sourceStep = sourceSampleRate / (double) targetSampleRate; + for (int i = 0; i < outputLength; i++) { + double sourceIndex = i * sourceStep; + int left = (int) sourceIndex; + int right = Math.min(left + 1, input.length - 1); + double fraction = sourceIndex - left; + double value = input[left] + (input[right] - input[left]) * fraction; + output[i] = clampToShort((int) Math.round(value)); + } + return output; + } + + private byte[] encodeMonoSamples(short[] samples) { + byte[] pcm = new byte[samples.length * 2]; + for (int i = 0; i < samples.length; i++) { + pcm[i * 2] = (byte) (samples[i] & 0xff); + pcm[i * 2 + 1] = (byte) ((samples[i] >> 8) & 0xff); + } + return pcm; + } + + private short clampToShort(int value) { + if (value > Short.MAX_VALUE) { + return Short.MAX_VALUE; + } + if (value < Short.MIN_VALUE) { + return Short.MIN_VALUE; + } + return (short) value; + } + + private void probeHeartbeat() { + if (closed.get() || !heartbeatInFlight.compareAndSet(false, true)) { + return; + } + MicrophoneCommand.GetMicStateCommand.Request request = MicrophoneCommand.GetMicStateCommand.Request.newBuilder() + .setHeader(EdgeCommonUtil.buildRequest(micDeviceId)) + .build(); + micStub.withDeadlineAfter(HEARTBEAT_DEADLINE_MS, TimeUnit.MILLISECONDS).getStatus(request, + new StreamObserver() { + @Override + public void onNext(MicrophoneCommand.GetMicStateCommand.Feedback feedback) { + if (feedback != null && feedback.hasHeader() && !feedback.getHeader().getSuccess()) { + log.warn("实时对讲麦克风心跳返回失败,sessionId={},message={}", sessionId, feedback.getHeader().getErrorMessage()); + return; + } + listener.onHeartbeat(sessionId, System.currentTimeMillis()); + } + + @Override + public void onError(Throwable t) { + log.debug("实时对讲麦克风心跳探测失败,sessionId={}", sessionId, t); + heartbeatInFlight.set(false); + } + + @Override + public void onCompleted() { + heartbeatInFlight.set(false); + } + }); + } + + private void fail(String source, Throwable throwable) { + if (!closed.compareAndSet(false, true)) { + return; + } + Throwable actual = throwable == null ? new RuntimeException("audio stream failed") : throwable; + log.error("实时对讲 gRPC 流异常,source={},sessionId={},terminalId={},speakerDeviceId={},micDeviceId={}", + source, sessionId, terminalId, speakerDeviceId, micDeviceId, actual); + sendExecutor.execute(new Runnable() { + @Override + public void run() { + errorSpeakerStream(actual.getMessage()); + cancelMicStream(actual.getMessage()); + stopTerminalAudio(); + closeLocalResources(); + streams.remove(sessionId, RobotAudioStream.this); + if (terminalNotified.compareAndSet(false, true)) { + listener.onError(sessionId, actual); + } + } + }); + } + + private void completeFromRemote() { + if (!closed.compareAndSet(false, true)) { + return; + } + log.info("实时对讲 gRPC 流远端结束,sessionId={},terminalId={},speakerDeviceId={},micDeviceId={}", sessionId, terminalId, speakerDeviceId, micDeviceId); + sendExecutor.execute(new Runnable() { + @Override + public void run() { + completeSpeakerStream(); + cancelMicStream("remote completed"); + closeLocalResources(); + streams.remove(sessionId, RobotAudioStream.this); + if (terminalNotified.compareAndSet(false, true)) { + listener.onCompleted(sessionId); + } + } + }); + } + + private void completeSpeakerStream() { + StreamObserver observer = speakerRequestObserver; + speakerRequestObserver = null; + if (observer != null) { + try { + observer.onCompleted(); + } catch (Throwable t) { + log.debug("完成扬声器音频流异常,sessionId={}", sessionId, t); + } } } - private void writeAscii(OutputStream out, String value) throws IOException { - out.write(value.getBytes(java.nio.charset.StandardCharsets.US_ASCII)); + private void errorSpeakerStream(String reason) { + StreamObserver observer = speakerRequestObserver; + speakerRequestObserver = null; + if (observer != null) { + try { + observer.onError(Status.CANCELLED.withDescription(reason == null ? "audio cancelled" : reason).asRuntimeException()); + } catch (Throwable t) { + log.debug("取消扬声器音频流异常,sessionId={}", sessionId, t); + } + } } - private void writeIntLe(OutputStream out, int value) throws IOException { - out.write(value & 0xFF); - out.write((value >> 8) & 0xFF); - out.write((value >> 16) & 0xFF); - out.write((value >> 24) & 0xFF); + private void cancelMicStream(String reason) { + ClientCallStreamObserver observer = micRequestObserver; + micRequestObserver = null; + if (observer != null) { + try { + observer.cancel(reason == null ? "audio cancelled" : reason, null); + } catch (Throwable t) { + log.debug("取消麦克风音频流异常,sessionId={}", sessionId, t); + } + } } - private void writeShortLe(OutputStream out, int value) throws IOException { - out.write(value & 0xFF); - out.write((value >> 8) & 0xFF); + /** + * 会话关闭时尽量停止终端侧播放和采集,失败不阻断本地资源释放。 + */ + private void stopTerminalAudio() { + try { + SpeakerCommand.StopSpeakerCommand.Request speakerStop = SpeakerCommand.StopSpeakerCommand.Request.newBuilder() + .setHeader(EdgeCommonUtil.buildRequest(speakerDeviceId)) + .build(); + speakerStub.withDeadlineAfter(HEARTBEAT_DEADLINE_MS, TimeUnit.MILLISECONDS).stopPlayback(speakerStop, + new EmptyStreamObserver("stop speaker", sessionId)); + } catch (Throwable t) { + log.debug("下发停止扬声器失败,sessionId={}", sessionId, t); + } + try { + MicrophoneCommand.StopMicRecordingCommand.Request micStop = MicrophoneCommand.StopMicRecordingCommand.Request.newBuilder() + .setHeader(EdgeCommonUtil.buildRequest(micDeviceId)) + .build(); + micStub.withDeadlineAfter(HEARTBEAT_DEADLINE_MS, TimeUnit.MILLISECONDS).stopRecord(micStop, + new EmptyStreamObserver("stop mic", sessionId)); + } catch (Throwable t) { + log.debug("下发停止麦克风失败,sessionId={}", sessionId, t); + } + } + + private void closeLocalResources() { + ScheduledFuture sf = sendFuture; + if (sf != null) { + sf.cancel(false); + } + ScheduledFuture hf = heartbeatFuture; + if (hf != null) { + hf.cancel(false); + } + browserFrameQueue.clear(); + pendingBrowserBytes = new byte[0]; + if (!sendExecutor.isShutdown()) { + sendExecutor.shutdown(); + } + } + + private void logGrpcInboundFormatIfNeeded(long sequence, long timestampMs, Common.AudioData audio, byte[] pcm) { + if (sequence == 1 || sequence % 500 == 0) { + log.info("gRPC机器人上行音频格式,sessionId={},sampleRate={},channels={},bitsPerSample={},encoding={},frameSamples={},frameMs={},bytes={},sequence={},timestampMs={}", + sessionId, + audio.getSampleRate() == 0 ? SAMPLE_RATE : audio.getSampleRate(), + audio.getChannels() == 0 ? CHANNELS : audio.getChannels(), + BITS_PER_SAMPLE, + audio.getCodec() == null || audio.getCodec().length() == 0 ? CODEC : audio.getCodec(), + audio.getNbSamples() == 0 ? pcm.length / 2 : audio.getNbSamples(), + FRAME_MS, + pcm.length, + sequence, + timestampMs); + } + } + + private void logGrpcOutboundFormatIfNeeded(long sequence, long timestampMs, byte[] frame) { + if (sequence == 1 || sequence % 500 == 0) { + log.info("gRPC浏览器下行音频格式,sessionId={},sampleRate={},channels={},bitsPerSample={},encoding={},frameSamples={},frameMs={},bytes={},sequence={},timestampMs={}", + sessionId, SAMPLE_RATE, CHANNELS, BITS_PER_SAMPLE, CODEC, FRAME_SAMPLES, FRAME_MS, frame.length, sequence, timestampMs); + } + } + + private void logBrowserAudioStatsIfNeeded(String source) { + long now = System.currentTimeMillis(); + if (now - lastStatsLogAt < 5000L) { + return; + } + lastStatsLogAt = now; + log.info("gRPC浏览器音频统计,source={},sessionId={},enqueued={},sent={},dropped={},queued={}", + source, sessionId, enqueued.get(), sent.get(), dropped.get(), browserFrameQueue.size()); + } + + private void logPcmStatsIfNeeded(String direction, long sequence, long timestampMs, byte[] pcm) { + if (sequence != 1 && sequence % 500 != 0) { + return; + } + PcmStats stats = PcmStats.from(pcm); + log.info("PCM-STATS direction={} sessionId={} sequence={} timestampMs={} bytes={} samples={} rms={} peak={} zeroCrossRate={} firstSamples={}", + direction, sessionId, sequence, timestampMs, pcm.length, stats.samples, stats.rms, stats.peak, stats.zeroCrossRate, stats.firstSamples); } } - private static class PcmDumpRecorder { + private static class EmptyStreamObserver implements StreamObserver { + private final String action; + private final String sessionId; + + private EmptyStreamObserver(String action, String sessionId) { + this.action = action; + this.sessionId = sessionId; + } + + @Override + public void onNext(T value) { + } + + @Override + public void onError(Throwable t) { + log.debug("{} failed, sessionId={}", action, sessionId, t); + } + + @Override + public void onCompleted() { + } + } + + private static class NamedThreadFactory implements ThreadFactory { private final String name; - private final int maxBytes; - private OutputStream outputStream; - private Path filePath; - private int writtenBytes; - private boolean completed; - private PcmDumpRecorder(String name, int maxBytes) { + private NamedThreadFactory(String name) { this.name = name; - this.maxBytes = maxBytes; } - private synchronized void record(byte[] pcm) { - if (completed || pcm == null || pcm.length == 0) { - return; - } - try { - if (outputStream == null) { - Path dir = Paths.get("logs", "audio-dump"); - Files.createDirectories(dir); - filePath = dir.resolve(name + "-" + System.currentTimeMillis() + ".pcm"); - outputStream = Files.newOutputStream(filePath, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE); - log.info("开始保存10秒PCM音频,name={},file={},sampleRate={},channels={},bitsPerSample={}", - name, filePath.toAbsolutePath(), SAMPLE_RATE, CHANNELS, BITS_PER_SAMPLE); - } - int remain = maxBytes - writtenBytes; - int writeBytes = Math.min(remain, pcm.length); - outputStream.write(pcm, 0, writeBytes); - writtenBytes += writeBytes; - if (writtenBytes >= maxBytes) { - close(); - completed = true; - log.info("PCM音频保存完成,name={},file={},bytes={}", - name, filePath == null ? "" : filePath.toAbsolutePath(), writtenBytes); - } - } catch (IOException e) { - completed = true; - closeQuietly(); - log.warn("保存PCM音频失败,name={},file={}", name, filePath, e); - } - } - - private void close() throws IOException { - if (outputStream != null) { - outputStream.flush(); - outputStream.close(); - outputStream = null; - } - } - - private void closeQuietly() { - try { - close(); - } catch (IOException ignored) { - } + @Override + public Thread newThread(Runnable r) { + Thread thread = new Thread(r, name); + thread.setDaemon(true); + return thread; } } private static class PcmStats { private final int samples; - private final int rms; + private final long rms; private final int peak; private final String zeroCrossRate; private final String firstSamples; - private PcmStats(int samples, int rms, int peak, String zeroCrossRate, String firstSamples) { + private PcmStats(int samples, long rms, int peak, String zeroCrossRate, String firstSamples) { this.samples = samples; this.rms = rms; this.peak = peak; @@ -701,32 +847,30 @@ public class RobotAudioGrpcAdapter { this.firstSamples = firstSamples; } - private static PcmStats fromPcm16Le(byte[] pcm) { - if (pcm == null || pcm.length < 2) { + private static PcmStats from(byte[] pcm) { + int samples = pcm == null ? 0 : pcm.length / 2; + if (samples == 0) { return new PcmStats(0, 0, 0, "0.0000", "[]"); } - - int samples = pcm.length / 2; long squareSum = 0L; int peak = 0; int zeroCross = 0; int previous = 0; StringBuilder first = new StringBuilder("["); - int firstCount = Math.min(8, samples); - for (int i = 0; i < samples; i++) { - int low = pcm[i * 2] & 0xFF; - int high = pcm[i * 2 + 1]; - short sample = (short) ((high << 8) | low); - int value = sample; + int lo = pcm[i * 2] & 0xff; + int hi = pcm[i * 2 + 1]; + int value = (short) ((hi << 8) | lo); int abs = Math.abs(value); - peak = Math.max(peak, abs); + if (abs > peak) { + peak = abs; + } squareSum += (long) value * value; if (i > 0 && ((previous < 0 && value >= 0) || (previous >= 0 && value < 0))) { zeroCross++; } previous = value; - if (i < firstCount) { + if (i < 8) { if (i > 0) { first.append(','); } @@ -734,10 +878,10 @@ public class RobotAudioGrpcAdapter { } } first.append(']'); - - int rms = (int) Math.round(Math.sqrt(squareSum / (double) samples)); - String zeroCrossRate = String.format(java.util.Locale.ROOT, "%.4f", zeroCross / (double) Math.max(1, samples - 1)); - return new PcmStats(samples, rms, peak, zeroCrossRate, first.toString()); + long rms = (long) Math.sqrt(squareSum / (double) samples); + String zcr = String.format("%.4f", zeroCross / (double) samples); + return new PcmStats(samples, rms, peak, zcr, first.toString()); } } + } diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/manage/GrpcServiceManager.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/manage/GrpcServiceManager.java index 0cf5977..2ac235a 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/manage/GrpcServiceManager.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/manage/GrpcServiceManager.java @@ -47,8 +47,10 @@ public class GrpcServiceManager { clientFactories.put(SystemServiceGrpc.SystemServiceBlockingStub.class, new GrpcClientFactory<>(SystemServiceGrpc::newBlockingStub)); // 注册扬声器服务的 Stub clientFactories.put(SpeakerServiceGrpc.SpeakerServiceBlockingStub.class, new GrpcClientFactory<>(SpeakerServiceGrpc::newBlockingStub)); + clientFactories.put(SpeakerServiceGrpc.SpeakerServiceStub.class, new GrpcClientFactory<>(SpeakerServiceGrpc::newStub)); // 注册麦克风服务的 Stub clientFactories.put(MicPhoneServiceGrpc.MicPhoneServiceBlockingStub.class, new GrpcClientFactory<>(MicPhoneServiceGrpc::newBlockingStub)); + clientFactories.put(MicPhoneServiceGrpc.MicPhoneServiceStub.class, new GrpcClientFactory<>(MicPhoneServiceGrpc::newStub)); // 注册机器人头部服务的 Stub clientFactories.put(BioHeadServiceGrpc.BioHeadServiceBlockingStub.class, new GrpcClientFactory<>(BioHeadServiceGrpc::newBlockingStub)); // 注册机器人灵巧手服务的 Stub @@ -60,7 +62,6 @@ public class GrpcServiceManager { // 注册agv服务的stub clientFactories.put(AgvServiceGrpc.AgvServiceBlockingStub.class, new GrpcClientFactory<>(AgvServiceGrpc::newBlockingStub)); // 注册机器人实时语音双向流服务的异步Stub - clientFactories.put(RobotAudioServiceGrpc.RobotAudioServiceStub.class, new GrpcClientFactory<>(RobotAudioServiceGrpc::newStub)); } diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/AudioService.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/AudioService.java index cd0cf81..ed7347b 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/AudioService.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/service/AudioService.java @@ -21,6 +21,12 @@ import java.nio.ByteBuffer; import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.TimeUnit; import java.util.function.Consumer; /** @@ -40,6 +46,12 @@ public class AudioService implements RobotAudioStreamListener { /** 机器人心跳超时时间:机器人每 1 秒上报一次,超过 5 秒判定离线。 */ private static final long ROBOT_HEARTBEAT_TIMEOUT_MS = 5000L; + private static final int BROWSER_AUDIO_FRAME_BYTES = 960; + private static final int BROWSER_AUDIO_FRAME_MS = 10; + private static final int TARGET_BROWSER_AUDIO_QUEUE_FRAMES = 4; + private static final int MAX_BROWSER_AUDIO_CATCH_UP_FRAMES = 4; + private static final int WARN_BROWSER_AUDIO_QUEUE_FRAMES = 100; + private static final long BROWSER_AUDIO_PUSH_INTERVAL_MS = 5L; private final RobotAudioGrpcAdapter robotAudioGrpcAdapter; @@ -166,13 +178,25 @@ public class AudioService implements RobotAudioStreamListener { private void handleJoin(WebSocketSession webSocketSession, JsonNode jsonNode) { String terminalId = getText(jsonNode, "terminalId"); String deviceId = getText(jsonNode, "deviceId"); + String speakerDeviceId = getText(jsonNode, "speakerDeviceId"); + String micDeviceId = getText(jsonNode, "micDeviceId"); String operatorId = getText(jsonNode, "operatorId"); String sessionId = getText(jsonNode, "sessionId"); - if (terminalId == null || deviceId == null) { - sendError(webSocketSession, sessionId, "terminalId和deviceId不能为空"); + if (speakerDeviceId == null) { + speakerDeviceId = deviceId; + } + if (micDeviceId == null) { + micDeviceId = deviceId; + } + + if (terminalId == null || speakerDeviceId == null || micDeviceId == null) { + sendError(webSocketSession, sessionId, "terminalId、speakerDeviceId、micDeviceId不能为空"); return; } + if (deviceId == null) { + deviceId = speakerDeviceId; + } if (sessionId == null) { sessionId = IdUtils.fastSimpleUUID(); } @@ -191,24 +215,28 @@ public class AudioService implements RobotAudioStreamListener { session.sessionId = sessionId; session.terminalId = terminalId; session.deviceId = deviceId; + session.speakerDeviceId = speakerDeviceId; + session.micDeviceId = micDeviceId; session.operatorId = operatorId; session.webSocketSession = webSocketSession; session.state = AudioSessionState.CONNECTING; session.createdAt = System.currentTimeMillis(); session.lastBrowserSignalAt = session.createdAt; session.lastRobotHeartbeatAt = session.createdAt; + startBrowserAudioPusher(session); sessionMap.put(sessionId, session); webSocketSessionMap.put(webSocketSession.getId(), sessionId); try { - session.robotStream = robotAudioGrpcAdapter.openStream(terminalId, deviceId, sessionId, operatorId, this); + session.robotStream = robotAudioGrpcAdapter.openStream(terminalId, speakerDeviceId, micDeviceId, sessionId, operatorId, this); } catch (Exception e) { sessionMap.remove(sessionId); webSocketSessionMap.remove(webSocketSession.getId()); + stopBrowserAudioPusher(session); throw e; } sendState(session, "joined"); - log.info("实时语音会话创建成功,sessionId={},terminalId={},deviceId={}", sessionId, terminalId, deviceId); + log.info("实时语音会话创建成功,sessionId={},terminalId={},speakerDeviceId={},micDeviceId={}", sessionId, terminalId, speakerDeviceId, micDeviceId); } catch (Exception e) { log.error("创建实时语音会话失败,sessionId={}", sessionId, e); sendError(webSocketSession, sessionId, "创建实时语音会话失败:" + e.getMessage()); @@ -294,6 +322,7 @@ public class AudioService implements RobotAudioStreamListener { try { session.state = AudioSessionState.CLOSED; removeWebSocketMapping(session); + stopBrowserAudioPusher(session); if (session.robotStream != null) { session.robotStream.sendStop(reason); } @@ -318,12 +347,13 @@ public class AudioService implements RobotAudioStreamListener { continue; } if (now - session.lastRobotHeartbeatAt > ROBOT_HEARTBEAT_TIMEOUT_MS) { - log.warn("机器人心跳超时,sessionId={},terminalId={},deviceId={}", - session.sessionId, session.terminalId, session.deviceId); + log.warn("机器人心跳超时,sessionId={},terminalId={},speakerDeviceId={},micDeviceId={}", + session.sessionId, session.terminalId, session.speakerDeviceId, session.micDeviceId); // 先从业务会话表摘除,避免 cancel/close 触发的异步回调再次进入同一个会话并重复关闭 native 对象。 iterator.remove(); session.state = AudioSessionState.ROBOT_OFFLINE; sendState(session, "robotOffline"); + stopBrowserAudioPusher(session); if (session.robotStream != null) { session.robotStream.cancel("robot heartbeat timeout"); } @@ -359,7 +389,7 @@ public class AudioService implements RobotAudioStreamListener { } session.lastRobotAudioAt = System.currentTimeMillis(); session.lastRobotHeartbeatAt = session.lastRobotAudioAt; - sendBinary(session.webSocketSession, pcm); + enqueueRobotAudioForBrowser(session, pcm); Consumer consumer = session.robotAudioConsumer; if (consumer != null) { try { @@ -412,12 +442,14 @@ public class AudioService implements RobotAudioStreamListener { sendState(session, "grpcCompleted"); } sessionMap.remove(sessionId); + stopBrowserAudioPusher(session); removeWebSocketMapping(session); } private void failSession(AudioSession session, String reason, boolean cancelRobotStream) { sessionMap.remove(session.sessionId, session); session.state = AudioSessionState.FAILED; + stopBrowserAudioPusher(session); ObjectNode event = baseMessage("error", session.sessionId); event.put("message", reason == null ? "未知错误" : reason); event.put("state", session.state.name()); @@ -436,6 +468,8 @@ public class AudioService implements RobotAudioStreamListener { ObjectNode event = baseMessage(type, session.sessionId); event.put("terminalId", session.terminalId); event.put("deviceId", session.deviceId); + event.put("speakerDeviceId", session.speakerDeviceId); + event.put("micDeviceId", session.micDeviceId); event.put("state", session.state.name()); event.put("createdAt", session.createdAt); event.put("lastRobotHeartbeatAt", session.lastRobotHeartbeatAt); @@ -462,6 +496,108 @@ public class AudioService implements RobotAudioStreamListener { sendText(session, toJson(event)); } + private void startBrowserAudioPusher(AudioSession session) { + if (session == null || session.robotBrowserAudioExecutor != null) { + return; + } + session.robotBrowserAudioExecutor = Executors.newSingleThreadScheduledExecutor( + new NamedThreadFactory("robot-browser-audio-" + session.sessionId)); + session.robotBrowserAudioFuture = session.robotBrowserAudioExecutor.scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + try { + int queued = session.robotBrowserAudioQueue.size(); + int framesToSend = queued > TARGET_BROWSER_AUDIO_QUEUE_FRAMES + ? Math.min(MAX_BROWSER_AUDIO_CATCH_UP_FRAMES, queued - TARGET_BROWSER_AUDIO_QUEUE_FRAMES + 1) + : 1; + for (int i = 0; i < framesToSend; i++) { + byte[] frame = session.robotBrowserAudioQueue.poll(); + if (frame == null) { + break; + } + sendBinary(session.webSocketSession, frame); + session.robotBrowserAudioSent++; + } + logRobotBrowserAudioStatsIfNeeded(session, "robotAudioPush"); + } catch (Exception e) { + log.error("推送机器人音频到浏览器失败,sessionId={}", session.sessionId, e); + } + } + }, 0L, BROWSER_AUDIO_PUSH_INTERVAL_MS, TimeUnit.MILLISECONDS); + } + + private void enqueueRobotAudioForBrowser(AudioSession session, byte[] pcm) { + if (session == null || pcm == null || pcm.length == 0) { + return; + } + synchronized (session.robotBrowserAudioLock) { + byte[] merged = new byte[session.robotBrowserRemainder.length + pcm.length]; + System.arraycopy(session.robotBrowserRemainder, 0, merged, 0, session.robotBrowserRemainder.length); + System.arraycopy(pcm, 0, merged, session.robotBrowserRemainder.length, pcm.length); + + int offset = 0; + while (merged.length - offset >= BROWSER_AUDIO_FRAME_BYTES) { + byte[] frame = new byte[BROWSER_AUDIO_FRAME_BYTES]; + System.arraycopy(merged, offset, frame, 0, BROWSER_AUDIO_FRAME_BYTES); + offerRobotAudioFrame(session, frame); + offset += BROWSER_AUDIO_FRAME_BYTES; + } + + int remain = merged.length - offset; + session.robotBrowserRemainder = new byte[remain]; + if (remain > 0) { + System.arraycopy(merged, offset, session.robotBrowserRemainder, 0, remain); + } + } + logRobotBrowserAudioStatsIfNeeded(session, "robotAudioEnqueue"); + } + + private void offerRobotAudioFrame(AudioSession session, byte[] frame) { + session.robotBrowserAudioQueue.offer(frame); + session.robotBrowserAudioEnqueued++; + } + + private void stopBrowserAudioPusher(AudioSession session) { + if (session == null) { + return; + } + ScheduledFuture future = session.robotBrowserAudioFuture; + if (future != null) { + future.cancel(false); + session.robotBrowserAudioFuture = null; + } + ScheduledExecutorService executor = session.robotBrowserAudioExecutor; + if (executor != null) { + executor.shutdownNow(); + session.robotBrowserAudioExecutor = null; + } + synchronized (session.robotBrowserAudioLock) { + session.robotBrowserAudioQueue.clear(); + session.robotBrowserRemainder = new byte[0]; + } + } + + private void logRobotBrowserAudioStatsIfNeeded(AudioSession session, String source) { + long now = System.currentTimeMillis(); + if (now - session.lastRobotBrowserAudioLogAt < 5000L) { + return; + } + session.lastRobotBrowserAudioLogAt = now; + int queued = session.robotBrowserAudioQueue.size(); + log.info("机器人到浏览器音频统计,source={},sessionId={},enqueued={},sent={},dropped={},queued={},remainderBytes={}", + source, + session.sessionId, + session.robotBrowserAudioEnqueued, + session.robotBrowserAudioSent, + session.robotBrowserAudioDropped, + queued, + session.robotBrowserRemainder.length); + if (queued > WARN_BROWSER_AUDIO_QUEUE_FRAMES) { + log.warn("机器人到浏览器音频队列积压较高,sessionId={},queued={},estimatedDelayMs={},请检查前端播放消费或网络发送是否跟不上", + session.sessionId, queued, queued * BROWSER_AUDIO_FRAME_MS); + } + } + private void sendBinary(WebSocketSession session, byte[] pcm) { if (session == null || !session.isOpen() || pcm == null || pcm.length == 0) { return; @@ -571,10 +707,21 @@ public class AudioService implements RobotAudioStreamListener { private String sessionId; private String terminalId; private String deviceId; + private String speakerDeviceId; + private String micDeviceId; private String operatorId; private volatile WebSocketSession webSocketSession; private volatile RobotAudioStream robotStream; private volatile Consumer robotAudioConsumer; + private volatile ScheduledExecutorService robotBrowserAudioExecutor; + private volatile ScheduledFuture robotBrowserAudioFuture; + private final LinkedBlockingQueue robotBrowserAudioQueue = new LinkedBlockingQueue<>(); + private final Object robotBrowserAudioLock = new Object(); + private byte[] robotBrowserRemainder = new byte[0]; + private volatile long robotBrowserAudioEnqueued; + private volatile long robotBrowserAudioSent; + private volatile long robotBrowserAudioDropped; + private volatile long lastRobotBrowserAudioLogAt; private volatile AudioSessionState state; private volatile long createdAt; private volatile long lastBrowserSignalAt; @@ -588,4 +735,19 @@ public class AudioService implements RobotAudioStreamListener { private String sdpMid; private int sdpMLineIndex; } + + private static class NamedThreadFactory implements ThreadFactory { + private final String name; + + private NamedThreadFactory(String name) { + this.name = name; + } + + @Override + public Thread newThread(Runnable runnable) { + Thread thread = new Thread(runnable, name); + thread.setDaemon(true); + return thread; + } + } } diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/webrtc/WebRtcAudioBridge.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/webrtc/WebRtcAudioBridge.java index 535664a..7eb2dd7 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/webrtc/WebRtcAudioBridge.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/src/main/java/com/cmvr/edge/client/webrtc/WebRtcAudioBridge.java @@ -1,1114 +1,73 @@ package com.cmvr.edge.client.webrtc; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import dev.onvoid.webrtc.CreateSessionDescriptionObserver; -import dev.onvoid.webrtc.PeerConnectionFactory; -import dev.onvoid.webrtc.PeerConnectionObserver; -import dev.onvoid.webrtc.RTCAnswerOptions; -import dev.onvoid.webrtc.RTCConfiguration; -import dev.onvoid.webrtc.RTCDataChannel; -import dev.onvoid.webrtc.RTCIceCandidate; -import dev.onvoid.webrtc.RTCIceConnectionState; -import dev.onvoid.webrtc.RTCIceGatheringState; -import dev.onvoid.webrtc.RTCPeerConnection; -import dev.onvoid.webrtc.RTCPeerConnectionIceErrorEvent; -import dev.onvoid.webrtc.RTCPeerConnectionState; -import dev.onvoid.webrtc.RTCRtpReceiver; -import dev.onvoid.webrtc.RTCRtpSender; -import dev.onvoid.webrtc.RTCRtpTransceiver; -import dev.onvoid.webrtc.RTCSessionDescription; -import dev.onvoid.webrtc.RTCSignalingState; -import dev.onvoid.webrtc.RTCSdpType; -import dev.onvoid.webrtc.SetSessionDescriptionObserver; -import dev.onvoid.webrtc.media.MediaStream; -import dev.onvoid.webrtc.media.MediaStreamTrack; -import dev.onvoid.webrtc.media.SyncClock; -import dev.onvoid.webrtc.media.audio.AudioDeviceModuleBase; -import dev.onvoid.webrtc.media.audio.AudioTrack; -import dev.onvoid.webrtc.media.audio.AudioTrackSink; -import dev.onvoid.webrtc.media.audio.CustomAudioSource; -import dev.onvoid.webrtc.media.audio.HeadlessAudioDeviceModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; import javax.annotation.PreDestroy; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.nio.file.StandardOpenOption; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import java.util.Map; -import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.Executors; -import java.util.concurrent.RejectedExecutionException; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; /** - * 浏览器 WebRTC 与后端 PCM 的桥接层。 + * 旧 WebRTC 音频桥接兼容类。 * - * 下行:浏览器 WebRTC 48k PCM -> Java 转 short16/单声道 -> gRPC。 - * 上行:机器人 48k/short16 PCM -> WebRTC。 + *

实时对讲链路已经切换为浏览器 WebSocket PCM 音频 + 机器人 gRPC 音频流。 + * 这里保留原有 public 方法签名,避免旧信令代码编译失败;不再创建 WebRTC native 对象, + * 不再处理 WebRTC 音频,也不会保存调试录音文件。

*/ public class WebRtcAudioBridge { private static final Logger log = LoggerFactory.getLogger(WebRtcAudioBridge.class); + private static final String DISABLED_MESSAGE = "WebRTC audio bridge disabled; use websocket audio endpoint"; - private static final int WEBRTC_SAMPLE_RATE = 48000; - private static final int ROBOT_SAMPLE_RATE = 48000; - private static final int CHANNELS = 1; - private static final int BITS_PER_SAMPLE = 16; - private static final int ROBOT_FRAME_MS = 10; - private static final int ROBOT_FRAME_SAMPLES = ROBOT_SAMPLE_RATE * ROBOT_FRAME_MS / 1000; - private static final int ROBOT_FRAME_BYTES = ROBOT_FRAME_SAMPLES * CHANNELS * (BITS_PER_SAMPLE / 8); - private static final int WEBRTC_FRAME_SAMPLES = WEBRTC_SAMPLE_RATE * ROBOT_FRAME_MS / 1000; - private static final int TARGET_QUEUED_ROBOT_FRAMES = 3; - private static final int MAX_QUEUED_ROBOT_FRAMES = 10; - private static final long AUDIO_STATS_LOG_INTERVAL_MS = 5000L; - private static final int DEBUG_DUMP_SECONDS = 10; - private static final int DEBUG_DUMP_BYTES = WEBRTC_SAMPLE_RATE * CHANNELS * (BITS_PER_SAMPLE / 8) * DEBUG_DUMP_SECONDS; - - private final ObjectMapper objectMapper = new ObjectMapper(); - private final WavDumpRecorder webRtcOutputDumpRecorder = - new WavDumpRecorder("webrtc-to-browser", DEBUG_DUMP_BYTES); - private final Map sessionMap = new ConcurrentHashMap<>(); - private final ScheduledExecutorService webrtcExecutor = Executors.newSingleThreadScheduledExecutor(runnable -> { - Thread thread = new Thread(runnable, "webrtc-audio-native"); - thread.setDaemon(true); - return thread; - }); + private final Map> signalingSenders = new ConcurrentHashMap<>(); public void createSession(String sessionId, Consumer browserAudioConsumer, Consumer signalingSender) { - if (sessionMap.containsKey(sessionId)) { + if (sessionId == null || sessionId.trim().isEmpty()) { return; } - - executeNativeAndWait("create WebRTC session", () -> { - if (sessionMap.containsKey(sessionId)) { - return; - } - - WebRtcSession session = new WebRtcSession(); - session.sessionId = sessionId; - session.browserAudioConsumer = browserAudioConsumer; - session.signalingSender = signalingSender; - session.audioDeviceModule = new HeadlessAudioDeviceModule(); - session.peerConnectionFactory = new PeerConnectionFactory(session.audioDeviceModule); - session.robotAudioSyncClock = new SyncClock(); - session.robotAudioTrackSource = new CustomAudioSource(session.robotAudioSyncClock); - - AudioTrack robotAudioTrack = session.peerConnectionFactory.createAudioTrack( - "robot-audio-" + sessionId, session.robotAudioTrackSource); - session.robotAudioTrack = robotAudioTrack; - session.peerConnection = session.peerConnectionFactory.createPeerConnection( - new RTCConfiguration(), new BridgePeerObserver(session)); - session.robotAudioSender = session.peerConnection.addTrack( - robotAudioTrack, Collections.singletonList("robot-audio-stream-" + sessionId)); - - sessionMap.put(sessionId, session); - log.info("WebRTC音频桥接会话已创建,sessionId={}", sessionId); - }); + if (signalingSender != null) { + signalingSenders.put(sessionId, signalingSender); + } + log.warn("{}, sessionId={}", DISABLED_MESSAGE, sessionId); } public void handleOffer(String sessionId, String sdp) { - WebRtcSession session = requireSession(sessionId); - RTCSessionDescription offer = new RTCSessionDescription(RTCSdpType.OFFER, fixSdpFormat(sdp)); - executeNativeAsync("handle WebRTC offer", () -> handleOfferOnNativeThread(session, offer)); + sendDisabledError(sessionId); } public void addIceCandidate(String sessionId, String sdpMid, int sdpMLineIndex, String candidate) { - WebRtcSession session = requireSession(sessionId); - executeNativeAsync("add WebRTC ICE candidate", () -> { - if (session.closed.get() || session.peerConnection == null) { - return; - } - try { - session.peerConnection.addIceCandidate(new RTCIceCandidate(sdpMid, sdpMLineIndex, candidate)); - } catch (Exception e) { - log.error("添加浏览器ICE失败,sessionId={}", sessionId, e); - sendError(session, "添加浏览器ICE失败:" + e.getMessage()); - } - }); + sendDisabledError(sessionId); } public void pushRobotAudio(String sessionId, long timestampMs, byte[] pcm48kMono) { - WebRtcSession session = sessionMap.get(sessionId); - if (session == null || session.closed.get() || pcm48kMono == null || pcm48kMono.length == 0) { - return; - } - enqueueRobotAudio(session, timestampMs, pcm48kMono); + log.debug("{}, ignored robot audio, sessionId={}, bytes={}", + DISABLED_MESSAGE, sessionId, pcm48kMono == null ? 0 : pcm48kMono.length); } public void closeSession(String sessionId) { - WebRtcSession session = sessionMap.remove(sessionId); - if (session == null || !session.closed.compareAndSet(false, true)) { - return; - } - executeNativeAndWait("close WebRTC session", () -> closeSessionOnNativeThread(session)); - } - - private void handleOfferOnNativeThread(WebRtcSession session, RTCSessionDescription offer) { - if (session.closed.get() || session.peerConnection == null) { - return; - } - - try { - session.peerConnection.setRemoteDescription(offer, new SetSessionDescriptionObserver() { - @Override - public void onSuccess() { - executeNativeAsync("create WebRTC answer", () -> createAnswerOnNativeThread(session)); - } - - @Override - public void onFailure(String error) { - log.error("设置WebRTC remote description失败,sessionId={},error={}", session.sessionId, error); - sendError(session, "设置WebRTC remote description失败:" + error); - } - }); - } catch (Exception e) { - log.error("处理WebRTC offer失败,sessionId={}", session.sessionId, e); - sendError(session, "处理WebRTC offer失败:" + e.getMessage()); - } - } - - private void createAnswerOnNativeThread(WebRtcSession session) { - if (session.closed.get() || session.peerConnection == null) { - return; - } - - try { - session.peerConnection.createAnswer(new RTCAnswerOptions(), new CreateSessionDescriptionObserver() { - @Override - public void onSuccess(RTCSessionDescription answer) { - executeNativeAsync("set WebRTC local description", () -> setLocalAnswerOnNativeThread(session, answer)); - } - - @Override - public void onFailure(String error) { - log.error("生成WebRTC answer失败,sessionId={},error={}", session.sessionId, error); - sendError(session, "生成WebRTC answer失败:" + error); - } - }); - } catch (Exception e) { - log.error("生成WebRTC answer异常,sessionId={}", session.sessionId, e); - sendError(session, "生成WebRTC answer异常:" + e.getMessage()); - } - } - - private void setLocalAnswerOnNativeThread(WebRtcSession session, RTCSessionDescription answer) { - if (session.closed.get() || session.peerConnection == null) { - return; - } - - try { - session.peerConnection.setLocalDescription(answer, new SetSessionDescriptionObserver() { - @Override - public void onSuccess() { - clearQueuedRobotAudio(session, "mediaReady"); - session.mediaReady.set(true); - startRobotAudioPusherOnNativeThread(session); - Consumer signalingSender = session.signalingSender; - if (session.closed.get() || signalingSender == null) { - return; - } - ObjectNode node = baseMessage("answer", session.sessionId); - node.put("sdp", answer.sdp); - signalingSender.accept(toJson(node)); - log.info("WebRTC媒体发送侧已就绪,sessionId={}", session.sessionId); - } - - @Override - public void onFailure(String error) { - log.error("设置WebRTC local description失败,sessionId={},error={}", session.sessionId, error); - sendError(session, "设置WebRTC local description失败:" + error); - } - }); - } catch (Exception e) { - log.error("设置WebRTC local description异常,sessionId={}", session.sessionId, e); - sendError(session, "设置WebRTC local description异常:" + e.getMessage()); - } - } - - private void enqueueRobotAudio(WebRtcSession session, long timestampMs, byte[] pcm48kMono) { - synchronized (session.robotAudioBufferLock) { - int offset = 0; - long frameTimestampMs = timestampMs <= 0 ? System.currentTimeMillis() : timestampMs; - - if (session.robotAudioRemainderLength > 0) { - int need = ROBOT_FRAME_BYTES - session.robotAudioRemainderLength; - int copy = Math.min(need, pcm48kMono.length); - System.arraycopy(pcm48kMono, 0, session.robotAudioRemainder, session.robotAudioRemainderLength, copy); - session.robotAudioRemainderLength += copy; - offset += copy; - if (session.robotAudioRemainderLength == ROBOT_FRAME_BYTES) { - offerRobotAudioFrame(session, session.robotAudioRemainder, session.robotAudioRemainderTimestampMs); - session.robotAudioRemainder = new byte[ROBOT_FRAME_BYTES]; - session.robotAudioRemainderLength = 0; - } - } - - while (offset + ROBOT_FRAME_BYTES <= pcm48kMono.length) { - byte[] frame = new byte[ROBOT_FRAME_BYTES]; - System.arraycopy(pcm48kMono, offset, frame, 0, ROBOT_FRAME_BYTES); - offerRobotAudioFrame(session, frame, frameTimestampMs); - offset += ROBOT_FRAME_BYTES; - frameTimestampMs += ROBOT_FRAME_MS; - } - - int remain = pcm48kMono.length - offset; - if (remain > 0) { - if (session.robotAudioRemainderLength == 0) { - session.robotAudioRemainderTimestampMs = frameTimestampMs; - } - System.arraycopy(pcm48kMono, offset, session.robotAudioRemainder, session.robotAudioRemainderLength, remain); - session.robotAudioRemainderLength += remain; - } - } - } - - private void offerRobotAudioFrame(WebRtcSession session, byte[] frame, long timestampMs) { - if (session.queuedRobotAudioFrames.get() >= MAX_QUEUED_ROBOT_FRAMES) { - if (session.robotAudioQueue.poll() != null) { - session.queuedRobotAudioFrames.decrementAndGet(); - session.robotAudioFramesDropped++; - } - } - session.robotAudioQueue.offer(new RobotAudioFrameData(frame.clone(), timestampMs)); - int queued = session.queuedRobotAudioFrames.incrementAndGet(); - session.robotAudioFramesEnqueued++; - logAudioStatsIfNeeded(session, "robotAudioEnqueue", queued); - } - - private void clearQueuedRobotAudio(WebRtcSession session, String reason) { - synchronized (session.robotAudioBufferLock) { - int queued = session.queuedRobotAudioFrames.get(); - int remainder = session.robotAudioRemainderLength; - session.robotAudioQueue.clear(); - session.queuedRobotAudioFrames.set(0); - session.robotAudioRemainder = new byte[ROBOT_FRAME_BYTES]; - session.robotAudioRemainderLength = 0; - session.robotAudioRemainderTimestampMs = 0L; - if (queued > 0 || remainder > 0) { - log.info("清理WebRTC就绪前机器人音频缓存,sessionId={},reason={},droppedFrames={},remainderBytes={}", - session.sessionId, reason, queued, remainder); - } - } - } - - private void pushQueuedRobotAudioOnNativeThread(WebRtcSession session) { - if (session.closed.get() || !session.mediaReady.get() || session.robotAudioTrackSource == null) { - return; - } - - trimRobotAudioQueue(session); - RobotAudioFrameData frame = pollRobotAudioFrame(session); - byte[] pcm48k; - long sourceTimestampMs = 0L; - if (frame == null) { - pcm48k = new byte[WEBRTC_FRAME_SAMPLES * CHANNELS * (BITS_PER_SAMPLE / 8)]; - session.robotAudioPushSilentFrames++; - } else { - short[] robotSamples = pcmBytesToShorts(frame.pcm, WEBRTC_FRAME_SAMPLES); - pcm48k = shortsToPcmBytes(robotSamples, WEBRTC_FRAME_SAMPLES); - sourceTimestampMs = frame.timestampMs; - session.lastRobotTimestampMs = sourceTimestampMs; - } - - try { - webRtcOutputDumpRecorder.record(pcm48k); - // 当前 webrtc-java API 不能设置外部 RTP timestamp,只能按 48k 采样数和推送节奏由 native 生成。 - session.robotAudioTrackSource.pushAudio( - pcm48k, - BITS_PER_SAMPLE, - WEBRTC_SAMPLE_RATE, - CHANNELS, - WEBRTC_FRAME_SAMPLES); - session.robotAudioPushCalls++; - logWebRtcPushPcmStatsIfNeeded(session, pcm48k, sourceTimestampMs); - logAudioStatsIfNeeded(session, "robotAudioPush", session.queuedRobotAudioFrames.get()); - } catch (Exception e) { - log.error("推送机器人音频到WebRTC失败,sessionId={}", session.sessionId, e); - } - } - - private void startRobotAudioPusherOnNativeThread(WebRtcSession session) { - if (session.closed.get() || session.robotAudioPusherFuture != null) { - return; - } - session.robotAudioPusherFuture = webrtcExecutor.scheduleWithFixedDelay( - () -> pushQueuedRobotAudioOnNativeThread(session), - ROBOT_FRAME_MS, - ROBOT_FRAME_MS, - TimeUnit.MILLISECONDS); - log.info("WebRTC机器人音频推送任务已启动,sessionId={},sampleRate={},frameMs={},frameSamples={}", - session.sessionId, WEBRTC_SAMPLE_RATE, ROBOT_FRAME_MS, WEBRTC_FRAME_SAMPLES); - } - - private RobotAudioFrameData pollRobotAudioFrame(WebRtcSession session) { - synchronized (session.robotAudioBufferLock) { - RobotAudioFrameData frame = session.robotAudioQueue.poll(); - if (frame != null) { - session.queuedRobotAudioFrames.decrementAndGet(); - } - return frame; - } - } - - private void trimRobotAudioQueue(WebRtcSession session) { - synchronized (session.robotAudioBufferLock) { - while (session.queuedRobotAudioFrames.get() > TARGET_QUEUED_ROBOT_FRAMES) { - RobotAudioFrameData dropped = session.robotAudioQueue.poll(); - if (dropped == null) { - session.queuedRobotAudioFrames.set(0); - break; - } - session.queuedRobotAudioFrames.decrementAndGet(); - session.robotAudioFramesDropped++; - } - } - } - - private void closeSessionOnNativeThread(WebRtcSession session) { - synchronized (session.closeLock) { - String sessionId = session.sessionId; - try { - session.browserAudioConsumer = null; - session.signalingSender = null; - session.mediaReady.set(false); - session.robotAudioQueue.clear(); - session.queuedRobotAudioFrames.set(0); - if (session.robotAudioPusherFuture != null) { - session.robotAudioPusherFuture.cancel(false); - session.robotAudioPusherFuture = null; - } - - if (session.browserAudioTrack != null && session.browserAudioSink != null) { - try { - session.browserAudioTrack.removeSink(session.browserAudioSink); - } catch (Exception e) { - log.debug("移除浏览器音频sink异常,sessionId={}", sessionId, e); - } - } - session.browserAudioTrack = null; - session.browserAudioSink = null; - session.browserAudioTransceiver = null; - - if (session.peerConnection != null && session.robotAudioSender != null) { - try { - session.peerConnection.removeTrack(session.robotAudioSender); - } catch (Exception e) { - log.debug("移除机器人音频sender异常,sessionId={}", sessionId, e); - } - } - session.robotAudioSender = null; - - if (session.peerConnection != null) { - try { - session.peerConnection.close(); - } catch (Exception e) { - log.debug("关闭PeerConnection异常,sessionId={}", sessionId, e); - } - } - session.peerConnection = null; - - if (session.robotAudioTrack != null) { - try { - session.robotAudioTrack.dispose(); - } catch (Exception e) { - log.debug("释放机器人音频track异常,sessionId={}", sessionId, e); - } - } - session.robotAudioTrack = null; - - if (session.robotAudioTrackSource != null) { - try { - session.robotAudioTrackSource.dispose(); - } catch (Exception e) { - log.debug("释放机器人音频source异常,sessionId={}", sessionId, e); - } - } - session.robotAudioTrackSource = null; - - if (session.robotAudioSyncClock != null) { - try { - session.robotAudioSyncClock.dispose(); - } catch (Exception e) { - log.debug("释放机器人音频时钟异常,sessionId={}", sessionId, e); - } - } - session.robotAudioSyncClock = null; - - if (session.peerConnectionFactory != null) { - try { - session.peerConnectionFactory.dispose(); - } catch (Exception e) { - log.debug("释放PeerConnectionFactory异常,sessionId={}", sessionId, e); - } - } - session.peerConnectionFactory = null; - - if (session.audioDeviceModule != null) { - try { - session.audioDeviceModule.dispose(); - } catch (Exception e) { - log.debug("释放AudioDeviceModule异常,sessionId={}", sessionId, e); - } - } - session.audioDeviceModule = null; - log.info("WebRTC桥接会话已清理,sessionId={}", sessionId); - } catch (Exception e) { - log.warn("关闭WebRTC桥接会话异常,sessionId={}", sessionId, e); - } - } - } - - private void executeNativeAsync(String action, Runnable runnable) { - try { - webrtcExecutor.execute(() -> { - try { - runnable.run(); - } catch (Exception e) { - log.error("执行WebRTC native任务失败,action={}", action, e); - } - }); - } catch (RejectedExecutionException e) { - log.warn("WebRTC native执行器已关闭,忽略任务,action={}", action, e); - } - } - - private void executeNativeAndWait(String action, Runnable runnable) { - CompletableFuture future = new CompletableFuture<>(); - try { - webrtcExecutor.execute(() -> { - try { - runnable.run(); - future.complete(null); - } catch (Exception e) { - future.completeExceptionally(e); - } - }); - } catch (RejectedExecutionException e) { - throw new IllegalStateException("WebRTC native执行器已关闭:" + action, e); - } - - try { - future.get(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new IllegalStateException("等待WebRTC native任务被中断:" + action, e); - } catch (ExecutionException e) { - throw new IllegalStateException("执行WebRTC native任务失败:" + action, e.getCause()); + if (sessionId != null) { + signalingSenders.remove(sessionId); } } @PreDestroy public void destroy() { - List sessionIds = new ArrayList<>(sessionMap.keySet()); - for (String sessionId : sessionIds) { - try { - closeSession(sessionId); - } catch (Exception e) { - log.warn("清理WebRTC会话失败,sessionId={}", sessionId, e); - } + signalingSenders.clear(); + } + + private void sendDisabledError(String sessionId) { + Consumer sender = signalingSenders.get(sessionId); + if (sender == null) { + log.warn("{}, sessionId={}", DISABLED_MESSAGE, sessionId); + return; } - sessionMap.clear(); - webrtcExecutor.shutdown(); try { - if (!webrtcExecutor.awaitTermination(3, TimeUnit.SECONDS)) { - log.warn("WebRTC native执行器未在超时时间内退出"); - } - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - log.warn("等待WebRTC native执行器退出被中断", e); - } - } - - private WebRtcSession requireSession(String sessionId) { - WebRtcSession session = sessionMap.get(sessionId); - if (session == null) { - throw new IllegalArgumentException("WebRTC会话不存在:" + sessionId); - } - return session; - } - - private ObjectNode baseMessage(String type, String sessionId) { - ObjectNode node = objectMapper.createObjectNode(); - node.put("type", type); - node.put("sessionId", sessionId); - node.put("timestamp", System.currentTimeMillis()); - return node; - } - - private String fixSdpFormat(String sdp) { - if (sdp == null) { - return null; - } - String fixed = sdp.replaceAll("(?m)^a=ssrc:.*$", ""); - fixed = fixed.replaceAll("(?m)^[ \\t\\r\\n]*$", ""); - return fixed.replace("\r\n", "\n").replace("\r", "\n").replace("\n", "\r\n"); - } - - private String toJson(ObjectNode node) { - try { - return objectMapper.writeValueAsString(node); + sender.accept("{\"type\":\"error\",\"message\":\"" + DISABLED_MESSAGE + "\"}"); } catch (Exception e) { - throw new RuntimeException(e); - } - } - - private void sendError(WebRtcSession session, String message) { - Consumer signalingSender = session.signalingSender; - if (session.closed.get() || signalingSender == null) { - return; - } - ObjectNode node = baseMessage("error", session.sessionId); - node.put("message", message); - signalingSender.accept(toJson(node)); - } - - private byte[] convertWebRtcAudioToRobotPcm(byte[] input, int bitsPerSample, int sampleRate, int channels, int frameCount) { - if (input == null || input.length == 0 || sampleRate <= 0 || channels <= 0 || frameCount <= 0) { - return new byte[0]; - } - if (sampleRate != ROBOT_SAMPLE_RATE) { - log.warn("浏览器WebRTC音频采样率不是48000,丢弃该帧,sampleRate={},channels={},frameCount={}", - sampleRate, channels, frameCount); - return new byte[0]; - } - - short[] mono48k; - if (bitsPerSample == 32) { - mono48k = float32PcmToMonoShort(input, channels, frameCount); - } else if (bitsPerSample == 16) { - mono48k = pcm16ToMonoShort(input, channels, frameCount); - } else { - log.warn("不支持的WebRTC音频位深,bitsPerSample={},sampleRate={},channels={}", bitsPerSample, sampleRate, channels); - return new byte[0]; - } - - return shortsToPcmBytes(mono48k, mono48k.length); - } - - private short[] float32PcmToMonoShort(byte[] input, int channels, int frameCount) { - int inputFrames = Math.min(frameCount, input.length / (4 * channels)); - short[] mono = new short[inputFrames]; - ByteBuffer buffer = ByteBuffer.wrap(input).order(ByteOrder.LITTLE_ENDIAN); - for (int frame = 0; frame < inputFrames; frame++) { - double mixed = 0.0d; - for (int ch = 0; ch < channels; ch++) { - float sample = buffer.getFloat((frame * channels + ch) * 4); - if (sample > 1.0f) { - sample = 1.0f; - } else if (sample < -1.0f) { - sample = -1.0f; - } - mixed += sample; - } - mono[frame] = (short) Math.round((mixed / channels) * 32767.0d); - } - return mono; - } - - private short[] pcm16ToMonoShort(byte[] input, int channels, int frameCount) { - int inputFrames = Math.min(frameCount, input.length / (2 * channels)); - short[] mono = new short[inputFrames]; - for (int frame = 0; frame < inputFrames; frame++) { - int mixed = 0; - for (int ch = 0; ch < channels; ch++) { - int offset = (frame * channels + ch) * 2; - mixed += readPcm16Le(input, offset); - } - mono[frame] = (short) (mixed / channels); - } - return mono; - } - - private short[] pcmBytesToShorts(byte[] input, int maxSamples) { - int samples = Math.min(maxSamples, input.length / 2); - short[] output = new short[samples]; - for (int i = 0; i < samples; i++) { - output[i] = readPcm16Le(input, i * 2); - } - return output; - } - - private byte[] shortsToPcmBytes(short[] samples, int targetSamples) { - byte[] output = new byte[targetSamples * 2]; - int count = Math.min(targetSamples, samples == null ? 0 : samples.length); - for (int i = 0; i < count; i++) { - output[i * 2] = (byte) (samples[i] & 0xFF); - output[i * 2 + 1] = (byte) ((samples[i] >> 8) & 0xFF); - } - return output; - } - - private short readPcm16Le(byte[] input, int offset) { - int low = input[offset] & 0xFF; - int high = input[offset + 1]; - return (short) ((high << 8) | low); - } - - private void logAudioStatsIfNeeded(WebRtcSession session, String source, int queuedRobotFrames) { - long now = System.currentTimeMillis(); - if (now - session.lastAudioStatsLogAt < AUDIO_STATS_LOG_INTERVAL_MS) { - return; - } - session.lastAudioStatsLogAt = now; - log.info("WebRTC音频统计,source={},sessionId={},mediaReady={},browserFrames={},robotEnqueued={},robotDropped={},robotPushCalls={},robotPushSilent={},queuedRobotFrames={},lastRobotTimestampMs={}", - source, - session.sessionId, - session.mediaReady.get(), - session.browserAudioFramesReceived, - session.robotAudioFramesEnqueued, - session.robotAudioFramesDropped, - session.robotAudioPushCalls, - session.robotAudioPushSilentFrames, - queuedRobotFrames, - session.lastRobotTimestampMs); - log.info("WEBRTC-AUDIO-STATS source={} sessionId={} browserRaw={} browserAccepted={} queuedRobotFrames={}", - source, - session.sessionId, - session.browserAudioFramesReceived, - session.browserAudioFramesAccepted, - queuedRobotFrames); - } - - private void logBrowserInputFormatIfNeeded(WebRtcSession session, - int bitsPerSample, - int sampleRate, - int channels, - int frameCount, - int inputBytes, - int outputBytes) { - long now = System.currentTimeMillis(); - if (now - session.lastBrowserFormatLogAt < AUDIO_STATS_LOG_INTERVAL_MS) { - return; - } - session.lastBrowserFormatLogAt = now; - log.info("浏览器WebRTC输入音频格式,sessionId={},bitsPerSample={},sampleRate={},channels={},frameCount={},inputBytes={},robotOutputBytes={}", - session.sessionId, - bitsPerSample, - sampleRate, - channels, - frameCount, - inputBytes, - outputBytes); - } - - private int estimateRobotOutputBytes(int sampleRate, int channels, int frameCount) { - if (sampleRate <= 0 || channels <= 0 || frameCount <= 0) { - return 0; - } - if (sampleRate != ROBOT_SAMPLE_RATE) { - return 0; - } - int monoSamples = frameCount; - return monoSamples * (BITS_PER_SAMPLE / 8); - } - - private void logWebRtcPushPcmStatsIfNeeded(WebRtcSession session, byte[] pcm48k, long sourceTimestampMs) { - long now = System.currentTimeMillis(); - if (now - session.lastWebRtcPushPcmStatsLogAt < AUDIO_STATS_LOG_INTERVAL_MS) { - return; - } - session.lastWebRtcPushPcmStatsLogAt = now; - PcmStats stats = PcmStats.fromPcm16Le(pcm48k); - log.info("PCM-STATS direction=webrtc-outbound-robot sessionId={} sampleRate={} channels={} bitsPerSample={} frameMs={} sourceTimestampMs={} bytes={} samples={} rms={} peak={} zeroCrossRate={} firstSamples={}", - session.sessionId, - WEBRTC_SAMPLE_RATE, - CHANNELS, - BITS_PER_SAMPLE, - ROBOT_FRAME_MS, - sourceTimestampMs, - pcm48k == null ? 0 : pcm48k.length, - stats.samples, - stats.rms, - stats.peak, - stats.zeroCrossRate, - stats.firstSamples); - } - - private class BridgePeerObserver implements PeerConnectionObserver { - private final WebRtcSession session; - - private BridgePeerObserver(WebRtcSession session) { - this.session = session; - } - - @Override - public void onIceCandidate(RTCIceCandidate candidate) { - Consumer signalingSender = session.signalingSender; - if (session.closed.get() || signalingSender == null) { - return; - } - ObjectNode node = baseMessage("candidate", session.sessionId); - ObjectNode candidateNode = objectMapper.createObjectNode(); - candidateNode.put("candidate", candidate.sdp); - candidateNode.put("sdpMid", candidate.sdpMid); - candidateNode.put("sdpMLineIndex", candidate.sdpMLineIndex); - node.set("candidate", candidateNode); - signalingSender.accept(toJson(node)); - } - - @Override - public void onTrack(RTCRtpTransceiver transceiver) { - executeNativeAsync("bind browser WebRTC audio track", () -> { - if (session.closed.get()) { - return; - } - MediaStreamTrack track = transceiver.getReceiver().getTrack(); - if (!(track instanceof AudioTrack)) { - return; - } - AudioTrack audioTrack = (AudioTrack) track; - if (session.browserAudioSink != null) { - log.warn("浏览器WebRTC音频track已绑定,忽略重复onTrack,sessionId={}", session.sessionId); - return; - } - AudioTrackSink sink = (audioData, bitsPerSample, sampleRate, channels, frameCount) -> { - try { - Consumer consumer = session.browserAudioConsumer; - if (session.closed.get() || consumer == null) { - return; - } - session.browserAudioFramesReceived++; - int expectedOutputBytes = estimateRobotOutputBytes(sampleRate, channels, frameCount); - logBrowserInputFormatIfNeeded(session, bitsPerSample, sampleRate, channels, frameCount, - audioData == null ? 0 : audioData.length, expectedOutputBytes); - session.browserAudioFramesAccepted++; - byte[] pcm48kMono = convertWebRtcAudioToRobotPcm(audioData, bitsPerSample, sampleRate, channels, frameCount); - if (pcm48kMono.length == 0) { - log.debug("浏览器WebRTC音频帧为空,sessionId={},bitsPerSample={},sampleRate={},channels={},frameCount={},bytes={}", - session.sessionId, bitsPerSample, sampleRate, channels, frameCount, audioData == null ? 0 : audioData.length); - return; - } - logAudioStatsIfNeeded(session, "browserAudioSink", session.queuedRobotAudioFrames.get()); - consumer.accept(pcm48kMono); - } catch (Exception e) { - log.error("处理浏览器WebRTC音频帧失败,sessionId={}", session.sessionId, e); - } - }; - audioTrack.addSink(sink); - session.browserAudioTrack = audioTrack; - session.browserAudioSink = sink; - session.browserAudioTransceiver = transceiver; - log.info("已绑定浏览器WebRTC音频track,sessionId={}", session.sessionId); - }); - } - - @Override - public void onSignalingChange(RTCSignalingState state) { - log.debug("WebRTC signaling状态变化,sessionId={},state={}", session.sessionId, state); - } - - @Override - public void onConnectionChange(RTCPeerConnectionState state) { - log.info("WebRTC连接状态变化,sessionId={},state={}", session.sessionId, state); - } - - @Override - public void onIceConnectionChange(RTCIceConnectionState state) { - log.debug("WebRTC ICE连接状态变化,sessionId={},state={}", session.sessionId, state); - } - - @Override - public void onStandardizedIceConnectionChange(RTCIceConnectionState state) { - } - - @Override - public void onIceConnectionReceivingChange(boolean receiving) { - } - - @Override - public void onIceGatheringChange(RTCIceGatheringState state) { - log.debug("WebRTC ICE采集状态变化,sessionId={},state={}", session.sessionId, state); - } - - @Override - public void onIceCandidateError(RTCPeerConnectionIceErrorEvent event) { - log.warn("WebRTC ICE候选异常,sessionId={},event={}", session.sessionId, event); - } - - @Override - public void onIceCandidatesRemoved(RTCIceCandidate[] candidates) { - } - - @Override - public void onAddStream(MediaStream stream) { - } - - @Override - public void onRemoveStream(MediaStream stream) { - } - - @Override - public void onDataChannel(RTCDataChannel dataChannel) { - } - - @Override - public void onRenegotiationNeeded() { - log.debug("WebRTC需要重新协商,sessionId={}", session.sessionId); - } - - @Override - public void onAddTrack(RTCRtpReceiver receiver, MediaStream[] mediaStreams) { - } - - @Override - public void onRemoveTrack(RTCRtpReceiver receiver) { - } - } - - private static class RobotAudioFrameData { - private final byte[] pcm; - private final long timestampMs; - - private RobotAudioFrameData(byte[] pcm, long timestampMs) { - this.pcm = pcm; - this.timestampMs = timestampMs; - } - } - - private static class WavDumpRecorder { - private final String name; - private final int maxBytes; - private final ByteArrayOutputStream buffer; - private Path filePath; - private int writtenBytes; - private boolean completed; - - private WavDumpRecorder(String name, int maxBytes) { - this.name = name; - this.maxBytes = maxBytes; - this.buffer = new ByteArrayOutputStream(maxBytes); - } - - private synchronized void record(byte[] pcm) { - if (completed || pcm == null || pcm.length == 0) { - return; - } - try { - if (filePath == null) { - Path dir = Paths.get("logs", "audio-dump"); - Files.createDirectories(dir); - filePath = dir.resolve(name + "-" + System.currentTimeMillis() + ".wav"); - log.info("开始保存10秒WAV音频,name={},file={},sampleRate={},channels={},bitsPerSample={}", - name, filePath.toAbsolutePath(), WEBRTC_SAMPLE_RATE, CHANNELS, BITS_PER_SAMPLE); - } - int remain = maxBytes - writtenBytes; - int writeBytes = Math.min(remain, pcm.length); - buffer.write(pcm, 0, writeBytes); - writtenBytes += writeBytes; - if (writtenBytes >= maxBytes) { - writeWavFile(filePath, buffer.toByteArray(), WEBRTC_SAMPLE_RATE, CHANNELS, BITS_PER_SAMPLE); - completed = true; - log.info("WAV音频保存完成,name={},file={},pcmBytes={}", - name, filePath == null ? "" : filePath.toAbsolutePath(), writtenBytes); - } - } catch (IOException e) { - completed = true; - log.warn("保存WAV音频失败,name={},file={}", name, filePath, e); - } - } - - private void writeWavFile(Path path, byte[] pcm, int sampleRate, int channels, int bitsPerSample) throws IOException { - try (OutputStream out = Files.newOutputStream(path, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE)) { - writeAscii(out, "RIFF"); - writeIntLe(out, 36 + pcm.length); - writeAscii(out, "WAVE"); - writeAscii(out, "fmt "); - writeIntLe(out, 16); - writeShortLe(out, 1); - writeShortLe(out, channels); - writeIntLe(out, sampleRate); - writeIntLe(out, sampleRate * channels * bitsPerSample / 8); - writeShortLe(out, channels * bitsPerSample / 8); - writeShortLe(out, bitsPerSample); - writeAscii(out, "data"); - writeIntLe(out, pcm.length); - out.write(pcm); - } - } - - private void writeAscii(OutputStream out, String value) throws IOException { - out.write(value.getBytes(java.nio.charset.StandardCharsets.US_ASCII)); - } - - private void writeIntLe(OutputStream out, int value) throws IOException { - out.write(value & 0xFF); - out.write((value >> 8) & 0xFF); - out.write((value >> 16) & 0xFF); - out.write((value >> 24) & 0xFF); - } - - private void writeShortLe(OutputStream out, int value) throws IOException { - out.write(value & 0xFF); - out.write((value >> 8) & 0xFF); - } - } - - private static class PcmDumpRecorder { - private final String name; - private final int maxBytes; - private OutputStream outputStream; - private Path filePath; - private int writtenBytes; - private boolean completed; - - private PcmDumpRecorder(String name, int maxBytes) { - this.name = name; - this.maxBytes = maxBytes; - } - - private synchronized void record(byte[] pcm) { - if (completed || pcm == null || pcm.length == 0) { - return; - } - try { - if (outputStream == null) { - Path dir = Paths.get("logs", "audio-dump"); - Files.createDirectories(dir); - filePath = dir.resolve(name + "-" + System.currentTimeMillis() + ".pcm"); - outputStream = Files.newOutputStream(filePath, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE); - log.info("开始保存10秒PCM音频,name={},file={},sampleRate={},channels={},bitsPerSample={}", - name, filePath.toAbsolutePath(), WEBRTC_SAMPLE_RATE, CHANNELS, BITS_PER_SAMPLE); - } - int remain = maxBytes - writtenBytes; - int writeBytes = Math.min(remain, pcm.length); - outputStream.write(pcm, 0, writeBytes); - writtenBytes += writeBytes; - if (writtenBytes >= maxBytes) { - close(); - completed = true; - log.info("PCM音频保存完成,name={},file={},bytes={}", - name, filePath == null ? "" : filePath.toAbsolutePath(), writtenBytes); - } - } catch (IOException e) { - completed = true; - closeQuietly(); - log.warn("保存PCM音频失败,name={},file={}", name, filePath, e); - } - } - - private void close() throws IOException { - if (outputStream != null) { - outputStream.flush(); - outputStream.close(); - outputStream = null; - } - } - - private void closeQuietly() { - try { - close(); - } catch (IOException ignored) { - } - } - } - - private static class WebRtcSession { - private String sessionId; - private AudioDeviceModuleBase audioDeviceModule; - private PeerConnectionFactory peerConnectionFactory; - private RTCPeerConnection peerConnection; - private SyncClock robotAudioSyncClock; - private CustomAudioSource robotAudioTrackSource; - private AudioTrack robotAudioTrack; - private RTCRtpSender robotAudioSender; - private ScheduledFuture robotAudioPusherFuture; - private final ConcurrentLinkedQueue robotAudioQueue = new ConcurrentLinkedQueue<>(); - private final AtomicInteger queuedRobotAudioFrames = new AtomicInteger(0); - private final Object robotAudioBufferLock = new Object(); - private byte[] robotAudioRemainder = new byte[ROBOT_FRAME_BYTES]; - private int robotAudioRemainderLength; - private long robotAudioRemainderTimestampMs; - private AudioTrack browserAudioTrack; - private AudioTrackSink browserAudioSink; - private RTCRtpTransceiver browserAudioTransceiver; - private Consumer browserAudioConsumer; - private Consumer signalingSender; - private final AtomicBoolean closed = new AtomicBoolean(false); - private final AtomicBoolean mediaReady = new AtomicBoolean(false); - private final Object closeLock = new Object(); - private volatile long browserAudioFramesReceived; - private volatile long browserAudioFramesAccepted; - private volatile long robotAudioFramesEnqueued; - private volatile long robotAudioFramesDropped; - private volatile long robotAudioPushCalls; - private volatile long robotAudioPushSilentFrames; - private volatile long lastRobotTimestampMs; - private volatile long lastAudioStatsLogAt; - private volatile long lastBrowserFormatLogAt; - private volatile long lastWebRtcPushPcmStatsLogAt; - } - - private static class PcmStats { - private final int samples; - private final int rms; - private final int peak; - private final String zeroCrossRate; - private final String firstSamples; - - private PcmStats(int samples, int rms, int peak, String zeroCrossRate, String firstSamples) { - this.samples = samples; - this.rms = rms; - this.peak = peak; - this.zeroCrossRate = zeroCrossRate; - this.firstSamples = firstSamples; - } - - private static PcmStats fromPcm16Le(byte[] pcm) { - if (pcm == null || pcm.length < 2) { - return new PcmStats(0, 0, 0, "0.0000", "[]"); - } - int samples = pcm.length / 2; - long squareSum = 0L; - int peak = 0; - int zeroCross = 0; - int previous = 0; - StringBuilder first = new StringBuilder("["); - int firstCount = Math.min(8, samples); - for (int i = 0; i < samples; i++) { - int low = pcm[i * 2] & 0xFF; - int high = pcm[i * 2 + 1]; - short sample = (short) ((high << 8) | low); - int value = sample; - int abs = Math.abs(value); - peak = Math.max(peak, abs); - squareSum += (long) value * value; - if (i > 0 && ((previous < 0 && value >= 0) || (previous >= 0 && value < 0))) { - zeroCross++; - } - previous = value; - if (i < firstCount) { - if (i > 0) { - first.append(','); - } - first.append(value); - } - } - first.append(']'); - int rms = (int) Math.round(Math.sqrt(squareSum / (double) samples)); - String zeroCrossRate = String.format(java.util.Locale.ROOT, "%.4f", zeroCross / (double) Math.max(1, samples - 1)); - return new PcmStats(samples, rms, peak, zeroCrossRate, first.toString()); + log.warn("send disabled WebRTC error failed, sessionId={}", sessionId, e); } } } diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/Common.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/Common.java index 3b34422..af37217 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/Common.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/Common.java @@ -2839,6 +2839,1142 @@ public final class Common { } + public interface AudioDataOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.AudioData) + com.google.protobuf.MessageOrBuilder { + + /** + * bytes data = 1; + * @return The data. + */ + com.google.protobuf.ByteString getData(); + + /** + * int32 sample_rate = 2; + * @return The sampleRate. + */ + int getSampleRate(); + + /** + * int32 channels = 3; + * @return The channels. + */ + int getChannels(); + + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @return The enum numeric value on the wire for format. + */ + int getFormatValue(); + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @return The format. + */ + cmvr.api.Common.AudioData.AudioFormat getFormat(); + + /** + * string codec = 5; + * @return The codec. + */ + java.lang.String getCodec(); + /** + * string codec = 5; + * @return The bytes for codec. + */ + com.google.protobuf.ByteString + getCodecBytes(); + + /** + * int64 pts = 6; + * @return The pts. + */ + long getPts(); + + /** + * int32 nb_samples = 7; + * @return The nbSamples. + */ + int getNbSamples(); + } + /** + * Protobuf type {@code cmvr.api.AudioData} + */ + public static final class AudioData extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.AudioData) + AudioDataOrBuilder { + private static final long serialVersionUID = 0L; + // Use AudioData.newBuilder() to construct. + private AudioData(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private AudioData() { + data_ = com.google.protobuf.ByteString.EMPTY; + format_ = 0; + codec_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new AudioData(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.Common.internal_static_cmvr_api_AudioData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.Common.internal_static_cmvr_api_AudioData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.Common.AudioData.class, cmvr.api.Common.AudioData.Builder.class); + } + + /** + * Protobuf enum {@code cmvr.api.AudioData.AudioFormat} + */ + public enum AudioFormat + implements com.google.protobuf.ProtocolMessageEnum { + /** + * PCM = 0; + */ + PCM(0), + /** + * MP3 = 1; + */ + MP3(1), + /** + * AAC = 2; + */ + AAC(2), + /** + * WAV = 3; + */ + WAV(3), + UNRECOGNIZED(-1), + ; + + /** + * PCM = 0; + */ + public static final int PCM_VALUE = 0; + /** + * MP3 = 1; + */ + public static final int MP3_VALUE = 1; + /** + * AAC = 2; + */ + public static final int AAC_VALUE = 2; + /** + * WAV = 3; + */ + public static final int WAV_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static AudioFormat valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static AudioFormat forNumber(int value) { + switch (value) { + case 0: return PCM; + case 1: return MP3; + case 2: return AAC; + case 3: return WAV; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + AudioFormat> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public AudioFormat findValueByNumber(int number) { + return AudioFormat.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return cmvr.api.Common.AudioData.getDescriptor().getEnumTypes().get(0); + } + + private static final AudioFormat[] VALUES = values(); + + public static AudioFormat valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private AudioFormat(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:cmvr.api.AudioData.AudioFormat) + } + + public static final int DATA_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString data_; + /** + * bytes data = 1; + * @return The data. + */ + @java.lang.Override + public com.google.protobuf.ByteString getData() { + return data_; + } + + public static final int SAMPLE_RATE_FIELD_NUMBER = 2; + private int sampleRate_; + /** + * int32 sample_rate = 2; + * @return The sampleRate. + */ + @java.lang.Override + public int getSampleRate() { + return sampleRate_; + } + + public static final int CHANNELS_FIELD_NUMBER = 3; + private int channels_; + /** + * int32 channels = 3; + * @return The channels. + */ + @java.lang.Override + public int getChannels() { + return channels_; + } + + public static final int FORMAT_FIELD_NUMBER = 4; + private int format_; + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @return The enum numeric value on the wire for format. + */ + @java.lang.Override public int getFormatValue() { + return format_; + } + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @return The format. + */ + @java.lang.Override public cmvr.api.Common.AudioData.AudioFormat getFormat() { + @SuppressWarnings("deprecation") + cmvr.api.Common.AudioData.AudioFormat result = cmvr.api.Common.AudioData.AudioFormat.valueOf(format_); + return result == null ? cmvr.api.Common.AudioData.AudioFormat.UNRECOGNIZED : result; + } + + public static final int CODEC_FIELD_NUMBER = 5; + private volatile java.lang.Object codec_; + /** + * string codec = 5; + * @return The codec. + */ + @java.lang.Override + public java.lang.String getCodec() { + java.lang.Object ref = codec_; + 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(); + codec_ = s; + return s; + } + } + /** + * string codec = 5; + * @return The bytes for codec. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCodecBytes() { + java.lang.Object ref = codec_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + codec_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PTS_FIELD_NUMBER = 6; + private long pts_; + /** + * int64 pts = 6; + * @return The pts. + */ + @java.lang.Override + public long getPts() { + return pts_; + } + + public static final int NB_SAMPLES_FIELD_NUMBER = 7; + private int nbSamples_; + /** + * int32 nb_samples = 7; + * @return The nbSamples. + */ + @java.lang.Override + public int getNbSamples() { + return nbSamples_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!data_.isEmpty()) { + output.writeBytes(1, data_); + } + if (sampleRate_ != 0) { + output.writeInt32(2, sampleRate_); + } + if (channels_ != 0) { + output.writeInt32(3, channels_); + } + if (format_ != cmvr.api.Common.AudioData.AudioFormat.PCM.getNumber()) { + output.writeEnum(4, format_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codec_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, codec_); + } + if (pts_ != 0L) { + output.writeInt64(6, pts_); + } + if (nbSamples_ != 0) { + output.writeInt32(7, nbSamples_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!data_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, data_); + } + if (sampleRate_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, sampleRate_); + } + if (channels_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, channels_); + } + if (format_ != cmvr.api.Common.AudioData.AudioFormat.PCM.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(4, format_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codec_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, codec_); + } + if (pts_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(6, pts_); + } + if (nbSamples_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(7, nbSamples_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.Common.AudioData)) { + return super.equals(obj); + } + cmvr.api.Common.AudioData other = (cmvr.api.Common.AudioData) obj; + + if (!getData() + .equals(other.getData())) return false; + if (getSampleRate() + != other.getSampleRate()) return false; + if (getChannels() + != other.getChannels()) return false; + if (format_ != other.format_) return false; + if (!getCodec() + .equals(other.getCodec())) return false; + if (getPts() + != other.getPts()) return false; + if (getNbSamples() + != other.getNbSamples()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + getData().hashCode(); + hash = (37 * hash) + SAMPLE_RATE_FIELD_NUMBER; + hash = (53 * hash) + getSampleRate(); + hash = (37 * hash) + CHANNELS_FIELD_NUMBER; + hash = (53 * hash) + getChannels(); + hash = (37 * hash) + FORMAT_FIELD_NUMBER; + hash = (53 * hash) + format_; + hash = (37 * hash) + CODEC_FIELD_NUMBER; + hash = (53 * hash) + getCodec().hashCode(); + hash = (37 * hash) + PTS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getPts()); + hash = (37 * hash) + NB_SAMPLES_FIELD_NUMBER; + hash = (53 * hash) + getNbSamples(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.Common.AudioData parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.Common.AudioData parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.Common.AudioData parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.Common.AudioData parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.Common.AudioData parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.Common.AudioData parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.Common.AudioData parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.Common.AudioData 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 cmvr.api.Common.AudioData parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.Common.AudioData 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 cmvr.api.Common.AudioData parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.Common.AudioData parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.Common.AudioData prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + 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 cmvr.api.AudioData} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.AudioData) + cmvr.api.Common.AudioDataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.Common.internal_static_cmvr_api_AudioData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.Common.internal_static_cmvr_api_AudioData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.Common.AudioData.class, cmvr.api.Common.AudioData.Builder.class); + } + + // Construct using cmvr.api.Common.AudioData.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + data_ = com.google.protobuf.ByteString.EMPTY; + + sampleRate_ = 0; + + channels_ = 0; + + format_ = 0; + + codec_ = ""; + + pts_ = 0L; + + nbSamples_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.Common.internal_static_cmvr_api_AudioData_descriptor; + } + + @java.lang.Override + public cmvr.api.Common.AudioData getDefaultInstanceForType() { + return cmvr.api.Common.AudioData.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.Common.AudioData build() { + cmvr.api.Common.AudioData result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.Common.AudioData buildPartial() { + cmvr.api.Common.AudioData result = new cmvr.api.Common.AudioData(this); + result.data_ = data_; + result.sampleRate_ = sampleRate_; + result.channels_ = channels_; + result.format_ = format_; + result.codec_ = codec_; + result.pts_ = pts_; + result.nbSamples_ = nbSamples_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.Common.AudioData) { + return mergeFrom((cmvr.api.Common.AudioData)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.Common.AudioData other) { + if (other == cmvr.api.Common.AudioData.getDefaultInstance()) return this; + if (other.getData() != com.google.protobuf.ByteString.EMPTY) { + setData(other.getData()); + } + if (other.getSampleRate() != 0) { + setSampleRate(other.getSampleRate()); + } + if (other.getChannels() != 0) { + setChannels(other.getChannels()); + } + if (other.format_ != 0) { + setFormatValue(other.getFormatValue()); + } + if (!other.getCodec().isEmpty()) { + codec_ = other.codec_; + onChanged(); + } + if (other.getPts() != 0L) { + setPts(other.getPts()); + } + if (other.getNbSamples() != 0) { + setNbSamples(other.getNbSamples()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + data_ = input.readBytes(); + + break; + } // case 10 + case 16: { + sampleRate_ = input.readInt32(); + + break; + } // case 16 + case 24: { + channels_ = input.readInt32(); + + break; + } // case 24 + case 32: { + format_ = input.readEnum(); + + break; + } // case 32 + case 42: { + codec_ = input.readStringRequireUtf8(); + + break; + } // case 42 + case 48: { + pts_ = input.readInt64(); + + break; + } // case 48 + case 56: { + nbSamples_ = input.readInt32(); + + break; + } // case 56 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes data = 1; + * @return The data. + */ + @java.lang.Override + public com.google.protobuf.ByteString getData() { + return data_; + } + /** + * bytes data = 1; + * @param value The data to set. + * @return This builder for chaining. + */ + public Builder setData(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + + data_ = value; + onChanged(); + return this; + } + /** + * bytes data = 1; + * @return This builder for chaining. + */ + public Builder clearData() { + + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + + private int sampleRate_ ; + /** + * int32 sample_rate = 2; + * @return The sampleRate. + */ + @java.lang.Override + public int getSampleRate() { + return sampleRate_; + } + /** + * int32 sample_rate = 2; + * @param value The sampleRate to set. + * @return This builder for chaining. + */ + public Builder setSampleRate(int value) { + + sampleRate_ = value; + onChanged(); + return this; + } + /** + * int32 sample_rate = 2; + * @return This builder for chaining. + */ + public Builder clearSampleRate() { + + sampleRate_ = 0; + onChanged(); + return this; + } + + private int channels_ ; + /** + * int32 channels = 3; + * @return The channels. + */ + @java.lang.Override + public int getChannels() { + return channels_; + } + /** + * int32 channels = 3; + * @param value The channels to set. + * @return This builder for chaining. + */ + public Builder setChannels(int value) { + + channels_ = value; + onChanged(); + return this; + } + /** + * int32 channels = 3; + * @return This builder for chaining. + */ + public Builder clearChannels() { + + channels_ = 0; + onChanged(); + return this; + } + + private int format_ = 0; + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @return The enum numeric value on the wire for format. + */ + @java.lang.Override public int getFormatValue() { + return format_; + } + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @param value The enum numeric value on the wire for format to set. + * @return This builder for chaining. + */ + public Builder setFormatValue(int value) { + + format_ = value; + onChanged(); + return this; + } + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @return The format. + */ + @java.lang.Override + public cmvr.api.Common.AudioData.AudioFormat getFormat() { + @SuppressWarnings("deprecation") + cmvr.api.Common.AudioData.AudioFormat result = cmvr.api.Common.AudioData.AudioFormat.valueOf(format_); + return result == null ? cmvr.api.Common.AudioData.AudioFormat.UNRECOGNIZED : result; + } + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @param value The format to set. + * @return This builder for chaining. + */ + public Builder setFormat(cmvr.api.Common.AudioData.AudioFormat value) { + if (value == null) { + throw new NullPointerException(); + } + + format_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .cmvr.api.AudioData.AudioFormat format = 4; + * @return This builder for chaining. + */ + public Builder clearFormat() { + + format_ = 0; + onChanged(); + return this; + } + + private java.lang.Object codec_ = ""; + /** + * string codec = 5; + * @return The codec. + */ + public java.lang.String getCodec() { + java.lang.Object ref = codec_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + codec_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string codec = 5; + * @return The bytes for codec. + */ + public com.google.protobuf.ByteString + getCodecBytes() { + java.lang.Object ref = codec_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + codec_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string codec = 5; + * @param value The codec to set. + * @return This builder for chaining. + */ + public Builder setCodec( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + codec_ = value; + onChanged(); + return this; + } + /** + * string codec = 5; + * @return This builder for chaining. + */ + public Builder clearCodec() { + + codec_ = getDefaultInstance().getCodec(); + onChanged(); + return this; + } + /** + * string codec = 5; + * @param value The bytes for codec to set. + * @return This builder for chaining. + */ + public Builder setCodecBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + codec_ = value; + onChanged(); + return this; + } + + private long pts_ ; + /** + * int64 pts = 6; + * @return The pts. + */ + @java.lang.Override + public long getPts() { + return pts_; + } + /** + * int64 pts = 6; + * @param value The pts to set. + * @return This builder for chaining. + */ + public Builder setPts(long value) { + + pts_ = value; + onChanged(); + return this; + } + /** + * int64 pts = 6; + * @return This builder for chaining. + */ + public Builder clearPts() { + + pts_ = 0L; + onChanged(); + return this; + } + + private int nbSamples_ ; + /** + * int32 nb_samples = 7; + * @return The nbSamples. + */ + @java.lang.Override + public int getNbSamples() { + return nbSamples_; + } + /** + * int32 nb_samples = 7; + * @param value The nbSamples to set. + * @return This builder for chaining. + */ + public Builder setNbSamples(int value) { + + nbSamples_ = value; + onChanged(); + return this; + } + /** + * int32 nb_samples = 7; + * @return This builder for chaining. + */ + public Builder clearNbSamples() { + + nbSamples_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.AudioData) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.AudioData) + private static final cmvr.api.Common.AudioData DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.Common.AudioData(); + } + + public static cmvr.api.Common.AudioData getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AudioData parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.Common.AudioData getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + public interface ConfigParamOrBuilder extends // @@protoc_insertion_point(interface_extends:cmvr.api.ConfigParam) com.google.protobuf.MessageOrBuilder { @@ -4274,6 +5410,11 @@ public final class Common { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_cmvr_api_CommandHeader_Feedback_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_AudioData_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_AudioData_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_cmvr_api_ConfigParam_descriptor; private static final @@ -4299,11 +5440,16 @@ public final class Common { "2\032.google.protobuf.Timestamp\032a\n\010Feedback" + "\022\017\n\007success\030\001 \001(\010\022\025\n\rerror_message\030\002 \001(\t" + "\022-\n\ttimestamp\030\003 \001(\0132\032.google.protobuf.Ti" + - "mestamp\"\242\001\n\013ConfigParam\022\022\n\nparam_name\030\001 " + - "\001(\t\022\023\n\tint_value\030\002 \001(\005H\000\022\026\n\014double_value" + - "\030\003 \001(\001H\000\022\026\n\014string_value\030\004 \001(\tH\000\022\024\n\nbool" + - "_value\030\005 \001(\010H\000\022\025\n\013bytes_value\030\006 \001(\014H\000B\r\n" + - "\013param_valueb\006proto3" + "mestamp\"\324\001\n\tAudioData\022\014\n\004data\030\001 \001(\014\022\023\n\013s" + + "ample_rate\030\002 \001(\005\022\020\n\010channels\030\003 \001(\005\022/\n\006fo" + + "rmat\030\004 \001(\0162\037.cmvr.api.AudioData.AudioFor" + + "mat\022\r\n\005codec\030\005 \001(\t\022\013\n\003pts\030\006 \001(\003\022\022\n\nnb_sa" + + "mples\030\007 \001(\005\"1\n\013AudioFormat\022\007\n\003PCM\020\000\022\007\n\003M" + + "P3\020\001\022\007\n\003AAC\020\002\022\007\n\003WAV\020\003\"\242\001\n\013ConfigParam\022\022" + + "\n\nparam_name\030\001 \001(\t\022\023\n\tint_value\030\002 \001(\005H\000\022" + + "\026\n\014double_value\030\003 \001(\001H\000\022\026\n\014string_value\030" + + "\004 \001(\tH\000\022\024\n\nbool_value\030\005 \001(\010H\000\022\025\n\013bytes_v" + + "alue\030\006 \001(\014H\000B\r\n\013param_valueb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -4334,8 +5480,14 @@ public final class Common { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_CommandHeader_Feedback_descriptor, new java.lang.String[] { "Success", "ErrorMessage", "Timestamp", }); - internal_static_cmvr_api_ConfigParam_descriptor = + internal_static_cmvr_api_AudioData_descriptor = getDescriptor().getMessageTypes().get(2); + internal_static_cmvr_api_AudioData_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_AudioData_descriptor, + new java.lang.String[] { "Data", "SampleRate", "Channels", "Format", "Codec", "Pts", "NbSamples", }); + internal_static_cmvr_api_ConfigParam_descriptor = + getDescriptor().getMessageTypes().get(3); internal_static_cmvr_api_ConfigParam_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_ConfigParam_descriptor, diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicPhoneServiceGrpc.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicPhoneServiceGrpc.java index 9b37300..c1f2978 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicPhoneServiceGrpc.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicPhoneServiceGrpc.java @@ -170,6 +170,37 @@ public final class MicPhoneServiceGrpc { return getResumeRecordMethod; } + private static volatile io.grpc.MethodDescriptor getStreamAudioMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "StreamAudio", + requestType = cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.class, + responseType = cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.class, + methodType = io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) + public static io.grpc.MethodDescriptor getStreamAudioMethod() { + io.grpc.MethodDescriptor getStreamAudioMethod; + if ((getStreamAudioMethod = MicPhoneServiceGrpc.getStreamAudioMethod) == null) { + synchronized (MicPhoneServiceGrpc.class) { + if ((getStreamAudioMethod = MicPhoneServiceGrpc.getStreamAudioMethod) == null) { + MicPhoneServiceGrpc.getStreamAudioMethod = getStreamAudioMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.SERVER_STREAMING) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "StreamAudio")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.getDefaultInstance())) + .setSchemaDescriptor(new MicPhoneServiceMethodDescriptorSupplier("StreamAudio")) + .build(); + } + } + } + return getStreamAudioMethod; + } + private static volatile io.grpc.MethodDescriptor getSetVolumeMethod; @@ -281,9 +312,6 @@ public final class MicPhoneServiceGrpc { public static abstract class MicPhoneServiceImplBase implements io.grpc.BindableService { /** - *
-     * 基本控制
-     * 
*/ public void getStatus(cmvr.api.MicrophoneCommand.GetMicStateCommand.Request request, io.grpc.stub.StreamObserver responseObserver) { @@ -319,9 +347,13 @@ public final class MicPhoneServiceGrpc { } /** - *
-     * 音量控制
-     * 
+ */ + public void streamAudio(cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getStreamAudioMethod(), responseObserver); + } + + /** */ public void setVolume(cmvr.api.MicrophoneCommand.SetMicPhoneVolumeCommand.Request request, io.grpc.stub.StreamObserver responseObserver) { @@ -372,6 +404,13 @@ public final class MicPhoneServiceGrpc { cmvr.api.MicrophoneCommand.ResumeMicRecordingCommand.Request, cmvr.api.MicrophoneCommand.ResumeMicRecordingCommand.Feedback>( this, METHODID_RESUME_RECORD))) + .addMethod( + getStreamAudioMethod(), + io.grpc.stub.ServerCalls.asyncServerStreamingCall( + new MethodHandlers< + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request, + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback>( + this, METHODID_STREAM_AUDIO))) .addMethod( getSetVolumeMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall( @@ -405,9 +444,6 @@ public final class MicPhoneServiceGrpc { } /** - *
-     * 基本控制
-     * 
*/ public void getStatus(cmvr.api.MicrophoneCommand.GetMicStateCommand.Request request, io.grpc.stub.StreamObserver responseObserver) { @@ -448,9 +484,14 @@ public final class MicPhoneServiceGrpc { } /** - *
-     * 音量控制
-     * 
+ */ + public void streamAudio(cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request request, + io.grpc.stub.StreamObserver responseObserver) { + io.grpc.stub.ClientCalls.asyncServerStreamingCall( + getChannel().newCall(getStreamAudioMethod(), getCallOptions()), request, responseObserver); + } + + /** */ public void setVolume(cmvr.api.MicrophoneCommand.SetMicPhoneVolumeCommand.Request request, io.grpc.stub.StreamObserver responseObserver) { @@ -482,9 +523,6 @@ public final class MicPhoneServiceGrpc { } /** - *
-     * 基本控制
-     * 
*/ public cmvr.api.MicrophoneCommand.GetMicStateCommand.Feedback getStatus(cmvr.api.MicrophoneCommand.GetMicStateCommand.Request request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( @@ -520,9 +558,14 @@ public final class MicPhoneServiceGrpc { } /** - *
-     * 音量控制
-     * 
+ */ + public java.util.Iterator streamAudio( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request request) { + return io.grpc.stub.ClientCalls.blockingServerStreamingCall( + getChannel(), getStreamAudioMethod(), getCallOptions(), request); + } + + /** */ public cmvr.api.MicrophoneCommand.SetMicPhoneVolumeCommand.Feedback setVolume(cmvr.api.MicrophoneCommand.SetMicPhoneVolumeCommand.Request request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( @@ -552,9 +595,6 @@ public final class MicPhoneServiceGrpc { } /** - *
-     * 基本控制
-     * 
*/ public com.google.common.util.concurrent.ListenableFuture getStatus( cmvr.api.MicrophoneCommand.GetMicStateCommand.Request request) { @@ -595,9 +635,6 @@ public final class MicPhoneServiceGrpc { } /** - *
-     * 音量控制
-     * 
*/ public com.google.common.util.concurrent.ListenableFuture setVolume( cmvr.api.MicrophoneCommand.SetMicPhoneVolumeCommand.Request request) { @@ -619,8 +656,9 @@ public final class MicPhoneServiceGrpc { private static final int METHODID_STOP_RECORD = 2; private static final int METHODID_PAUSE_RECORD = 3; private static final int METHODID_RESUME_RECORD = 4; - private static final int METHODID_SET_VOLUME = 5; - private static final int METHODID_GET_VOLUME = 6; + private static final int METHODID_STREAM_AUDIO = 5; + private static final int METHODID_SET_VOLUME = 6; + private static final int METHODID_GET_VOLUME = 7; private static final class MethodHandlers implements io.grpc.stub.ServerCalls.UnaryMethod, @@ -659,6 +697,10 @@ public final class MicPhoneServiceGrpc { serviceImpl.resumeRecord((cmvr.api.MicrophoneCommand.ResumeMicRecordingCommand.Request) request, (io.grpc.stub.StreamObserver) responseObserver); break; + case METHODID_STREAM_AUDIO: + serviceImpl.streamAudio((cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request) request, + (io.grpc.stub.StreamObserver) responseObserver); + break; case METHODID_SET_VOLUME: serviceImpl.setVolume((cmvr.api.MicrophoneCommand.SetMicPhoneVolumeCommand.Request) request, (io.grpc.stub.StreamObserver) responseObserver); @@ -733,6 +775,7 @@ public final class MicPhoneServiceGrpc { .addMethod(getStopRecordMethod()) .addMethod(getPauseRecordMethod()) .addMethod(getResumeRecordMethod()) + .addMethod(getStreamAudioMethod()) .addMethod(getSetVolumeMethod()) .addMethod(getGetVolumeMethod()) .build(); diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicrophoneCommand.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicrophoneCommand.java index 4030ae1..2cfaa0b 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicrophoneCommand.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicrophoneCommand.java @@ -9162,6 +9162,1797 @@ public final class MicrophoneCommand { } + public interface StreamMicAudioCommandOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.StreamMicAudioCommand) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code cmvr.api.StreamMicAudioCommand} + */ + public static final class StreamMicAudioCommand extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.StreamMicAudioCommand) + StreamMicAudioCommandOrBuilder { + private static final long serialVersionUID = 0L; + // Use StreamMicAudioCommand.newBuilder() to construct. + private StreamMicAudioCommand(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private StreamMicAudioCommand() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new StreamMicAudioCommand(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.class, cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Builder.class); + } + + public interface RequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.StreamMicAudioCommand.Request) + com.google.protobuf.MessageOrBuilder { + + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + boolean hasHeader(); + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + cmvr.api.Common.CommandHeader.Request getHeader(); + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder(); + } + /** + * Protobuf type {@code cmvr.api.StreamMicAudioCommand.Request} + */ + public static final class Request extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.StreamMicAudioCommand.Request) + RequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use Request.newBuilder() to construct. + private Request(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Request() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Request(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Request_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Request_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.class, cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.Builder.class); + } + + public static final int HEADER_FIELD_NUMBER = 1; + private cmvr.api.Common.CommandHeader.Request header_; + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + @java.lang.Override + public boolean hasHeader() { + return header_ != null; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.Request getHeader() { + return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() { + return getHeader(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (header_ != null) { + output.writeMessage(1, getHeader()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (header_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getHeader()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request)) { + return super.equals(obj); + } + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request other = (cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request) obj; + + if (hasHeader() != other.hasHeader()) return false; + if (hasHeader()) { + if (!getHeader() + .equals(other.getHeader())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasHeader()) { + hash = (37 * hash) + HEADER_FIELD_NUMBER; + hash = (53 * hash) + getHeader().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request 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 cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request 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 cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + 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 cmvr.api.StreamMicAudioCommand.Request} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.StreamMicAudioCommand.Request) + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.RequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Request_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Request_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.class, cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.Builder.class); + } + + // Construct using cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (headerBuilder_ == null) { + header_ = null; + } else { + header_ = null; + headerBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Request_descriptor; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request getDefaultInstanceForType() { + return cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request build() { + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request buildPartial() { + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request result = new cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request(this); + if (headerBuilder_ == null) { + result.header_ = header_; + } else { + result.header_ = headerBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request) { + return mergeFrom((cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request other) { + if (other == cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request.getDefaultInstance()) return this; + if (other.hasHeader()) { + mergeHeader(other.getHeader()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getHeaderFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private cmvr.api.Common.CommandHeader.Request header_; + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_; + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + public boolean hasHeader() { + return headerBuilder_ != null || header_ != null; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + public cmvr.api.Common.CommandHeader.Request getHeader() { + if (headerBuilder_ == null) { + return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } else { + return headerBuilder_.getMessage(); + } + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) { + if (headerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + header_ = value; + onChanged(); + } else { + headerBuilder_.setMessage(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder setHeader( + cmvr.api.Common.CommandHeader.Request.Builder builderForValue) { + if (headerBuilder_ == null) { + header_ = builderForValue.build(); + onChanged(); + } else { + headerBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) { + if (headerBuilder_ == null) { + if (header_ != null) { + header_ = + cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial(); + } else { + header_ = value; + } + onChanged(); + } else { + headerBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder clearHeader() { + if (headerBuilder_ == null) { + header_ = null; + onChanged(); + } else { + header_ = null; + headerBuilder_ = null; + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() { + + onChanged(); + return getHeaderFieldBuilder().getBuilder(); + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() { + if (headerBuilder_ != null) { + return headerBuilder_.getMessageOrBuilder(); + } else { + return header_ == null ? + cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> + getHeaderFieldBuilder() { + if (headerBuilder_ == null) { + headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>( + getHeader(), + getParentForChildren(), + isClean()); + header_ = null; + } + return headerBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.StreamMicAudioCommand.Request) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.StreamMicAudioCommand.Request) + private static final cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request(); + } + + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Request parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Request getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface FeedbackOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.StreamMicAudioCommand.Feedback) + com.google.protobuf.MessageOrBuilder { + + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + boolean hasHeader(); + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + cmvr.api.Common.CommandHeader.Feedback getHeader(); + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder(); + + /** + * .cmvr.api.AudioData audio = 2; + * @return Whether the audio field is set. + */ + boolean hasAudio(); + /** + * .cmvr.api.AudioData audio = 2; + * @return The audio. + */ + cmvr.api.Common.AudioData getAudio(); + /** + * .cmvr.api.AudioData audio = 2; + */ + cmvr.api.Common.AudioDataOrBuilder getAudioOrBuilder(); + } + /** + * Protobuf type {@code cmvr.api.StreamMicAudioCommand.Feedback} + */ + public static final class Feedback extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.StreamMicAudioCommand.Feedback) + FeedbackOrBuilder { + private static final long serialVersionUID = 0L; + // Use Feedback.newBuilder() to construct. + private Feedback(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Feedback() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Feedback(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Feedback_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Feedback_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.class, cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.Builder.class); + } + + public static final int HEADER_FIELD_NUMBER = 1; + private cmvr.api.Common.CommandHeader.Feedback header_; + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + @java.lang.Override + public boolean hasHeader() { + return header_ != null; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.Feedback getHeader() { + return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() { + return getHeader(); + } + + public static final int AUDIO_FIELD_NUMBER = 2; + private cmvr.api.Common.AudioData audio_; + /** + * .cmvr.api.AudioData audio = 2; + * @return Whether the audio field is set. + */ + @java.lang.Override + public boolean hasAudio() { + return audio_ != null; + } + /** + * .cmvr.api.AudioData audio = 2; + * @return The audio. + */ + @java.lang.Override + public cmvr.api.Common.AudioData getAudio() { + return audio_ == null ? cmvr.api.Common.AudioData.getDefaultInstance() : audio_; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + @java.lang.Override + public cmvr.api.Common.AudioDataOrBuilder getAudioOrBuilder() { + return getAudio(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (header_ != null) { + output.writeMessage(1, getHeader()); + } + if (audio_ != null) { + output.writeMessage(2, getAudio()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (header_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getHeader()); + } + if (audio_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getAudio()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback)) { + return super.equals(obj); + } + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback other = (cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback) obj; + + if (hasHeader() != other.hasHeader()) return false; + if (hasHeader()) { + if (!getHeader() + .equals(other.getHeader())) return false; + } + if (hasAudio() != other.hasAudio()) return false; + if (hasAudio()) { + if (!getAudio() + .equals(other.getAudio())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasHeader()) { + hash = (37 * hash) + HEADER_FIELD_NUMBER; + hash = (53 * hash) + getHeader().hashCode(); + } + if (hasAudio()) { + hash = (37 * hash) + AUDIO_FIELD_NUMBER; + hash = (53 * hash) + getAudio().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback 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 cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback 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 cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + 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 cmvr.api.StreamMicAudioCommand.Feedback} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.StreamMicAudioCommand.Feedback) + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.FeedbackOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Feedback_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Feedback_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.class, cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.Builder.class); + } + + // Construct using cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (headerBuilder_ == null) { + header_ = null; + } else { + header_ = null; + headerBuilder_ = null; + } + if (audioBuilder_ == null) { + audio_ = null; + } else { + audio_ = null; + audioBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_Feedback_descriptor; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback getDefaultInstanceForType() { + return cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback build() { + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback buildPartial() { + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback result = new cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback(this); + if (headerBuilder_ == null) { + result.header_ = header_; + } else { + result.header_ = headerBuilder_.build(); + } + if (audioBuilder_ == null) { + result.audio_ = audio_; + } else { + result.audio_ = audioBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback) { + return mergeFrom((cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback other) { + if (other == cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback.getDefaultInstance()) return this; + if (other.hasHeader()) { + mergeHeader(other.getHeader()); + } + if (other.hasAudio()) { + mergeAudio(other.getAudio()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getHeaderFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 10 + case 18: { + input.readMessage( + getAudioFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private cmvr.api.Common.CommandHeader.Feedback header_; + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_; + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + public boolean hasHeader() { + return headerBuilder_ != null || header_ != null; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + public cmvr.api.Common.CommandHeader.Feedback getHeader() { + if (headerBuilder_ == null) { + return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } else { + return headerBuilder_.getMessage(); + } + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) { + if (headerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + header_ = value; + onChanged(); + } else { + headerBuilder_.setMessage(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder setHeader( + cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) { + if (headerBuilder_ == null) { + header_ = builderForValue.build(); + onChanged(); + } else { + headerBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) { + if (headerBuilder_ == null) { + if (header_ != null) { + header_ = + cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial(); + } else { + header_ = value; + } + onChanged(); + } else { + headerBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder clearHeader() { + if (headerBuilder_ == null) { + header_ = null; + onChanged(); + } else { + header_ = null; + headerBuilder_ = null; + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() { + + onChanged(); + return getHeaderFieldBuilder().getBuilder(); + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() { + if (headerBuilder_ != null) { + return headerBuilder_.getMessageOrBuilder(); + } else { + return header_ == null ? + cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> + getHeaderFieldBuilder() { + if (headerBuilder_ == null) { + headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>( + getHeader(), + getParentForChildren(), + isClean()); + header_ = null; + } + return headerBuilder_; + } + + private cmvr.api.Common.AudioData audio_; + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.AudioData, cmvr.api.Common.AudioData.Builder, cmvr.api.Common.AudioDataOrBuilder> audioBuilder_; + /** + * .cmvr.api.AudioData audio = 2; + * @return Whether the audio field is set. + */ + public boolean hasAudio() { + return audioBuilder_ != null || audio_ != null; + } + /** + * .cmvr.api.AudioData audio = 2; + * @return The audio. + */ + public cmvr.api.Common.AudioData getAudio() { + if (audioBuilder_ == null) { + return audio_ == null ? cmvr.api.Common.AudioData.getDefaultInstance() : audio_; + } else { + return audioBuilder_.getMessage(); + } + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public Builder setAudio(cmvr.api.Common.AudioData value) { + if (audioBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + audio_ = value; + onChanged(); + } else { + audioBuilder_.setMessage(value); + } + + return this; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public Builder setAudio( + cmvr.api.Common.AudioData.Builder builderForValue) { + if (audioBuilder_ == null) { + audio_ = builderForValue.build(); + onChanged(); + } else { + audioBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public Builder mergeAudio(cmvr.api.Common.AudioData value) { + if (audioBuilder_ == null) { + if (audio_ != null) { + audio_ = + cmvr.api.Common.AudioData.newBuilder(audio_).mergeFrom(value).buildPartial(); + } else { + audio_ = value; + } + onChanged(); + } else { + audioBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public Builder clearAudio() { + if (audioBuilder_ == null) { + audio_ = null; + onChanged(); + } else { + audio_ = null; + audioBuilder_ = null; + } + + return this; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public cmvr.api.Common.AudioData.Builder getAudioBuilder() { + + onChanged(); + return getAudioFieldBuilder().getBuilder(); + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public cmvr.api.Common.AudioDataOrBuilder getAudioOrBuilder() { + if (audioBuilder_ != null) { + return audioBuilder_.getMessageOrBuilder(); + } else { + return audio_ == null ? + cmvr.api.Common.AudioData.getDefaultInstance() : audio_; + } + } + /** + * .cmvr.api.AudioData audio = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.AudioData, cmvr.api.Common.AudioData.Builder, cmvr.api.Common.AudioDataOrBuilder> + getAudioFieldBuilder() { + if (audioBuilder_ == null) { + audioBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.AudioData, cmvr.api.Common.AudioData.Builder, cmvr.api.Common.AudioDataOrBuilder>( + getAudio(), + getParentForChildren(), + isClean()); + audio_ = null; + } + return audioBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.StreamMicAudioCommand.Feedback) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.StreamMicAudioCommand.Feedback) + private static final cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback(); + } + + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Feedback parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Feedback getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.MicrophoneCommand.StreamMicAudioCommand)) { + return super.equals(obj); + } + cmvr.api.MicrophoneCommand.StreamMicAudioCommand other = (cmvr.api.MicrophoneCommand.StreamMicAudioCommand) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand 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 cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand 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 cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.MicrophoneCommand.StreamMicAudioCommand prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + 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 cmvr.api.StreamMicAudioCommand} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.StreamMicAudioCommand) + cmvr.api.MicrophoneCommand.StreamMicAudioCommandOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.MicrophoneCommand.StreamMicAudioCommand.class, cmvr.api.MicrophoneCommand.StreamMicAudioCommand.Builder.class); + } + + // Construct using cmvr.api.MicrophoneCommand.StreamMicAudioCommand.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.MicrophoneCommand.internal_static_cmvr_api_StreamMicAudioCommand_descriptor; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand getDefaultInstanceForType() { + return cmvr.api.MicrophoneCommand.StreamMicAudioCommand.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand build() { + cmvr.api.MicrophoneCommand.StreamMicAudioCommand result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand buildPartial() { + cmvr.api.MicrophoneCommand.StreamMicAudioCommand result = new cmvr.api.MicrophoneCommand.StreamMicAudioCommand(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.MicrophoneCommand.StreamMicAudioCommand) { + return mergeFrom((cmvr.api.MicrophoneCommand.StreamMicAudioCommand)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.MicrophoneCommand.StreamMicAudioCommand other) { + if (other == cmvr.api.MicrophoneCommand.StreamMicAudioCommand.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.StreamMicAudioCommand) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.StreamMicAudioCommand) + private static final cmvr.api.MicrophoneCommand.StreamMicAudioCommand DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.MicrophoneCommand.StreamMicAudioCommand(); + } + + public static cmvr.api.MicrophoneCommand.StreamMicAudioCommand getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public StreamMicAudioCommand parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.MicrophoneCommand.StreamMicAudioCommand getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + public interface SetMicPhoneVolumeCommandOrBuilder extends // @@protoc_insertion_point(interface_extends:cmvr.api.SetMicPhoneVolumeCommand) com.google.protobuf.MessageOrBuilder { @@ -9226,10 +11017,6 @@ public final class MicrophoneCommand { cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder(); /** - *
-       * 音量值(0 ~ 100)
-       * 
- * * int32 volume = 2; * @return The volume. */ @@ -9304,10 +11091,6 @@ public final class MicrophoneCommand { public static final int VOLUME_FIELD_NUMBER = 2; private int volume_; /** - *
-       * 音量值(0 ~ 100)
-       * 
- * * int32 volume = 2; * @return The volume. */ @@ -9789,10 +11572,6 @@ public final class MicrophoneCommand { private int volume_ ; /** - *
-         * 音量值(0 ~ 100)
-         * 
- * * int32 volume = 2; * @return The volume. */ @@ -9801,10 +11580,6 @@ public final class MicrophoneCommand { return volume_; } /** - *
-         * 音量值(0 ~ 100)
-         * 
- * * int32 volume = 2; * @param value The volume to set. * @return This builder for chaining. @@ -9816,10 +11591,6 @@ public final class MicrophoneCommand { return this; } /** - *
-         * 音量值(0 ~ 100)
-         * 
- * * int32 volume = 2; * @return This builder for chaining. */ @@ -11507,10 +13278,6 @@ public final class MicrophoneCommand { cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder(); /** - *
-       * 当前音量值
-       * 
- * * int32 volume = 2; * @return The volume. */ @@ -11585,10 +13352,6 @@ public final class MicrophoneCommand { public static final int VOLUME_FIELD_NUMBER = 2; private int volume_; /** - *
-       * 当前音量值
-       * 
- * * int32 volume = 2; * @return The volume. */ @@ -12070,10 +13833,6 @@ public final class MicrophoneCommand { private int volume_ ; /** - *
-         * 当前音量值
-         * 
- * * int32 volume = 2; * @return The volume. */ @@ -12082,10 +13841,6 @@ public final class MicrophoneCommand { return volume_; } /** - *
-         * 当前音量值
-         * 
- * * int32 volume = 2; * @param value The volume to set. * @return This builder for chaining. @@ -12097,10 +13852,6 @@ public final class MicrophoneCommand { return this; } /** - *
-         * 当前音量值
-         * 
- * * int32 volume = 2; * @return This builder for chaining. */ @@ -12610,6 +14361,21 @@ public final class MicrophoneCommand { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_cmvr_api_ResumeMicRecordingCommand_Feedback_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_StreamMicAudioCommand_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_StreamMicAudioCommand_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_StreamMicAudioCommand_Request_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_StreamMicAudioCommand_Request_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_StreamMicAudioCommand_Feedback_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_StreamMicAudioCommand_Feedback_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_cmvr_api_SetMicPhoneVolumeCommand_descriptor; private static final @@ -12673,16 +14439,20 @@ public final class MicrophoneCommand { "\031ResumeMicRecordingCommand\032:\n\007Request\022/\n" + "\006header\030\001 \001(\0132\037.cmvr.api.CommandHeader.R" + "equest\032<\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmv" + - "r.api.CommandHeader.Feedback\"\244\001\n\030SetMicP" + - "honeVolumeCommand\032J\n\007Request\022/\n\006header\030\001" + - " \001(\0132\037.cmvr.api.CommandHeader.Request\022\016\n" + - "\006volume\030\002 \001(\005\032<\n\010Feedback\0220\n\006header\030\001 \001(" + - "\0132 .cmvr.api.CommandHeader.Feedback\"\244\001\n\030" + - "GetMicPhoneVolumeCommand\032:\n\007Request\022/\n\006h" + - "eader\030\001 \001(\0132\037.cmvr.api.CommandHeader.Req" + - "uest\032L\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr." + - "api.CommandHeader.Feedback\022\016\n\006volume\030\002 \001" + - "(\005b\006proto3" + "r.api.CommandHeader.Feedback\"\265\001\n\025StreamM" + + "icAudioCommand\032:\n\007Request\022/\n\006header\030\001 \001(" + + "\0132\037.cmvr.api.CommandHeader.Request\032`\n\010Fe" + + "edback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Comman" + + "dHeader.Feedback\022\"\n\005audio\030\002 \001(\0132\023.cmvr.a" + + "pi.AudioData\"\244\001\n\030SetMicPhoneVolumeComman" + + "d\032J\n\007Request\022/\n\006header\030\001 \001(\0132\037.cmvr.api." + + "CommandHeader.Request\022\016\n\006volume\030\002 \001(\005\032<\n" + + "\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Com" + + "mandHeader.Feedback\"\244\001\n\030GetMicPhoneVolum" + + "eCommand\032:\n\007Request\022/\n\006header\030\001 \001(\0132\037.cm" + + "vr.api.CommandHeader.Request\032L\n\010Feedback" + + "\0220\n\006header\030\001 \001(\0132 .cmvr.api.CommandHeade" + + "r.Feedback\022\016\n\006volume\030\002 \001(\005b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -12785,8 +14555,26 @@ public final class MicrophoneCommand { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_ResumeMicRecordingCommand_Feedback_descriptor, new java.lang.String[] { "Header", }); - internal_static_cmvr_api_SetMicPhoneVolumeCommand_descriptor = + internal_static_cmvr_api_StreamMicAudioCommand_descriptor = getDescriptor().getMessageTypes().get(6); + internal_static_cmvr_api_StreamMicAudioCommand_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_StreamMicAudioCommand_descriptor, + new java.lang.String[] { }); + internal_static_cmvr_api_StreamMicAudioCommand_Request_descriptor = + internal_static_cmvr_api_StreamMicAudioCommand_descriptor.getNestedTypes().get(0); + internal_static_cmvr_api_StreamMicAudioCommand_Request_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_StreamMicAudioCommand_Request_descriptor, + new java.lang.String[] { "Header", }); + internal_static_cmvr_api_StreamMicAudioCommand_Feedback_descriptor = + internal_static_cmvr_api_StreamMicAudioCommand_descriptor.getNestedTypes().get(1); + internal_static_cmvr_api_StreamMicAudioCommand_Feedback_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_StreamMicAudioCommand_Feedback_descriptor, + new java.lang.String[] { "Header", "Audio", }); + internal_static_cmvr_api_SetMicPhoneVolumeCommand_descriptor = + getDescriptor().getMessageTypes().get(7); internal_static_cmvr_api_SetMicPhoneVolumeCommand_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_SetMicPhoneVolumeCommand_descriptor, @@ -12804,7 +14592,7 @@ public final class MicrophoneCommand { internal_static_cmvr_api_SetMicPhoneVolumeCommand_Feedback_descriptor, new java.lang.String[] { "Header", }); internal_static_cmvr_api_GetMicPhoneVolumeCommand_descriptor = - getDescriptor().getMessageTypes().get(7); + getDescriptor().getMessageTypes().get(8); internal_static_cmvr_api_GetMicPhoneVolumeCommand_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_GetMicPhoneVolumeCommand_descriptor, diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicrophoneService.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicrophoneService.java index 3a47a36..3d9c6e3 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicrophoneService.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/MicrophoneService.java @@ -25,7 +25,7 @@ public final class MicrophoneService { java.lang.String[] descriptorData = { "\n!cmvr/api/microphone_service.proto\022\010cmv" + "r.api\032!cmvr/api/microphone_command.proto" + - "2\327\005\n\017MicPhoneService\022X\n\tGetStatus\022$.cmvr" + + "2\273\006\n\017MicPhoneService\022X\n\tGetStatus\022$.cmvr" + ".api.GetMicStateCommand.Request\032%.cmvr.a" + "pi.GetMicStateCommand.Feedback\022f\n\013StartR" + "ecord\022*.cmvr.api.StartMicRecordingComman" + @@ -38,12 +38,14 @@ public final class MicrophoneService { "ingCommand.Feedback\022i\n\014ResumeRecord\022+.cm" + "vr.api.ResumeMicRecordingCommand.Request" + "\032,.cmvr.api.ResumeMicRecordingCommand.Fe" + - "edback\022d\n\tSetVolume\022*.cmvr.api.SetMicPho" + - "neVolumeCommand.Request\032+.cmvr.api.SetMi" + - "cPhoneVolumeCommand.Feedback\022d\n\tGetVolum" + - "e\022*.cmvr.api.GetMicPhoneVolumeCommand.Re" + - "quest\032+.cmvr.api.GetMicPhoneVolumeComman" + - "d.Feedbackb\006proto3" + "edback\022b\n\013StreamAudio\022\'.cmvr.api.StreamM" + + "icAudioCommand.Request\032(.cmvr.api.Stream" + + "MicAudioCommand.Feedback0\001\022d\n\tSetVolume\022" + + "*.cmvr.api.SetMicPhoneVolumeCommand.Requ" + + "est\032+.cmvr.api.SetMicPhoneVolumeCommand." + + "Feedback\022d\n\tGetVolume\022*.cmvr.api.GetMicP" + + "honeVolumeCommand.Request\032+.cmvr.api.Get" + + "MicPhoneVolumeCommand.Feedbackb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/RobotAudio.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/RobotAudio.java deleted file mode 100644 index ae32f56..0000000 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/RobotAudio.java +++ /dev/null @@ -1,9090 +0,0 @@ -// Generated by the protocol buffer compiler. DO NOT EDIT! -// source: cmvr/api/robot_audio.proto - -package cmvr.api; - -public final class RobotAudio { - private RobotAudio() {} - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistryLite registry) { - } - - public static void registerAllExtensions( - com.google.protobuf.ExtensionRegistry registry) { - registerAllExtensions( - (com.google.protobuf.ExtensionRegistryLite) registry); - } - public interface RobotAudioFormatOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioFormat) - com.google.protobuf.MessageOrBuilder { - - /** - * int32 sample_rate = 1; - * @return The sampleRate. - */ - int getSampleRate(); - - /** - * int32 channels = 2; - * @return The channels. - */ - int getChannels(); - - /** - * int32 bits_per_sample = 3; - * @return The bitsPerSample. - */ - int getBitsPerSample(); - - /** - * string encoding = 4; - * @return The encoding. - */ - java.lang.String getEncoding(); - /** - * string encoding = 4; - * @return The bytes for encoding. - */ - com.google.protobuf.ByteString - getEncodingBytes(); - } - /** - *
-   * Fixed audio format: PCM_S16LE, 48 kHz, 16-bit, mono.
-   * Both directions use 10 ms frames: 480 samples, 960 bytes.
-   * 
- * - * Protobuf type {@code cmvr.api.RobotAudioFormat} - */ - public static final class RobotAudioFormat extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioFormat) - RobotAudioFormatOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioFormat.newBuilder() to construct. - private RobotAudioFormat(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioFormat() { - encoding_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioFormat(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFormat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFormat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioFormat.class, cmvr.api.RobotAudio.RobotAudioFormat.Builder.class); - } - - public static final int SAMPLE_RATE_FIELD_NUMBER = 1; - private int sampleRate_; - /** - * int32 sample_rate = 1; - * @return The sampleRate. - */ - @java.lang.Override - public int getSampleRate() { - return sampleRate_; - } - - public static final int CHANNELS_FIELD_NUMBER = 2; - private int channels_; - /** - * int32 channels = 2; - * @return The channels. - */ - @java.lang.Override - public int getChannels() { - return channels_; - } - - public static final int BITS_PER_SAMPLE_FIELD_NUMBER = 3; - private int bitsPerSample_; - /** - * int32 bits_per_sample = 3; - * @return The bitsPerSample. - */ - @java.lang.Override - public int getBitsPerSample() { - return bitsPerSample_; - } - - public static final int ENCODING_FIELD_NUMBER = 4; - private volatile java.lang.Object encoding_; - /** - * string encoding = 4; - * @return The encoding. - */ - @java.lang.Override - public java.lang.String getEncoding() { - java.lang.Object ref = encoding_; - 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(); - encoding_ = s; - return s; - } - } - /** - * string encoding = 4; - * @return The bytes for encoding. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getEncodingBytes() { - java.lang.Object ref = encoding_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - encoding_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (sampleRate_ != 0) { - output.writeInt32(1, sampleRate_); - } - if (channels_ != 0) { - output.writeInt32(2, channels_); - } - if (bitsPerSample_ != 0) { - output.writeInt32(3, bitsPerSample_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(encoding_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, encoding_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (sampleRate_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(1, sampleRate_); - } - if (channels_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, channels_); - } - if (bitsPerSample_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(3, bitsPerSample_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(encoding_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, encoding_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioFormat)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioFormat other = (cmvr.api.RobotAudio.RobotAudioFormat) obj; - - if (getSampleRate() - != other.getSampleRate()) return false; - if (getChannels() - != other.getChannels()) return false; - if (getBitsPerSample() - != other.getBitsPerSample()) return false; - if (!getEncoding() - .equals(other.getEncoding())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SAMPLE_RATE_FIELD_NUMBER; - hash = (53 * hash) + getSampleRate(); - hash = (37 * hash) + CHANNELS_FIELD_NUMBER; - hash = (53 * hash) + getChannels(); - hash = (37 * hash) + BITS_PER_SAMPLE_FIELD_NUMBER; - hash = (53 * hash) + getBitsPerSample(); - hash = (37 * hash) + ENCODING_FIELD_NUMBER; - hash = (53 * hash) + getEncoding().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioFormat parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioFormat parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioFormat parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioFormat parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioFormat parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioFormat parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioFormat parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioFormat 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 cmvr.api.RobotAudio.RobotAudioFormat parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioFormat 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 cmvr.api.RobotAudio.RobotAudioFormat parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioFormat parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioFormat prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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; - } - /** - *
-     * Fixed audio format: PCM_S16LE, 48 kHz, 16-bit, mono.
-     * Both directions use 10 ms frames: 480 samples, 960 bytes.
-     * 
- * - * Protobuf type {@code cmvr.api.RobotAudioFormat} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioFormat) - cmvr.api.RobotAudio.RobotAudioFormatOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFormat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFormat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioFormat.class, cmvr.api.RobotAudio.RobotAudioFormat.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioFormat.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - sampleRate_ = 0; - - channels_ = 0; - - bitsPerSample_ = 0; - - encoding_ = ""; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFormat_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFormat getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioFormat.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFormat build() { - cmvr.api.RobotAudio.RobotAudioFormat result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFormat buildPartial() { - cmvr.api.RobotAudio.RobotAudioFormat result = new cmvr.api.RobotAudio.RobotAudioFormat(this); - result.sampleRate_ = sampleRate_; - result.channels_ = channels_; - result.bitsPerSample_ = bitsPerSample_; - result.encoding_ = encoding_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioFormat) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioFormat)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioFormat other) { - if (other == cmvr.api.RobotAudio.RobotAudioFormat.getDefaultInstance()) return this; - if (other.getSampleRate() != 0) { - setSampleRate(other.getSampleRate()); - } - if (other.getChannels() != 0) { - setChannels(other.getChannels()); - } - if (other.getBitsPerSample() != 0) { - setBitsPerSample(other.getBitsPerSample()); - } - if (!other.getEncoding().isEmpty()) { - encoding_ = other.encoding_; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 8: { - sampleRate_ = input.readInt32(); - - break; - } // case 8 - case 16: { - channels_ = input.readInt32(); - - break; - } // case 16 - case 24: { - bitsPerSample_ = input.readInt32(); - - break; - } // case 24 - case 34: { - encoding_ = input.readStringRequireUtf8(); - - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private int sampleRate_ ; - /** - * int32 sample_rate = 1; - * @return The sampleRate. - */ - @java.lang.Override - public int getSampleRate() { - return sampleRate_; - } - /** - * int32 sample_rate = 1; - * @param value The sampleRate to set. - * @return This builder for chaining. - */ - public Builder setSampleRate(int value) { - - sampleRate_ = value; - onChanged(); - return this; - } - /** - * int32 sample_rate = 1; - * @return This builder for chaining. - */ - public Builder clearSampleRate() { - - sampleRate_ = 0; - onChanged(); - return this; - } - - private int channels_ ; - /** - * int32 channels = 2; - * @return The channels. - */ - @java.lang.Override - public int getChannels() { - return channels_; - } - /** - * int32 channels = 2; - * @param value The channels to set. - * @return This builder for chaining. - */ - public Builder setChannels(int value) { - - channels_ = value; - onChanged(); - return this; - } - /** - * int32 channels = 2; - * @return This builder for chaining. - */ - public Builder clearChannels() { - - channels_ = 0; - onChanged(); - return this; - } - - private int bitsPerSample_ ; - /** - * int32 bits_per_sample = 3; - * @return The bitsPerSample. - */ - @java.lang.Override - public int getBitsPerSample() { - return bitsPerSample_; - } - /** - * int32 bits_per_sample = 3; - * @param value The bitsPerSample to set. - * @return This builder for chaining. - */ - public Builder setBitsPerSample(int value) { - - bitsPerSample_ = value; - onChanged(); - return this; - } - /** - * int32 bits_per_sample = 3; - * @return This builder for chaining. - */ - public Builder clearBitsPerSample() { - - bitsPerSample_ = 0; - onChanged(); - return this; - } - - private java.lang.Object encoding_ = ""; - /** - * string encoding = 4; - * @return The encoding. - */ - public java.lang.String getEncoding() { - java.lang.Object ref = encoding_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - encoding_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string encoding = 4; - * @return The bytes for encoding. - */ - public com.google.protobuf.ByteString - getEncodingBytes() { - java.lang.Object ref = encoding_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - encoding_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string encoding = 4; - * @param value The encoding to set. - * @return This builder for chaining. - */ - public Builder setEncoding( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - encoding_ = value; - onChanged(); - return this; - } - /** - * string encoding = 4; - * @return This builder for chaining. - */ - public Builder clearEncoding() { - - encoding_ = getDefaultInstance().getEncoding(); - onChanged(); - return this; - } - /** - * string encoding = 4; - * @param value The bytes for encoding to set. - * @return This builder for chaining. - */ - public Builder setEncodingBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - encoding_ = value; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioFormat) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioFormat) - private static final cmvr.api.RobotAudio.RobotAudioFormat DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioFormat(); - } - - public static cmvr.api.RobotAudio.RobotAudioFormat getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioFormat parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFormat getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface RobotAudioStartOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioStart) - com.google.protobuf.MessageOrBuilder { - - /** - * string session_id = 1; - * @return The sessionId. - */ - java.lang.String getSessionId(); - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - com.google.protobuf.ByteString - getSessionIdBytes(); - - /** - * string operator_id = 2; - * @return The operatorId. - */ - java.lang.String getOperatorId(); - /** - * string operator_id = 2; - * @return The bytes for operatorId. - */ - com.google.protobuf.ByteString - getOperatorIdBytes(); - - /** - * .cmvr.api.RobotAudioFormat format = 3; - * @return Whether the format field is set. - */ - boolean hasFormat(); - /** - * .cmvr.api.RobotAudioFormat format = 3; - * @return The format. - */ - cmvr.api.RobotAudio.RobotAudioFormat getFormat(); - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - cmvr.api.RobotAudio.RobotAudioFormatOrBuilder getFormatOrBuilder(); - } - /** - * Protobuf type {@code cmvr.api.RobotAudioStart} - */ - public static final class RobotAudioStart extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioStart) - RobotAudioStartOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioStart.newBuilder() to construct. - private RobotAudioStart(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioStart() { - sessionId_ = ""; - operatorId_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioStart(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStart_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStart_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioStart.class, cmvr.api.RobotAudio.RobotAudioStart.Builder.class); - } - - public static final int SESSION_ID_FIELD_NUMBER = 1; - private volatile java.lang.Object sessionId_; - /** - * string session_id = 1; - * @return The sessionId. - */ - @java.lang.Override - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - 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(); - sessionId_ = s; - return s; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int OPERATOR_ID_FIELD_NUMBER = 2; - private volatile java.lang.Object operatorId_; - /** - * string operator_id = 2; - * @return The operatorId. - */ - @java.lang.Override - public java.lang.String getOperatorId() { - java.lang.Object ref = operatorId_; - 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(); - operatorId_ = s; - return s; - } - } - /** - * string operator_id = 2; - * @return The bytes for operatorId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getOperatorIdBytes() { - java.lang.Object ref = operatorId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - operatorId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int FORMAT_FIELD_NUMBER = 3; - private cmvr.api.RobotAudio.RobotAudioFormat format_; - /** - * .cmvr.api.RobotAudioFormat format = 3; - * @return Whether the format field is set. - */ - @java.lang.Override - public boolean hasFormat() { - return format_ != null; - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - * @return The format. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFormat getFormat() { - return format_ == null ? cmvr.api.RobotAudio.RobotAudioFormat.getDefaultInstance() : format_; - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFormatOrBuilder getFormatOrBuilder() { - return getFormat(); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sessionId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(operatorId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, operatorId_); - } - if (format_ != null) { - output.writeMessage(3, getFormat()); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sessionId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(operatorId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, operatorId_); - } - if (format_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getFormat()); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioStart)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioStart other = (cmvr.api.RobotAudio.RobotAudioStart) obj; - - if (!getSessionId() - .equals(other.getSessionId())) return false; - if (!getOperatorId() - .equals(other.getOperatorId())) return false; - if (hasFormat() != other.hasFormat()) return false; - if (hasFormat()) { - if (!getFormat() - .equals(other.getFormat())) return false; - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; - hash = (53 * hash) + getSessionId().hashCode(); - hash = (37 * hash) + OPERATOR_ID_FIELD_NUMBER; - hash = (53 * hash) + getOperatorId().hashCode(); - if (hasFormat()) { - hash = (37 * hash) + FORMAT_FIELD_NUMBER; - hash = (53 * hash) + getFormat().hashCode(); - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioStart parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStart parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStart parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStart parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStart parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStart parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStart parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStart 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 cmvr.api.RobotAudio.RobotAudioStart parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStart 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 cmvr.api.RobotAudio.RobotAudioStart parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStart parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioStart prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.RobotAudioStart} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioStart) - cmvr.api.RobotAudio.RobotAudioStartOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStart_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStart_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioStart.class, cmvr.api.RobotAudio.RobotAudioStart.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioStart.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - sessionId_ = ""; - - operatorId_ = ""; - - if (formatBuilder_ == null) { - format_ = null; - } else { - format_ = null; - formatBuilder_ = null; - } - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStart_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStart getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStart build() { - cmvr.api.RobotAudio.RobotAudioStart result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStart buildPartial() { - cmvr.api.RobotAudio.RobotAudioStart result = new cmvr.api.RobotAudio.RobotAudioStart(this); - result.sessionId_ = sessionId_; - result.operatorId_ = operatorId_; - if (formatBuilder_ == null) { - result.format_ = format_; - } else { - result.format_ = formatBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioStart) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioStart)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioStart other) { - if (other == cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance()) return this; - if (!other.getSessionId().isEmpty()) { - sessionId_ = other.sessionId_; - onChanged(); - } - if (!other.getOperatorId().isEmpty()) { - operatorId_ = other.operatorId_; - onChanged(); - } - if (other.hasFormat()) { - mergeFormat(other.getFormat()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - sessionId_ = input.readStringRequireUtf8(); - - break; - } // case 10 - case 18: { - operatorId_ = input.readStringRequireUtf8(); - - break; - } // case 18 - case 26: { - input.readMessage( - getFormatFieldBuilder().getBuilder(), - extensionRegistry); - - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private java.lang.Object sessionId_ = ""; - /** - * string session_id = 1; - * @return The sessionId. - */ - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sessionId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string session_id = 1; - * @param value The sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - sessionId_ = value; - onChanged(); - return this; - } - /** - * string session_id = 1; - * @return This builder for chaining. - */ - public Builder clearSessionId() { - - sessionId_ = getDefaultInstance().getSessionId(); - onChanged(); - return this; - } - /** - * string session_id = 1; - * @param value The bytes for sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - sessionId_ = value; - onChanged(); - return this; - } - - private java.lang.Object operatorId_ = ""; - /** - * string operator_id = 2; - * @return The operatorId. - */ - public java.lang.String getOperatorId() { - java.lang.Object ref = operatorId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - operatorId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string operator_id = 2; - * @return The bytes for operatorId. - */ - public com.google.protobuf.ByteString - getOperatorIdBytes() { - java.lang.Object ref = operatorId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - operatorId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string operator_id = 2; - * @param value The operatorId to set. - * @return This builder for chaining. - */ - public Builder setOperatorId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - operatorId_ = value; - onChanged(); - return this; - } - /** - * string operator_id = 2; - * @return This builder for chaining. - */ - public Builder clearOperatorId() { - - operatorId_ = getDefaultInstance().getOperatorId(); - onChanged(); - return this; - } - /** - * string operator_id = 2; - * @param value The bytes for operatorId to set. - * @return This builder for chaining. - */ - public Builder setOperatorIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - operatorId_ = value; - onChanged(); - return this; - } - - private cmvr.api.RobotAudio.RobotAudioFormat format_; - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFormat, cmvr.api.RobotAudio.RobotAudioFormat.Builder, cmvr.api.RobotAudio.RobotAudioFormatOrBuilder> formatBuilder_; - /** - * .cmvr.api.RobotAudioFormat format = 3; - * @return Whether the format field is set. - */ - public boolean hasFormat() { - return formatBuilder_ != null || format_ != null; - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - * @return The format. - */ - public cmvr.api.RobotAudio.RobotAudioFormat getFormat() { - if (formatBuilder_ == null) { - return format_ == null ? cmvr.api.RobotAudio.RobotAudioFormat.getDefaultInstance() : format_; - } else { - return formatBuilder_.getMessage(); - } - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - public Builder setFormat(cmvr.api.RobotAudio.RobotAudioFormat value) { - if (formatBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - format_ = value; - onChanged(); - } else { - formatBuilder_.setMessage(value); - } - - return this; - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - public Builder setFormat( - cmvr.api.RobotAudio.RobotAudioFormat.Builder builderForValue) { - if (formatBuilder_ == null) { - format_ = builderForValue.build(); - onChanged(); - } else { - formatBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - public Builder mergeFormat(cmvr.api.RobotAudio.RobotAudioFormat value) { - if (formatBuilder_ == null) { - if (format_ != null) { - format_ = - cmvr.api.RobotAudio.RobotAudioFormat.newBuilder(format_).mergeFrom(value).buildPartial(); - } else { - format_ = value; - } - onChanged(); - } else { - formatBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - public Builder clearFormat() { - if (formatBuilder_ == null) { - format_ = null; - onChanged(); - } else { - format_ = null; - formatBuilder_ = null; - } - - return this; - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - public cmvr.api.RobotAudio.RobotAudioFormat.Builder getFormatBuilder() { - - onChanged(); - return getFormatFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - public cmvr.api.RobotAudio.RobotAudioFormatOrBuilder getFormatOrBuilder() { - if (formatBuilder_ != null) { - return formatBuilder_.getMessageOrBuilder(); - } else { - return format_ == null ? - cmvr.api.RobotAudio.RobotAudioFormat.getDefaultInstance() : format_; - } - } - /** - * .cmvr.api.RobotAudioFormat format = 3; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFormat, cmvr.api.RobotAudio.RobotAudioFormat.Builder, cmvr.api.RobotAudio.RobotAudioFormatOrBuilder> - getFormatFieldBuilder() { - if (formatBuilder_ == null) { - formatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFormat, cmvr.api.RobotAudio.RobotAudioFormat.Builder, cmvr.api.RobotAudio.RobotAudioFormatOrBuilder>( - getFormat(), - getParentForChildren(), - isClean()); - format_ = null; - } - return formatBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioStart) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioStart) - private static final cmvr.api.RobotAudio.RobotAudioStart DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioStart(); - } - - public static cmvr.api.RobotAudio.RobotAudioStart getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioStart parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStart getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface RobotAudioFrameOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioFrame) - com.google.protobuf.MessageOrBuilder { - - /** - * string session_id = 1; - * @return The sessionId. - */ - java.lang.String getSessionId(); - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - com.google.protobuf.ByteString - getSessionIdBytes(); - - /** - * int64 sequence = 2; - * @return The sequence. - */ - long getSequence(); - - /** - *
-     * Robot upload: capture timestamp. Browser downlink: backend send timestamp.
-     * 
- * - * int64 timestamp_ms = 3; - * @return The timestampMs. - */ - long getTimestampMs(); - - /** - *
-     * PCM_S16LE. Fixed 10 ms / 960 bytes at 48 kHz mono 16-bit.
-     * 
- * - * bytes pcm = 4; - * @return The pcm. - */ - com.google.protobuf.ByteString getPcm(); - } - /** - * Protobuf type {@code cmvr.api.RobotAudioFrame} - */ - public static final class RobotAudioFrame extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioFrame) - RobotAudioFrameOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioFrame.newBuilder() to construct. - private RobotAudioFrame(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioFrame() { - sessionId_ = ""; - pcm_ = com.google.protobuf.ByteString.EMPTY; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioFrame(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFrame_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFrame_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioFrame.class, cmvr.api.RobotAudio.RobotAudioFrame.Builder.class); - } - - public static final int SESSION_ID_FIELD_NUMBER = 1; - private volatile java.lang.Object sessionId_; - /** - * string session_id = 1; - * @return The sessionId. - */ - @java.lang.Override - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - 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(); - sessionId_ = s; - return s; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int SEQUENCE_FIELD_NUMBER = 2; - private long sequence_; - /** - * int64 sequence = 2; - * @return The sequence. - */ - @java.lang.Override - public long getSequence() { - return sequence_; - } - - public static final int TIMESTAMP_MS_FIELD_NUMBER = 3; - private long timestampMs_; - /** - *
-     * Robot upload: capture timestamp. Browser downlink: backend send timestamp.
-     * 
- * - * int64 timestamp_ms = 3; - * @return The timestampMs. - */ - @java.lang.Override - public long getTimestampMs() { - return timestampMs_; - } - - public static final int PCM_FIELD_NUMBER = 4; - private com.google.protobuf.ByteString pcm_; - /** - *
-     * PCM_S16LE. Fixed 10 ms / 960 bytes at 48 kHz mono 16-bit.
-     * 
- * - * bytes pcm = 4; - * @return The pcm. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPcm() { - return pcm_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sessionId_); - } - if (sequence_ != 0L) { - output.writeInt64(2, sequence_); - } - if (timestampMs_ != 0L) { - output.writeInt64(3, timestampMs_); - } - if (!pcm_.isEmpty()) { - output.writeBytes(4, pcm_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sessionId_); - } - if (sequence_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(2, sequence_); - } - if (timestampMs_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(3, timestampMs_); - } - if (!pcm_.isEmpty()) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(4, pcm_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioFrame)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioFrame other = (cmvr.api.RobotAudio.RobotAudioFrame) obj; - - if (!getSessionId() - .equals(other.getSessionId())) return false; - if (getSequence() - != other.getSequence()) return false; - if (getTimestampMs() - != other.getTimestampMs()) return false; - if (!getPcm() - .equals(other.getPcm())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; - hash = (53 * hash) + getSessionId().hashCode(); - hash = (37 * hash) + SEQUENCE_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getSequence()); - hash = (37 * hash) + TIMESTAMP_MS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTimestampMs()); - hash = (37 * hash) + PCM_FIELD_NUMBER; - hash = (53 * hash) + getPcm().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioFrame parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioFrame parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioFrame parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioFrame parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioFrame parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioFrame parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioFrame parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioFrame 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 cmvr.api.RobotAudio.RobotAudioFrame parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioFrame 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 cmvr.api.RobotAudio.RobotAudioFrame parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioFrame parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioFrame prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.RobotAudioFrame} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioFrame) - cmvr.api.RobotAudio.RobotAudioFrameOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFrame_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFrame_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioFrame.class, cmvr.api.RobotAudio.RobotAudioFrame.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioFrame.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - sessionId_ = ""; - - sequence_ = 0L; - - timestampMs_ = 0L; - - pcm_ = com.google.protobuf.ByteString.EMPTY; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioFrame_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrame getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrame build() { - cmvr.api.RobotAudio.RobotAudioFrame result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrame buildPartial() { - cmvr.api.RobotAudio.RobotAudioFrame result = new cmvr.api.RobotAudio.RobotAudioFrame(this); - result.sessionId_ = sessionId_; - result.sequence_ = sequence_; - result.timestampMs_ = timestampMs_; - result.pcm_ = pcm_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioFrame) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioFrame)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioFrame other) { - if (other == cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance()) return this; - if (!other.getSessionId().isEmpty()) { - sessionId_ = other.sessionId_; - onChanged(); - } - if (other.getSequence() != 0L) { - setSequence(other.getSequence()); - } - if (other.getTimestampMs() != 0L) { - setTimestampMs(other.getTimestampMs()); - } - if (other.getPcm() != com.google.protobuf.ByteString.EMPTY) { - setPcm(other.getPcm()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - sessionId_ = input.readStringRequireUtf8(); - - break; - } // case 10 - case 16: { - sequence_ = input.readInt64(); - - break; - } // case 16 - case 24: { - timestampMs_ = input.readInt64(); - - break; - } // case 24 - case 34: { - pcm_ = input.readBytes(); - - break; - } // case 34 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private java.lang.Object sessionId_ = ""; - /** - * string session_id = 1; - * @return The sessionId. - */ - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sessionId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string session_id = 1; - * @param value The sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - sessionId_ = value; - onChanged(); - return this; - } - /** - * string session_id = 1; - * @return This builder for chaining. - */ - public Builder clearSessionId() { - - sessionId_ = getDefaultInstance().getSessionId(); - onChanged(); - return this; - } - /** - * string session_id = 1; - * @param value The bytes for sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - sessionId_ = value; - onChanged(); - return this; - } - - private long sequence_ ; - /** - * int64 sequence = 2; - * @return The sequence. - */ - @java.lang.Override - public long getSequence() { - return sequence_; - } - /** - * int64 sequence = 2; - * @param value The sequence to set. - * @return This builder for chaining. - */ - public Builder setSequence(long value) { - - sequence_ = value; - onChanged(); - return this; - } - /** - * int64 sequence = 2; - * @return This builder for chaining. - */ - public Builder clearSequence() { - - sequence_ = 0L; - onChanged(); - return this; - } - - private long timestampMs_ ; - /** - *
-       * Robot upload: capture timestamp. Browser downlink: backend send timestamp.
-       * 
- * - * int64 timestamp_ms = 3; - * @return The timestampMs. - */ - @java.lang.Override - public long getTimestampMs() { - return timestampMs_; - } - /** - *
-       * Robot upload: capture timestamp. Browser downlink: backend send timestamp.
-       * 
- * - * int64 timestamp_ms = 3; - * @param value The timestampMs to set. - * @return This builder for chaining. - */ - public Builder setTimestampMs(long value) { - - timestampMs_ = value; - onChanged(); - return this; - } - /** - *
-       * Robot upload: capture timestamp. Browser downlink: backend send timestamp.
-       * 
- * - * int64 timestamp_ms = 3; - * @return This builder for chaining. - */ - public Builder clearTimestampMs() { - - timestampMs_ = 0L; - onChanged(); - return this; - } - - private com.google.protobuf.ByteString pcm_ = com.google.protobuf.ByteString.EMPTY; - /** - *
-       * PCM_S16LE. Fixed 10 ms / 960 bytes at 48 kHz mono 16-bit.
-       * 
- * - * bytes pcm = 4; - * @return The pcm. - */ - @java.lang.Override - public com.google.protobuf.ByteString getPcm() { - return pcm_; - } - /** - *
-       * PCM_S16LE. Fixed 10 ms / 960 bytes at 48 kHz mono 16-bit.
-       * 
- * - * bytes pcm = 4; - * @param value The pcm to set. - * @return This builder for chaining. - */ - public Builder setPcm(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - - pcm_ = value; - onChanged(); - return this; - } - /** - *
-       * PCM_S16LE. Fixed 10 ms / 960 bytes at 48 kHz mono 16-bit.
-       * 
- * - * bytes pcm = 4; - * @return This builder for chaining. - */ - public Builder clearPcm() { - - pcm_ = getDefaultInstance().getPcm(); - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioFrame) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioFrame) - private static final cmvr.api.RobotAudio.RobotAudioFrame DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioFrame(); - } - - public static cmvr.api.RobotAudio.RobotAudioFrame getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioFrame parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrame getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface RobotAudioHeartbeatOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioHeartbeat) - com.google.protobuf.MessageOrBuilder { - - /** - * string session_id = 1; - * @return The sessionId. - */ - java.lang.String getSessionId(); - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - com.google.protobuf.ByteString - getSessionIdBytes(); - - /** - * int64 timestamp_ms = 2; - * @return The timestampMs. - */ - long getTimestampMs(); - } - /** - * Protobuf type {@code cmvr.api.RobotAudioHeartbeat} - */ - public static final class RobotAudioHeartbeat extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioHeartbeat) - RobotAudioHeartbeatOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioHeartbeat.newBuilder() to construct. - private RobotAudioHeartbeat(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioHeartbeat() { - sessionId_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioHeartbeat(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioHeartbeat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioHeartbeat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioHeartbeat.class, cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder.class); - } - - public static final int SESSION_ID_FIELD_NUMBER = 1; - private volatile java.lang.Object sessionId_; - /** - * string session_id = 1; - * @return The sessionId. - */ - @java.lang.Override - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - 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(); - sessionId_ = s; - return s; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int TIMESTAMP_MS_FIELD_NUMBER = 2; - private long timestampMs_; - /** - * int64 timestamp_ms = 2; - * @return The timestampMs. - */ - @java.lang.Override - public long getTimestampMs() { - return timestampMs_; - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sessionId_); - } - if (timestampMs_ != 0L) { - output.writeInt64(2, timestampMs_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sessionId_); - } - if (timestampMs_ != 0L) { - size += com.google.protobuf.CodedOutputStream - .computeInt64Size(2, timestampMs_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioHeartbeat)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioHeartbeat other = (cmvr.api.RobotAudio.RobotAudioHeartbeat) obj; - - if (!getSessionId() - .equals(other.getSessionId())) return false; - if (getTimestampMs() - != other.getTimestampMs()) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; - hash = (53 * hash) + getSessionId().hashCode(); - hash = (37 * hash) + TIMESTAMP_MS_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashLong( - getTimestampMs()); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat 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 cmvr.api.RobotAudio.RobotAudioHeartbeat parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat 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 cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioHeartbeat parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioHeartbeat prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.RobotAudioHeartbeat} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioHeartbeat) - cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioHeartbeat_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioHeartbeat_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioHeartbeat.class, cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioHeartbeat.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - sessionId_ = ""; - - timestampMs_ = 0L; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioHeartbeat_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeat getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeat build() { - cmvr.api.RobotAudio.RobotAudioHeartbeat result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeat buildPartial() { - cmvr.api.RobotAudio.RobotAudioHeartbeat result = new cmvr.api.RobotAudio.RobotAudioHeartbeat(this); - result.sessionId_ = sessionId_; - result.timestampMs_ = timestampMs_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioHeartbeat) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioHeartbeat)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioHeartbeat other) { - if (other == cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance()) return this; - if (!other.getSessionId().isEmpty()) { - sessionId_ = other.sessionId_; - onChanged(); - } - if (other.getTimestampMs() != 0L) { - setTimestampMs(other.getTimestampMs()); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - sessionId_ = input.readStringRequireUtf8(); - - break; - } // case 10 - case 16: { - timestampMs_ = input.readInt64(); - - break; - } // case 16 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private java.lang.Object sessionId_ = ""; - /** - * string session_id = 1; - * @return The sessionId. - */ - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sessionId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string session_id = 1; - * @param value The sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - sessionId_ = value; - onChanged(); - return this; - } - /** - * string session_id = 1; - * @return This builder for chaining. - */ - public Builder clearSessionId() { - - sessionId_ = getDefaultInstance().getSessionId(); - onChanged(); - return this; - } - /** - * string session_id = 1; - * @param value The bytes for sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - sessionId_ = value; - onChanged(); - return this; - } - - private long timestampMs_ ; - /** - * int64 timestamp_ms = 2; - * @return The timestampMs. - */ - @java.lang.Override - public long getTimestampMs() { - return timestampMs_; - } - /** - * int64 timestamp_ms = 2; - * @param value The timestampMs to set. - * @return This builder for chaining. - */ - public Builder setTimestampMs(long value) { - - timestampMs_ = value; - onChanged(); - return this; - } - /** - * int64 timestamp_ms = 2; - * @return This builder for chaining. - */ - public Builder clearTimestampMs() { - - timestampMs_ = 0L; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioHeartbeat) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioHeartbeat) - private static final cmvr.api.RobotAudio.RobotAudioHeartbeat DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioHeartbeat(); - } - - public static cmvr.api.RobotAudio.RobotAudioHeartbeat getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioHeartbeat parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeat getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface RobotAudioStopOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioStop) - com.google.protobuf.MessageOrBuilder { - - /** - * string session_id = 1; - * @return The sessionId. - */ - java.lang.String getSessionId(); - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - com.google.protobuf.ByteString - getSessionIdBytes(); - - /** - * string reason = 2; - * @return The reason. - */ - java.lang.String getReason(); - /** - * string reason = 2; - * @return The bytes for reason. - */ - com.google.protobuf.ByteString - getReasonBytes(); - } - /** - * Protobuf type {@code cmvr.api.RobotAudioStop} - */ - public static final class RobotAudioStop extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioStop) - RobotAudioStopOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioStop.newBuilder() to construct. - private RobotAudioStop(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioStop() { - sessionId_ = ""; - reason_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioStop(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStop_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStop_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioStop.class, cmvr.api.RobotAudio.RobotAudioStop.Builder.class); - } - - public static final int SESSION_ID_FIELD_NUMBER = 1; - private volatile java.lang.Object sessionId_; - /** - * string session_id = 1; - * @return The sessionId. - */ - @java.lang.Override - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - 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(); - sessionId_ = s; - return s; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int REASON_FIELD_NUMBER = 2; - private volatile java.lang.Object reason_; - /** - * string reason = 2; - * @return The reason. - */ - @java.lang.Override - public java.lang.String getReason() { - java.lang.Object ref = reason_; - 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(); - reason_ = s; - return s; - } - } - /** - * string reason = 2; - * @return The bytes for reason. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getReasonBytes() { - java.lang.Object ref = reason_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - reason_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sessionId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(reason_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, reason_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sessionId_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(reason_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, reason_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioStop)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioStop other = (cmvr.api.RobotAudio.RobotAudioStop) obj; - - if (!getSessionId() - .equals(other.getSessionId())) return false; - if (!getReason() - .equals(other.getReason())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; - hash = (53 * hash) + getSessionId().hashCode(); - hash = (37 * hash) + REASON_FIELD_NUMBER; - hash = (53 * hash) + getReason().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioStop parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStop parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStop parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStop parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStop parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStop parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStop parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStop 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 cmvr.api.RobotAudio.RobotAudioStop parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStop 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 cmvr.api.RobotAudio.RobotAudioStop parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStop parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioStop prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.RobotAudioStop} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioStop) - cmvr.api.RobotAudio.RobotAudioStopOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStop_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStop_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioStop.class, cmvr.api.RobotAudio.RobotAudioStop.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioStop.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - sessionId_ = ""; - - reason_ = ""; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStop_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStop getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStop build() { - cmvr.api.RobotAudio.RobotAudioStop result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStop buildPartial() { - cmvr.api.RobotAudio.RobotAudioStop result = new cmvr.api.RobotAudio.RobotAudioStop(this); - result.sessionId_ = sessionId_; - result.reason_ = reason_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioStop) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioStop)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioStop other) { - if (other == cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance()) return this; - if (!other.getSessionId().isEmpty()) { - sessionId_ = other.sessionId_; - onChanged(); - } - if (!other.getReason().isEmpty()) { - reason_ = other.reason_; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - sessionId_ = input.readStringRequireUtf8(); - - break; - } // case 10 - case 18: { - reason_ = input.readStringRequireUtf8(); - - break; - } // case 18 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private java.lang.Object sessionId_ = ""; - /** - * string session_id = 1; - * @return The sessionId. - */ - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sessionId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string session_id = 1; - * @param value The sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - sessionId_ = value; - onChanged(); - return this; - } - /** - * string session_id = 1; - * @return This builder for chaining. - */ - public Builder clearSessionId() { - - sessionId_ = getDefaultInstance().getSessionId(); - onChanged(); - return this; - } - /** - * string session_id = 1; - * @param value The bytes for sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - sessionId_ = value; - onChanged(); - return this; - } - - private java.lang.Object reason_ = ""; - /** - * string reason = 2; - * @return The reason. - */ - public java.lang.String getReason() { - java.lang.Object ref = reason_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - reason_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string reason = 2; - * @return The bytes for reason. - */ - public com.google.protobuf.ByteString - getReasonBytes() { - java.lang.Object ref = reason_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - reason_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string reason = 2; - * @param value The reason to set. - * @return This builder for chaining. - */ - public Builder setReason( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - reason_ = value; - onChanged(); - return this; - } - /** - * string reason = 2; - * @return This builder for chaining. - */ - public Builder clearReason() { - - reason_ = getDefaultInstance().getReason(); - onChanged(); - return this; - } - /** - * string reason = 2; - * @param value The bytes for reason to set. - * @return This builder for chaining. - */ - public Builder setReasonBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - reason_ = value; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioStop) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioStop) - private static final cmvr.api.RobotAudio.RobotAudioStop DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioStop(); - } - - public static cmvr.api.RobotAudio.RobotAudioStop getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioStop parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStop getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface RobotAudioErrorOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioError) - com.google.protobuf.MessageOrBuilder { - - /** - * string session_id = 1; - * @return The sessionId. - */ - java.lang.String getSessionId(); - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - com.google.protobuf.ByteString - getSessionIdBytes(); - - /** - * int32 code = 2; - * @return The code. - */ - int getCode(); - - /** - * string message = 3; - * @return The message. - */ - java.lang.String getMessage(); - /** - * string message = 3; - * @return The bytes for message. - */ - com.google.protobuf.ByteString - getMessageBytes(); - } - /** - * Protobuf type {@code cmvr.api.RobotAudioError} - */ - public static final class RobotAudioError extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioError) - RobotAudioErrorOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioError.newBuilder() to construct. - private RobotAudioError(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioError() { - sessionId_ = ""; - message_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioError(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioError.class, cmvr.api.RobotAudio.RobotAudioError.Builder.class); - } - - public static final int SESSION_ID_FIELD_NUMBER = 1; - private volatile java.lang.Object sessionId_; - /** - * string session_id = 1; - * @return The sessionId. - */ - @java.lang.Override - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - 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(); - sessionId_ = s; - return s; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int CODE_FIELD_NUMBER = 2; - private int code_; - /** - * int32 code = 2; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - - public static final int MESSAGE_FIELD_NUMBER = 3; - private volatile java.lang.Object message_; - /** - * string message = 3; - * @return The message. - */ - @java.lang.Override - public java.lang.String getMessage() { - java.lang.Object ref = message_; - 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(); - message_ = s; - return s; - } - } - /** - * string message = 3; - * @return The bytes for message. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMessageBytes() { - java.lang.Object ref = message_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - message_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sessionId_); - } - if (code_ != 0) { - output.writeInt32(2, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, message_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sessionId_); - } - if (code_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, code_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, message_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioError)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioError other = (cmvr.api.RobotAudio.RobotAudioError) obj; - - if (!getSessionId() - .equals(other.getSessionId())) return false; - if (getCode() - != other.getCode()) return false; - if (!getMessage() - .equals(other.getMessage())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; - hash = (53 * hash) + getSessionId().hashCode(); - hash = (37 * hash) + CODE_FIELD_NUMBER; - hash = (53 * hash) + getCode(); - hash = (37 * hash) + MESSAGE_FIELD_NUMBER; - hash = (53 * hash) + getMessage().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioError parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioError parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioError parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioError parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioError parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioError parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioError parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioError 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 cmvr.api.RobotAudio.RobotAudioError parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioError 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 cmvr.api.RobotAudio.RobotAudioError parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioError parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioError prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.RobotAudioError} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioError) - cmvr.api.RobotAudio.RobotAudioErrorOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioError_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioError_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioError.class, cmvr.api.RobotAudio.RobotAudioError.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioError.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - sessionId_ = ""; - - code_ = 0; - - message_ = ""; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioError_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioError getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioError build() { - cmvr.api.RobotAudio.RobotAudioError result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioError buildPartial() { - cmvr.api.RobotAudio.RobotAudioError result = new cmvr.api.RobotAudio.RobotAudioError(this); - result.sessionId_ = sessionId_; - result.code_ = code_; - result.message_ = message_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioError) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioError)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioError other) { - if (other == cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance()) return this; - if (!other.getSessionId().isEmpty()) { - sessionId_ = other.sessionId_; - onChanged(); - } - if (other.getCode() != 0) { - setCode(other.getCode()); - } - if (!other.getMessage().isEmpty()) { - message_ = other.message_; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - sessionId_ = input.readStringRequireUtf8(); - - break; - } // case 10 - case 16: { - code_ = input.readInt32(); - - break; - } // case 16 - case 26: { - message_ = input.readStringRequireUtf8(); - - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private java.lang.Object sessionId_ = ""; - /** - * string session_id = 1; - * @return The sessionId. - */ - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sessionId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string session_id = 1; - * @param value The sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - sessionId_ = value; - onChanged(); - return this; - } - /** - * string session_id = 1; - * @return This builder for chaining. - */ - public Builder clearSessionId() { - - sessionId_ = getDefaultInstance().getSessionId(); - onChanged(); - return this; - } - /** - * string session_id = 1; - * @param value The bytes for sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - sessionId_ = value; - onChanged(); - return this; - } - - private int code_ ; - /** - * int32 code = 2; - * @return The code. - */ - @java.lang.Override - public int getCode() { - return code_; - } - /** - * int32 code = 2; - * @param value The code to set. - * @return This builder for chaining. - */ - public Builder setCode(int value) { - - code_ = value; - onChanged(); - return this; - } - /** - * int32 code = 2; - * @return This builder for chaining. - */ - public Builder clearCode() { - - code_ = 0; - onChanged(); - return this; - } - - private java.lang.Object message_ = ""; - /** - * string message = 3; - * @return The message. - */ - public java.lang.String getMessage() { - java.lang.Object ref = message_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - message_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string message = 3; - * @return The bytes for message. - */ - public com.google.protobuf.ByteString - getMessageBytes() { - java.lang.Object ref = message_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - message_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string message = 3; - * @param value The message to set. - * @return This builder for chaining. - */ - public Builder setMessage( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - message_ = value; - onChanged(); - return this; - } - /** - * string message = 3; - * @return This builder for chaining. - */ - public Builder clearMessage() { - - message_ = getDefaultInstance().getMessage(); - onChanged(); - return this; - } - /** - * string message = 3; - * @param value The bytes for message to set. - * @return This builder for chaining. - */ - public Builder setMessageBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - message_ = value; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioError) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioError) - private static final cmvr.api.RobotAudio.RobotAudioError DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioError(); - } - - public static cmvr.api.RobotAudio.RobotAudioError getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioError parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioError getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface RobotAudioStartAckOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioStartAck) - com.google.protobuf.MessageOrBuilder { - - /** - * string session_id = 1; - * @return The sessionId. - */ - java.lang.String getSessionId(); - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - com.google.protobuf.ByteString - getSessionIdBytes(); - - /** - * bool accepted = 2; - * @return The accepted. - */ - boolean getAccepted(); - - /** - * string message = 3; - * @return The message. - */ - java.lang.String getMessage(); - /** - * string message = 3; - * @return The bytes for message. - */ - com.google.protobuf.ByteString - getMessageBytes(); - } - /** - * Protobuf type {@code cmvr.api.RobotAudioStartAck} - */ - public static final class RobotAudioStartAck extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioStartAck) - RobotAudioStartAckOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioStartAck.newBuilder() to construct. - private RobotAudioStartAck(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioStartAck() { - sessionId_ = ""; - message_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioStartAck(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStartAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStartAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioStartAck.class, cmvr.api.RobotAudio.RobotAudioStartAck.Builder.class); - } - - public static final int SESSION_ID_FIELD_NUMBER = 1; - private volatile java.lang.Object sessionId_; - /** - * string session_id = 1; - * @return The sessionId. - */ - @java.lang.Override - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - 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(); - sessionId_ = s; - return s; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int ACCEPTED_FIELD_NUMBER = 2; - private boolean accepted_; - /** - * bool accepted = 2; - * @return The accepted. - */ - @java.lang.Override - public boolean getAccepted() { - return accepted_; - } - - public static final int MESSAGE_FIELD_NUMBER = 3; - private volatile java.lang.Object message_; - /** - * string message = 3; - * @return The message. - */ - @java.lang.Override - public java.lang.String getMessage() { - java.lang.Object ref = message_; - 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(); - message_ = s; - return s; - } - } - /** - * string message = 3; - * @return The bytes for message. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getMessageBytes() { - java.lang.Object ref = message_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - message_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, sessionId_); - } - if (accepted_ != false) { - output.writeBool(2, accepted_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, message_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(sessionId_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, sessionId_); - } - if (accepted_ != false) { - size += com.google.protobuf.CodedOutputStream - .computeBoolSize(2, accepted_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(message_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, message_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioStartAck)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioStartAck other = (cmvr.api.RobotAudio.RobotAudioStartAck) obj; - - if (!getSessionId() - .equals(other.getSessionId())) return false; - if (getAccepted() - != other.getAccepted()) return false; - if (!getMessage() - .equals(other.getMessage())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; - hash = (53 * hash) + getSessionId().hashCode(); - hash = (37 * hash) + ACCEPTED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( - getAccepted()); - hash = (37 * hash) + MESSAGE_FIELD_NUMBER; - hash = (53 * hash) + getMessage().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioStartAck parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck 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 cmvr.api.RobotAudio.RobotAudioStartAck parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck 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 cmvr.api.RobotAudio.RobotAudioStartAck parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioStartAck parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioStartAck prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.RobotAudioStartAck} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioStartAck) - cmvr.api.RobotAudio.RobotAudioStartAckOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStartAck_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStartAck_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioStartAck.class, cmvr.api.RobotAudio.RobotAudioStartAck.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioStartAck.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - sessionId_ = ""; - - accepted_ = false; - - message_ = ""; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioStartAck_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartAck getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartAck build() { - cmvr.api.RobotAudio.RobotAudioStartAck result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartAck buildPartial() { - cmvr.api.RobotAudio.RobotAudioStartAck result = new cmvr.api.RobotAudio.RobotAudioStartAck(this); - result.sessionId_ = sessionId_; - result.accepted_ = accepted_; - result.message_ = message_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioStartAck) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioStartAck)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioStartAck other) { - if (other == cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance()) return this; - if (!other.getSessionId().isEmpty()) { - sessionId_ = other.sessionId_; - onChanged(); - } - if (other.getAccepted() != false) { - setAccepted(other.getAccepted()); - } - if (!other.getMessage().isEmpty()) { - message_ = other.message_; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - sessionId_ = input.readStringRequireUtf8(); - - break; - } // case 10 - case 16: { - accepted_ = input.readBool(); - - break; - } // case 16 - case 26: { - message_ = input.readStringRequireUtf8(); - - break; - } // case 26 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private java.lang.Object sessionId_ = ""; - /** - * string session_id = 1; - * @return The sessionId. - */ - public java.lang.String getSessionId() { - java.lang.Object ref = sessionId_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - sessionId_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string session_id = 1; - * @return The bytes for sessionId. - */ - public com.google.protobuf.ByteString - getSessionIdBytes() { - java.lang.Object ref = sessionId_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - sessionId_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string session_id = 1; - * @param value The sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionId( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - sessionId_ = value; - onChanged(); - return this; - } - /** - * string session_id = 1; - * @return This builder for chaining. - */ - public Builder clearSessionId() { - - sessionId_ = getDefaultInstance().getSessionId(); - onChanged(); - return this; - } - /** - * string session_id = 1; - * @param value The bytes for sessionId to set. - * @return This builder for chaining. - */ - public Builder setSessionIdBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - sessionId_ = value; - onChanged(); - return this; - } - - private boolean accepted_ ; - /** - * bool accepted = 2; - * @return The accepted. - */ - @java.lang.Override - public boolean getAccepted() { - return accepted_; - } - /** - * bool accepted = 2; - * @param value The accepted to set. - * @return This builder for chaining. - */ - public Builder setAccepted(boolean value) { - - accepted_ = value; - onChanged(); - return this; - } - /** - * bool accepted = 2; - * @return This builder for chaining. - */ - public Builder clearAccepted() { - - accepted_ = false; - onChanged(); - return this; - } - - private java.lang.Object message_ = ""; - /** - * string message = 3; - * @return The message. - */ - public java.lang.String getMessage() { - java.lang.Object ref = message_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - message_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - * string message = 3; - * @return The bytes for message. - */ - public com.google.protobuf.ByteString - getMessageBytes() { - java.lang.Object ref = message_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - message_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - * string message = 3; - * @param value The message to set. - * @return This builder for chaining. - */ - public Builder setMessage( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - message_ = value; - onChanged(); - return this; - } - /** - * string message = 3; - * @return This builder for chaining. - */ - public Builder clearMessage() { - - message_ = getDefaultInstance().getMessage(); - onChanged(); - return this; - } - /** - * string message = 3; - * @param value The bytes for message to set. - * @return This builder for chaining. - */ - public Builder setMessageBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - message_ = value; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioStartAck) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioStartAck) - private static final cmvr.api.RobotAudio.RobotAudioStartAck DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioStartAck(); - } - - public static cmvr.api.RobotAudio.RobotAudioStartAck getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioStartAck parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartAck getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface RobotAudioRequestOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioRequest) - com.google.protobuf.MessageOrBuilder { - - /** - * .cmvr.api.CommandHeader.Request header = 1; - * @return Whether the header field is set. - */ - boolean hasHeader(); - /** - * .cmvr.api.CommandHeader.Request header = 1; - * @return The header. - */ - cmvr.api.Common.CommandHeader.Request getHeader(); - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder(); - - /** - * .cmvr.api.RobotAudioStart start = 2; - * @return Whether the start field is set. - */ - boolean hasStart(); - /** - * .cmvr.api.RobotAudioStart start = 2; - * @return The start. - */ - cmvr.api.RobotAudio.RobotAudioStart getStart(); - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - cmvr.api.RobotAudio.RobotAudioStartOrBuilder getStartOrBuilder(); - - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return Whether the audioFrame field is set. - */ - boolean hasAudioFrame(); - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return The audioFrame. - */ - cmvr.api.RobotAudio.RobotAudioFrame getAudioFrame(); - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - cmvr.api.RobotAudio.RobotAudioFrameOrBuilder getAudioFrameOrBuilder(); - - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return Whether the heartbeat field is set. - */ - boolean hasHeartbeat(); - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return The heartbeat. - */ - cmvr.api.RobotAudio.RobotAudioHeartbeat getHeartbeat(); - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder getHeartbeatOrBuilder(); - - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return Whether the stop field is set. - */ - boolean hasStop(); - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return The stop. - */ - cmvr.api.RobotAudio.RobotAudioStop getStop(); - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - cmvr.api.RobotAudio.RobotAudioStopOrBuilder getStopOrBuilder(); - - /** - * .cmvr.api.RobotAudioError error = 6; - * @return Whether the error field is set. - */ - boolean hasError(); - /** - * .cmvr.api.RobotAudioError error = 6; - * @return The error. - */ - cmvr.api.RobotAudio.RobotAudioError getError(); - /** - * .cmvr.api.RobotAudioError error = 6; - */ - cmvr.api.RobotAudio.RobotAudioErrorOrBuilder getErrorOrBuilder(); - - public cmvr.api.RobotAudio.RobotAudioRequest.PayloadCase getPayloadCase(); - } - /** - * Protobuf type {@code cmvr.api.RobotAudioRequest} - */ - public static final class RobotAudioRequest extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioRequest) - RobotAudioRequestOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioRequest.newBuilder() to construct. - private RobotAudioRequest(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioRequest() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioRequest(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioRequest_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioRequest_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioRequest.class, cmvr.api.RobotAudio.RobotAudioRequest.Builder.class); - } - - private int payloadCase_ = 0; - private java.lang.Object payload_; - public enum PayloadCase - implements com.google.protobuf.Internal.EnumLite, - com.google.protobuf.AbstractMessage.InternalOneOfEnum { - START(2), - AUDIO_FRAME(3), - HEARTBEAT(4), - STOP(5), - ERROR(6), - PAYLOAD_NOT_SET(0); - private final int value; - private PayloadCase(int value) { - this.value = value; - } - /** - * @param value The number of the enum to look for. - * @return The enum associated with the given number. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static PayloadCase valueOf(int value) { - return forNumber(value); - } - - public static PayloadCase forNumber(int value) { - switch (value) { - case 2: return START; - case 3: return AUDIO_FRAME; - case 4: return HEARTBEAT; - case 5: return STOP; - case 6: return ERROR; - case 0: return PAYLOAD_NOT_SET; - default: return null; - } - } - public int getNumber() { - return this.value; - } - }; - - public PayloadCase - getPayloadCase() { - return PayloadCase.forNumber( - payloadCase_); - } - - public static final int HEADER_FIELD_NUMBER = 1; - private cmvr.api.Common.CommandHeader.Request header_; - /** - * .cmvr.api.CommandHeader.Request header = 1; - * @return Whether the header field is set. - */ - @java.lang.Override - public boolean hasHeader() { - return header_ != null; - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - * @return The header. - */ - @java.lang.Override - public cmvr.api.Common.CommandHeader.Request getHeader() { - return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - @java.lang.Override - public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() { - return getHeader(); - } - - public static final int START_FIELD_NUMBER = 2; - /** - * .cmvr.api.RobotAudioStart start = 2; - * @return Whether the start field is set. - */ - @java.lang.Override - public boolean hasStart() { - return payloadCase_ == 2; - } - /** - * .cmvr.api.RobotAudioStart start = 2; - * @return The start. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStart getStart() { - if (payloadCase_ == 2) { - return (cmvr.api.RobotAudio.RobotAudioStart) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartOrBuilder getStartOrBuilder() { - if (payloadCase_ == 2) { - return (cmvr.api.RobotAudio.RobotAudioStart) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance(); - } - - public static final int AUDIO_FRAME_FIELD_NUMBER = 3; - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return Whether the audioFrame field is set. - */ - @java.lang.Override - public boolean hasAudioFrame() { - return payloadCase_ == 3; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return The audioFrame. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrame getAudioFrame() { - if (payloadCase_ == 3) { - return (cmvr.api.RobotAudio.RobotAudioFrame) payload_; - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrameOrBuilder getAudioFrameOrBuilder() { - if (payloadCase_ == 3) { - return (cmvr.api.RobotAudio.RobotAudioFrame) payload_; - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - - public static final int HEARTBEAT_FIELD_NUMBER = 4; - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return Whether the heartbeat field is set. - */ - @java.lang.Override - public boolean hasHeartbeat() { - return payloadCase_ == 4; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return The heartbeat. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeat getHeartbeat() { - if (payloadCase_ == 4) { - return (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_; - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder getHeartbeatOrBuilder() { - if (payloadCase_ == 4) { - return (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_; - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - - public static final int STOP_FIELD_NUMBER = 5; - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return Whether the stop field is set. - */ - @java.lang.Override - public boolean hasStop() { - return payloadCase_ == 5; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return The stop. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStop getStop() { - if (payloadCase_ == 5) { - return (cmvr.api.RobotAudio.RobotAudioStop) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStopOrBuilder getStopOrBuilder() { - if (payloadCase_ == 5) { - return (cmvr.api.RobotAudio.RobotAudioStop) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - - public static final int ERROR_FIELD_NUMBER = 6; - /** - * .cmvr.api.RobotAudioError error = 6; - * @return Whether the error field is set. - */ - @java.lang.Override - public boolean hasError() { - return payloadCase_ == 6; - } - /** - * .cmvr.api.RobotAudioError error = 6; - * @return The error. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioError getError() { - if (payloadCase_ == 6) { - return (cmvr.api.RobotAudio.RobotAudioError) payload_; - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioErrorOrBuilder getErrorOrBuilder() { - if (payloadCase_ == 6) { - return (cmvr.api.RobotAudio.RobotAudioError) payload_; - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (header_ != null) { - output.writeMessage(1, getHeader()); - } - if (payloadCase_ == 2) { - output.writeMessage(2, (cmvr.api.RobotAudio.RobotAudioStart) payload_); - } - if (payloadCase_ == 3) { - output.writeMessage(3, (cmvr.api.RobotAudio.RobotAudioFrame) payload_); - } - if (payloadCase_ == 4) { - output.writeMessage(4, (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_); - } - if (payloadCase_ == 5) { - output.writeMessage(5, (cmvr.api.RobotAudio.RobotAudioStop) payload_); - } - if (payloadCase_ == 6) { - output.writeMessage(6, (cmvr.api.RobotAudio.RobotAudioError) payload_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (header_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getHeader()); - } - if (payloadCase_ == 2) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, (cmvr.api.RobotAudio.RobotAudioStart) payload_); - } - if (payloadCase_ == 3) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, (cmvr.api.RobotAudio.RobotAudioFrame) payload_); - } - if (payloadCase_ == 4) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_); - } - if (payloadCase_ == 5) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, (cmvr.api.RobotAudio.RobotAudioStop) payload_); - } - if (payloadCase_ == 6) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, (cmvr.api.RobotAudio.RobotAudioError) payload_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioRequest)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioRequest other = (cmvr.api.RobotAudio.RobotAudioRequest) obj; - - if (hasHeader() != other.hasHeader()) return false; - if (hasHeader()) { - if (!getHeader() - .equals(other.getHeader())) return false; - } - if (!getPayloadCase().equals(other.getPayloadCase())) return false; - switch (payloadCase_) { - case 2: - if (!getStart() - .equals(other.getStart())) return false; - break; - case 3: - if (!getAudioFrame() - .equals(other.getAudioFrame())) return false; - break; - case 4: - if (!getHeartbeat() - .equals(other.getHeartbeat())) return false; - break; - case 5: - if (!getStop() - .equals(other.getStop())) return false; - break; - case 6: - if (!getError() - .equals(other.getError())) return false; - break; - case 0: - default: - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasHeader()) { - hash = (37 * hash) + HEADER_FIELD_NUMBER; - hash = (53 * hash) + getHeader().hashCode(); - } - switch (payloadCase_) { - case 2: - hash = (37 * hash) + START_FIELD_NUMBER; - hash = (53 * hash) + getStart().hashCode(); - break; - case 3: - hash = (37 * hash) + AUDIO_FRAME_FIELD_NUMBER; - hash = (53 * hash) + getAudioFrame().hashCode(); - break; - case 4: - hash = (37 * hash) + HEARTBEAT_FIELD_NUMBER; - hash = (53 * hash) + getHeartbeat().hashCode(); - break; - case 5: - hash = (37 * hash) + STOP_FIELD_NUMBER; - hash = (53 * hash) + getStop().hashCode(); - break; - case 6: - hash = (37 * hash) + ERROR_FIELD_NUMBER; - hash = (53 * hash) + getError().hashCode(); - break; - case 0: - default: - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioRequest parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioRequest parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioRequest parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioRequest parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioRequest parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioRequest parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioRequest parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioRequest 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 cmvr.api.RobotAudio.RobotAudioRequest parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioRequest 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 cmvr.api.RobotAudio.RobotAudioRequest parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioRequest parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioRequest prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.RobotAudioRequest} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioRequest) - cmvr.api.RobotAudio.RobotAudioRequestOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioRequest_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioRequest_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioRequest.class, cmvr.api.RobotAudio.RobotAudioRequest.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioRequest.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (headerBuilder_ == null) { - header_ = null; - } else { - header_ = null; - headerBuilder_ = null; - } - if (startBuilder_ != null) { - startBuilder_.clear(); - } - if (audioFrameBuilder_ != null) { - audioFrameBuilder_.clear(); - } - if (heartbeatBuilder_ != null) { - heartbeatBuilder_.clear(); - } - if (stopBuilder_ != null) { - stopBuilder_.clear(); - } - if (errorBuilder_ != null) { - errorBuilder_.clear(); - } - payloadCase_ = 0; - payload_ = null; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioRequest_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioRequest getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioRequest.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioRequest build() { - cmvr.api.RobotAudio.RobotAudioRequest result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioRequest buildPartial() { - cmvr.api.RobotAudio.RobotAudioRequest result = new cmvr.api.RobotAudio.RobotAudioRequest(this); - if (headerBuilder_ == null) { - result.header_ = header_; - } else { - result.header_ = headerBuilder_.build(); - } - if (payloadCase_ == 2) { - if (startBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = startBuilder_.build(); - } - } - if (payloadCase_ == 3) { - if (audioFrameBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = audioFrameBuilder_.build(); - } - } - if (payloadCase_ == 4) { - if (heartbeatBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = heartbeatBuilder_.build(); - } - } - if (payloadCase_ == 5) { - if (stopBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = stopBuilder_.build(); - } - } - if (payloadCase_ == 6) { - if (errorBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = errorBuilder_.build(); - } - } - result.payloadCase_ = payloadCase_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioRequest) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioRequest)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioRequest other) { - if (other == cmvr.api.RobotAudio.RobotAudioRequest.getDefaultInstance()) return this; - if (other.hasHeader()) { - mergeHeader(other.getHeader()); - } - switch (other.getPayloadCase()) { - case START: { - mergeStart(other.getStart()); - break; - } - case AUDIO_FRAME: { - mergeAudioFrame(other.getAudioFrame()); - break; - } - case HEARTBEAT: { - mergeHeartbeat(other.getHeartbeat()); - break; - } - case STOP: { - mergeStop(other.getStop()); - break; - } - case ERROR: { - mergeError(other.getError()); - break; - } - case PAYLOAD_NOT_SET: { - break; - } - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getHeaderFieldBuilder().getBuilder(), - extensionRegistry); - - break; - } // case 10 - case 18: { - input.readMessage( - getStartFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 2; - break; - } // case 18 - case 26: { - input.readMessage( - getAudioFrameFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 3; - break; - } // case 26 - case 34: { - input.readMessage( - getHeartbeatFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 4; - break; - } // case 34 - case 42: { - input.readMessage( - getStopFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 5; - break; - } // case 42 - case 50: { - input.readMessage( - getErrorFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 6; - break; - } // case 50 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int payloadCase_ = 0; - private java.lang.Object payload_; - public PayloadCase - getPayloadCase() { - return PayloadCase.forNumber( - payloadCase_); - } - - public Builder clearPayload() { - payloadCase_ = 0; - payload_ = null; - onChanged(); - return this; - } - - - private cmvr.api.Common.CommandHeader.Request header_; - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_; - /** - * .cmvr.api.CommandHeader.Request header = 1; - * @return Whether the header field is set. - */ - public boolean hasHeader() { - return headerBuilder_ != null || header_ != null; - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - * @return The header. - */ - public cmvr.api.Common.CommandHeader.Request getHeader() { - if (headerBuilder_ == null) { - return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; - } else { - return headerBuilder_.getMessage(); - } - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) { - if (headerBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - header_ = value; - onChanged(); - } else { - headerBuilder_.setMessage(value); - } - - return this; - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - public Builder setHeader( - cmvr.api.Common.CommandHeader.Request.Builder builderForValue) { - if (headerBuilder_ == null) { - header_ = builderForValue.build(); - onChanged(); - } else { - headerBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) { - if (headerBuilder_ == null) { - if (header_ != null) { - header_ = - cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial(); - } else { - header_ = value; - } - onChanged(); - } else { - headerBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - public Builder clearHeader() { - if (headerBuilder_ == null) { - header_ = null; - onChanged(); - } else { - header_ = null; - headerBuilder_ = null; - } - - return this; - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() { - - onChanged(); - return getHeaderFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() { - if (headerBuilder_ != null) { - return headerBuilder_.getMessageOrBuilder(); - } else { - return header_ == null ? - cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; - } - } - /** - * .cmvr.api.CommandHeader.Request header = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> - getHeaderFieldBuilder() { - if (headerBuilder_ == null) { - headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>( - getHeader(), - getParentForChildren(), - isClean()); - header_ = null; - } - return headerBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStart, cmvr.api.RobotAudio.RobotAudioStart.Builder, cmvr.api.RobotAudio.RobotAudioStartOrBuilder> startBuilder_; - /** - * .cmvr.api.RobotAudioStart start = 2; - * @return Whether the start field is set. - */ - @java.lang.Override - public boolean hasStart() { - return payloadCase_ == 2; - } - /** - * .cmvr.api.RobotAudioStart start = 2; - * @return The start. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStart getStart() { - if (startBuilder_ == null) { - if (payloadCase_ == 2) { - return (cmvr.api.RobotAudio.RobotAudioStart) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance(); - } else { - if (payloadCase_ == 2) { - return startBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - public Builder setStart(cmvr.api.RobotAudio.RobotAudioStart value) { - if (startBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - startBuilder_.setMessage(value); - } - payloadCase_ = 2; - return this; - } - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - public Builder setStart( - cmvr.api.RobotAudio.RobotAudioStart.Builder builderForValue) { - if (startBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - startBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 2; - return this; - } - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - public Builder mergeStart(cmvr.api.RobotAudio.RobotAudioStart value) { - if (startBuilder_ == null) { - if (payloadCase_ == 2 && - payload_ != cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioStart.newBuilder((cmvr.api.RobotAudio.RobotAudioStart) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 2) { - startBuilder_.mergeFrom(value); - } else { - startBuilder_.setMessage(value); - } - } - payloadCase_ = 2; - return this; - } - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - public Builder clearStart() { - if (startBuilder_ == null) { - if (payloadCase_ == 2) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 2) { - payloadCase_ = 0; - payload_ = null; - } - startBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - public cmvr.api.RobotAudio.RobotAudioStart.Builder getStartBuilder() { - return getStartFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartOrBuilder getStartOrBuilder() { - if ((payloadCase_ == 2) && (startBuilder_ != null)) { - return startBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 2) { - return (cmvr.api.RobotAudio.RobotAudioStart) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioStart start = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStart, cmvr.api.RobotAudio.RobotAudioStart.Builder, cmvr.api.RobotAudio.RobotAudioStartOrBuilder> - getStartFieldBuilder() { - if (startBuilder_ == null) { - if (!(payloadCase_ == 2)) { - payload_ = cmvr.api.RobotAudio.RobotAudioStart.getDefaultInstance(); - } - startBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStart, cmvr.api.RobotAudio.RobotAudioStart.Builder, cmvr.api.RobotAudio.RobotAudioStartOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioStart) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 2; - onChanged();; - return startBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFrame, cmvr.api.RobotAudio.RobotAudioFrame.Builder, cmvr.api.RobotAudio.RobotAudioFrameOrBuilder> audioFrameBuilder_; - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return Whether the audioFrame field is set. - */ - @java.lang.Override - public boolean hasAudioFrame() { - return payloadCase_ == 3; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return The audioFrame. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrame getAudioFrame() { - if (audioFrameBuilder_ == null) { - if (payloadCase_ == 3) { - return (cmvr.api.RobotAudio.RobotAudioFrame) payload_; - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } else { - if (payloadCase_ == 3) { - return audioFrameBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public Builder setAudioFrame(cmvr.api.RobotAudio.RobotAudioFrame value) { - if (audioFrameBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - audioFrameBuilder_.setMessage(value); - } - payloadCase_ = 3; - return this; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public Builder setAudioFrame( - cmvr.api.RobotAudio.RobotAudioFrame.Builder builderForValue) { - if (audioFrameBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - audioFrameBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 3; - return this; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public Builder mergeAudioFrame(cmvr.api.RobotAudio.RobotAudioFrame value) { - if (audioFrameBuilder_ == null) { - if (payloadCase_ == 3 && - payload_ != cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioFrame.newBuilder((cmvr.api.RobotAudio.RobotAudioFrame) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 3) { - audioFrameBuilder_.mergeFrom(value); - } else { - audioFrameBuilder_.setMessage(value); - } - } - payloadCase_ = 3; - return this; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public Builder clearAudioFrame() { - if (audioFrameBuilder_ == null) { - if (payloadCase_ == 3) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 3) { - payloadCase_ = 0; - payload_ = null; - } - audioFrameBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public cmvr.api.RobotAudio.RobotAudioFrame.Builder getAudioFrameBuilder() { - return getAudioFrameFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrameOrBuilder getAudioFrameOrBuilder() { - if ((payloadCase_ == 3) && (audioFrameBuilder_ != null)) { - return audioFrameBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 3) { - return (cmvr.api.RobotAudio.RobotAudioFrame) payload_; - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFrame, cmvr.api.RobotAudio.RobotAudioFrame.Builder, cmvr.api.RobotAudio.RobotAudioFrameOrBuilder> - getAudioFrameFieldBuilder() { - if (audioFrameBuilder_ == null) { - if (!(payloadCase_ == 3)) { - payload_ = cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - audioFrameBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFrame, cmvr.api.RobotAudio.RobotAudioFrame.Builder, cmvr.api.RobotAudio.RobotAudioFrameOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioFrame) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 3; - onChanged();; - return audioFrameBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioHeartbeat, cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder, cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder> heartbeatBuilder_; - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return Whether the heartbeat field is set. - */ - @java.lang.Override - public boolean hasHeartbeat() { - return payloadCase_ == 4; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return The heartbeat. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeat getHeartbeat() { - if (heartbeatBuilder_ == null) { - if (payloadCase_ == 4) { - return (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_; - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } else { - if (payloadCase_ == 4) { - return heartbeatBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public Builder setHeartbeat(cmvr.api.RobotAudio.RobotAudioHeartbeat value) { - if (heartbeatBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - heartbeatBuilder_.setMessage(value); - } - payloadCase_ = 4; - return this; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public Builder setHeartbeat( - cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder builderForValue) { - if (heartbeatBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - heartbeatBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 4; - return this; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public Builder mergeHeartbeat(cmvr.api.RobotAudio.RobotAudioHeartbeat value) { - if (heartbeatBuilder_ == null) { - if (payloadCase_ == 4 && - payload_ != cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioHeartbeat.newBuilder((cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 4) { - heartbeatBuilder_.mergeFrom(value); - } else { - heartbeatBuilder_.setMessage(value); - } - } - payloadCase_ = 4; - return this; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public Builder clearHeartbeat() { - if (heartbeatBuilder_ == null) { - if (payloadCase_ == 4) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 4) { - payloadCase_ = 0; - payload_ = null; - } - heartbeatBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder getHeartbeatBuilder() { - return getHeartbeatFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder getHeartbeatOrBuilder() { - if ((payloadCase_ == 4) && (heartbeatBuilder_ != null)) { - return heartbeatBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 4) { - return (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_; - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioHeartbeat, cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder, cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder> - getHeartbeatFieldBuilder() { - if (heartbeatBuilder_ == null) { - if (!(payloadCase_ == 4)) { - payload_ = cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - heartbeatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioHeartbeat, cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder, cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 4; - onChanged();; - return heartbeatBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStop, cmvr.api.RobotAudio.RobotAudioStop.Builder, cmvr.api.RobotAudio.RobotAudioStopOrBuilder> stopBuilder_; - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return Whether the stop field is set. - */ - @java.lang.Override - public boolean hasStop() { - return payloadCase_ == 5; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return The stop. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStop getStop() { - if (stopBuilder_ == null) { - if (payloadCase_ == 5) { - return (cmvr.api.RobotAudio.RobotAudioStop) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } else { - if (payloadCase_ == 5) { - return stopBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public Builder setStop(cmvr.api.RobotAudio.RobotAudioStop value) { - if (stopBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - stopBuilder_.setMessage(value); - } - payloadCase_ = 5; - return this; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public Builder setStop( - cmvr.api.RobotAudio.RobotAudioStop.Builder builderForValue) { - if (stopBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - stopBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 5; - return this; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public Builder mergeStop(cmvr.api.RobotAudio.RobotAudioStop value) { - if (stopBuilder_ == null) { - if (payloadCase_ == 5 && - payload_ != cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioStop.newBuilder((cmvr.api.RobotAudio.RobotAudioStop) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 5) { - stopBuilder_.mergeFrom(value); - } else { - stopBuilder_.setMessage(value); - } - } - payloadCase_ = 5; - return this; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public Builder clearStop() { - if (stopBuilder_ == null) { - if (payloadCase_ == 5) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 5) { - payloadCase_ = 0; - payload_ = null; - } - stopBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public cmvr.api.RobotAudio.RobotAudioStop.Builder getStopBuilder() { - return getStopFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStopOrBuilder getStopOrBuilder() { - if ((payloadCase_ == 5) && (stopBuilder_ != null)) { - return stopBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 5) { - return (cmvr.api.RobotAudio.RobotAudioStop) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStop, cmvr.api.RobotAudio.RobotAudioStop.Builder, cmvr.api.RobotAudio.RobotAudioStopOrBuilder> - getStopFieldBuilder() { - if (stopBuilder_ == null) { - if (!(payloadCase_ == 5)) { - payload_ = cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - stopBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStop, cmvr.api.RobotAudio.RobotAudioStop.Builder, cmvr.api.RobotAudio.RobotAudioStopOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioStop) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 5; - onChanged();; - return stopBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioError, cmvr.api.RobotAudio.RobotAudioError.Builder, cmvr.api.RobotAudio.RobotAudioErrorOrBuilder> errorBuilder_; - /** - * .cmvr.api.RobotAudioError error = 6; - * @return Whether the error field is set. - */ - @java.lang.Override - public boolean hasError() { - return payloadCase_ == 6; - } - /** - * .cmvr.api.RobotAudioError error = 6; - * @return The error. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioError getError() { - if (errorBuilder_ == null) { - if (payloadCase_ == 6) { - return (cmvr.api.RobotAudio.RobotAudioError) payload_; - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } else { - if (payloadCase_ == 6) { - return errorBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public Builder setError(cmvr.api.RobotAudio.RobotAudioError value) { - if (errorBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - errorBuilder_.setMessage(value); - } - payloadCase_ = 6; - return this; - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public Builder setError( - cmvr.api.RobotAudio.RobotAudioError.Builder builderForValue) { - if (errorBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - errorBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 6; - return this; - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public Builder mergeError(cmvr.api.RobotAudio.RobotAudioError value) { - if (errorBuilder_ == null) { - if (payloadCase_ == 6 && - payload_ != cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioError.newBuilder((cmvr.api.RobotAudio.RobotAudioError) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 6) { - errorBuilder_.mergeFrom(value); - } else { - errorBuilder_.setMessage(value); - } - } - payloadCase_ = 6; - return this; - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public Builder clearError() { - if (errorBuilder_ == null) { - if (payloadCase_ == 6) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 6) { - payloadCase_ = 0; - payload_ = null; - } - errorBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public cmvr.api.RobotAudio.RobotAudioError.Builder getErrorBuilder() { - return getErrorFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioErrorOrBuilder getErrorOrBuilder() { - if ((payloadCase_ == 6) && (errorBuilder_ != null)) { - return errorBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 6) { - return (cmvr.api.RobotAudio.RobotAudioError) payload_; - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioError, cmvr.api.RobotAudio.RobotAudioError.Builder, cmvr.api.RobotAudio.RobotAudioErrorOrBuilder> - getErrorFieldBuilder() { - if (errorBuilder_ == null) { - if (!(payloadCase_ == 6)) { - payload_ = cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioError, cmvr.api.RobotAudio.RobotAudioError.Builder, cmvr.api.RobotAudio.RobotAudioErrorOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioError) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 6; - onChanged();; - return errorBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioRequest) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioRequest) - private static final cmvr.api.RobotAudio.RobotAudioRequest DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioRequest(); - } - - public static cmvr.api.RobotAudio.RobotAudioRequest getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioRequest parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioRequest getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - public interface RobotAudioResponseOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.RobotAudioResponse) - com.google.protobuf.MessageOrBuilder { - - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - * @return Whether the header field is set. - */ - boolean hasHeader(); - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - * @return The header. - */ - cmvr.api.Common.CommandHeader.Feedback getHeader(); - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder(); - - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - * @return Whether the startAck field is set. - */ - boolean hasStartAck(); - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - * @return The startAck. - */ - cmvr.api.RobotAudio.RobotAudioStartAck getStartAck(); - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - cmvr.api.RobotAudio.RobotAudioStartAckOrBuilder getStartAckOrBuilder(); - - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return Whether the audioFrame field is set. - */ - boolean hasAudioFrame(); - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return The audioFrame. - */ - cmvr.api.RobotAudio.RobotAudioFrame getAudioFrame(); - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - cmvr.api.RobotAudio.RobotAudioFrameOrBuilder getAudioFrameOrBuilder(); - - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return Whether the heartbeat field is set. - */ - boolean hasHeartbeat(); - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return The heartbeat. - */ - cmvr.api.RobotAudio.RobotAudioHeartbeat getHeartbeat(); - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder getHeartbeatOrBuilder(); - - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return Whether the stop field is set. - */ - boolean hasStop(); - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return The stop. - */ - cmvr.api.RobotAudio.RobotAudioStop getStop(); - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - cmvr.api.RobotAudio.RobotAudioStopOrBuilder getStopOrBuilder(); - - /** - * .cmvr.api.RobotAudioError error = 6; - * @return Whether the error field is set. - */ - boolean hasError(); - /** - * .cmvr.api.RobotAudioError error = 6; - * @return The error. - */ - cmvr.api.RobotAudio.RobotAudioError getError(); - /** - * .cmvr.api.RobotAudioError error = 6; - */ - cmvr.api.RobotAudio.RobotAudioErrorOrBuilder getErrorOrBuilder(); - - public cmvr.api.RobotAudio.RobotAudioResponse.PayloadCase getPayloadCase(); - } - /** - * Protobuf type {@code cmvr.api.RobotAudioResponse} - */ - public static final class RobotAudioResponse extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.RobotAudioResponse) - RobotAudioResponseOrBuilder { - private static final long serialVersionUID = 0L; - // Use RobotAudioResponse.newBuilder() to construct. - private RobotAudioResponse(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private RobotAudioResponse() { - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new RobotAudioResponse(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioResponse_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioResponse_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioResponse.class, cmvr.api.RobotAudio.RobotAudioResponse.Builder.class); - } - - private int payloadCase_ = 0; - private java.lang.Object payload_; - public enum PayloadCase - implements com.google.protobuf.Internal.EnumLite, - com.google.protobuf.AbstractMessage.InternalOneOfEnum { - START_ACK(2), - AUDIO_FRAME(3), - HEARTBEAT(4), - STOP(5), - ERROR(6), - PAYLOAD_NOT_SET(0); - private final int value; - private PayloadCase(int value) { - this.value = value; - } - /** - * @param value The number of the enum to look for. - * @return The enum associated with the given number. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static PayloadCase valueOf(int value) { - return forNumber(value); - } - - public static PayloadCase forNumber(int value) { - switch (value) { - case 2: return START_ACK; - case 3: return AUDIO_FRAME; - case 4: return HEARTBEAT; - case 5: return STOP; - case 6: return ERROR; - case 0: return PAYLOAD_NOT_SET; - default: return null; - } - } - public int getNumber() { - return this.value; - } - }; - - public PayloadCase - getPayloadCase() { - return PayloadCase.forNumber( - payloadCase_); - } - - public static final int HEADER_FIELD_NUMBER = 1; - private cmvr.api.Common.CommandHeader.Feedback header_; - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - * @return Whether the header field is set. - */ - @java.lang.Override - public boolean hasHeader() { - return header_ != null; - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - * @return The header. - */ - @java.lang.Override - public cmvr.api.Common.CommandHeader.Feedback getHeader() { - return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - @java.lang.Override - public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() { - return getHeader(); - } - - public static final int START_ACK_FIELD_NUMBER = 2; - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - * @return Whether the startAck field is set. - */ - @java.lang.Override - public boolean hasStartAck() { - return payloadCase_ == 2; - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - * @return The startAck. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartAck getStartAck() { - if (payloadCase_ == 2) { - return (cmvr.api.RobotAudio.RobotAudioStartAck) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartAckOrBuilder getStartAckOrBuilder() { - if (payloadCase_ == 2) { - return (cmvr.api.RobotAudio.RobotAudioStartAck) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance(); - } - - public static final int AUDIO_FRAME_FIELD_NUMBER = 3; - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return Whether the audioFrame field is set. - */ - @java.lang.Override - public boolean hasAudioFrame() { - return payloadCase_ == 3; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return The audioFrame. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrame getAudioFrame() { - if (payloadCase_ == 3) { - return (cmvr.api.RobotAudio.RobotAudioFrame) payload_; - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrameOrBuilder getAudioFrameOrBuilder() { - if (payloadCase_ == 3) { - return (cmvr.api.RobotAudio.RobotAudioFrame) payload_; - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - - public static final int HEARTBEAT_FIELD_NUMBER = 4; - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return Whether the heartbeat field is set. - */ - @java.lang.Override - public boolean hasHeartbeat() { - return payloadCase_ == 4; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return The heartbeat. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeat getHeartbeat() { - if (payloadCase_ == 4) { - return (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_; - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder getHeartbeatOrBuilder() { - if (payloadCase_ == 4) { - return (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_; - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - - public static final int STOP_FIELD_NUMBER = 5; - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return Whether the stop field is set. - */ - @java.lang.Override - public boolean hasStop() { - return payloadCase_ == 5; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return The stop. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStop getStop() { - if (payloadCase_ == 5) { - return (cmvr.api.RobotAudio.RobotAudioStop) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStopOrBuilder getStopOrBuilder() { - if (payloadCase_ == 5) { - return (cmvr.api.RobotAudio.RobotAudioStop) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - - public static final int ERROR_FIELD_NUMBER = 6; - /** - * .cmvr.api.RobotAudioError error = 6; - * @return Whether the error field is set. - */ - @java.lang.Override - public boolean hasError() { - return payloadCase_ == 6; - } - /** - * .cmvr.api.RobotAudioError error = 6; - * @return The error. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioError getError() { - if (payloadCase_ == 6) { - return (cmvr.api.RobotAudio.RobotAudioError) payload_; - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioErrorOrBuilder getErrorOrBuilder() { - if (payloadCase_ == 6) { - return (cmvr.api.RobotAudio.RobotAudioError) payload_; - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (header_ != null) { - output.writeMessage(1, getHeader()); - } - if (payloadCase_ == 2) { - output.writeMessage(2, (cmvr.api.RobotAudio.RobotAudioStartAck) payload_); - } - if (payloadCase_ == 3) { - output.writeMessage(3, (cmvr.api.RobotAudio.RobotAudioFrame) payload_); - } - if (payloadCase_ == 4) { - output.writeMessage(4, (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_); - } - if (payloadCase_ == 5) { - output.writeMessage(5, (cmvr.api.RobotAudio.RobotAudioStop) payload_); - } - if (payloadCase_ == 6) { - output.writeMessage(6, (cmvr.api.RobotAudio.RobotAudioError) payload_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (header_ != null) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(1, getHeader()); - } - if (payloadCase_ == 2) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(2, (cmvr.api.RobotAudio.RobotAudioStartAck) payload_); - } - if (payloadCase_ == 3) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, (cmvr.api.RobotAudio.RobotAudioFrame) payload_); - } - if (payloadCase_ == 4) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(4, (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_); - } - if (payloadCase_ == 5) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(5, (cmvr.api.RobotAudio.RobotAudioStop) payload_); - } - if (payloadCase_ == 6) { - size += com.google.protobuf.CodedOutputStream - .computeMessageSize(6, (cmvr.api.RobotAudio.RobotAudioError) payload_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.RobotAudio.RobotAudioResponse)) { - return super.equals(obj); - } - cmvr.api.RobotAudio.RobotAudioResponse other = (cmvr.api.RobotAudio.RobotAudioResponse) obj; - - if (hasHeader() != other.hasHeader()) return false; - if (hasHeader()) { - if (!getHeader() - .equals(other.getHeader())) return false; - } - if (!getPayloadCase().equals(other.getPayloadCase())) return false; - switch (payloadCase_) { - case 2: - if (!getStartAck() - .equals(other.getStartAck())) return false; - break; - case 3: - if (!getAudioFrame() - .equals(other.getAudioFrame())) return false; - break; - case 4: - if (!getHeartbeat() - .equals(other.getHeartbeat())) return false; - break; - case 5: - if (!getStop() - .equals(other.getStop())) return false; - break; - case 6: - if (!getError() - .equals(other.getError())) return false; - break; - case 0: - default: - } - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - if (hasHeader()) { - hash = (37 * hash) + HEADER_FIELD_NUMBER; - hash = (53 * hash) + getHeader().hashCode(); - } - switch (payloadCase_) { - case 2: - hash = (37 * hash) + START_ACK_FIELD_NUMBER; - hash = (53 * hash) + getStartAck().hashCode(); - break; - case 3: - hash = (37 * hash) + AUDIO_FRAME_FIELD_NUMBER; - hash = (53 * hash) + getAudioFrame().hashCode(); - break; - case 4: - hash = (37 * hash) + HEARTBEAT_FIELD_NUMBER; - hash = (53 * hash) + getHeartbeat().hashCode(); - break; - case 5: - hash = (37 * hash) + STOP_FIELD_NUMBER; - hash = (53 * hash) + getStop().hashCode(); - break; - case 6: - hash = (37 * hash) + ERROR_FIELD_NUMBER; - hash = (53 * hash) + getError().hashCode(); - break; - case 0: - default: - } - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.RobotAudio.RobotAudioResponse parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioResponse parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioResponse parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioResponse parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioResponse parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.RobotAudio.RobotAudioResponse parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.RobotAudio.RobotAudioResponse parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioResponse 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 cmvr.api.RobotAudio.RobotAudioResponse parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioResponse 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 cmvr.api.RobotAudio.RobotAudioResponse parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.RobotAudio.RobotAudioResponse parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.RobotAudio.RobotAudioResponse prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.RobotAudioResponse} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.RobotAudioResponse) - cmvr.api.RobotAudio.RobotAudioResponseOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioResponse_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioResponse_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.RobotAudio.RobotAudioResponse.class, cmvr.api.RobotAudio.RobotAudioResponse.Builder.class); - } - - // Construct using cmvr.api.RobotAudio.RobotAudioResponse.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - if (headerBuilder_ == null) { - header_ = null; - } else { - header_ = null; - headerBuilder_ = null; - } - if (startAckBuilder_ != null) { - startAckBuilder_.clear(); - } - if (audioFrameBuilder_ != null) { - audioFrameBuilder_.clear(); - } - if (heartbeatBuilder_ != null) { - heartbeatBuilder_.clear(); - } - if (stopBuilder_ != null) { - stopBuilder_.clear(); - } - if (errorBuilder_ != null) { - errorBuilder_.clear(); - } - payloadCase_ = 0; - payload_ = null; - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.RobotAudio.internal_static_cmvr_api_RobotAudioResponse_descriptor; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioResponse getDefaultInstanceForType() { - return cmvr.api.RobotAudio.RobotAudioResponse.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioResponse build() { - cmvr.api.RobotAudio.RobotAudioResponse result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioResponse buildPartial() { - cmvr.api.RobotAudio.RobotAudioResponse result = new cmvr.api.RobotAudio.RobotAudioResponse(this); - if (headerBuilder_ == null) { - result.header_ = header_; - } else { - result.header_ = headerBuilder_.build(); - } - if (payloadCase_ == 2) { - if (startAckBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = startAckBuilder_.build(); - } - } - if (payloadCase_ == 3) { - if (audioFrameBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = audioFrameBuilder_.build(); - } - } - if (payloadCase_ == 4) { - if (heartbeatBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = heartbeatBuilder_.build(); - } - } - if (payloadCase_ == 5) { - if (stopBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = stopBuilder_.build(); - } - } - if (payloadCase_ == 6) { - if (errorBuilder_ == null) { - result.payload_ = payload_; - } else { - result.payload_ = errorBuilder_.build(); - } - } - result.payloadCase_ = payloadCase_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.RobotAudio.RobotAudioResponse) { - return mergeFrom((cmvr.api.RobotAudio.RobotAudioResponse)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.RobotAudio.RobotAudioResponse other) { - if (other == cmvr.api.RobotAudio.RobotAudioResponse.getDefaultInstance()) return this; - if (other.hasHeader()) { - mergeHeader(other.getHeader()); - } - switch (other.getPayloadCase()) { - case START_ACK: { - mergeStartAck(other.getStartAck()); - break; - } - case AUDIO_FRAME: { - mergeAudioFrame(other.getAudioFrame()); - break; - } - case HEARTBEAT: { - mergeHeartbeat(other.getHeartbeat()); - break; - } - case STOP: { - mergeStop(other.getStop()); - break; - } - case ERROR: { - mergeError(other.getError()); - break; - } - case PAYLOAD_NOT_SET: { - break; - } - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - input.readMessage( - getHeaderFieldBuilder().getBuilder(), - extensionRegistry); - - break; - } // case 10 - case 18: { - input.readMessage( - getStartAckFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 2; - break; - } // case 18 - case 26: { - input.readMessage( - getAudioFrameFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 3; - break; - } // case 26 - case 34: { - input.readMessage( - getHeartbeatFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 4; - break; - } // case 34 - case 42: { - input.readMessage( - getStopFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 5; - break; - } // case 42 - case 50: { - input.readMessage( - getErrorFieldBuilder().getBuilder(), - extensionRegistry); - payloadCase_ = 6; - break; - } // case 50 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - private int payloadCase_ = 0; - private java.lang.Object payload_; - public PayloadCase - getPayloadCase() { - return PayloadCase.forNumber( - payloadCase_); - } - - public Builder clearPayload() { - payloadCase_ = 0; - payload_ = null; - onChanged(); - return this; - } - - - private cmvr.api.Common.CommandHeader.Feedback header_; - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_; - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - * @return Whether the header field is set. - */ - public boolean hasHeader() { - return headerBuilder_ != null || header_ != null; - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - * @return The header. - */ - public cmvr.api.Common.CommandHeader.Feedback getHeader() { - if (headerBuilder_ == null) { - return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; - } else { - return headerBuilder_.getMessage(); - } - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) { - if (headerBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - header_ = value; - onChanged(); - } else { - headerBuilder_.setMessage(value); - } - - return this; - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - public Builder setHeader( - cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) { - if (headerBuilder_ == null) { - header_ = builderForValue.build(); - onChanged(); - } else { - headerBuilder_.setMessage(builderForValue.build()); - } - - return this; - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) { - if (headerBuilder_ == null) { - if (header_ != null) { - header_ = - cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial(); - } else { - header_ = value; - } - onChanged(); - } else { - headerBuilder_.mergeFrom(value); - } - - return this; - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - public Builder clearHeader() { - if (headerBuilder_ == null) { - header_ = null; - onChanged(); - } else { - header_ = null; - headerBuilder_ = null; - } - - return this; - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() { - - onChanged(); - return getHeaderFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() { - if (headerBuilder_ != null) { - return headerBuilder_.getMessageOrBuilder(); - } else { - return header_ == null ? - cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; - } - } - /** - * .cmvr.api.CommandHeader.Feedback header = 1; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> - getHeaderFieldBuilder() { - if (headerBuilder_ == null) { - headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>( - getHeader(), - getParentForChildren(), - isClean()); - header_ = null; - } - return headerBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStartAck, cmvr.api.RobotAudio.RobotAudioStartAck.Builder, cmvr.api.RobotAudio.RobotAudioStartAckOrBuilder> startAckBuilder_; - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - * @return Whether the startAck field is set. - */ - @java.lang.Override - public boolean hasStartAck() { - return payloadCase_ == 2; - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - * @return The startAck. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartAck getStartAck() { - if (startAckBuilder_ == null) { - if (payloadCase_ == 2) { - return (cmvr.api.RobotAudio.RobotAudioStartAck) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance(); - } else { - if (payloadCase_ == 2) { - return startAckBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - public Builder setStartAck(cmvr.api.RobotAudio.RobotAudioStartAck value) { - if (startAckBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - startAckBuilder_.setMessage(value); - } - payloadCase_ = 2; - return this; - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - public Builder setStartAck( - cmvr.api.RobotAudio.RobotAudioStartAck.Builder builderForValue) { - if (startAckBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - startAckBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 2; - return this; - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - public Builder mergeStartAck(cmvr.api.RobotAudio.RobotAudioStartAck value) { - if (startAckBuilder_ == null) { - if (payloadCase_ == 2 && - payload_ != cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioStartAck.newBuilder((cmvr.api.RobotAudio.RobotAudioStartAck) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 2) { - startAckBuilder_.mergeFrom(value); - } else { - startAckBuilder_.setMessage(value); - } - } - payloadCase_ = 2; - return this; - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - public Builder clearStartAck() { - if (startAckBuilder_ == null) { - if (payloadCase_ == 2) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 2) { - payloadCase_ = 0; - payload_ = null; - } - startAckBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - public cmvr.api.RobotAudio.RobotAudioStartAck.Builder getStartAckBuilder() { - return getStartAckFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStartAckOrBuilder getStartAckOrBuilder() { - if ((payloadCase_ == 2) && (startAckBuilder_ != null)) { - return startAckBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 2) { - return (cmvr.api.RobotAudio.RobotAudioStartAck) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioStartAck start_ack = 2; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStartAck, cmvr.api.RobotAudio.RobotAudioStartAck.Builder, cmvr.api.RobotAudio.RobotAudioStartAckOrBuilder> - getStartAckFieldBuilder() { - if (startAckBuilder_ == null) { - if (!(payloadCase_ == 2)) { - payload_ = cmvr.api.RobotAudio.RobotAudioStartAck.getDefaultInstance(); - } - startAckBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStartAck, cmvr.api.RobotAudio.RobotAudioStartAck.Builder, cmvr.api.RobotAudio.RobotAudioStartAckOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioStartAck) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 2; - onChanged();; - return startAckBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFrame, cmvr.api.RobotAudio.RobotAudioFrame.Builder, cmvr.api.RobotAudio.RobotAudioFrameOrBuilder> audioFrameBuilder_; - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return Whether the audioFrame field is set. - */ - @java.lang.Override - public boolean hasAudioFrame() { - return payloadCase_ == 3; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - * @return The audioFrame. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrame getAudioFrame() { - if (audioFrameBuilder_ == null) { - if (payloadCase_ == 3) { - return (cmvr.api.RobotAudio.RobotAudioFrame) payload_; - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } else { - if (payloadCase_ == 3) { - return audioFrameBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public Builder setAudioFrame(cmvr.api.RobotAudio.RobotAudioFrame value) { - if (audioFrameBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - audioFrameBuilder_.setMessage(value); - } - payloadCase_ = 3; - return this; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public Builder setAudioFrame( - cmvr.api.RobotAudio.RobotAudioFrame.Builder builderForValue) { - if (audioFrameBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - audioFrameBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 3; - return this; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public Builder mergeAudioFrame(cmvr.api.RobotAudio.RobotAudioFrame value) { - if (audioFrameBuilder_ == null) { - if (payloadCase_ == 3 && - payload_ != cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioFrame.newBuilder((cmvr.api.RobotAudio.RobotAudioFrame) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 3) { - audioFrameBuilder_.mergeFrom(value); - } else { - audioFrameBuilder_.setMessage(value); - } - } - payloadCase_ = 3; - return this; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public Builder clearAudioFrame() { - if (audioFrameBuilder_ == null) { - if (payloadCase_ == 3) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 3) { - payloadCase_ = 0; - payload_ = null; - } - audioFrameBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - public cmvr.api.RobotAudio.RobotAudioFrame.Builder getAudioFrameBuilder() { - return getAudioFrameFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioFrameOrBuilder getAudioFrameOrBuilder() { - if ((payloadCase_ == 3) && (audioFrameBuilder_ != null)) { - return audioFrameBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 3) { - return (cmvr.api.RobotAudio.RobotAudioFrame) payload_; - } - return cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioFrame audio_frame = 3; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFrame, cmvr.api.RobotAudio.RobotAudioFrame.Builder, cmvr.api.RobotAudio.RobotAudioFrameOrBuilder> - getAudioFrameFieldBuilder() { - if (audioFrameBuilder_ == null) { - if (!(payloadCase_ == 3)) { - payload_ = cmvr.api.RobotAudio.RobotAudioFrame.getDefaultInstance(); - } - audioFrameBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioFrame, cmvr.api.RobotAudio.RobotAudioFrame.Builder, cmvr.api.RobotAudio.RobotAudioFrameOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioFrame) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 3; - onChanged();; - return audioFrameBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioHeartbeat, cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder, cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder> heartbeatBuilder_; - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return Whether the heartbeat field is set. - */ - @java.lang.Override - public boolean hasHeartbeat() { - return payloadCase_ == 4; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - * @return The heartbeat. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeat getHeartbeat() { - if (heartbeatBuilder_ == null) { - if (payloadCase_ == 4) { - return (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_; - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } else { - if (payloadCase_ == 4) { - return heartbeatBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public Builder setHeartbeat(cmvr.api.RobotAudio.RobotAudioHeartbeat value) { - if (heartbeatBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - heartbeatBuilder_.setMessage(value); - } - payloadCase_ = 4; - return this; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public Builder setHeartbeat( - cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder builderForValue) { - if (heartbeatBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - heartbeatBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 4; - return this; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public Builder mergeHeartbeat(cmvr.api.RobotAudio.RobotAudioHeartbeat value) { - if (heartbeatBuilder_ == null) { - if (payloadCase_ == 4 && - payload_ != cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioHeartbeat.newBuilder((cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 4) { - heartbeatBuilder_.mergeFrom(value); - } else { - heartbeatBuilder_.setMessage(value); - } - } - payloadCase_ = 4; - return this; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public Builder clearHeartbeat() { - if (heartbeatBuilder_ == null) { - if (payloadCase_ == 4) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 4) { - payloadCase_ = 0; - payload_ = null; - } - heartbeatBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - public cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder getHeartbeatBuilder() { - return getHeartbeatFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder getHeartbeatOrBuilder() { - if ((payloadCase_ == 4) && (heartbeatBuilder_ != null)) { - return heartbeatBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 4) { - return (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_; - } - return cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioHeartbeat heartbeat = 4; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioHeartbeat, cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder, cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder> - getHeartbeatFieldBuilder() { - if (heartbeatBuilder_ == null) { - if (!(payloadCase_ == 4)) { - payload_ = cmvr.api.RobotAudio.RobotAudioHeartbeat.getDefaultInstance(); - } - heartbeatBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioHeartbeat, cmvr.api.RobotAudio.RobotAudioHeartbeat.Builder, cmvr.api.RobotAudio.RobotAudioHeartbeatOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioHeartbeat) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 4; - onChanged();; - return heartbeatBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStop, cmvr.api.RobotAudio.RobotAudioStop.Builder, cmvr.api.RobotAudio.RobotAudioStopOrBuilder> stopBuilder_; - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return Whether the stop field is set. - */ - @java.lang.Override - public boolean hasStop() { - return payloadCase_ == 5; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - * @return The stop. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStop getStop() { - if (stopBuilder_ == null) { - if (payloadCase_ == 5) { - return (cmvr.api.RobotAudio.RobotAudioStop) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } else { - if (payloadCase_ == 5) { - return stopBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public Builder setStop(cmvr.api.RobotAudio.RobotAudioStop value) { - if (stopBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - stopBuilder_.setMessage(value); - } - payloadCase_ = 5; - return this; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public Builder setStop( - cmvr.api.RobotAudio.RobotAudioStop.Builder builderForValue) { - if (stopBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - stopBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 5; - return this; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public Builder mergeStop(cmvr.api.RobotAudio.RobotAudioStop value) { - if (stopBuilder_ == null) { - if (payloadCase_ == 5 && - payload_ != cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioStop.newBuilder((cmvr.api.RobotAudio.RobotAudioStop) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 5) { - stopBuilder_.mergeFrom(value); - } else { - stopBuilder_.setMessage(value); - } - } - payloadCase_ = 5; - return this; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public Builder clearStop() { - if (stopBuilder_ == null) { - if (payloadCase_ == 5) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 5) { - payloadCase_ = 0; - payload_ = null; - } - stopBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - public cmvr.api.RobotAudio.RobotAudioStop.Builder getStopBuilder() { - return getStopFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioStopOrBuilder getStopOrBuilder() { - if ((payloadCase_ == 5) && (stopBuilder_ != null)) { - return stopBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 5) { - return (cmvr.api.RobotAudio.RobotAudioStop) payload_; - } - return cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioStop stop = 5; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStop, cmvr.api.RobotAudio.RobotAudioStop.Builder, cmvr.api.RobotAudio.RobotAudioStopOrBuilder> - getStopFieldBuilder() { - if (stopBuilder_ == null) { - if (!(payloadCase_ == 5)) { - payload_ = cmvr.api.RobotAudio.RobotAudioStop.getDefaultInstance(); - } - stopBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioStop, cmvr.api.RobotAudio.RobotAudioStop.Builder, cmvr.api.RobotAudio.RobotAudioStopOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioStop) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 5; - onChanged();; - return stopBuilder_; - } - - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioError, cmvr.api.RobotAudio.RobotAudioError.Builder, cmvr.api.RobotAudio.RobotAudioErrorOrBuilder> errorBuilder_; - /** - * .cmvr.api.RobotAudioError error = 6; - * @return Whether the error field is set. - */ - @java.lang.Override - public boolean hasError() { - return payloadCase_ == 6; - } - /** - * .cmvr.api.RobotAudioError error = 6; - * @return The error. - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioError getError() { - if (errorBuilder_ == null) { - if (payloadCase_ == 6) { - return (cmvr.api.RobotAudio.RobotAudioError) payload_; - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } else { - if (payloadCase_ == 6) { - return errorBuilder_.getMessage(); - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public Builder setError(cmvr.api.RobotAudio.RobotAudioError value) { - if (errorBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - payload_ = value; - onChanged(); - } else { - errorBuilder_.setMessage(value); - } - payloadCase_ = 6; - return this; - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public Builder setError( - cmvr.api.RobotAudio.RobotAudioError.Builder builderForValue) { - if (errorBuilder_ == null) { - payload_ = builderForValue.build(); - onChanged(); - } else { - errorBuilder_.setMessage(builderForValue.build()); - } - payloadCase_ = 6; - return this; - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public Builder mergeError(cmvr.api.RobotAudio.RobotAudioError value) { - if (errorBuilder_ == null) { - if (payloadCase_ == 6 && - payload_ != cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance()) { - payload_ = cmvr.api.RobotAudio.RobotAudioError.newBuilder((cmvr.api.RobotAudio.RobotAudioError) payload_) - .mergeFrom(value).buildPartial(); - } else { - payload_ = value; - } - onChanged(); - } else { - if (payloadCase_ == 6) { - errorBuilder_.mergeFrom(value); - } else { - errorBuilder_.setMessage(value); - } - } - payloadCase_ = 6; - return this; - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public Builder clearError() { - if (errorBuilder_ == null) { - if (payloadCase_ == 6) { - payloadCase_ = 0; - payload_ = null; - onChanged(); - } - } else { - if (payloadCase_ == 6) { - payloadCase_ = 0; - payload_ = null; - } - errorBuilder_.clear(); - } - return this; - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - public cmvr.api.RobotAudio.RobotAudioError.Builder getErrorBuilder() { - return getErrorFieldBuilder().getBuilder(); - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioErrorOrBuilder getErrorOrBuilder() { - if ((payloadCase_ == 6) && (errorBuilder_ != null)) { - return errorBuilder_.getMessageOrBuilder(); - } else { - if (payloadCase_ == 6) { - return (cmvr.api.RobotAudio.RobotAudioError) payload_; - } - return cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - } - /** - * .cmvr.api.RobotAudioError error = 6; - */ - private com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioError, cmvr.api.RobotAudio.RobotAudioError.Builder, cmvr.api.RobotAudio.RobotAudioErrorOrBuilder> - getErrorFieldBuilder() { - if (errorBuilder_ == null) { - if (!(payloadCase_ == 6)) { - payload_ = cmvr.api.RobotAudio.RobotAudioError.getDefaultInstance(); - } - errorBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< - cmvr.api.RobotAudio.RobotAudioError, cmvr.api.RobotAudio.RobotAudioError.Builder, cmvr.api.RobotAudio.RobotAudioErrorOrBuilder>( - (cmvr.api.RobotAudio.RobotAudioError) payload_, - getParentForChildren(), - isClean()); - payload_ = null; - } - payloadCase_ = 6; - onChanged();; - return errorBuilder_; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.RobotAudioResponse) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.RobotAudioResponse) - private static final cmvr.api.RobotAudio.RobotAudioResponse DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.RobotAudio.RobotAudioResponse(); - } - - public static cmvr.api.RobotAudio.RobotAudioResponse getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public RobotAudioResponse parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.RobotAudio.RobotAudioResponse getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioFormat_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioFormat_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioStart_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioStart_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioFrame_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioFrame_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioHeartbeat_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioHeartbeat_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioStop_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioStop_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioError_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioError_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioStartAck_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioStartAck_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioRequest_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioRequest_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_RobotAudioResponse_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_RobotAudioResponse_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\032cmvr/api/robot_audio.proto\022\010cmvr.api\032\025" + - "cmvr/api/common.proto\"d\n\020RobotAudioForma" + - "t\022\023\n\013sample_rate\030\001 \001(\005\022\020\n\010channels\030\002 \001(\005" + - "\022\027\n\017bits_per_sample\030\003 \001(\005\022\020\n\010encoding\030\004 " + - "\001(\t\"f\n\017RobotAudioStart\022\022\n\nsession_id\030\001 \001" + - "(\t\022\023\n\013operator_id\030\002 \001(\t\022*\n\006format\030\003 \001(\0132" + - "\032.cmvr.api.RobotAudioFormat\"Z\n\017RobotAudi" + - "oFrame\022\022\n\nsession_id\030\001 \001(\t\022\020\n\010sequence\030\002" + - " \001(\003\022\024\n\014timestamp_ms\030\003 \001(\003\022\013\n\003pcm\030\004 \001(\014\"" + - "?\n\023RobotAudioHeartbeat\022\022\n\nsession_id\030\001 \001" + - "(\t\022\024\n\014timestamp_ms\030\002 \001(\003\"4\n\016RobotAudioSt" + - "op\022\022\n\nsession_id\030\001 \001(\t\022\016\n\006reason\030\002 \001(\t\"D" + - "\n\017RobotAudioError\022\022\n\nsession_id\030\001 \001(\t\022\014\n" + - "\004code\030\002 \001(\005\022\017\n\007message\030\003 \001(\t\"K\n\022RobotAud" + - "ioStartAck\022\022\n\nsession_id\030\001 \001(\t\022\020\n\010accept" + - "ed\030\002 \001(\010\022\017\n\007message\030\003 \001(\t\"\267\002\n\021RobotAudio" + - "Request\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Comma" + - "ndHeader.Request\022*\n\005start\030\002 \001(\0132\031.cmvr.a" + - "pi.RobotAudioStartH\000\0220\n\013audio_frame\030\003 \001(" + - "\0132\031.cmvr.api.RobotAudioFrameH\000\0222\n\theartb" + - "eat\030\004 \001(\0132\035.cmvr.api.RobotAudioHeartbeat" + - "H\000\022(\n\004stop\030\005 \001(\0132\030.cmvr.api.RobotAudioSt" + - "opH\000\022*\n\005error\030\006 \001(\0132\031.cmvr.api.RobotAudi" + - "oErrorH\000B\t\n\007payload\"\300\002\n\022RobotAudioRespon" + - "se\0220\n\006header\030\001 \001(\0132 .cmvr.api.CommandHea" + - "der.Feedback\0221\n\tstart_ack\030\002 \001(\0132\034.cmvr.a" + - "pi.RobotAudioStartAckH\000\0220\n\013audio_frame\030\003" + - " \001(\0132\031.cmvr.api.RobotAudioFrameH\000\0222\n\thea" + - "rtbeat\030\004 \001(\0132\035.cmvr.api.RobotAudioHeartb" + - "eatH\000\022(\n\004stop\030\005 \001(\0132\030.cmvr.api.RobotAudi" + - "oStopH\000\022*\n\005error\030\006 \001(\0132\031.cmvr.api.RobotA" + - "udioErrorH\000B\t\n\007payload2_\n\021RobotAudioServ" + - "ice\022J\n\tAudioTalk\022\033.cmvr.api.RobotAudioRe" + - "quest\032\034.cmvr.api.RobotAudioResponse(\0010\001b" + - "\006proto3" - }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor - .internalBuildGeneratedFileFrom(descriptorData, - new com.google.protobuf.Descriptors.FileDescriptor[] { - cmvr.api.Common.getDescriptor(), - }); - internal_static_cmvr_api_RobotAudioFormat_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_cmvr_api_RobotAudioFormat_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioFormat_descriptor, - new java.lang.String[] { "SampleRate", "Channels", "BitsPerSample", "Encoding", }); - internal_static_cmvr_api_RobotAudioStart_descriptor = - getDescriptor().getMessageTypes().get(1); - internal_static_cmvr_api_RobotAudioStart_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioStart_descriptor, - new java.lang.String[] { "SessionId", "OperatorId", "Format", }); - internal_static_cmvr_api_RobotAudioFrame_descriptor = - getDescriptor().getMessageTypes().get(2); - internal_static_cmvr_api_RobotAudioFrame_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioFrame_descriptor, - new java.lang.String[] { "SessionId", "Sequence", "TimestampMs", "Pcm", }); - internal_static_cmvr_api_RobotAudioHeartbeat_descriptor = - getDescriptor().getMessageTypes().get(3); - internal_static_cmvr_api_RobotAudioHeartbeat_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioHeartbeat_descriptor, - new java.lang.String[] { "SessionId", "TimestampMs", }); - internal_static_cmvr_api_RobotAudioStop_descriptor = - getDescriptor().getMessageTypes().get(4); - internal_static_cmvr_api_RobotAudioStop_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioStop_descriptor, - new java.lang.String[] { "SessionId", "Reason", }); - internal_static_cmvr_api_RobotAudioError_descriptor = - getDescriptor().getMessageTypes().get(5); - internal_static_cmvr_api_RobotAudioError_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioError_descriptor, - new java.lang.String[] { "SessionId", "Code", "Message", }); - internal_static_cmvr_api_RobotAudioStartAck_descriptor = - getDescriptor().getMessageTypes().get(6); - internal_static_cmvr_api_RobotAudioStartAck_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioStartAck_descriptor, - new java.lang.String[] { "SessionId", "Accepted", "Message", }); - internal_static_cmvr_api_RobotAudioRequest_descriptor = - getDescriptor().getMessageTypes().get(7); - internal_static_cmvr_api_RobotAudioRequest_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioRequest_descriptor, - new java.lang.String[] { "Header", "Start", "AudioFrame", "Heartbeat", "Stop", "Error", "Payload", }); - internal_static_cmvr_api_RobotAudioResponse_descriptor = - getDescriptor().getMessageTypes().get(8); - internal_static_cmvr_api_RobotAudioResponse_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_RobotAudioResponse_descriptor, - new java.lang.String[] { "Header", "StartAck", "AudioFrame", "Heartbeat", "Stop", "Error", "Payload", }); - cmvr.api.Common.getDescriptor(); - } - - // @@protoc_insertion_point(outer_class_scope) -} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/RobotAudioServiceGrpc.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/RobotAudioServiceGrpc.java deleted file mode 100644 index 14c8575..0000000 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/RobotAudioServiceGrpc.java +++ /dev/null @@ -1,280 +0,0 @@ -package cmvr.api; - -import static io.grpc.MethodDescriptor.generateFullMethodName; - -/** - *
- * Real-time bidirectional robot audio service.
- * Java backend is the gRPC client; robot terminal is the gRPC server.
- * 
- */ -@javax.annotation.Generated( - value = "by gRPC proto compiler (version 1.52.0)", - comments = "Source: cmvr/api/robot_audio.proto") -@io.grpc.stub.annotations.GrpcGenerated -public final class RobotAudioServiceGrpc { - - private RobotAudioServiceGrpc() {} - - public static final String SERVICE_NAME = "cmvr.api.RobotAudioService"; - - // Static method descriptors that strictly reflect the proto. - private static volatile io.grpc.MethodDescriptor getAudioTalkMethod; - - @io.grpc.stub.annotations.RpcMethod( - fullMethodName = SERVICE_NAME + '/' + "AudioTalk", - requestType = cmvr.api.RobotAudio.RobotAudioRequest.class, - responseType = cmvr.api.RobotAudio.RobotAudioResponse.class, - methodType = io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING) - public static io.grpc.MethodDescriptor getAudioTalkMethod() { - io.grpc.MethodDescriptor getAudioTalkMethod; - if ((getAudioTalkMethod = RobotAudioServiceGrpc.getAudioTalkMethod) == null) { - synchronized (RobotAudioServiceGrpc.class) { - if ((getAudioTalkMethod = RobotAudioServiceGrpc.getAudioTalkMethod) == null) { - RobotAudioServiceGrpc.getAudioTalkMethod = getAudioTalkMethod = - io.grpc.MethodDescriptor.newBuilder() - .setType(io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING) - .setFullMethodName(generateFullMethodName(SERVICE_NAME, "AudioTalk")) - .setSampledToLocalTracing(true) - .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - cmvr.api.RobotAudio.RobotAudioRequest.getDefaultInstance())) - .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( - cmvr.api.RobotAudio.RobotAudioResponse.getDefaultInstance())) - .setSchemaDescriptor(new RobotAudioServiceMethodDescriptorSupplier("AudioTalk")) - .build(); - } - } - } - return getAudioTalkMethod; - } - - /** - * Creates a new async stub that supports all call types for the service - */ - public static RobotAudioServiceStub newStub(io.grpc.Channel channel) { - io.grpc.stub.AbstractStub.StubFactory factory = - new io.grpc.stub.AbstractStub.StubFactory() { - @java.lang.Override - public RobotAudioServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - return new RobotAudioServiceStub(channel, callOptions); - } - }; - return RobotAudioServiceStub.newStub(factory, channel); - } - - /** - * Creates a new blocking-style stub that supports unary and streaming output calls on the service - */ - public static RobotAudioServiceBlockingStub newBlockingStub( - io.grpc.Channel channel) { - io.grpc.stub.AbstractStub.StubFactory factory = - new io.grpc.stub.AbstractStub.StubFactory() { - @java.lang.Override - public RobotAudioServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - return new RobotAudioServiceBlockingStub(channel, callOptions); - } - }; - return RobotAudioServiceBlockingStub.newStub(factory, channel); - } - - /** - * Creates a new ListenableFuture-style stub that supports unary calls on the service - */ - public static RobotAudioServiceFutureStub newFutureStub( - io.grpc.Channel channel) { - io.grpc.stub.AbstractStub.StubFactory factory = - new io.grpc.stub.AbstractStub.StubFactory() { - @java.lang.Override - public RobotAudioServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - return new RobotAudioServiceFutureStub(channel, callOptions); - } - }; - return RobotAudioServiceFutureStub.newStub(factory, channel); - } - - /** - *
-   * Real-time bidirectional robot audio service.
-   * Java backend is the gRPC client; robot terminal is the gRPC server.
-   * 
- */ - public static abstract class RobotAudioServiceImplBase implements io.grpc.BindableService { - - /** - */ - public io.grpc.stub.StreamObserver audioTalk( - io.grpc.stub.StreamObserver responseObserver) { - return io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall(getAudioTalkMethod(), responseObserver); - } - - @java.lang.Override public final io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()) - .addMethod( - getAudioTalkMethod(), - io.grpc.stub.ServerCalls.asyncBidiStreamingCall( - new MethodHandlers< - cmvr.api.RobotAudio.RobotAudioRequest, - cmvr.api.RobotAudio.RobotAudioResponse>( - this, METHODID_AUDIO_TALK))) - .build(); - } - } - - /** - *
-   * Real-time bidirectional robot audio service.
-   * Java backend is the gRPC client; robot terminal is the gRPC server.
-   * 
- */ - public static final class RobotAudioServiceStub extends io.grpc.stub.AbstractAsyncStub { - private RobotAudioServiceStub( - io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - super(channel, callOptions); - } - - @java.lang.Override - protected RobotAudioServiceStub build( - io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - return new RobotAudioServiceStub(channel, callOptions); - } - - /** - */ - public io.grpc.stub.StreamObserver audioTalk( - io.grpc.stub.StreamObserver responseObserver) { - return io.grpc.stub.ClientCalls.asyncBidiStreamingCall( - getChannel().newCall(getAudioTalkMethod(), getCallOptions()), responseObserver); - } - } - - /** - *
-   * Real-time bidirectional robot audio service.
-   * Java backend is the gRPC client; robot terminal is the gRPC server.
-   * 
- */ - public static final class RobotAudioServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub { - private RobotAudioServiceBlockingStub( - io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - super(channel, callOptions); - } - - @java.lang.Override - protected RobotAudioServiceBlockingStub build( - io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - return new RobotAudioServiceBlockingStub(channel, callOptions); - } - } - - /** - *
-   * Real-time bidirectional robot audio service.
-   * Java backend is the gRPC client; robot terminal is the gRPC server.
-   * 
- */ - public static final class RobotAudioServiceFutureStub extends io.grpc.stub.AbstractFutureStub { - private RobotAudioServiceFutureStub( - io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - super(channel, callOptions); - } - - @java.lang.Override - protected RobotAudioServiceFutureStub build( - io.grpc.Channel channel, io.grpc.CallOptions callOptions) { - return new RobotAudioServiceFutureStub(channel, callOptions); - } - } - - private static final int METHODID_AUDIO_TALK = 0; - - 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 RobotAudioServiceImplBase serviceImpl; - private final int methodId; - - MethodHandlers(RobotAudioServiceImplBase 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) { - default: - throw new AssertionError(); - } - } - - @java.lang.Override - @java.lang.SuppressWarnings("unchecked") - public io.grpc.stub.StreamObserver invoke( - io.grpc.stub.StreamObserver responseObserver) { - switch (methodId) { - case METHODID_AUDIO_TALK: - return (io.grpc.stub.StreamObserver) serviceImpl.audioTalk( - (io.grpc.stub.StreamObserver) responseObserver); - default: - throw new AssertionError(); - } - } - } - - private static abstract class RobotAudioServiceBaseDescriptorSupplier - implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { - RobotAudioServiceBaseDescriptorSupplier() {} - - @java.lang.Override - public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() { - return cmvr.api.RobotAudio.getDescriptor(); - } - - @java.lang.Override - public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() { - return getFileDescriptor().findServiceByName("RobotAudioService"); - } - } - - private static final class RobotAudioServiceFileDescriptorSupplier - extends RobotAudioServiceBaseDescriptorSupplier { - RobotAudioServiceFileDescriptorSupplier() {} - } - - private static final class RobotAudioServiceMethodDescriptorSupplier - extends RobotAudioServiceBaseDescriptorSupplier - implements io.grpc.protobuf.ProtoMethodDescriptorSupplier { - private final String methodName; - - RobotAudioServiceMethodDescriptorSupplier(String methodName) { - this.methodName = methodName; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() { - return getServiceDescriptor().findMethodByName(methodName); - } - } - - private static volatile io.grpc.ServiceDescriptor serviceDescriptor; - - public static io.grpc.ServiceDescriptor getServiceDescriptor() { - io.grpc.ServiceDescriptor result = serviceDescriptor; - if (result == null) { - synchronized (RobotAudioServiceGrpc.class) { - result = serviceDescriptor; - if (result == null) { - serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME) - .setSchemaDescriptor(new RobotAudioServiceFileDescriptorSupplier()) - .addMethod(getAudioTalkMethod()) - .build(); - } - } - } - return result; - } -} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerCommand.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerCommand.java index 90d4b6f..3e5a0e8 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerCommand.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerCommand.java @@ -14,1160 +14,17 @@ public final class SpeakerCommand { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } - public interface AudioDataOrBuilder extends - // @@protoc_insertion_point(interface_extends:cmvr.api.AudioData) - com.google.protobuf.MessageOrBuilder { - - /** - *
-     * 音频二进制数据
-     * 
- * - * bytes data = 1; - * @return The data. - */ - com.google.protobuf.ByteString getData(); - - /** - *
-     * 采样率(Hz)
-     * 
- * - * int32 sample_rate = 2; - * @return The sampleRate. - */ - int getSampleRate(); - - /** - *
-     * 声道数
-     * 
- * - * int32 channels = 3; - * @return The channels. - */ - int getChannels(); - - /** - *
-     * 音频格式
-     * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @return The enum numeric value on the wire for format. - */ - int getFormatValue(); - /** - *
-     * 音频格式
-     * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @return The format. - */ - cmvr.api.SpeakerCommand.AudioData.AudioFormat getFormat(); - - /** - *
-     * 编码方式
-     * 
- * - * string codec = 5; - * @return The codec. - */ - java.lang.String getCodec(); - /** - *
-     * 编码方式
-     * 
- * - * string codec = 5; - * @return The bytes for codec. - */ - com.google.protobuf.ByteString - getCodecBytes(); - } - /** - *
-   * 音频数据格式(与麦克风类似,但用于输出)
-   * 
- * - * Protobuf type {@code cmvr.api.AudioData} - */ - public static final class AudioData extends - com.google.protobuf.GeneratedMessageV3 implements - // @@protoc_insertion_point(message_implements:cmvr.api.AudioData) - AudioDataOrBuilder { - private static final long serialVersionUID = 0L; - // Use AudioData.newBuilder() to construct. - private AudioData(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); - } - private AudioData() { - data_ = com.google.protobuf.ByteString.EMPTY; - format_ = 0; - codec_ = ""; - } - - @java.lang.Override - @SuppressWarnings({"unused"}) - protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { - return new AudioData(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet - getUnknownFields() { - return this.unknownFields; - } - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.SpeakerCommand.internal_static_cmvr_api_AudioData_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.SpeakerCommand.internal_static_cmvr_api_AudioData_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.SpeakerCommand.AudioData.class, cmvr.api.SpeakerCommand.AudioData.Builder.class); - } - - /** - * Protobuf enum {@code cmvr.api.AudioData.AudioFormat} - */ - public enum AudioFormat - implements com.google.protobuf.ProtocolMessageEnum { - /** - * PCM = 0; - */ - PCM(0), - /** - * MP3 = 1; - */ - MP3(1), - /** - * AAC = 2; - */ - AAC(2), - /** - * WAV = 3; - */ - WAV(3), - UNRECOGNIZED(-1), - ; - - /** - * PCM = 0; - */ - public static final int PCM_VALUE = 0; - /** - * MP3 = 1; - */ - public static final int MP3_VALUE = 1; - /** - * AAC = 2; - */ - public static final int AAC_VALUE = 2; - /** - * WAV = 3; - */ - public static final int WAV_VALUE = 3; - - - public final int getNumber() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalArgumentException( - "Can't get the number of an unknown enum value."); - } - return value; - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static AudioFormat valueOf(int value) { - return forNumber(value); - } - - /** - * @param value The numeric wire value of the corresponding enum entry. - * @return The enum associated with the given numeric wire value. - */ - public static AudioFormat forNumber(int value) { - switch (value) { - case 0: return PCM; - case 1: return MP3; - case 2: return AAC; - case 3: return WAV; - default: return null; - } - } - - public static com.google.protobuf.Internal.EnumLiteMap - internalGetValueMap() { - return internalValueMap; - } - private static final com.google.protobuf.Internal.EnumLiteMap< - AudioFormat> internalValueMap = - new com.google.protobuf.Internal.EnumLiteMap() { - public AudioFormat findValueByNumber(int number) { - return AudioFormat.forNumber(number); - } - }; - - public final com.google.protobuf.Descriptors.EnumValueDescriptor - getValueDescriptor() { - if (this == UNRECOGNIZED) { - throw new java.lang.IllegalStateException( - "Can't get the descriptor of an unrecognized enum value."); - } - return getDescriptor().getValues().get(ordinal()); - } - public final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptorForType() { - return getDescriptor(); - } - public static final com.google.protobuf.Descriptors.EnumDescriptor - getDescriptor() { - return cmvr.api.SpeakerCommand.AudioData.getDescriptor().getEnumTypes().get(0); - } - - private static final AudioFormat[] VALUES = values(); - - public static AudioFormat valueOf( - com.google.protobuf.Descriptors.EnumValueDescriptor desc) { - if (desc.getType() != getDescriptor()) { - throw new java.lang.IllegalArgumentException( - "EnumValueDescriptor is not for this type."); - } - if (desc.getIndex() == -1) { - return UNRECOGNIZED; - } - return VALUES[desc.getIndex()]; - } - - private final int value; - - private AudioFormat(int value) { - this.value = value; - } - - // @@protoc_insertion_point(enum_scope:cmvr.api.AudioData.AudioFormat) - } - - public static final int DATA_FIELD_NUMBER = 1; - private com.google.protobuf.ByteString data_; - /** - *
-     * 音频二进制数据
-     * 
- * - * bytes data = 1; - * @return The data. - */ - @java.lang.Override - public com.google.protobuf.ByteString getData() { - return data_; - } - - public static final int SAMPLE_RATE_FIELD_NUMBER = 2; - private int sampleRate_; - /** - *
-     * 采样率(Hz)
-     * 
- * - * int32 sample_rate = 2; - * @return The sampleRate. - */ - @java.lang.Override - public int getSampleRate() { - return sampleRate_; - } - - public static final int CHANNELS_FIELD_NUMBER = 3; - private int channels_; - /** - *
-     * 声道数
-     * 
- * - * int32 channels = 3; - * @return The channels. - */ - @java.lang.Override - public int getChannels() { - return channels_; - } - - public static final int FORMAT_FIELD_NUMBER = 4; - private int format_; - /** - *
-     * 音频格式
-     * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @return The enum numeric value on the wire for format. - */ - @java.lang.Override public int getFormatValue() { - return format_; - } - /** - *
-     * 音频格式
-     * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @return The format. - */ - @java.lang.Override public cmvr.api.SpeakerCommand.AudioData.AudioFormat getFormat() { - @SuppressWarnings("deprecation") - cmvr.api.SpeakerCommand.AudioData.AudioFormat result = cmvr.api.SpeakerCommand.AudioData.AudioFormat.valueOf(format_); - return result == null ? cmvr.api.SpeakerCommand.AudioData.AudioFormat.UNRECOGNIZED : result; - } - - public static final int CODEC_FIELD_NUMBER = 5; - private volatile java.lang.Object codec_; - /** - *
-     * 编码方式
-     * 
- * - * string codec = 5; - * @return The codec. - */ - @java.lang.Override - public java.lang.String getCodec() { - java.lang.Object ref = codec_; - 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(); - codec_ = s; - return s; - } - } - /** - *
-     * 编码方式
-     * 
- * - * string codec = 5; - * @return The bytes for codec. - */ - @java.lang.Override - public com.google.protobuf.ByteString - getCodecBytes() { - java.lang.Object ref = codec_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - codec_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - private byte memoizedIsInitialized = -1; - @java.lang.Override - public final boolean isInitialized() { - byte isInitialized = memoizedIsInitialized; - if (isInitialized == 1) return true; - if (isInitialized == 0) return false; - - memoizedIsInitialized = 1; - return true; - } - - @java.lang.Override - public void writeTo(com.google.protobuf.CodedOutputStream output) - throws java.io.IOException { - if (!data_.isEmpty()) { - output.writeBytes(1, data_); - } - if (sampleRate_ != 0) { - output.writeInt32(2, sampleRate_); - } - if (channels_ != 0) { - output.writeInt32(3, channels_); - } - if (format_ != cmvr.api.SpeakerCommand.AudioData.AudioFormat.PCM.getNumber()) { - output.writeEnum(4, format_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codec_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 5, codec_); - } - getUnknownFields().writeTo(output); - } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; - if (!data_.isEmpty()) { - size += com.google.protobuf.CodedOutputStream - .computeBytesSize(1, data_); - } - if (sampleRate_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, sampleRate_); - } - if (channels_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(3, channels_); - } - if (format_ != cmvr.api.SpeakerCommand.AudioData.AudioFormat.PCM.getNumber()) { - size += com.google.protobuf.CodedOutputStream - .computeEnumSize(4, format_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(codec_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, codec_); - } - size += getUnknownFields().getSerializedSize(); - memoizedSize = size; - return size; - } - - @java.lang.Override - public boolean equals(final java.lang.Object obj) { - if (obj == this) { - return true; - } - if (!(obj instanceof cmvr.api.SpeakerCommand.AudioData)) { - return super.equals(obj); - } - cmvr.api.SpeakerCommand.AudioData other = (cmvr.api.SpeakerCommand.AudioData) obj; - - if (!getData() - .equals(other.getData())) return false; - if (getSampleRate() - != other.getSampleRate()) return false; - if (getChannels() - != other.getChannels()) return false; - if (format_ != other.format_) return false; - if (!getCodec() - .equals(other.getCodec())) return false; - if (!getUnknownFields().equals(other.getUnknownFields())) return false; - return true; - } - - @java.lang.Override - public int hashCode() { - if (memoizedHashCode != 0) { - return memoizedHashCode; - } - int hash = 41; - hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + DATA_FIELD_NUMBER; - hash = (53 * hash) + getData().hashCode(); - hash = (37 * hash) + SAMPLE_RATE_FIELD_NUMBER; - hash = (53 * hash) + getSampleRate(); - hash = (37 * hash) + CHANNELS_FIELD_NUMBER; - hash = (53 * hash) + getChannels(); - hash = (37 * hash) + FORMAT_FIELD_NUMBER; - hash = (53 * hash) + format_; - hash = (37 * hash) + CODEC_FIELD_NUMBER; - hash = (53 * hash) + getCodec().hashCode(); - hash = (29 * hash) + getUnknownFields().hashCode(); - memoizedHashCode = hash; - return hash; - } - - public static cmvr.api.SpeakerCommand.AudioData parseFrom( - java.nio.ByteBuffer data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.SpeakerCommand.AudioData parseFrom( - java.nio.ByteBuffer data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.SpeakerCommand.AudioData parseFrom( - com.google.protobuf.ByteString data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.SpeakerCommand.AudioData parseFrom( - com.google.protobuf.ByteString data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.SpeakerCommand.AudioData parseFrom(byte[] data) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data); - } - public static cmvr.api.SpeakerCommand.AudioData parseFrom( - byte[] data, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - return PARSER.parseFrom(data, extensionRegistry); - } - public static cmvr.api.SpeakerCommand.AudioData parseFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.SpeakerCommand.AudioData 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 cmvr.api.SpeakerCommand.AudioData parseDelimitedFrom(java.io.InputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseDelimitedWithIOException(PARSER, input); - } - public static cmvr.api.SpeakerCommand.AudioData 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 cmvr.api.SpeakerCommand.AudioData parseFrom( - com.google.protobuf.CodedInputStream input) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input); - } - public static cmvr.api.SpeakerCommand.AudioData parseFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - return com.google.protobuf.GeneratedMessageV3 - .parseWithIOException(PARSER, input, extensionRegistry); - } - - @java.lang.Override - public Builder newBuilderForType() { return newBuilder(); } - public static Builder newBuilder() { - return DEFAULT_INSTANCE.toBuilder(); - } - public static Builder newBuilder(cmvr.api.SpeakerCommand.AudioData prototype) { - return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); - } - @java.lang.Override - 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 cmvr.api.AudioData} - */ - public static final class Builder extends - com.google.protobuf.GeneratedMessageV3.Builder implements - // @@protoc_insertion_point(builder_implements:cmvr.api.AudioData) - cmvr.api.SpeakerCommand.AudioDataOrBuilder { - public static final com.google.protobuf.Descriptors.Descriptor - getDescriptor() { - return cmvr.api.SpeakerCommand.internal_static_cmvr_api_AudioData_descriptor; - } - - @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internalGetFieldAccessorTable() { - return cmvr.api.SpeakerCommand.internal_static_cmvr_api_AudioData_fieldAccessorTable - .ensureFieldAccessorsInitialized( - cmvr.api.SpeakerCommand.AudioData.class, cmvr.api.SpeakerCommand.AudioData.Builder.class); - } - - // Construct using cmvr.api.SpeakerCommand.AudioData.newBuilder() - private Builder() { - - } - - private Builder( - com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { - super(parent); - - } - @java.lang.Override - public Builder clear() { - super.clear(); - data_ = com.google.protobuf.ByteString.EMPTY; - - sampleRate_ = 0; - - channels_ = 0; - - format_ = 0; - - codec_ = ""; - - return this; - } - - @java.lang.Override - public com.google.protobuf.Descriptors.Descriptor - getDescriptorForType() { - return cmvr.api.SpeakerCommand.internal_static_cmvr_api_AudioData_descriptor; - } - - @java.lang.Override - public cmvr.api.SpeakerCommand.AudioData getDefaultInstanceForType() { - return cmvr.api.SpeakerCommand.AudioData.getDefaultInstance(); - } - - @java.lang.Override - public cmvr.api.SpeakerCommand.AudioData build() { - cmvr.api.SpeakerCommand.AudioData result = buildPartial(); - if (!result.isInitialized()) { - throw newUninitializedMessageException(result); - } - return result; - } - - @java.lang.Override - public cmvr.api.SpeakerCommand.AudioData buildPartial() { - cmvr.api.SpeakerCommand.AudioData result = new cmvr.api.SpeakerCommand.AudioData(this); - result.data_ = data_; - result.sampleRate_ = sampleRate_; - result.channels_ = channels_; - result.format_ = format_; - result.codec_ = codec_; - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - @java.lang.Override - public Builder setField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.setField(field, value); - } - @java.lang.Override - public Builder clearField( - com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - @java.lang.Override - public Builder clearOneof( - com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - @java.lang.Override - public Builder setRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - @java.lang.Override - public Builder addRepeatedField( - com.google.protobuf.Descriptors.FieldDescriptor field, - java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof cmvr.api.SpeakerCommand.AudioData) { - return mergeFrom((cmvr.api.SpeakerCommand.AudioData)other); - } else { - super.mergeFrom(other); - return this; - } - } - - public Builder mergeFrom(cmvr.api.SpeakerCommand.AudioData other) { - if (other == cmvr.api.SpeakerCommand.AudioData.getDefaultInstance()) return this; - if (other.getData() != com.google.protobuf.ByteString.EMPTY) { - setData(other.getData()); - } - if (other.getSampleRate() != 0) { - setSampleRate(other.getSampleRate()); - } - if (other.getChannels() != 0) { - setChannels(other.getChannels()); - } - if (other.format_ != 0) { - setFormatValue(other.getFormatValue()); - } - if (!other.getCodec().isEmpty()) { - codec_ = other.codec_; - onChanged(); - } - this.mergeUnknownFields(other.getUnknownFields()); - onChanged(); - return this; - } - - @java.lang.Override - public final boolean isInitialized() { - return true; - } - - @java.lang.Override - public Builder mergeFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws java.io.IOException { - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch (tag) { - case 0: - done = true; - break; - case 10: { - data_ = input.readBytes(); - - break; - } // case 10 - case 16: { - sampleRate_ = input.readInt32(); - - break; - } // case 16 - case 24: { - channels_ = input.readInt32(); - - break; - } // case 24 - case 32: { - format_ = input.readEnum(); - - break; - } // case 32 - case 42: { - codec_ = input.readStringRequireUtf8(); - - break; - } // case 42 - default: { - if (!super.parseUnknownField(input, extensionRegistry, tag)) { - done = true; // was an endgroup tag - } - break; - } // default: - } // switch (tag) - } // while (!done) - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.unwrapIOException(); - } finally { - onChanged(); - } // finally - return this; - } - - private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY; - /** - *
-       * 音频二进制数据
-       * 
- * - * bytes data = 1; - * @return The data. - */ - @java.lang.Override - public com.google.protobuf.ByteString getData() { - return data_; - } - /** - *
-       * 音频二进制数据
-       * 
- * - * bytes data = 1; - * @param value The data to set. - * @return This builder for chaining. - */ - public Builder setData(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - - data_ = value; - onChanged(); - return this; - } - /** - *
-       * 音频二进制数据
-       * 
- * - * bytes data = 1; - * @return This builder for chaining. - */ - public Builder clearData() { - - data_ = getDefaultInstance().getData(); - onChanged(); - return this; - } - - private int sampleRate_ ; - /** - *
-       * 采样率(Hz)
-       * 
- * - * int32 sample_rate = 2; - * @return The sampleRate. - */ - @java.lang.Override - public int getSampleRate() { - return sampleRate_; - } - /** - *
-       * 采样率(Hz)
-       * 
- * - * int32 sample_rate = 2; - * @param value The sampleRate to set. - * @return This builder for chaining. - */ - public Builder setSampleRate(int value) { - - sampleRate_ = value; - onChanged(); - return this; - } - /** - *
-       * 采样率(Hz)
-       * 
- * - * int32 sample_rate = 2; - * @return This builder for chaining. - */ - public Builder clearSampleRate() { - - sampleRate_ = 0; - onChanged(); - return this; - } - - private int channels_ ; - /** - *
-       * 声道数
-       * 
- * - * int32 channels = 3; - * @return The channels. - */ - @java.lang.Override - public int getChannels() { - return channels_; - } - /** - *
-       * 声道数
-       * 
- * - * int32 channels = 3; - * @param value The channels to set. - * @return This builder for chaining. - */ - public Builder setChannels(int value) { - - channels_ = value; - onChanged(); - return this; - } - /** - *
-       * 声道数
-       * 
- * - * int32 channels = 3; - * @return This builder for chaining. - */ - public Builder clearChannels() { - - channels_ = 0; - onChanged(); - return this; - } - - private int format_ = 0; - /** - *
-       * 音频格式
-       * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @return The enum numeric value on the wire for format. - */ - @java.lang.Override public int getFormatValue() { - return format_; - } - /** - *
-       * 音频格式
-       * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @param value The enum numeric value on the wire for format to set. - * @return This builder for chaining. - */ - public Builder setFormatValue(int value) { - - format_ = value; - onChanged(); - return this; - } - /** - *
-       * 音频格式
-       * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @return The format. - */ - @java.lang.Override - public cmvr.api.SpeakerCommand.AudioData.AudioFormat getFormat() { - @SuppressWarnings("deprecation") - cmvr.api.SpeakerCommand.AudioData.AudioFormat result = cmvr.api.SpeakerCommand.AudioData.AudioFormat.valueOf(format_); - return result == null ? cmvr.api.SpeakerCommand.AudioData.AudioFormat.UNRECOGNIZED : result; - } - /** - *
-       * 音频格式
-       * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @param value The format to set. - * @return This builder for chaining. - */ - public Builder setFormat(cmvr.api.SpeakerCommand.AudioData.AudioFormat value) { - if (value == null) { - throw new NullPointerException(); - } - - format_ = value.getNumber(); - onChanged(); - return this; - } - /** - *
-       * 音频格式
-       * 
- * - * .cmvr.api.AudioData.AudioFormat format = 4; - * @return This builder for chaining. - */ - public Builder clearFormat() { - - format_ = 0; - onChanged(); - return this; - } - - private java.lang.Object codec_ = ""; - /** - *
-       * 编码方式
-       * 
- * - * string codec = 5; - * @return The codec. - */ - public java.lang.String getCodec() { - java.lang.Object ref = codec_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = - (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - codec_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - /** - *
-       * 编码方式
-       * 
- * - * string codec = 5; - * @return The bytes for codec. - */ - public com.google.protobuf.ByteString - getCodecBytes() { - java.lang.Object ref = codec_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = - com.google.protobuf.ByteString.copyFromUtf8( - (java.lang.String) ref); - codec_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - /** - *
-       * 编码方式
-       * 
- * - * string codec = 5; - * @param value The codec to set. - * @return This builder for chaining. - */ - public Builder setCodec( - java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - - codec_ = value; - onChanged(); - return this; - } - /** - *
-       * 编码方式
-       * 
- * - * string codec = 5; - * @return This builder for chaining. - */ - public Builder clearCodec() { - - codec_ = getDefaultInstance().getCodec(); - onChanged(); - return this; - } - /** - *
-       * 编码方式
-       * 
- * - * string codec = 5; - * @param value The bytes for codec to set. - * @return This builder for chaining. - */ - public Builder setCodecBytes( - com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - - codec_ = value; - onChanged(); - return this; - } - @java.lang.Override - public final Builder setUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.setUnknownFields(unknownFields); - } - - @java.lang.Override - public final Builder mergeUnknownFields( - final com.google.protobuf.UnknownFieldSet unknownFields) { - return super.mergeUnknownFields(unknownFields); - } - - - // @@protoc_insertion_point(builder_scope:cmvr.api.AudioData) - } - - // @@protoc_insertion_point(class_scope:cmvr.api.AudioData) - private static final cmvr.api.SpeakerCommand.AudioData DEFAULT_INSTANCE; - static { - DEFAULT_INSTANCE = new cmvr.api.SpeakerCommand.AudioData(); - } - - public static cmvr.api.SpeakerCommand.AudioData getDefaultInstance() { - return DEFAULT_INSTANCE; - } - - private static final com.google.protobuf.Parser - PARSER = new com.google.protobuf.AbstractParser() { - @java.lang.Override - public AudioData parsePartialFrom( - com.google.protobuf.CodedInputStream input, - com.google.protobuf.ExtensionRegistryLite extensionRegistry) - throws com.google.protobuf.InvalidProtocolBufferException { - Builder builder = newBuilder(); - try { - builder.mergeFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(builder.buildPartial()); - } catch (com.google.protobuf.UninitializedMessageException e) { - throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e) - .setUnfinishedMessage(builder.buildPartial()); - } - return builder.buildPartial(); - } - }; - - public static com.google.protobuf.Parser parser() { - return PARSER; - } - - @java.lang.Override - public com.google.protobuf.Parser getParserForType() { - return PARSER; - } - - @java.lang.Override - public cmvr.api.SpeakerCommand.AudioData getDefaultInstanceForType() { - return DEFAULT_INSTANCE; - } - - } - public interface SpeakerStateOrBuilder extends // @@protoc_insertion_point(interface_extends:cmvr.api.SpeakerState) com.google.protobuf.MessageOrBuilder { /** - *
-     * 是否已初始化
-     * 
- * * bool is_initialized = 1; * @return The isInitialized. */ boolean getIsInitialized(); /** - *
-     * 是否正在播放
-     * 
- * * bool is_running = 2; * @return The isRunning. */ @@ -1186,29 +43,17 @@ public final class SpeakerCommand { boolean getIsPaused(); /** - *
-     * 当前音量(0 ~ 100)
-     * 
- * * int32 volume = 6; * @return The volume. */ int getVolume(); /** - *
-     * 错误信息
-     * 
- * * string error_message = 7; * @return The errorMessage. */ java.lang.String getErrorMessage(); /** - *
-     * 错误信息
-     * 
- * * string error_message = 7; * @return The bytes for errorMessage. */ @@ -1216,10 +61,6 @@ public final class SpeakerCommand { getErrorMessageBytes(); } /** - *
-   * 扬声器状态
-   * 
- * * Protobuf type {@code cmvr.api.SpeakerState} */ public static final class SpeakerState extends @@ -1263,10 +104,6 @@ public final class SpeakerCommand { public static final int IS_INITIALIZED_FIELD_NUMBER = 1; private boolean isInitialized_; /** - *
-     * 是否已初始化
-     * 
- * * bool is_initialized = 1; * @return The isInitialized. */ @@ -1278,10 +115,6 @@ public final class SpeakerCommand { public static final int IS_RUNNING_FIELD_NUMBER = 2; private boolean isRunning_; /** - *
-     * 是否正在播放
-     * 
- * * bool is_running = 2; * @return The isRunning. */ @@ -1315,10 +148,6 @@ public final class SpeakerCommand { public static final int VOLUME_FIELD_NUMBER = 6; private int volume_; /** - *
-     * 当前音量(0 ~ 100)
-     * 
- * * int32 volume = 6; * @return The volume. */ @@ -1330,10 +159,6 @@ public final class SpeakerCommand { public static final int ERROR_MESSAGE_FIELD_NUMBER = 7; private volatile java.lang.Object errorMessage_; /** - *
-     * 错误信息
-     * 
- * * string error_message = 7; * @return The errorMessage. */ @@ -1351,10 +176,6 @@ public final class SpeakerCommand { } } /** - *
-     * 错误信息
-     * 
- * * string error_message = 7; * @return The bytes for errorMessage. */ @@ -1587,10 +408,6 @@ public final class SpeakerCommand { return builder; } /** - *
-     * 扬声器状态
-     * 
- * * Protobuf type {@code cmvr.api.SpeakerState} */ public static final class Builder extends @@ -1808,10 +625,6 @@ public final class SpeakerCommand { private boolean isInitialized_ ; /** - *
-       * 是否已初始化
-       * 
- * * bool is_initialized = 1; * @return The isInitialized. */ @@ -1820,10 +633,6 @@ public final class SpeakerCommand { return isInitialized_; } /** - *
-       * 是否已初始化
-       * 
- * * bool is_initialized = 1; * @param value The isInitialized to set. * @return This builder for chaining. @@ -1835,10 +644,6 @@ public final class SpeakerCommand { return this; } /** - *
-       * 是否已初始化
-       * 
- * * bool is_initialized = 1; * @return This builder for chaining. */ @@ -1851,10 +656,6 @@ public final class SpeakerCommand { private boolean isRunning_ ; /** - *
-       * 是否正在播放
-       * 
- * * bool is_running = 2; * @return The isRunning. */ @@ -1863,10 +664,6 @@ public final class SpeakerCommand { return isRunning_; } /** - *
-       * 是否正在播放
-       * 
- * * bool is_running = 2; * @param value The isRunning to set. * @return This builder for chaining. @@ -1878,10 +675,6 @@ public final class SpeakerCommand { return this; } /** - *
-       * 是否正在播放
-       * 
- * * bool is_running = 2; * @return This builder for chaining. */ @@ -1956,10 +749,6 @@ public final class SpeakerCommand { private int volume_ ; /** - *
-       * 当前音量(0 ~ 100)
-       * 
- * * int32 volume = 6; * @return The volume. */ @@ -1968,10 +757,6 @@ public final class SpeakerCommand { return volume_; } /** - *
-       * 当前音量(0 ~ 100)
-       * 
- * * int32 volume = 6; * @param value The volume to set. * @return This builder for chaining. @@ -1983,10 +768,6 @@ public final class SpeakerCommand { return this; } /** - *
-       * 当前音量(0 ~ 100)
-       * 
- * * int32 volume = 6; * @return This builder for chaining. */ @@ -1999,10 +780,6 @@ public final class SpeakerCommand { private java.lang.Object errorMessage_ = ""; /** - *
-       * 错误信息
-       * 
- * * string error_message = 7; * @return The errorMessage. */ @@ -2019,10 +796,6 @@ public final class SpeakerCommand { } } /** - *
-       * 错误信息
-       * 
- * * string error_message = 7; * @return The bytes for errorMessage. */ @@ -2040,10 +813,6 @@ public final class SpeakerCommand { } } /** - *
-       * 错误信息
-       * 
- * * string error_message = 7; * @param value The errorMessage to set. * @return This builder for chaining. @@ -2059,10 +828,6 @@ public final class SpeakerCommand { return this; } /** - *
-       * 错误信息
-       * 
- * * string error_message = 7; * @return This builder for chaining. */ @@ -2073,10 +838,6 @@ public final class SpeakerCommand { return this; } /** - *
-       * 错误信息
-       * 
- * * string error_message = 7; * @param value The bytes for errorMessage to set. * @return This builder for chaining. @@ -2161,10 +922,6 @@ public final class SpeakerCommand { com.google.protobuf.MessageOrBuilder { } /** - *
-   * 各种扬声器命令
-   * 
- * * Protobuf type {@code cmvr.api.GetSpeakerStateCommand} */ public static final class GetSpeakerStateCommand extends @@ -3740,10 +2497,6 @@ public final class SpeakerCommand { return builder; } /** - *
-     * 各种扬声器命令
-     * 
- * * Protobuf type {@code cmvr.api.GetSpeakerStateCommand} */ public static final class Builder extends @@ -5698,6 +4451,1797 @@ public final class SpeakerCommand { } + public interface StreamSpeakerAudioCommandOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.StreamSpeakerAudioCommand) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code cmvr.api.StreamSpeakerAudioCommand} + */ + public static final class StreamSpeakerAudioCommand extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.StreamSpeakerAudioCommand) + StreamSpeakerAudioCommandOrBuilder { + private static final long serialVersionUID = 0L; + // Use StreamSpeakerAudioCommand.newBuilder() to construct. + private StreamSpeakerAudioCommand(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private StreamSpeakerAudioCommand() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new StreamSpeakerAudioCommand(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.class, cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Builder.class); + } + + public interface RequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.StreamSpeakerAudioCommand.Request) + com.google.protobuf.MessageOrBuilder { + + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + boolean hasHeader(); + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + cmvr.api.Common.CommandHeader.Request getHeader(); + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder(); + + /** + * .cmvr.api.AudioData audio = 2; + * @return Whether the audio field is set. + */ + boolean hasAudio(); + /** + * .cmvr.api.AudioData audio = 2; + * @return The audio. + */ + cmvr.api.Common.AudioData getAudio(); + /** + * .cmvr.api.AudioData audio = 2; + */ + cmvr.api.Common.AudioDataOrBuilder getAudioOrBuilder(); + } + /** + * Protobuf type {@code cmvr.api.StreamSpeakerAudioCommand.Request} + */ + public static final class Request extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.StreamSpeakerAudioCommand.Request) + RequestOrBuilder { + private static final long serialVersionUID = 0L; + // Use Request.newBuilder() to construct. + private Request(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Request() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Request(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.class, cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.Builder.class); + } + + public static final int HEADER_FIELD_NUMBER = 1; + private cmvr.api.Common.CommandHeader.Request header_; + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + @java.lang.Override + public boolean hasHeader() { + return header_ != null; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.Request getHeader() { + return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() { + return getHeader(); + } + + public static final int AUDIO_FIELD_NUMBER = 2; + private cmvr.api.Common.AudioData audio_; + /** + * .cmvr.api.AudioData audio = 2; + * @return Whether the audio field is set. + */ + @java.lang.Override + public boolean hasAudio() { + return audio_ != null; + } + /** + * .cmvr.api.AudioData audio = 2; + * @return The audio. + */ + @java.lang.Override + public cmvr.api.Common.AudioData getAudio() { + return audio_ == null ? cmvr.api.Common.AudioData.getDefaultInstance() : audio_; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + @java.lang.Override + public cmvr.api.Common.AudioDataOrBuilder getAudioOrBuilder() { + return getAudio(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (header_ != null) { + output.writeMessage(1, getHeader()); + } + if (audio_ != null) { + output.writeMessage(2, getAudio()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (header_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getHeader()); + } + if (audio_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getAudio()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request)) { + return super.equals(obj); + } + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request other = (cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request) obj; + + if (hasHeader() != other.hasHeader()) return false; + if (hasHeader()) { + if (!getHeader() + .equals(other.getHeader())) return false; + } + if (hasAudio() != other.hasAudio()) return false; + if (hasAudio()) { + if (!getAudio() + .equals(other.getAudio())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasHeader()) { + hash = (37 * hash) + HEADER_FIELD_NUMBER; + hash = (53 * hash) + getHeader().hashCode(); + } + if (hasAudio()) { + hash = (37 * hash) + AUDIO_FIELD_NUMBER; + hash = (53 * hash) + getAudio().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request 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 cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request 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 cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + 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 cmvr.api.StreamSpeakerAudioCommand.Request} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.StreamSpeakerAudioCommand.Request) + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.RequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.class, cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.Builder.class); + } + + // Construct using cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (headerBuilder_ == null) { + header_ = null; + } else { + header_ = null; + headerBuilder_ = null; + } + if (audioBuilder_ == null) { + audio_ = null; + } else { + audio_ = null; + audioBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_descriptor; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request getDefaultInstanceForType() { + return cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request build() { + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request buildPartial() { + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request result = new cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request(this); + if (headerBuilder_ == null) { + result.header_ = header_; + } else { + result.header_ = headerBuilder_.build(); + } + if (audioBuilder_ == null) { + result.audio_ = audio_; + } else { + result.audio_ = audioBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request) { + return mergeFrom((cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request other) { + if (other == cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.getDefaultInstance()) return this; + if (other.hasHeader()) { + mergeHeader(other.getHeader()); + } + if (other.hasAudio()) { + mergeAudio(other.getAudio()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getHeaderFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 10 + case 18: { + input.readMessage( + getAudioFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private cmvr.api.Common.CommandHeader.Request header_; + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> headerBuilder_; + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return Whether the header field is set. + */ + public boolean hasHeader() { + return headerBuilder_ != null || header_ != null; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + * @return The header. + */ + public cmvr.api.Common.CommandHeader.Request getHeader() { + if (headerBuilder_ == null) { + return header_ == null ? cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } else { + return headerBuilder_.getMessage(); + } + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder setHeader(cmvr.api.Common.CommandHeader.Request value) { + if (headerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + header_ = value; + onChanged(); + } else { + headerBuilder_.setMessage(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder setHeader( + cmvr.api.Common.CommandHeader.Request.Builder builderForValue) { + if (headerBuilder_ == null) { + header_ = builderForValue.build(); + onChanged(); + } else { + headerBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder mergeHeader(cmvr.api.Common.CommandHeader.Request value) { + if (headerBuilder_ == null) { + if (header_ != null) { + header_ = + cmvr.api.Common.CommandHeader.Request.newBuilder(header_).mergeFrom(value).buildPartial(); + } else { + header_ = value; + } + onChanged(); + } else { + headerBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public Builder clearHeader() { + if (headerBuilder_ == null) { + header_ = null; + onChanged(); + } else { + header_ = null; + headerBuilder_ = null; + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public cmvr.api.Common.CommandHeader.Request.Builder getHeaderBuilder() { + + onChanged(); + return getHeaderFieldBuilder().getBuilder(); + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + public cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder() { + if (headerBuilder_ != null) { + return headerBuilder_.getMessageOrBuilder(); + } else { + return header_ == null ? + cmvr.api.Common.CommandHeader.Request.getDefaultInstance() : header_; + } + } + /** + * .cmvr.api.CommandHeader.Request header = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder> + getHeaderFieldBuilder() { + if (headerBuilder_ == null) { + headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Request, cmvr.api.Common.CommandHeader.Request.Builder, cmvr.api.Common.CommandHeader.RequestOrBuilder>( + getHeader(), + getParentForChildren(), + isClean()); + header_ = null; + } + return headerBuilder_; + } + + private cmvr.api.Common.AudioData audio_; + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.AudioData, cmvr.api.Common.AudioData.Builder, cmvr.api.Common.AudioDataOrBuilder> audioBuilder_; + /** + * .cmvr.api.AudioData audio = 2; + * @return Whether the audio field is set. + */ + public boolean hasAudio() { + return audioBuilder_ != null || audio_ != null; + } + /** + * .cmvr.api.AudioData audio = 2; + * @return The audio. + */ + public cmvr.api.Common.AudioData getAudio() { + if (audioBuilder_ == null) { + return audio_ == null ? cmvr.api.Common.AudioData.getDefaultInstance() : audio_; + } else { + return audioBuilder_.getMessage(); + } + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public Builder setAudio(cmvr.api.Common.AudioData value) { + if (audioBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + audio_ = value; + onChanged(); + } else { + audioBuilder_.setMessage(value); + } + + return this; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public Builder setAudio( + cmvr.api.Common.AudioData.Builder builderForValue) { + if (audioBuilder_ == null) { + audio_ = builderForValue.build(); + onChanged(); + } else { + audioBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public Builder mergeAudio(cmvr.api.Common.AudioData value) { + if (audioBuilder_ == null) { + if (audio_ != null) { + audio_ = + cmvr.api.Common.AudioData.newBuilder(audio_).mergeFrom(value).buildPartial(); + } else { + audio_ = value; + } + onChanged(); + } else { + audioBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public Builder clearAudio() { + if (audioBuilder_ == null) { + audio_ = null; + onChanged(); + } else { + audio_ = null; + audioBuilder_ = null; + } + + return this; + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public cmvr.api.Common.AudioData.Builder getAudioBuilder() { + + onChanged(); + return getAudioFieldBuilder().getBuilder(); + } + /** + * .cmvr.api.AudioData audio = 2; + */ + public cmvr.api.Common.AudioDataOrBuilder getAudioOrBuilder() { + if (audioBuilder_ != null) { + return audioBuilder_.getMessageOrBuilder(); + } else { + return audio_ == null ? + cmvr.api.Common.AudioData.getDefaultInstance() : audio_; + } + } + /** + * .cmvr.api.AudioData audio = 2; + */ + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.AudioData, cmvr.api.Common.AudioData.Builder, cmvr.api.Common.AudioDataOrBuilder> + getAudioFieldBuilder() { + if (audioBuilder_ == null) { + audioBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.AudioData, cmvr.api.Common.AudioData.Builder, cmvr.api.Common.AudioDataOrBuilder>( + getAudio(), + getParentForChildren(), + isClean()); + audio_ = null; + } + return audioBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.StreamSpeakerAudioCommand.Request) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.StreamSpeakerAudioCommand.Request) + private static final cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request(); + } + + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Request parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface FeedbackOrBuilder extends + // @@protoc_insertion_point(interface_extends:cmvr.api.StreamSpeakerAudioCommand.Feedback) + com.google.protobuf.MessageOrBuilder { + + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + boolean hasHeader(); + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + cmvr.api.Common.CommandHeader.Feedback getHeader(); + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder(); + } + /** + * Protobuf type {@code cmvr.api.StreamSpeakerAudioCommand.Feedback} + */ + public static final class Feedback extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:cmvr.api.StreamSpeakerAudioCommand.Feedback) + FeedbackOrBuilder { + private static final long serialVersionUID = 0L; + // Use Feedback.newBuilder() to construct. + private Feedback(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Feedback() { + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Feedback(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.class, cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.Builder.class); + } + + public static final int HEADER_FIELD_NUMBER = 1; + private cmvr.api.Common.CommandHeader.Feedback header_; + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + @java.lang.Override + public boolean hasHeader() { + return header_ != null; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.Feedback getHeader() { + return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + @java.lang.Override + public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() { + return getHeader(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (header_ != null) { + output.writeMessage(1, getHeader()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (header_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getHeader()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback)) { + return super.equals(obj); + } + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback other = (cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback) obj; + + if (hasHeader() != other.hasHeader()) return false; + if (hasHeader()) { + if (!getHeader() + .equals(other.getHeader())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasHeader()) { + hash = (37 * hash) + HEADER_FIELD_NUMBER; + hash = (53 * hash) + getHeader().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback 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 cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback 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 cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + 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 cmvr.api.StreamSpeakerAudioCommand.Feedback} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.StreamSpeakerAudioCommand.Feedback) + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.FeedbackOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.class, cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.Builder.class); + } + + // Construct using cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + if (headerBuilder_ == null) { + header_ = null; + } else { + header_ = null; + headerBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_descriptor; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback getDefaultInstanceForType() { + return cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback build() { + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback buildPartial() { + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback result = new cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback(this); + if (headerBuilder_ == null) { + result.header_ = header_; + } else { + result.header_ = headerBuilder_.build(); + } + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback) { + return mergeFrom((cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback other) { + if (other == cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.getDefaultInstance()) return this; + if (other.hasHeader()) { + mergeHeader(other.getHeader()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getHeaderFieldBuilder().getBuilder(), + extensionRegistry); + + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private cmvr.api.Common.CommandHeader.Feedback header_; + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> headerBuilder_; + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return Whether the header field is set. + */ + public boolean hasHeader() { + return headerBuilder_ != null || header_ != null; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + * @return The header. + */ + public cmvr.api.Common.CommandHeader.Feedback getHeader() { + if (headerBuilder_ == null) { + return header_ == null ? cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } else { + return headerBuilder_.getMessage(); + } + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder setHeader(cmvr.api.Common.CommandHeader.Feedback value) { + if (headerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + header_ = value; + onChanged(); + } else { + headerBuilder_.setMessage(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder setHeader( + cmvr.api.Common.CommandHeader.Feedback.Builder builderForValue) { + if (headerBuilder_ == null) { + header_ = builderForValue.build(); + onChanged(); + } else { + headerBuilder_.setMessage(builderForValue.build()); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder mergeHeader(cmvr.api.Common.CommandHeader.Feedback value) { + if (headerBuilder_ == null) { + if (header_ != null) { + header_ = + cmvr.api.Common.CommandHeader.Feedback.newBuilder(header_).mergeFrom(value).buildPartial(); + } else { + header_ = value; + } + onChanged(); + } else { + headerBuilder_.mergeFrom(value); + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public Builder clearHeader() { + if (headerBuilder_ == null) { + header_ = null; + onChanged(); + } else { + header_ = null; + headerBuilder_ = null; + } + + return this; + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public cmvr.api.Common.CommandHeader.Feedback.Builder getHeaderBuilder() { + + onChanged(); + return getHeaderFieldBuilder().getBuilder(); + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + public cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder() { + if (headerBuilder_ != null) { + return headerBuilder_.getMessageOrBuilder(); + } else { + return header_ == null ? + cmvr.api.Common.CommandHeader.Feedback.getDefaultInstance() : header_; + } + } + /** + * .cmvr.api.CommandHeader.Feedback header = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder> + getHeaderFieldBuilder() { + if (headerBuilder_ == null) { + headerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + cmvr.api.Common.CommandHeader.Feedback, cmvr.api.Common.CommandHeader.Feedback.Builder, cmvr.api.Common.CommandHeader.FeedbackOrBuilder>( + getHeader(), + getParentForChildren(), + isClean()); + header_ = null; + } + return headerBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.StreamSpeakerAudioCommand.Feedback) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.StreamSpeakerAudioCommand.Feedback) + private static final cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback(); + } + + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Feedback parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand)) { + return super.equals(obj); + } + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand other = (cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand 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 cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand 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 cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + 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 cmvr.api.StreamSpeakerAudioCommand} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:cmvr.api.StreamSpeakerAudioCommand) + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommandOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.class, cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Builder.class); + } + + // Construct using cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return cmvr.api.SpeakerCommand.internal_static_cmvr_api_StreamSpeakerAudioCommand_descriptor; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand getDefaultInstanceForType() { + return cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.getDefaultInstance(); + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand build() { + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand buildPartial() { + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand result = new cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand) { + return mergeFrom((cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand other) { + if (other == cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:cmvr.api.StreamSpeakerAudioCommand) + } + + // @@protoc_insertion_point(class_scope:cmvr.api.StreamSpeakerAudioCommand) + private static final cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand(); + } + + public static cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public StreamSpeakerAudioCommand parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + public interface StopSpeakerCommandOrBuilder extends // @@protoc_insertion_point(interface_extends:cmvr.api.StopSpeakerCommand) com.google.protobuf.MessageOrBuilder { @@ -10544,10 +11088,6 @@ public final class SpeakerCommand { cmvr.api.Common.CommandHeader.RequestOrBuilder getHeaderOrBuilder(); /** - *
-       * 音量值(0 ~ 100)
-       * 
- * * int32 volume = 2; * @return The volume. */ @@ -10622,10 +11162,6 @@ public final class SpeakerCommand { public static final int VOLUME_FIELD_NUMBER = 2; private int volume_; /** - *
-       * 音量值(0 ~ 100)
-       * 
- * * int32 volume = 2; * @return The volume. */ @@ -11107,10 +11643,6 @@ public final class SpeakerCommand { private int volume_ ; /** - *
-         * 音量值(0 ~ 100)
-         * 
- * * int32 volume = 2; * @return The volume. */ @@ -11119,10 +11651,6 @@ public final class SpeakerCommand { return volume_; } /** - *
-         * 音量值(0 ~ 100)
-         * 
- * * int32 volume = 2; * @param value The volume to set. * @return This builder for chaining. @@ -11134,10 +11662,6 @@ public final class SpeakerCommand { return this; } /** - *
-         * 音量值(0 ~ 100)
-         * 
- * * int32 volume = 2; * @return This builder for chaining. */ @@ -12825,10 +13349,6 @@ public final class SpeakerCommand { cmvr.api.Common.CommandHeader.FeedbackOrBuilder getHeaderOrBuilder(); /** - *
-       * 当前音量值
-       * 
- * * int32 volume = 2; * @return The volume. */ @@ -12903,10 +13423,6 @@ public final class SpeakerCommand { public static final int VOLUME_FIELD_NUMBER = 2; private int volume_; /** - *
-       * 当前音量值
-       * 
- * * int32 volume = 2; * @return The volume. */ @@ -13388,10 +13904,6 @@ public final class SpeakerCommand { private int volume_ ; /** - *
-         * 当前音量值
-         * 
- * * int32 volume = 2; * @return The volume. */ @@ -13400,10 +13912,6 @@ public final class SpeakerCommand { return volume_; } /** - *
-         * 当前音量值
-         * 
- * * int32 volume = 2; * @param value The volume to set. * @return This builder for chaining. @@ -13415,10 +13923,6 @@ public final class SpeakerCommand { return this; } /** - *
-         * 当前音量值
-         * 
- * * int32 volume = 2; * @return This builder for chaining. */ @@ -13848,11 +14352,6 @@ public final class SpeakerCommand { } - private static final com.google.protobuf.Descriptors.Descriptor - internal_static_cmvr_api_AudioData_descriptor; - private static final - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable - internal_static_cmvr_api_AudioData_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_cmvr_api_SpeakerState_descriptor; private static final @@ -13888,6 +14387,21 @@ public final class SpeakerCommand { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_cmvr_api_PlayAudioCommand_Feedback_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_StreamSpeakerAudioCommand_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_StreamSpeakerAudioCommand_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_cmvr_api_StopSpeakerCommand_descriptor; private static final @@ -13973,63 +14487,58 @@ public final class SpeakerCommand { static { java.lang.String[] descriptorData = { "\n\036cmvr/api/speaker_command.proto\022\010cmvr.a" + - "pi\032\025cmvr/api/common.proto\"\263\001\n\tAudioData\022" + - "\014\n\004data\030\001 \001(\014\022\023\n\013sample_rate\030\002 \001(\005\022\020\n\010ch" + - "annels\030\003 \001(\005\022/\n\006format\030\004 \001(\0162\037.cmvr.api." + - "AudioData.AudioFormat\022\r\n\005codec\030\005 \001(\t\"1\n\013" + - "AudioFormat\022\007\n\003PCM\020\000\022\007\n\003MP3\020\001\022\007\n\003AAC\020\002\022\007" + - "\n\003WAV\020\003\"\211\001\n\014SpeakerState\022\026\n\016is_initializ" + - "ed\030\001 \001(\010\022\022\n\nis_running\030\002 \001(\010\022\023\n\013is_decod" + - "ing\030\003 \001(\010\022\021\n\tis_paused\030\005 \001(\010\022\016\n\006volume\030\006" + - " \001(\005\022\025\n\rerror_message\030\007 \001(\t\"\271\001\n\026GetSpeak" + - "erStateCommand\032:\n\007Request\022/\n\006header\030\001 \001(" + - "\0132\037.cmvr.api.CommandHeader.Request\032c\n\010Fe" + - "edback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Comman" + - "dHeader.Feedback\022%\n\005state\030\002 \001(\0132\026.cmvr.a" + - "pi.SpeakerState\"\240\001\n\020PlayAudioCommand\032N\n\007" + - "Request\022/\n\006header\030\001 \001(\0132\037.cmvr.api.Comma" + - "ndHeader.Request\022\022\n\naudio_path\030\002 \001(\t\032<\n\010" + - "Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Comm" + - "andHeader.Feedback\"\216\001\n\022StopSpeakerComman" + - "d\032:\n\007Request\022/\n\006header\030\001 \001(\0132\037.cmvr.api." + - "CommandHeader.Request\032<\n\010Feedback\0220\n\006hea" + - "der\030\001 \001(\0132 .cmvr.api.CommandHeader.Feedb" + - "ack\"\217\001\n\023PauseSpeakerCommand\032:\n\007Request\022/" + - "\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHeader." + - "Request\032<\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cm" + - "vr.api.CommandHeader.Feedback\"\220\001\n\024Resume" + - "SpeakerCommand\032:\n\007Request\022/\n\006header\030\001 \001(" + - "\0132\037.cmvr.api.CommandHeader.Request\032<\n\010Fe" + - "edback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Comman" + - "dHeader.Feedback\"\243\001\n\027SetSpeakerVolumeCom" + - "mand\032J\n\007Request\022/\n\006header\030\001 \001(\0132\037.cmvr.a" + - "pi.CommandHeader.Request\022\016\n\006volume\030\002 \001(\005" + + "pi\032\025cmvr/api/common.proto\"\211\001\n\014SpeakerSta" + + "te\022\026\n\016is_initialized\030\001 \001(\010\022\022\n\nis_running" + + "\030\002 \001(\010\022\023\n\013is_decoding\030\003 \001(\010\022\021\n\tis_paused" + + "\030\005 \001(\010\022\016\n\006volume\030\006 \001(\005\022\025\n\rerror_message\030" + + "\007 \001(\t\"\271\001\n\026GetSpeakerStateCommand\032:\n\007Requ" + + "est\022/\n\006header\030\001 \001(\0132\037.cmvr.api.CommandHe" + + "ader.Request\032c\n\010Feedback\0220\n\006header\030\001 \001(\013" + + "2 .cmvr.api.CommandHeader.Feedback\022%\n\005st" + + "ate\030\002 \001(\0132\026.cmvr.api.SpeakerState\"\240\001\n\020Pl" + + "ayAudioCommand\032N\n\007Request\022/\n\006header\030\001 \001(" + + "\0132\037.cmvr.api.CommandHeader.Request\022\022\n\nau" + + "dio_path\030\002 \001(\t\032<\n\010Feedback\0220\n\006header\030\001 \001" + + "(\0132 .cmvr.api.CommandHeader.Feedback\"\271\001\n" + + "\031StreamSpeakerAudioCommand\032^\n\007Request\022/\n" + + "\006header\030\001 \001(\0132\037.cmvr.api.CommandHeader.R" + + "equest\022\"\n\005audio\030\002 \001(\0132\023.cmvr.api.AudioDa" + + "ta\032<\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.ap" + + "i.CommandHeader.Feedback\"\216\001\n\022StopSpeaker" + + "Command\032:\n\007Request\022/\n\006header\030\001 \001(\0132\037.cmv" + + "r.api.CommandHeader.Request\032<\n\010Feedback\022" + + "0\n\006header\030\001 \001(\0132 .cmvr.api.CommandHeader" + + ".Feedback\"\217\001\n\023PauseSpeakerCommand\032:\n\007Req" + + "uest\022/\n\006header\030\001 \001(\0132\037.cmvr.api.CommandH" + + "eader.Request\032<\n\010Feedback\0220\n\006header\030\001 \001(" + + "\0132 .cmvr.api.CommandHeader.Feedback\"\220\001\n\024" + + "ResumeSpeakerCommand\032:\n\007Request\022/\n\006heade" + + "r\030\001 \001(\0132\037.cmvr.api.CommandHeader.Request" + "\032<\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.api." + - "CommandHeader.Feedback\"\243\001\n\027GetSpeakerVol" + - "umeCommand\032:\n\007Request\022/\n\006header\030\001 \001(\0132\037." + - "cmvr.api.CommandHeader.Request\032L\n\010Feedba" + - "ck\0220\n\006header\030\001 \001(\0132 .cmvr.api.CommandHea" + - "der.Feedback\022\016\n\006volume\030\002 \001(\005b\006proto3" + "CommandHeader.Feedback\"\243\001\n\027SetSpeakerVol" + + "umeCommand\032J\n\007Request\022/\n\006header\030\001 \001(\0132\037." + + "cmvr.api.CommandHeader.Request\022\016\n\006volume" + + "\030\002 \001(\005\032<\n\010Feedback\0220\n\006header\030\001 \001(\0132 .cmv" + + "r.api.CommandHeader.Feedback\"\243\001\n\027GetSpea" + + "kerVolumeCommand\032:\n\007Request\022/\n\006header\030\001 " + + "\001(\0132\037.cmvr.api.CommandHeader.Request\032L\n\010" + + "Feedback\0220\n\006header\030\001 \001(\0132 .cmvr.api.Comm" + + "andHeader.Feedback\022\016\n\006volume\030\002 \001(\005b\006prot" + + "o3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { cmvr.api.Common.getDescriptor(), }); - internal_static_cmvr_api_AudioData_descriptor = - getDescriptor().getMessageTypes().get(0); - internal_static_cmvr_api_AudioData_fieldAccessorTable = new - com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( - internal_static_cmvr_api_AudioData_descriptor, - new java.lang.String[] { "Data", "SampleRate", "Channels", "Format", "Codec", }); internal_static_cmvr_api_SpeakerState_descriptor = - getDescriptor().getMessageTypes().get(1); + getDescriptor().getMessageTypes().get(0); internal_static_cmvr_api_SpeakerState_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_SpeakerState_descriptor, new java.lang.String[] { "IsInitialized", "IsRunning", "IsDecoding", "IsPaused", "Volume", "ErrorMessage", }); internal_static_cmvr_api_GetSpeakerStateCommand_descriptor = - getDescriptor().getMessageTypes().get(2); + getDescriptor().getMessageTypes().get(1); internal_static_cmvr_api_GetSpeakerStateCommand_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_GetSpeakerStateCommand_descriptor, @@ -14047,7 +14556,7 @@ public final class SpeakerCommand { internal_static_cmvr_api_GetSpeakerStateCommand_Feedback_descriptor, new java.lang.String[] { "Header", "State", }); internal_static_cmvr_api_PlayAudioCommand_descriptor = - getDescriptor().getMessageTypes().get(3); + getDescriptor().getMessageTypes().get(2); internal_static_cmvr_api_PlayAudioCommand_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_PlayAudioCommand_descriptor, @@ -14064,6 +14573,24 @@ public final class SpeakerCommand { com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_cmvr_api_PlayAudioCommand_Feedback_descriptor, new java.lang.String[] { "Header", }); + internal_static_cmvr_api_StreamSpeakerAudioCommand_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_cmvr_api_StreamSpeakerAudioCommand_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_StreamSpeakerAudioCommand_descriptor, + new java.lang.String[] { }); + internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_descriptor = + internal_static_cmvr_api_StreamSpeakerAudioCommand_descriptor.getNestedTypes().get(0); + internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_StreamSpeakerAudioCommand_Request_descriptor, + new java.lang.String[] { "Header", "Audio", }); + internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_descriptor = + internal_static_cmvr_api_StreamSpeakerAudioCommand_descriptor.getNestedTypes().get(1); + internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_cmvr_api_StreamSpeakerAudioCommand_Feedback_descriptor, + new java.lang.String[] { "Header", }); internal_static_cmvr_api_StopSpeakerCommand_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_cmvr_api_StopSpeakerCommand_fieldAccessorTable = new diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerServiceGrpc.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerServiceGrpc.java index e0947b7..d4b0fc6 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerServiceGrpc.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerServiceGrpc.java @@ -77,6 +77,37 @@ public final class SpeakerServiceGrpc { return getPlayAudioMethod; } + private static volatile io.grpc.MethodDescriptor getStreamAudioMethod; + + @io.grpc.stub.annotations.RpcMethod( + fullMethodName = SERVICE_NAME + '/' + "StreamAudio", + requestType = cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.class, + responseType = cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.class, + methodType = io.grpc.MethodDescriptor.MethodType.CLIENT_STREAMING) + public static io.grpc.MethodDescriptor getStreamAudioMethod() { + io.grpc.MethodDescriptor getStreamAudioMethod; + if ((getStreamAudioMethod = SpeakerServiceGrpc.getStreamAudioMethod) == null) { + synchronized (SpeakerServiceGrpc.class) { + if ((getStreamAudioMethod = SpeakerServiceGrpc.getStreamAudioMethod) == null) { + SpeakerServiceGrpc.getStreamAudioMethod = getStreamAudioMethod = + io.grpc.MethodDescriptor.newBuilder() + .setType(io.grpc.MethodDescriptor.MethodType.CLIENT_STREAMING) + .setFullMethodName(generateFullMethodName(SERVICE_NAME, "StreamAudio")) + .setSampledToLocalTracing(true) + .setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request.getDefaultInstance())) + .setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller( + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback.getDefaultInstance())) + .setSchemaDescriptor(new SpeakerServiceMethodDescriptorSupplier("StreamAudio")) + .build(); + } + } + } + return getStreamAudioMethod; + } + private static volatile io.grpc.MethodDescriptor getStopPlaybackMethod; @@ -281,9 +312,6 @@ public final class SpeakerServiceGrpc { public static abstract class SpeakerServiceImplBase implements io.grpc.BindableService { /** - *
-     * 基本控制
-     * 
*/ public void getStatus(cmvr.api.SpeakerCommand.GetSpeakerStateCommand.Request request, io.grpc.stub.StreamObserver responseObserver) { @@ -297,6 +325,13 @@ public final class SpeakerServiceGrpc { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getPlayAudioMethod(), responseObserver); } + /** + */ + public io.grpc.stub.StreamObserver streamAudio( + io.grpc.stub.StreamObserver responseObserver) { + return io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall(getStreamAudioMethod(), responseObserver); + } + /** */ public void stopPlayback(cmvr.api.SpeakerCommand.StopSpeakerCommand.Request request, @@ -319,9 +354,6 @@ public final class SpeakerServiceGrpc { } /** - *
-     * 音量控制
-     * 
*/ public void setVolume(cmvr.api.SpeakerCommand.SetSpeakerVolumeCommand.Request request, io.grpc.stub.StreamObserver responseObserver) { @@ -351,6 +383,13 @@ public final class SpeakerServiceGrpc { cmvr.api.SpeakerCommand.PlayAudioCommand.Request, cmvr.api.SpeakerCommand.PlayAudioCommand.Feedback>( this, METHODID_PLAY_AUDIO))) + .addMethod( + getStreamAudioMethod(), + io.grpc.stub.ServerCalls.asyncClientStreamingCall( + new MethodHandlers< + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Request, + cmvr.api.SpeakerCommand.StreamSpeakerAudioCommand.Feedback>( + this, METHODID_STREAM_AUDIO))) .addMethod( getStopPlaybackMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall( @@ -405,9 +444,6 @@ public final class SpeakerServiceGrpc { } /** - *
-     * 基本控制
-     * 
*/ public void getStatus(cmvr.api.SpeakerCommand.GetSpeakerStateCommand.Request request, io.grpc.stub.StreamObserver responseObserver) { @@ -423,6 +459,14 @@ public final class SpeakerServiceGrpc { getChannel().newCall(getPlayAudioMethod(), getCallOptions()), request, responseObserver); } + /** + */ + public io.grpc.stub.StreamObserver streamAudio( + io.grpc.stub.StreamObserver responseObserver) { + return io.grpc.stub.ClientCalls.asyncClientStreamingCall( + getChannel().newCall(getStreamAudioMethod(), getCallOptions()), responseObserver); + } + /** */ public void stopPlayback(cmvr.api.SpeakerCommand.StopSpeakerCommand.Request request, @@ -448,9 +492,6 @@ public final class SpeakerServiceGrpc { } /** - *
-     * 音量控制
-     * 
*/ public void setVolume(cmvr.api.SpeakerCommand.SetSpeakerVolumeCommand.Request request, io.grpc.stub.StreamObserver responseObserver) { @@ -482,9 +523,6 @@ public final class SpeakerServiceGrpc { } /** - *
-     * 基本控制
-     * 
*/ public cmvr.api.SpeakerCommand.GetSpeakerStateCommand.Feedback getStatus(cmvr.api.SpeakerCommand.GetSpeakerStateCommand.Request request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( @@ -520,9 +558,6 @@ public final class SpeakerServiceGrpc { } /** - *
-     * 音量控制
-     * 
*/ public cmvr.api.SpeakerCommand.SetSpeakerVolumeCommand.Feedback setVolume(cmvr.api.SpeakerCommand.SetSpeakerVolumeCommand.Request request) { return io.grpc.stub.ClientCalls.blockingUnaryCall( @@ -552,9 +587,6 @@ public final class SpeakerServiceGrpc { } /** - *
-     * 基本控制
-     * 
*/ public com.google.common.util.concurrent.ListenableFuture getStatus( cmvr.api.SpeakerCommand.GetSpeakerStateCommand.Request request) { @@ -595,9 +627,6 @@ public final class SpeakerServiceGrpc { } /** - *
-     * 音量控制
-     * 
*/ public com.google.common.util.concurrent.ListenableFuture setVolume( cmvr.api.SpeakerCommand.SetSpeakerVolumeCommand.Request request) { @@ -621,6 +650,7 @@ public final class SpeakerServiceGrpc { private static final int METHODID_RESUME_PLAYBACK = 4; private static final int METHODID_SET_VOLUME = 5; private static final int METHODID_GET_VOLUME = 6; + private static final int METHODID_STREAM_AUDIO = 7; private static final class MethodHandlers implements io.grpc.stub.ServerCalls.UnaryMethod, @@ -677,6 +707,9 @@ public final class SpeakerServiceGrpc { public io.grpc.stub.StreamObserver invoke( io.grpc.stub.StreamObserver responseObserver) { switch (methodId) { + case METHODID_STREAM_AUDIO: + return (io.grpc.stub.StreamObserver) serviceImpl.streamAudio( + (io.grpc.stub.StreamObserver) responseObserver); default: throw new AssertionError(); } @@ -730,6 +763,7 @@ public final class SpeakerServiceGrpc { .setSchemaDescriptor(new SpeakerServiceFileDescriptorSupplier()) .addMethod(getGetStatusMethod()) .addMethod(getPlayAudioMethod()) + .addMethod(getStreamAudioMethod()) .addMethod(getStopPlaybackMethod()) .addMethod(getPausePlaybackMethod()) .addMethod(getResumePlaybackMethod()) diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerServiceOuterClass.java b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerServiceOuterClass.java index f8cb524..35fb499 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerServiceOuterClass.java +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/java/cmvr/api/SpeakerServiceOuterClass.java @@ -24,25 +24,28 @@ public final class SpeakerServiceOuterClass { static { java.lang.String[] descriptorData = { "\n\036cmvr/api/speaker_service.proto\022\010cmvr.a" + - "pi\032\036cmvr/api/speaker_command.proto2\260\005\n\016S" + + "pi\032\036cmvr/api/speaker_command.proto2\234\006\n\016S" + "peakerService\022`\n\tGetStatus\022(.cmvr.api.Ge" + "tSpeakerStateCommand.Request\032).cmvr.api." + "GetSpeakerStateCommand.Feedback\022T\n\tPlayA" + "udio\022\".cmvr.api.PlayAudioCommand.Request" + - "\032#.cmvr.api.PlayAudioCommand.Feedback\022[\n" + - "\014StopPlayback\022$.cmvr.api.StopSpeakerComm" + - "and.Request\032%.cmvr.api.StopSpeakerComman" + - "d.Feedback\022^\n\rPausePlayback\022%.cmvr.api.P" + - "auseSpeakerCommand.Request\032&.cmvr.api.Pa" + - "useSpeakerCommand.Feedback\022a\n\016ResumePlay" + - "back\022&.cmvr.api.ResumeSpeakerCommand.Req" + - "uest\032\'.cmvr.api.ResumeSpeakerCommand.Fee" + - "dback\022b\n\tSetVolume\022).cmvr.api.SetSpeaker" + - "VolumeCommand.Request\032*.cmvr.api.SetSpea" + - "kerVolumeCommand.Feedback\022b\n\tGetVolume\022)" + - ".cmvr.api.GetSpeakerVolumeCommand.Reques" + - "t\032*.cmvr.api.GetSpeakerVolumeCommand.Fee" + - "dbackb\006proto3" + "\032#.cmvr.api.PlayAudioCommand.Feedback\022j\n" + + "\013StreamAudio\022+.cmvr.api.StreamSpeakerAud" + + "ioCommand.Request\032,.cmvr.api.StreamSpeak" + + "erAudioCommand.Feedback(\001\022[\n\014StopPlaybac" + + "k\022$.cmvr.api.StopSpeakerCommand.Request\032" + + "%.cmvr.api.StopSpeakerCommand.Feedback\022^" + + "\n\rPausePlayback\022%.cmvr.api.PauseSpeakerC" + + "ommand.Request\032&.cmvr.api.PauseSpeakerCo" + + "mmand.Feedback\022a\n\016ResumePlayback\022&.cmvr." + + "api.ResumeSpeakerCommand.Request\032\'.cmvr." + + "api.ResumeSpeakerCommand.Feedback\022b\n\tSet" + + "Volume\022).cmvr.api.SetSpeakerVolumeComman" + + "d.Request\032*.cmvr.api.SetSpeakerVolumeCom" + + "mand.Feedback\022b\n\tGetVolume\022).cmvr.api.Ge" + + "tSpeakerVolumeCommand.Request\032*.cmvr.api" + + ".GetSpeakerVolumeCommand.Feedbackb\006proto" + + "3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/common.proto b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/common.proto index accb936..53ecd55 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/common.proto +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/common.proto @@ -29,6 +29,22 @@ message CommandHeader { } } +message AudioData { + enum AudioFormat { + PCM = 0; + MP3 = 1; + AAC = 2; + WAV = 3; + } + bytes data = 1; + int32 sample_rate = 2; + int32 channels = 3; + AudioFormat format = 4; + string codec = 5; + int64 pts = 6; + int32 nb_samples = 7; +} + message ConfigParam { string param_name = 1; diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/microphone_command.proto b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/microphone_command.proto index 4183415..71a6f4e 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/microphone_command.proto +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/microphone_command.proto @@ -11,6 +11,7 @@ message MicState { int32 volume = 4; string error_message = 5; } + message GetMicStateCommand { message Request { CommandHeader.Request header = 1; @@ -21,6 +22,7 @@ message GetMicStateCommand { MicState state = 2; } } + message StartMicRecordingCommand { message Request { CommandHeader.Request header = 1; @@ -59,10 +61,20 @@ message ResumeMicRecordingCommand { } } +message StreamMicAudioCommand { + message Request { + CommandHeader.Request header = 1; + } + message Feedback { + CommandHeader.Feedback header = 1; + AudioData audio = 2; + } +} + message SetMicPhoneVolumeCommand { message Request { CommandHeader.Request header = 1; - int32 volume = 2; // 音量值(0 ~ 100) + int32 volume = 2; } message Feedback { CommandHeader.Feedback header = 1; @@ -75,7 +87,6 @@ message GetMicPhoneVolumeCommand { } message Feedback { CommandHeader.Feedback header = 1; - int32 volume = 2; // 当前音量值 + int32 volume = 2; } } - diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/microphone_service.proto b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/microphone_service.proto index fcf31b7..d9cea81 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/microphone_service.proto +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/microphone_service.proto @@ -4,17 +4,14 @@ import "cmvr/api/microphone_command.proto"; package cmvr.api; - service MicPhoneService { - // 基本控制 rpc GetStatus(GetMicStateCommand.Request) returns (GetMicStateCommand.Feedback); rpc StartRecord(StartMicRecordingCommand.Request) returns (StartMicRecordingCommand.Feedback); rpc StopRecord(StopMicRecordingCommand.Request) returns (StopMicRecordingCommand.Feedback); rpc PauseRecord(PauseMicRecordingCommand.Request) returns (PauseMicRecordingCommand.Feedback); rpc ResumeRecord(ResumeMicRecordingCommand.Request) returns (ResumeMicRecordingCommand.Feedback); + rpc StreamAudio(StreamMicAudioCommand.Request) returns (stream StreamMicAudioCommand.Feedback); - // 音量控制 rpc SetVolume(SetMicPhoneVolumeCommand.Request) returns (SetMicPhoneVolumeCommand.Feedback); rpc GetVolume(GetMicPhoneVolumeCommand.Request) returns (GetMicPhoneVolumeCommand.Feedback); - -} \ No newline at end of file +} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/robot_audio.proto b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/robot_audio.proto deleted file mode 100644 index 4f97c9d..0000000 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/robot_audio.proto +++ /dev/null @@ -1,81 +0,0 @@ -syntax = "proto3"; - -import "cmvr/api/common.proto"; - -package cmvr.api; - -// Real-time bidirectional robot audio service. -// Java backend is the gRPC client; robot terminal is the gRPC server. -service RobotAudioService { - rpc AudioTalk(stream RobotAudioRequest) returns (stream RobotAudioResponse); -} - -// Fixed audio format: PCM_S16LE, 48 kHz, 16-bit, mono. -// Both directions use 10 ms frames: 480 samples, 960 bytes. -message RobotAudioFormat { - int32 sample_rate = 1; - int32 channels = 2; - int32 bits_per_sample = 3; - string encoding = 4; -} - -message RobotAudioStart { - string session_id = 1; - string operator_id = 2; - RobotAudioFormat format = 3; -} - -message RobotAudioFrame { - string session_id = 1; - int64 sequence = 2; - // Robot upload: capture timestamp. Browser downlink: backend send timestamp. - int64 timestamp_ms = 3; - // PCM_S16LE. Fixed 10 ms / 960 bytes at 48 kHz mono 16-bit. - bytes pcm = 4; -} - -message RobotAudioHeartbeat { - string session_id = 1; - int64 timestamp_ms = 2; -} - -message RobotAudioStop { - string session_id = 1; - string reason = 2; -} - -message RobotAudioError { - string session_id = 1; - int32 code = 2; - string message = 3; -} - -message RobotAudioStartAck { - string session_id = 1; - bool accepted = 2; - string message = 3; -} - -message RobotAudioRequest { - CommandHeader.Request header = 1; - - oneof payload { - RobotAudioStart start = 2; - RobotAudioFrame audio_frame = 3; - RobotAudioHeartbeat heartbeat = 4; - RobotAudioStop stop = 5; - RobotAudioError error = 6; - } -} - -message RobotAudioResponse { - CommandHeader.Feedback header = 1; - - oneof payload { - RobotAudioStartAck start_ack = 2; - RobotAudioFrame audio_frame = 3; - RobotAudioHeartbeat heartbeat = 4; - RobotAudioStop stop = 5; - RobotAudioError error = 6; - } -} diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/speaker_command.proto b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/speaker_command.proto index f5a23b8..6243b6d 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/speaker_command.proto +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/speaker_command.proto @@ -4,33 +4,15 @@ import "cmvr/api/common.proto"; package cmvr.api; - -// 音频数据格式(与麦克风类似,但用于输出) -message AudioData { - enum AudioFormat { - PCM = 0; - MP3 = 1; - AAC = 2; - WAV = 3; - } - bytes data = 1; // 音频二进制数据 - int32 sample_rate = 2; // 采样率(Hz) - int32 channels = 3; // 声道数 - AudioFormat format = 4; // 音频格式 - string codec = 5; // 编码方式 -} - -// 扬声器状态 message SpeakerState { - bool is_initialized = 1; // 是否已初始化 - bool is_running = 2; // 是否正在播放 + bool is_initialized = 1; + bool is_running = 2; bool is_decoding = 3; bool is_paused = 5; - int32 volume = 6; // 当前音量(0 ~ 100) - string error_message = 7; // 错误信息 + int32 volume = 6; + string error_message = 7; } -// 各种扬声器命令 message GetSpeakerStateCommand { message Request { CommandHeader.Request header = 1; @@ -47,7 +29,19 @@ message PlayAudioCommand { CommandHeader.Request header = 1; string audio_path = 2; } - message Feedback { CommandHeader.Feedback header = 1; } + message Feedback { + CommandHeader.Feedback header = 1; + } +} + +message StreamSpeakerAudioCommand { + message Request { + CommandHeader.Request header = 1; + AudioData audio = 2; + } + message Feedback { + CommandHeader.Feedback header = 1; + } } message StopSpeakerCommand { @@ -80,7 +74,7 @@ message ResumeSpeakerCommand { message SetSpeakerVolumeCommand { message Request { CommandHeader.Request header = 1; - int32 volume = 2; // 音量值(0 ~ 100) + int32 volume = 2; } message Feedback { CommandHeader.Feedback header = 1; @@ -93,7 +87,6 @@ message GetSpeakerVolumeCommand { } message Feedback { CommandHeader.Feedback header = 1; - int32 volume = 2; // 当前音量值 + int32 volume = 2; } } - diff --git a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/speaker_service.proto b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/speaker_service.proto index 9cbc77c..6fc3d92 100644 --- a/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/speaker_service.proto +++ b/cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/src/main/proto/cmvr/api/speaker_service.proto @@ -4,17 +4,14 @@ import "cmvr/api/speaker_command.proto"; package cmvr.api; - service SpeakerService { - // 基本控制 rpc GetStatus(GetSpeakerStateCommand.Request) returns (GetSpeakerStateCommand.Feedback); rpc PlayAudio(PlayAudioCommand.Request) returns (PlayAudioCommand.Feedback); + rpc StreamAudio(stream StreamSpeakerAudioCommand.Request) returns (StreamSpeakerAudioCommand.Feedback); rpc StopPlayback(StopSpeakerCommand.Request) returns (StopSpeakerCommand.Feedback); rpc PausePlayback(PauseSpeakerCommand.Request) returns (PauseSpeakerCommand.Feedback); rpc ResumePlayback(ResumeSpeakerCommand.Request) returns (ResumeSpeakerCommand.Feedback); - // 音量控制 rpc SetVolume(SetSpeakerVolumeCommand.Request) returns (SetSpeakerVolumeCommand.Feedback); rpc GetVolume(GetSpeakerVolumeCommand.Request) returns (GetSpeakerVolumeCommand.Feedback); - -} \ No newline at end of file +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/InspectionDetectionAlert.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/InspectionDetectionAlert.java new file mode 100644 index 0000000..0409c92 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/InspectionDetectionAlert.java @@ -0,0 +1,52 @@ +package com.cmvr.inspection.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 边缘 AI 推送的 PPE 违规报警主表实体。 + */ +@Data +@TableName("inspection_detection_alert") +public class InspectionDetectionAlert implements Serializable +{ + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.INPUT) + private String id; + + private String eventId; + private String idempotencyKey; + @TableField("schema_version") + private String schema; + private String sourceId; + @TableField("source_sequence") + private Long sequence; + private Long capturedAtNs; + private Long receivedAtNs; + private String traceId; + private String sessionId; + private String inputPort; + private String ruleId; + private String modelId; + private String modelName; + private String labelsJson; + @TableField("detection_scope") + private String scope; + private String scopeId; + private Integer hitCount; + private Double windowMs; + private Long firstSeenNs; + private Long lastSeenNs; + private Long triggeredAtNs; + private Double maxConfidence; + private String imagePath; + private String rawJson; + private Date createdAt; +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/InspectionDetectionDetail.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/InspectionDetectionDetail.java new file mode 100644 index 0000000..d184433 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/InspectionDetectionDetail.java @@ -0,0 +1,30 @@ +package com.cmvr.inspection.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * PPE 报警检测框明细实体。 + */ +@Data +@TableName("inspection_detection_detail") +public class InspectionDetectionDetail implements Serializable +{ + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.INPUT) + private String id; + + private String alertId; + private String label; + private Double confidence; + private Double xMin; + private Double yMin; + private Double xMax; + private Double yMax; + private Long trackId; +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/AlertEnvelope.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/AlertEnvelope.java new file mode 100644 index 0000000..c4d9a06 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/AlertEnvelope.java @@ -0,0 +1,55 @@ +package com.cmvr.inspection.domain.dto.alert; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.Map; + +/** + * 边缘 AI 推送消息的统一信封。 + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class AlertEnvelope +{ + /** 消息结构版本,当前固定为 DetectionAlert/v1。 */ + @JsonProperty("schema") + private String schema; + + /** 产生消息的视频源标识。 */ + @JsonProperty("source_id") + private String sourceId; + + /** 视频源内递增序号。 */ + @JsonProperty("sequence") + private Long sequence; + + /** 图像采集时间,Unix 纳秒时间戳。 */ + @JsonProperty("captured_at_ns") + private Long capturedAtNs; + + /** 边缘端接收时间,Unix 纳秒时间戳。 */ + @JsonProperty("received_at_ns") + private Long receivedAtNs; + + /** 全链路追踪标识。 */ + @JsonProperty("trace_id") + private String traceId; + + /** 边缘推理会话标识。 */ + @JsonProperty("session_id") + private String sessionId; + + /** 产生消息的输入端口。 */ + @JsonProperty("input_port") + private String inputPort; + + /** 扩展属性。 */ + @JsonProperty("attributes") + private Map attributes; + + /** PPE 违规报警内容。 */ + @JsonProperty("payload") + private DetectionAlert payload; +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/AlertImage.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/AlertImage.java new file mode 100644 index 0000000..9c10ba7 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/AlertImage.java @@ -0,0 +1,33 @@ +package com.cmvr.inspection.domain.dto.alert; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.ToString; + +/** + * 报警现场图片。 + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class AlertImage +{ + /** 图片媒体类型,例如 image/jpeg。 */ + @JsonProperty("media_type") + private String mediaType; + + @JsonProperty("width") + private Integer width; + + @JsonProperty("height") + private Integer height; + + /** 编码方式,当前协议固定为 base64。 */ + @JsonProperty("encoding") + private String encoding; + + /** Base64 编码后的图片内容。 */ + @JsonProperty("data") + @ToString.Exclude + private String data; +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/BoundingBox.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/BoundingBox.java new file mode 100644 index 0000000..ae90e4f --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/BoundingBox.java @@ -0,0 +1,25 @@ +package com.cmvr.inspection.domain.dto.alert; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * 检测目标的像素坐标框。 + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class BoundingBox +{ + @JsonProperty("x_min") + private Double xMin; + + @JsonProperty("y_min") + private Double yMin; + + @JsonProperty("x_max") + private Double xMax; + + @JsonProperty("y_max") + private Double yMax; +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/Detection.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/Detection.java new file mode 100644 index 0000000..675846e --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/Detection.java @@ -0,0 +1,29 @@ +package com.cmvr.inspection.domain.dto.alert; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * 单个 PPE 检测结果。 + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class Detection +{ + /** 检测标签。 */ + @JsonProperty("label") + private String label; + + /** 检测置信度。 */ + @JsonProperty("confidence") + private Double confidence; + + /** 目标框坐标。 */ + @JsonProperty("box") + private BoundingBox box; + + /** 跟踪目标标识。 */ + @JsonProperty("track_id") + private Long trackId; +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/DetectionAlert.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/DetectionAlert.java new file mode 100644 index 0000000..ee8817c --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/domain/dto/alert/DetectionAlert.java @@ -0,0 +1,75 @@ +package com.cmvr.inspection.domain.dto.alert; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +/** + * PPE 违规报警业务数据。 + */ +@Data +@JsonIgnoreProperties(ignoreUnknown = true) +public class DetectionAlert +{ + /** 边缘端生成的全局事件标识。 */ + @JsonProperty("event_id") + private String eventId; + + /** 命中的规则标识。 */ + @JsonProperty("rule_id") + private String ruleId; + + /** 模型版本标识。 */ + @JsonProperty("model_id") + private String modelId; + + /** 模型显示名称。 */ + @JsonProperty("model_name") + private String modelName; + + /** 命中的标签集合。 */ + @JsonProperty("labels") + private List labels; + + /** 规则统计范围。 */ + @JsonProperty("scope") + private String scope; + + /** 规则统计范围对应的对象标识。 */ + @JsonProperty("scope_id") + private String scopeId; + + /** 时间窗口内命中次数。 */ + @JsonProperty("hit_count") + private Integer hitCount; + + /** 规则统计窗口,单位毫秒。 */ + @JsonProperty("window_ms") + private Double windowMs; + + /** 首次命中时间,Unix 纳秒时间戳。 */ + @JsonProperty("first_seen_ns") + private Long firstSeenNs; + + /** 最后命中时间,Unix 纳秒时间戳。 */ + @JsonProperty("last_seen_ns") + private Long lastSeenNs; + + /** 触发报警时间,Unix 纳秒时间戳。 */ + @JsonProperty("triggered_at_ns") + private Long triggeredAtNs; + + /** 本次报警中的最大置信度。 */ + @JsonProperty("max_confidence") + private Double maxConfidence; + + /** 报警关联的检测框。 */ + @JsonProperty("detections") + private List detections; + + /** 报警现场图片,允许为空。 */ + @JsonProperty("image") + private AlertImage image; +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/exception/DetectionAlertBadRequestException.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/exception/DetectionAlertBadRequestException.java new file mode 100644 index 0000000..26fc186 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/exception/DetectionAlertBadRequestException.java @@ -0,0 +1,17 @@ +package com.cmvr.inspection.exception; + +/** + * 边缘检测报警请求参数不符合协议。 + */ +public class DetectionAlertBadRequestException extends RuntimeException +{ + public DetectionAlertBadRequestException(String message) + { + super(message); + } + + public DetectionAlertBadRequestException(String message, Throwable cause) + { + super(message, cause); + } +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/exception/DetectionAlertTemporaryException.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/exception/DetectionAlertTemporaryException.java new file mode 100644 index 0000000..61dec80 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/exception/DetectionAlertTemporaryException.java @@ -0,0 +1,17 @@ +package com.cmvr.inspection.exception; + +/** + * 数据库或对象存储暂时不可用,边缘端可稍后重试。 + */ +public class DetectionAlertTemporaryException extends RuntimeException +{ + public DetectionAlertTemporaryException(String message) + { + super(message); + } + + public DetectionAlertTemporaryException(String message, Throwable cause) + { + super(message, cause); + } +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/InspectionDetectionAlertMapper.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/InspectionDetectionAlertMapper.java new file mode 100644 index 0000000..dfc99bb --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/InspectionDetectionAlertMapper.java @@ -0,0 +1,11 @@ +package com.cmvr.inspection.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cmvr.inspection.domain.InspectionDetectionAlert; + +/** + * PPE 违规报警主表 Mapper。 + */ +public interface InspectionDetectionAlertMapper extends BaseMapper +{ +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/InspectionDetectionDetailMapper.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/InspectionDetectionDetailMapper.java new file mode 100644 index 0000000..3d52e32 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/InspectionDetectionDetailMapper.java @@ -0,0 +1,11 @@ +package com.cmvr.inspection.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cmvr.inspection.domain.InspectionDetectionDetail; + +/** + * PPE 报警检测框明细 Mapper。 + */ +public interface InspectionDetectionDetailMapper extends BaseMapper +{ +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/IInspectionDetectionAlertService.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/IInspectionDetectionAlertService.java new file mode 100644 index 0000000..5d78e84 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/IInspectionDetectionAlertService.java @@ -0,0 +1,18 @@ +package com.cmvr.inspection.service; + +import com.cmvr.inspection.domain.dto.alert.AlertEnvelope; + +/** + * 边缘 AI 检测报警接收服务。 + */ +public interface IInspectionDetectionAlertService +{ + /** + * 接收并持久化一条 PPE 违规报警。 + * + * @param envelope 报警信封 + * @param requestIdempotencyKey HTTP 请求头中的幂等键,允许为空 + * @return true 表示本次新增,false 表示重复事件 + */ + boolean receive(AlertEnvelope envelope, String requestIdempotencyKey); +} diff --git a/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/impl/InspectionDetectionAlertServiceImpl.java b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/impl/InspectionDetectionAlertServiceImpl.java new file mode 100644 index 0000000..570dc21 --- /dev/null +++ b/cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/impl/InspectionDetectionAlertServiceImpl.java @@ -0,0 +1,391 @@ +package com.cmvr.inspection.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.cmvr.common.config.properties.MinioProperties; +import com.cmvr.common.core.minio.MinioService; +import com.cmvr.inspection.domain.InspectionDetectionAlert; +import com.cmvr.inspection.domain.InspectionDetectionDetail; +import com.cmvr.inspection.domain.dto.alert.AlertEnvelope; +import com.cmvr.inspection.domain.dto.alert.AlertImage; +import com.cmvr.inspection.domain.dto.alert.BoundingBox; +import com.cmvr.inspection.domain.dto.alert.Detection; +import com.cmvr.inspection.exception.DetectionAlertBadRequestException; +import com.cmvr.inspection.exception.DetectionAlertTemporaryException; +import com.cmvr.inspection.mapper.InspectionDetectionAlertMapper; +import com.cmvr.inspection.mapper.InspectionDetectionDetailMapper; +import com.cmvr.inspection.service.IInspectionDetectionAlertService; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Base64; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.UUID; + +/** + * PPE 违规报警接收业务实现。 + * + * 数据库唯一索引是并发幂等的最终保障;业务预查用于减少重复请求的无效写入。 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class InspectionDetectionAlertServiceImpl implements IInspectionDetectionAlertService +{ + private static final String SUPPORTED_SCHEMA = "DetectionAlert/v1"; + private static final String IMAGE_ENCODING_BASE64 = "base64"; + private static final String IMAGE_OBJECT_PREFIX = "inspection/detection-alerts"; + private static final int MAX_IDEMPOTENCY_KEY_LENGTH = 191; + private static final int MAX_EVENT_ID_LENGTH = 128; + private static final int MAX_IMAGE_BYTES = 10 * 1024 * 1024; + private static final int MAX_BASE64_LENGTH = (MAX_IMAGE_BYTES * 4 / 3) + 8; + + private final InspectionDetectionAlertMapper alertMapper; + private final InspectionDetectionDetailMapper detailMapper; + private final MinioService minioService; + private final MinioProperties minioProperties; + private final ObjectMapper objectMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean receive(AlertEnvelope envelope, String requestIdempotencyKey) + { + String idempotencyKey = validateAndResolveIdempotencyKey(envelope, requestIdempotencyKey); + String eventId = trimToNull(envelope.getPayload().getEventId()); + + if (exists(idempotencyKey, eventId)) + { + log.info("忽略重复PPE报警,idempotencyKey={},eventId={}", idempotencyKey, eventId); + return false; + } + + InspectionDetectionAlert alert = buildAlert(envelope, idempotencyKey); + StoredImage storedImage = null; + try + { + alertMapper.insert(alert); + + AlertImage image = envelope.getPayload().getImage(); + if (image != null) + { + storedImage = uploadImage(alert.getId(), image); + alert.setImagePath(storedImage.url); + if (alertMapper.updateById(alert) != 1) + { + throw new DetectionAlertTemporaryException("更新报警图片地址失败"); + } + } + + saveDetectionDetails(alert.getId(), envelope.getPayload().getDetections()); + log.info("PPE报警接收成功,alertId={},eventId={},sourceId={}", + alert.getId(), eventId, envelope.getSourceId()); + return true; + } + catch (RuntimeException ex) + { + // 数据库事务无法回滚 MinIO,对后续步骤失败时主动删除已上传对象。 + if (storedImage != null) + { + deleteUploadedImageQuietly(storedImage.objectName); + } + throw ex; + } + } + + /** + * 校验协议关键字段,并按请求头、event_id、trace_id 的顺序生成幂等键。 + */ + private String validateAndResolveIdempotencyKey(AlertEnvelope envelope, String requestIdempotencyKey) + { + if (envelope == null) + { + throw new DetectionAlertBadRequestException("请求体不能为空"); + } + if (!SUPPORTED_SCHEMA.equals(envelope.getSchema())) + { + throw new DetectionAlertBadRequestException("schema必须为" + SUPPORTED_SCHEMA); + } + if (envelope.getPayload() == null) + { + throw new DetectionAlertBadRequestException("payload不能为空"); + } + + String eventId = trimToNull(envelope.getPayload().getEventId()); + if (eventId != null && eventId.length() > MAX_EVENT_ID_LENGTH) + { + throw new DetectionAlertBadRequestException("payload.event_id长度不能超过" + MAX_EVENT_ID_LENGTH); + } + + String idempotencyKey = trimToNull(requestIdempotencyKey); + if (idempotencyKey == null) + { + idempotencyKey = eventId; + } + if (idempotencyKey == null) + { + idempotencyKey = trimToNull(envelope.getTraceId()); + } + if (idempotencyKey == null) + { + throw new DetectionAlertBadRequestException("Idempotency-Key、payload.event_id和trace_id不能同时为空"); + } + if (idempotencyKey.length() > MAX_IDEMPOTENCY_KEY_LENGTH) + { + throw new DetectionAlertBadRequestException("幂等键长度不能超过" + MAX_IDEMPOTENCY_KEY_LENGTH); + } + + validateImage(envelope.getPayload().getImage()); + return idempotencyKey; + } + + private void validateImage(AlertImage image) + { + if (image == null) + { + return; + } + if (!IMAGE_ENCODING_BASE64.equalsIgnoreCase(trimToEmpty(image.getEncoding()))) + { + throw new DetectionAlertBadRequestException("payload.image.encoding必须为base64"); + } + if (StringUtils.isBlank(image.getData())) + { + throw new DetectionAlertBadRequestException("payload.image.data不能为空"); + } + if (image.getData().length() > MAX_BASE64_LENGTH) + { + throw new DetectionAlertBadRequestException("报警图片不能超过10MB"); + } + String mediaType = trimToNull(image.getMediaType()); + if (mediaType == null || !mediaType.toLowerCase(Locale.ROOT).startsWith("image/")) + { + throw new DetectionAlertBadRequestException("payload.image.media_type必须是图片类型"); + } + } + + private boolean exists(String idempotencyKey, String eventId) + { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(InspectionDetectionAlert::getIdempotencyKey, idempotencyKey); + if (eventId != null) + { + query.or().eq(InspectionDetectionAlert::getEventId, eventId); + } + return alertMapper.selectCount(query) > 0; + } + + private InspectionDetectionAlert buildAlert(AlertEnvelope envelope, String idempotencyKey) + { + com.cmvr.inspection.domain.dto.alert.DetectionAlert payload = envelope.getPayload(); + InspectionDetectionAlert alert = new InspectionDetectionAlert(); + alert.setId(newId()); + alert.setEventId(trimToNull(payload.getEventId())); + alert.setIdempotencyKey(idempotencyKey); + alert.setSchema(envelope.getSchema()); + alert.setSourceId(envelope.getSourceId()); + alert.setSequence(envelope.getSequence()); + alert.setCapturedAtNs(envelope.getCapturedAtNs()); + alert.setReceivedAtNs(envelope.getReceivedAtNs()); + alert.setTraceId(envelope.getTraceId()); + alert.setSessionId(envelope.getSessionId()); + alert.setInputPort(envelope.getInputPort()); + alert.setRuleId(payload.getRuleId()); + alert.setModelId(payload.getModelId()); + alert.setModelName(payload.getModelName()); + alert.setLabelsJson(writeJson(payload.getLabels(), "序列化labels失败")); + alert.setScope(payload.getScope()); + alert.setScopeId(payload.getScopeId()); + alert.setHitCount(payload.getHitCount()); + alert.setWindowMs(payload.getWindowMs()); + alert.setFirstSeenNs(payload.getFirstSeenNs()); + alert.setLastSeenNs(payload.getLastSeenNs()); + alert.setTriggeredAtNs(payload.getTriggeredAtNs()); + alert.setMaxConfidence(payload.getMaxConfidence()); + alert.setRawJson(buildSanitizedRawJson(envelope)); + alert.setCreatedAt(new Date()); + return alert; + } + + /** + * raw_json保留协议元数据,但明确移除Base64图片,避免图片以另一种形式进入数据库。 + */ + private String buildSanitizedRawJson(AlertEnvelope envelope) + { + AlertImage image = envelope.getPayload().getImage(); + String imageData = image == null ? null : image.getData(); + try + { + // 避免构建JSON树时复制一份大Base64字符串;finally中恢复仅供随后上传MinIO。 + if (image != null) + { + image.setData(null); + } + return objectMapper.writeValueAsString(envelope); + } + catch (Exception ex) + { + throw new DetectionAlertTemporaryException("序列化报警原始数据失败", ex); + } + finally + { + if (image != null) + { + image.setData(imageData); + } + } + } + + private String writeJson(Object value, String errorMessage) + { + if (value == null) + { + return null; + } + try + { + return objectMapper.writeValueAsString(value); + } + catch (Exception ex) + { + throw new DetectionAlertTemporaryException(errorMessage, ex); + } + } + + private StoredImage uploadImage(String alertId, AlertImage image) + { + final byte[] imageBytes; + try + { + imageBytes = Base64.getDecoder().decode(image.getData().getBytes(StandardCharsets.US_ASCII)); + } + catch (IllegalArgumentException ex) + { + throw new DetectionAlertBadRequestException("payload.image.data不是有效的Base64", ex); + } + if (imageBytes.length > MAX_IMAGE_BYTES) + { + throw new DetectionAlertBadRequestException("报警图片不能超过10MB"); + } + + String extension = extensionFor(image.getMediaType()); + String datePath = LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE); + String objectName = IMAGE_OBJECT_PREFIX + "/" + datePath + "/" + alertId + extension; + try (ByteArrayInputStream inputStream = new ByteArrayInputStream(imageBytes)) + { + minioService.uploadStream(minioProperties.getBucketName(), objectName, inputStream, + imageBytes.length, image.getMediaType()); + return new StoredImage(objectName, buildMinioUrl(objectName)); + } + catch (DetectionAlertBadRequestException ex) + { + throw ex; + } + catch (Exception ex) + { + throw new DetectionAlertTemporaryException("上传报警图片到MinIO失败", ex); + } + } + + private void saveDetectionDetails(String alertId, List detections) + { + if (detections == null || detections.isEmpty()) + { + return; + } + for (Detection detection : detections) + { + if (detection == null) + { + throw new DetectionAlertBadRequestException("payload.detections不能包含null元素"); + } + InspectionDetectionDetail detail = new InspectionDetectionDetail(); + detail.setId(newId()); + detail.setAlertId(alertId); + detail.setLabel(detection.getLabel()); + detail.setConfidence(detection.getConfidence()); + detail.setTrackId(detection.getTrackId()); + BoundingBox box = detection.getBox(); + if (box != null) + { + detail.setXMin(box.getXMin()); + detail.setYMin(box.getYMin()); + detail.setXMax(box.getXMax()); + detail.setYMax(box.getYMax()); + } + detailMapper.insert(detail); + } + } + + private String buildMinioUrl(String objectName) + { + String baseUrl = StringUtils.removeEnd(minioProperties.getUrl(), "/"); + return baseUrl + "/" + minioProperties.getBucketName() + "/" + objectName; + } + + private void deleteUploadedImageQuietly(String objectName) + { + try + { + minioService.deleteFile(minioProperties.getBucketName(), objectName); + } + catch (Exception cleanupEx) + { + log.error("回滚PPE报警时删除MinIO对象失败,objectName={}", objectName, cleanupEx); + } + } + + private String extensionFor(String mediaType) + { + String normalized = trimToEmpty(mediaType).toLowerCase(Locale.ROOT); + if ("image/jpeg".equals(normalized) || "image/jpg".equals(normalized)) + { + return ".jpg"; + } + if ("image/png".equals(normalized)) + { + return ".png"; + } + if ("image/webp".equals(normalized)) + { + return ".webp"; + } + // 未知图片类型使用无执行语义的后缀,实际Content-Type仍按协议上传。 + return ".img"; + } + + private String trimToNull(String value) + { + return StringUtils.trimToNull(value); + } + + private String trimToEmpty(String value) + { + return StringUtils.trimToEmpty(value); + } + + private String newId() + { + return UUID.randomUUID().toString().replace("-", ""); + } + + private static final class StoredImage + { + private final String objectName; + private final String url; + + private StoredImage(String objectName, String url) + { + this.objectName = objectName; + this.url = url; + } + } +} diff --git a/logs/audio-dump/robot-to-backend-1784086438864.wav b/logs/audio-dump/robot-to-backend-1784086438864.wav deleted file mode 100644 index 35a9e02e5b17a8137d207f8e20f954cb9c8d2e11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960044 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 t*WnSW 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
H4 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�=2%1go9zI+u{d+GI62=GJ;Q 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

`4GZRx@>S)K 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 diff --git a/logs/audio-dump/robot-to-backend-1784086792085.wav b/logs/audio-dump/robot-to-backend-1784086792085.wav deleted file mode 100644 index 3d38b5d922b5d166db37858c7fab1ce7d599dbb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960044 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

m; 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

LwyO2!VPDKLv@ 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

XxFsd{YXl#%+1{FODNOG)*!iq|;8 zkh@M$g7bJS{p%2)ImenR%SjCDUDzpB*JKi(!Fh$I`W*z@U+G+Vk*f>OYwewF<|CVJ z7X|TJR!g=e4{ zR8;73@gS>?n+hkR^vo;roY;4KA?6HLp$s0Aly4PfiZ#Wu<-WA{ViI2$fe|&>EzMZ5 zmi0-zGFK1ppq1qAXIG^4WLM;kSqHx44)_I&XLYJDw_8ZIz$dZ|R){rXJ;>`^H)l_7 zXE!%)amHH1G)bI4GLZq%XxHOXhl&|(scvF5T#-fV?*LzR+$|y60_KM zQAM@zD4O8i;27g0(P|LknguLQ$3C^IA&#!pJ>#C;tj5`yCu-33o@@sETvdYw8-Z1h z_Q5Djn`bUAF8VcBj@fUaZTv1YQ;o+>M~&L6StGS%Wn{}>@nmW2uv4@qStr+1CL{Cc zRaUPoLr7fYcw`YGcxM3jAEQ(42?~kPa^A=uFj(~z6m6`2`dN7fw9;Q;Csh+j1rG*> z`zZ&(dBFsA-bG{hPFA7F6^aY75Q$R_tUYnQ*_lQSR88hxb9+f_K@X++S8UP*PrE+ zIW?9S+nY#J#0W0g-YF|n^^KB^IMljx2Ibu%M_#YjQEno~mET%rRM*_tBfH98ye{9V zBzNt|z3fa`YgyS>=GbLD?Z8%L#?xlc#P`%%bd+1|D*rk#bcx|KbeA+MatUSp0>Y&1dqrw7#Cq{gqOnSJLy0-J&J8aK&V=_Y-t1hA_vU$GZ_Fh1 z&h_#Nn9bNIG=S*J;V8lV%n*mdE|c%N=yaCK=^?bxB1|P{k=yI?^CEeM8k{Ui-C*H7 zpGPo#dcItVR+x44ShcFmekbFauzW>6YSxhPA_I^_RW)cLPa_WXS&9h1CI3TjJAY?| zSrHNJYxNwBV-kn^+91d2=QZ-(SD81SSJp4IqCD#&81-o45m~k>w;mc1l6?OfY-#My?!Ilmd+UiYm*wv5cx$R5?_^sHK{7pq^uL#~Hz1P7Z2? zWkG9)o(C*T9|m>RAIIjZ;i!$lSSWF@!pG$mPKmVt*kF`Yy0#YTMfRBZlH@@ucJg{4_?IIyxj$Co1Gwq%vXHs(ZlaMKHW}f9|!B z-$SX`RM+?qc~2cwrYE*fQZ1(VhEJzvs@p?-g-6%d;l6wD5}hGe=yZ!-knx_QY5b=CeAx_Ar$fRv zrmJ>9c*bAM@BB}N>g(Yp9~_SIVWW@y;GxN5G66NHeZsV%BWV(dc_6T&eTQP|oLSe);Xk@=PjOJ0u1$&C5(bNSxZ0uI9~i4e&&8mT6aPKB5QlK^alyLb+Pz zikK|YS%L2fp0rI~#f&hut@o$?rEC5J`850F_UT|(lrL$|QhYEuZ2$ZW*>W!S%QHOZ zBl*5>9)ouI{oc9%qPiT;%N}_JjF`PYhq*v*cFWtP!

^oW| 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%0D(zxW`@~;d>t=4MdG8mV`l{;_iGS^= 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∓JU3d;ks}%7nwAXmu0UYTL)C%>T;5Bwv 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 diff --git a/sql/inspection_detection_alert.sql b/sql/inspection_detection_alert.sql new file mode 100644 index 0000000..696e5ef --- /dev/null +++ b/sql/inspection_detection_alert.sql @@ -0,0 +1,54 @@ +-- PPE违规报警接收表。 +-- 本脚本用于已有数据库增量部署,不会删除现有巡检数据。 + +CREATE TABLE IF NOT EXISTS `inspection_detection_alert` ( + `id` varchar(32) NOT NULL COMMENT '主键ID', + `event_id` varchar(128) DEFAULT NULL COMMENT '边缘端事件ID', + `idempotency_key` varchar(191) NOT NULL COMMENT 'HTTP幂等键', + `schema_version` varchar(64) NOT NULL COMMENT '消息结构版本', + `source_id` varchar(128) DEFAULT NULL COMMENT '视频源标识', + `source_sequence` bigint DEFAULT NULL COMMENT '视频源内消息序号', + `captured_at_ns` bigint DEFAULT NULL COMMENT '采集时间Unix纳秒', + `received_at_ns` bigint DEFAULT NULL COMMENT '边缘端接收时间Unix纳秒', + `trace_id` varchar(128) DEFAULT NULL COMMENT '链路追踪ID', + `session_id` varchar(128) DEFAULT NULL COMMENT '边缘推理会话ID', + `input_port` varchar(128) DEFAULT NULL COMMENT '消息输入端口', + `rule_id` varchar(128) DEFAULT NULL COMMENT '命中的规则ID', + `model_id` varchar(255) DEFAULT NULL COMMENT '模型版本ID', + `model_name` varchar(255) DEFAULT NULL COMMENT '模型名称', + `labels_json` text COMMENT '命中标签JSON', + `detection_scope` varchar(64) DEFAULT NULL COMMENT '规则统计范围', + `scope_id` varchar(128) DEFAULT NULL COMMENT '统计范围对象ID', + `hit_count` int DEFAULT NULL COMMENT '窗口内命中次数', + `window_ms` decimal(12,3) DEFAULT NULL COMMENT '统计窗口毫秒', + `first_seen_ns` bigint DEFAULT NULL COMMENT '首次命中时间Unix纳秒', + `last_seen_ns` bigint DEFAULT NULL COMMENT '最后命中时间Unix纳秒', + `triggered_at_ns` bigint DEFAULT NULL COMMENT '报警触发时间Unix纳秒', + `max_confidence` decimal(8,6) DEFAULT NULL COMMENT '最大置信度', + `image_path` varchar(1000) DEFAULT NULL COMMENT 'MinIO图片URL', + `raw_json` mediumtext COMMENT '已移除Base64图片数据的原始协议JSON', + `created_at` datetime(3) NOT NULL COMMENT '平台接收时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_detection_alert_event_id` (`event_id`), + UNIQUE KEY `uk_detection_alert_idempotency_key` (`idempotency_key`), + KEY `idx_detection_alert_source_id` (`source_id`), + KEY `idx_detection_alert_rule_id` (`rule_id`), + KEY `idx_detection_alert_triggered_at` (`triggered_at_ns`), + KEY `idx_detection_alert_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检PPE违规报警主表'; + +CREATE TABLE IF NOT EXISTS `inspection_detection_detail` ( + `id` varchar(32) NOT NULL COMMENT '主键ID', + `alert_id` varchar(32) NOT NULL COMMENT '报警主表ID', + `label` varchar(128) DEFAULT NULL COMMENT '检测标签', + `confidence` decimal(8,6) DEFAULT NULL COMMENT '检测置信度', + `x_min` decimal(12,4) DEFAULT NULL COMMENT '目标框左上X坐标', + `y_min` decimal(12,4) DEFAULT NULL COMMENT '目标框左上Y坐标', + `x_max` decimal(12,4) DEFAULT NULL COMMENT '目标框右下X坐标', + `y_max` decimal(12,4) DEFAULT NULL COMMENT '目标框右下Y坐标', + `track_id` bigint DEFAULT NULL COMMENT '目标跟踪ID', + PRIMARY KEY (`id`), + KEY `idx_detection_detail_alert_id` (`alert_id`), + CONSTRAINT `fk_detection_detail_alert` FOREIGN KEY (`alert_id`) + REFERENCES `inspection_detection_alert` (`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='巡检PPE报警检测框明细表';