/** * Update the tracklist as received from Ardour * * @param message */ private void updateTrackList(OSCMessage message) { Log.d("A", message.toString()); /* for(int i = 0;i < message.getArgCount(); i++){ System.out.println("Message at " + i + " : " + message.getArg(i)); } */ // First arg String s = (String) message.getArg(0); if (s.equals("end_route_list")) { Long frameRate = (Long) message.getArg(1); Message msg = transportHandler.obtainMessage(500, frameRate); transportHandler.sendMessage(msg); Long maxFrame = (Long) message.getArg(2); Message msg1 = transportHandler.obtainMessage(400, maxFrame); transportHandler.sendMessage(msg1); Message msg2 = transportHandler.obtainMessage(1000, routes); transportHandler.sendMessage(msg2); state = OscService.READY; } else { org.ardour.Track t = new org.ardour.Track(); // System.out.println("Track contains: " + s); if (s.equals("AT")) { t.type = org.ardour.Track.AUDIO; } else if (s.equals("MT")) { t.type = org.ardour.Track.MIDI; } else if (s.equals("B")) { t.type = org.ardour.Track.BUS; } // Set the name of the track s = (String) message.getArg(1); t.name = s; // Set mute state Integer i = (Integer) message.getArg(4); t.muteEnabled = (i.intValue() > 0); // Set solo state i = (Integer) message.getArg(5); t.soloEnabled = (i.intValue() > 0); // Set remote id i = (Integer) message.getArg(6); t.remoteId = i.intValue(); // Set record state if (t.type == org.ardour.Track.AUDIO || t.type == org.ardour.Track.MIDI) { i = (Integer) message.getArg(7); t.recEnabled = (i.intValue() > 0); } routes.add(t); } }