Skip to content

Commit 3e81d5d

Browse files
authored
Merge pull request #4 from josephlarralde/master
Fixing OSC data types on Android
2 parents e1adebc + baddc74 commit 3e81d5d

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

android/src/main/java/com/reactlibrary/OscModule.java

+27-3
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public String getName() {
6868
}
6969

7070
@ReactMethod
71-
public void createClient(String address, int port){
71+
public void createClient(String address, int port) {
7272
ipAddress = address;
7373
portOut = port;
7474

@@ -84,8 +84,32 @@ public void createClient(String address, int port){
8484
}
8585

8686
@ReactMethod
87-
public void sendMessage(String address, ReadableArray args){
88-
OSCMessage msg = new OSCMessage(address, args.toArrayList());
87+
public void sendMessage(String address, ReadableArray args) {
88+
// OSCMessage msg = new OSCMessage(address, args.toArrayList());
89+
ArrayList arr = new ArrayList();
90+
for (int i = 0; i < args.size(); i++) {
91+
switch (args.getType(i)) {
92+
case Boolean:
93+
arr.add(args.getBoolean(i));
94+
break;
95+
case Number:
96+
double dVal = args.getDouble(i);
97+
int iVal = (int) dVal;
98+
if (iVal == dVal) {
99+
// we have an int
100+
arr.add(iVal);
101+
} else {
102+
// we have a floating point number
103+
arr.add((float) dVal);
104+
}
105+
break;
106+
case String:
107+
default:
108+
arr.add(args.getString(i));
109+
break;
110+
}
111+
}
112+
OSCMessage msg = new OSCMessage(address, arr);
89113
try {
90114
client.send(msg);
91115
} catch (Exception e) {

0 commit comments

Comments
 (0)