/[svn]/jsampler/trunk/src/org/jsampler/task/DuplicateChannels.java
ViewVC logotype

Annotation of /jsampler/trunk/src/org/jsampler/task/DuplicateChannels.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 787 - (hide annotations) (download)
Mon Oct 10 16:03:12 2005 UTC (18 years, 6 months ago) by iliev
File size: 2682 byte(s)
* The first alpha-release of JSampler

1 iliev 787 /*
2     * JSampler - a java front-end for LinuxSampler
3     *
4     * Copyright (C) 2005 Grigor Kirilov Iliev
5     *
6     * This file is part of JSampler.
7     *
8     * JSampler is free software; you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License version 2
10     * as published by the Free Software Foundation.
11     *
12     * JSampler is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with JSampler; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20     * MA 02111-1307 USA
21     */
22    
23     package org.jsampler.task;
24    
25     import java.util.logging.Level;
26    
27     import net.sf.juife.AbstractTask;
28    
29     import org.jsampler.CC;
30     import org.jsampler.HF;
31    
32     import org.jsampler.view.JSChannel;
33    
34     import org.linuxsampler.lscp.Client;
35     import org.linuxsampler.lscp.SamplerChannel;
36    
37     import static org.jsampler.JSI18n.i18n;
38    
39    
40     /**
41     *
42     * @author Grigor Iliev
43     */
44     public class DuplicateChannels extends AbstractTask {
45     JSChannel[] channels;
46    
47     public
48     DuplicateChannels(JSChannel[] channels) {
49     this.channels = channels;
50    
51     setTitle("DuplicateChannels_task");
52     setDescription(i18n.getMessage("DuplicateChannels.description"));
53     }
54    
55     public void
56     stop() { CC.cleanExit(); }
57    
58     public void
59     run() {
60     try {
61     for(JSChannel c : channels) {
62     int i = CC.getClient().addSamplerChannel();
63     duplicateSettings(c.getChannelInfo(), i);
64     }
65     }
66     catch(Exception x) {
67     setErrorMessage(getDescription() + ": " + HF.getErrorMessage(x));
68     CC.getLogger().log(Level.FINE, getErrorMessage(), x);
69     }
70     }
71    
72     private void
73     duplicateSettings(SamplerChannel sc, int c) throws Exception {
74     Client client = CC.getClient();
75    
76     if(sc.getMidiInputDevice() >= 0) {
77     client.setChannelMidiInputDevice(c, sc.getMidiInputDevice());
78     client.setChannelMidiInputPort(c, sc.getMidiInputPort());
79     client.setChannelMidiInputChannel(c, sc.getMidiInputChannel());
80     }
81    
82     if(sc.getAudioOutputDevice() >= 0) {
83     client.setChannelAudioOutputDevice(c, sc.getAudioOutputDevice());
84     }
85    
86     if(sc.getEngine() != null) {
87     client.loadSamplerEngine(sc.getEngine().getName(), c);
88    
89     client.setChannelVolume(c, sc.getVolume());
90    
91     if(sc.isSoloChannel()) client.setChannelSolo(c, true);
92    
93     if(sc.isMuted() && !sc.isMutedBySolo())
94     client.setChannelMute(c, true);
95    
96     if(sc.getInstrumentFile() != null) client.loadInstrument (
97     sc.getInstrumentFile(), sc.getInstrumentIndex(), c, true
98     );
99     }
100     }
101     }

  ViewVC Help
Powered by ViewVC