| 1 | package com.github.dakusui.symfonion.cli.subcommands; | |
| 2 | ||
| 3 | import com.github.dakusui.symfonion.cli.Cli; | |
| 4 | import com.github.dakusui.symfonion.cli.Subcommand; | |
| 5 | import com.github.dakusui.symfonion.compat.exceptions.ExceptionContext; | |
| 6 | import com.github.dakusui.symfonion.core.Symfonion; | |
| 7 | import com.github.dakusui.symfonion.song.Song; | |
| 8 | ||
| 9 | import javax.sound.midi.MidiDevice; | |
| 10 | import javax.sound.midi.Sequence; | |
| 11 | import java.io.IOException; | |
| 12 | import java.io.InputStream; | |
| 13 | import java.io.PrintStream; | |
| 14 | import java.util.Map; | |
| 15 | ||
| 16 | import static com.github.dakusui.symfonion.cli.subcommands.LogiasUtils.createLogiasContext; | |
| 17 | import static com.github.dakusui.symfonion.cli.subcommands.Play.play; | |
| 18 | import static com.github.dakusui.symfonion.cli.subcommands.Play.prepareMidiOutDevices; | |
| 19 | import static com.github.dakusui.symfonion.compat.exceptions.CompatExceptionThrower.ContextKey.SOURCE_FILE; | |
| 20 | import static com.github.dakusui.symfonion.compat.exceptions.CompatExceptionThrower.exceptionContext; | |
| 21 | import static com.github.dakusui.symfonion.compat.exceptions.ExceptionContext.entry; | |
| 22 | ||
| 23 | public class PlaySong implements Subcommand { | |
| 24 | @Override | |
| 25 | public void invoke(Cli cli, PrintStream ps, InputStream inputStream) throws IOException { | |
| 26 | try (ExceptionContext ignored = exceptionContext(entry(SOURCE_FILE, cli.source()))) { | |
| 27 | Symfonion symfonion = cli.symfonion(); | |
| 28 | ||
| 29 | Song song = symfonion.loadSong(cli.source().getAbsolutePath(), cli.measureFilter(), cli.partFilter()); | |
| 30 | Map<String, Sequence> sequences = symfonion.compileSong(song, createLogiasContext()); | |
| 31 |
1
1. invoke : removed call to java/io/PrintStream::println → NO_COVERAGE |
ps.println(); |
| 32 | Map<String, MidiDevice> midiOutDevices = prepareMidiOutDevices(ps, cli.midiOutRegexPatterns()); | |
| 33 |
1
1. invoke : removed call to java/io/PrintStream::println → NO_COVERAGE |
ps.println(); |
| 34 |
1
1. invoke : removed call to com/github/dakusui/symfonion/cli/subcommands/Play::play → NO_COVERAGE |
play(ps, midiOutDevices, sequences); |
| 35 | } | |
| 36 | } | |
| 37 | } | |
Mutations | ||
| 31 |
1.1 |
|
| 33 |
1.1 |
|
| 34 |
1.1 |