/** Invoked when the user clicks the mute button. */ private void changeMute() { SamplerChannel sc = getChannelInfo(); boolean b = true; /* * Changing the mute button icon now instead of * leaving the work to the notification mechanism of the LinuxSampler. */ if (sc.isMuted() && !sc.isMutedBySolo()) { b = false; boolean hasSolo = CC.getSamplerModel().hasSoloChannel(); if (sc.isSoloChannel() || !hasSolo) btnMute.setIcon(iconMuteOff); else btnMute.setIcon(iconMutedBySolo); } else btnMute.setIcon(iconMuteOn); getModel().setMute(b); }
/** Invoked when the user clicks the solo button. */ private void changeSolo() { SamplerChannel sc = getChannelInfo(); boolean b = !sc.isSoloChannel(); /* * Changing the solo button icon (and related) now instead of * leaving the work to the notification mechanism of the LinuxSampler. */ if (b) { btnSolo.setIcon(iconSoloOn); if (sc.isMutedBySolo()) btnMute.setIcon(iconMuteOff); } else { btnSolo.setIcon(iconSoloOff); if (!sc.isMuted() && CC.getSamplerModel().getSoloChannelCount() > 1) btnMute.setIcon(iconMutedBySolo); } getModel().setSolo(b); }
/** * Updates the mute button with the proper icon regarding to information obtained from <code> * channel</code>. * * @param channel A <code>SamplerChannel</code> instance containing the new settings for this * channel. */ private void updateMuteIcon(SamplerChannel channel) { if (channel.isMutedBySolo()) btnMute.setIcon(iconMutedBySolo); else if (channel.isMuted()) btnMute.setIcon(iconMuteOn); else btnMute.setIcon(iconMuteOff); }