@@ -354,6 +354,30 @@ public LXOscEngine sendMessage(String path, String value) {
354354 return this ;
355355 }
356356
357+ public LXOscEngine sendMessage (String path , Object ... args ) {
358+ if (this .engineTransmitter != null ) {
359+ this .engineTransmitter .sendMessage (path , args );
360+ }
361+ for (LXOscConnection .Output output : this .outputs ) {
362+ if (output .transmitter != null ) {
363+ output .transmitter .sendMessage (path , args );
364+ }
365+ }
366+ return this ;
367+ }
368+
369+ public LXOscEngine sendMessage (String path , OscArgument ... args ) {
370+ if (this .engineTransmitter != null ) {
371+ this .engineTransmitter .sendMessage (path , args );
372+ }
373+ for (LXOscConnection .Output output : this .outputs ) {
374+ if (output .transmitter != null ) {
375+ output .transmitter .sendMessage (path , args );
376+ }
377+ }
378+ return this ;
379+ }
380+
357381 public LXOscEngine sendParameter (LXParameter parameter ) {
358382 if (this .engineTransmitter != null ) {
359383 this .engineTransmitter .onParameterChanged (parameter );
@@ -588,6 +612,37 @@ public void onParameterChanged(LXParameter parameter) {
588612 _sendMessage (oscMessage );
589613 }
590614
615+ private void sendMessage (String address , Object ... args ) {
616+ if (isActive () && !isAddressFiltered (address )) {
617+ oscMessage .clearArguments ();
618+ oscMessage .setAddressPattern (address );
619+ for (Object arg : args ) {
620+ oscMessage .add (switch (arg ) {
621+ case OscArgument a -> a ;
622+ case Integer i -> new OscInt (i );
623+ case Long l -> new OscLong (l );
624+ case Float f -> new OscFloat (f );
625+ case Double d -> new OscDouble (d );
626+ case String s -> new OscString (s );
627+ case Boolean b -> b .booleanValue () ? new OscTrue () : new OscFalse ();
628+ default -> throw new IllegalArgumentException ("Invalid OSC argument: " + arg );
629+ });
630+ }
631+ _sendMessage (oscMessage );
632+ }
633+ }
634+
635+ private void sendMessage (String address , OscArgument ... args ) {
636+ if (isActive () && !isAddressFiltered (address )) {
637+ oscMessage .clearArguments ();
638+ oscMessage .setAddressPattern (address );
639+ for (OscArgument arg : args ) {
640+ oscMessage .add (arg );
641+ }
642+ _sendMessage (oscMessage );
643+ }
644+ }
645+
591646 private void sendMessage (String address , int value ) {
592647 if (isActive () && !isAddressFiltered (address )) {
593648 oscMessage .clearArguments ();
0 commit comments