Skip to content

Commit

Permalink
Merge pull request #26 from ChrisFeline/patch-1
Browse files Browse the repository at this point in the history
Add 'MessageComplete' parameter.
  • Loading branch information
ChanyaVRC committed Nov 18, 2022
2 parents c3f2b4d + 121a7a1 commit 3201b69
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
16 changes: 9 additions & 7 deletions src/vrcosclib.Test/Chatbox/OscChatboxTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,27 +37,29 @@ public void OneTimeTearDown()
}


[TestCase("", true)]
[TestCase("ASCII", true)]
[TestCase("ASCII", false)]
[TestCase("UTF-8", true)]
[TestCase("😂😭😪😥😰😅😓😩😫😨😱", true)]
public async Task SendMessageTest(string message, bool direct)
[TestCase("", true, true)]
[TestCase("ASCII", true, false)]
[TestCase("ASCII", false, true)]
[TestCase("UTF-8", true, false)]
[TestCase("😂😭😪😥😰😅😓😩😫😨😱", true, true)]
public async Task SendMessageTest(string message, bool direct, bool messageComplete)
{
OscMessageValues value = null!;
void valueReadMethod(OscMessageValues v) => value = v;
_server.TryAddMethod(OscChatbox.InputAddress, valueReadMethod);
byte[] recievedMessage = new byte[2024];


OscChatbox.SendMessage(message, direct);
OscChatbox.SendMessage(message, direct, messageComplete);
await TestUtility.LoopWhile(() => value == null, TestUtility.LatencyTimeout);
int length = value.ReadStringElementBytes(0, recievedMessage);
bool recievedDirect = value.ReadBooleanElement(1);
bool recievedMessageComplete = value.ReadBooleanElement(2);


Assert.AreEqual(message, Encoding.UTF8.GetString(recievedMessage, 0, length));
Assert.AreEqual(direct, recievedDirect);
Assert.AreEqual(messageComplete, recievedMessageComplete);
}

[TestCase(true)]
Expand Down
4 changes: 2 additions & 2 deletions src/vrcosclib/Chatbox/OscChatbox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ public static class OscChatbox
{
public static string InputAddress = "/chatbox/input";
public static string TypingAddress = "/chatbox/typing";
public static void SendMessage(string message, bool direct)
public static void SendMessage(string message, bool direct, bool complete = false)
{
OscClient client = OscUtility.Client;
OscWriter writer = client.Writer;
var socket = client.Socket;

writer.Reset();
writer.Write(InputAddress);
writer.Write(direct ? ",sT" : ",sF");
writer.Write((direct ? ",sT" : ",sF") + (complete ? "T" : "F"));
writer.WriteUtfString(message);
socket.Send(writer.Buffer, writer.Length, SocketFlags.None);
}
Expand Down

0 comments on commit 3201b69

Please sign in to comment.