add option to send first packet twice
This commit is contained in:
@@ -28,6 +28,10 @@ class MessagePanel extends BasePanel {
|
|||||||
this.addDynamicText('bytes', 0);
|
this.addDynamicText('bytes', 0);
|
||||||
this.closeField();
|
this.closeField();
|
||||||
|
|
||||||
|
this.addCheckboxes('packet-options', [
|
||||||
|
{ text: 'Send First Packet Twice', id: 'first-packet-twice', checked: true },
|
||||||
|
]);
|
||||||
|
|
||||||
this.addEventListener('send-button-click', () => {
|
this.addEventListener('send-button-click', () => {
|
||||||
if(this.getSendButtonText() === 'Send') {
|
if(this.getSendButtonText() === 'Send') {
|
||||||
this.dispatcher.emit('sendClick');
|
this.dispatcher.emit('sendClick');
|
||||||
@@ -46,6 +50,8 @@ class MessagePanel extends BasePanel {
|
|||||||
});
|
});
|
||||||
this.dispatcher.emit('dataTypeChange', {values: [this.getDataType()]});
|
this.dispatcher.emit('dataTypeChange', {values: [this.getDataType()]});
|
||||||
}
|
}
|
||||||
|
setIsFirstPacketSentTwice = (checked) => this.setCheckedById('first-packet-twice', checked);
|
||||||
|
getIsFirstPacketSentTwice = () => this.getCheckedById('first-packet-twice');
|
||||||
getSendButtonText = () => this.getValueById('send-button');
|
getSendButtonText = () => this.getValueById('send-button');
|
||||||
setSendButtonText = text => this.setValueById('send-button', text);
|
setSendButtonText = text => this.setValueById('send-button', text);
|
||||||
setMessageText = text => {
|
setMessageText = text => {
|
||||||
|
|||||||
11
index.js
11
index.js
@@ -75,6 +75,7 @@ function handleWindowLoad() {
|
|||||||
messagePanel.setMessageText(Randomizer.text(5));
|
messagePanel.setMessageText(Randomizer.text(5));
|
||||||
messagePanel.setDataType('text');
|
messagePanel.setDataType('text');
|
||||||
messagePanel.setSendButtonText('Send');
|
messagePanel.setSendButtonText('Send');
|
||||||
|
messagePanel.setIsFirstPacketSentTwice(true);
|
||||||
|
|
||||||
messagePanel.addEventListener('dataTypeChange', ({values: [dataType]}) => {
|
messagePanel.addEventListener('dataTypeChange', ({values: [dataType]}) => {
|
||||||
receivePanel.setDataType(dataType);
|
receivePanel.setDataType(dataType);
|
||||||
@@ -491,16 +492,24 @@ function sendPackets(bytes, packetIndeces) {
|
|||||||
|
|
||||||
AudioSender.setAudioContext(audioContext);
|
AudioSender.setAudioContext(audioContext);
|
||||||
|
|
||||||
|
const sendFirstTwice = messagePanel.getIsFirstPacketSentTwice();
|
||||||
|
|
||||||
if(audioContext.state !== "running") {
|
if(audioContext.state !== "running") {
|
||||||
statusPanel.appendText(`Expected audio context to be running. State: ${audioContext.state}`);
|
statusPanel.appendText(`Expected audio context to be running. State: ${audioContext.state}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const startSeconds = AudioSender.now() + 0.1;
|
let startSeconds = AudioSender.now() + 0.1;
|
||||||
const packetBitCount = PacketUtils.getPacketMaxBitCount();
|
const packetBitCount = PacketUtils.getPacketMaxBitCount();
|
||||||
const packer = PacketUtils.pack(bytes);
|
const packer = PacketUtils.pack(bytes);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
AudioSender.beginAt(startSeconds);
|
AudioSender.beginAt(startSeconds);
|
||||||
|
if(sendFirstTwice) {
|
||||||
|
let packet = packer.getBits(packetIndeces[0]);
|
||||||
|
packet.push(...new Array(packetBitCount - packet.length).fill(0));
|
||||||
|
sendPacket(packet, startSeconds);
|
||||||
|
startSeconds += packetDurationSeconds;
|
||||||
|
}
|
||||||
// send all packets
|
// send all packets
|
||||||
for(let i = 0; i < requestedPacketCount; i++) {
|
for(let i = 0; i < requestedPacketCount; i++) {
|
||||||
let packet = packer.getBits(packetIndeces[i]);
|
let packet = packer.getBits(packetIndeces[i]);
|
||||||
|
|||||||
Reference in New Issue
Block a user