ListDevices.java

package com.github.dakusui.symfonion.cli.subcommands;

import com.github.dakusui.symfonion.cli.Cli;
import com.github.dakusui.symfonion.cli.Subcommand;
import com.github.dakusui.symfonion.utils.midi.MidiDeviceManager;
import com.github.dakusui.symfonion.utils.midi.MidiDeviceReportFormatter;

import java.io.InputStream;
import java.io.PrintStream;

import static com.github.dakusui.symfonion.utils.midi.MidiDeviceReportFormatter.createDefaultInstance;
import static java.util.stream.Collectors.joining;

public class ListDevices implements Subcommand {
  @Override
  public void invoke(Cli cli, PrintStream ps, InputStream inputStream) {
    MidiDeviceManager reportComposer = MidiDeviceManager.from(MidiDeviceReportFormatter.createDefaultInstance());
    ps.println(reportComposer.composeReport(x -> false, createDefaultInstance(), "Available MIDI devices").stream().collect(joining(String.format("%n"), "", String.format("%n"))));
  }
}