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

Diff of /jsampler/trunk/src/org/jsampler/EffectChain.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2194 by iliev, Fri Jun 24 21:34:51 2011 UTC revision 2195 by iliev, Tue Jun 28 22:44:39 2011 UTC
# Line 26  import java.util.Arrays; Line 26  import java.util.Arrays;
26  import javax.swing.SwingUtilities;  import javax.swing.SwingUtilities;
27  import org.jsampler.event.EffectChainEvent;  import org.jsampler.event.EffectChainEvent;
28  import org.jsampler.event.EffectChainListener;  import org.jsampler.event.EffectChainListener;
29  import org.linuxsampler.lscp.EffectInstance;  import org.linuxsampler.lscp.EffectChainInfo;
30    import org.linuxsampler.lscp.EffectInstanceInfo;
31    
32    
33  /**  /**
34   *   *
35   * @author Grigor Iliev   * @author Grigor Iliev
36   */   */
37  public class EffectChain extends org.linuxsampler.lscp.EffectChain {  public class EffectChain {
38            private int chainId = -1;
39            private final ArrayList<EffectInstance> effectInstances = new ArrayList<EffectInstance>();
40            
41          private final ArrayList<EffectChainListener> listeners = new ArrayList<EffectChainListener>();          private final ArrayList<EffectChainListener> listeners = new ArrayList<EffectChainListener>();
42                    
43          public          public
44          EffectChain(org.linuxsampler.lscp.EffectChain chain) {          EffectChain(EffectChainInfo chain) {
45                  setChainId(chain.getChainId());                  setChainId(chain.getChainId());
46                                    
47                  effectInstances = new EffectInstance[chain.getEffectInstanceCount()];                  setEffectInstances(chain);
                 for(int i = 0; i < chain.getEffectInstanceCount(); i++) {  
                         effectInstances[i] = chain.getEffectInstance(i);  
                 }  
48          }          }
49                    
50          /**          /**
# Line 51  public class EffectChain extends org.lin Line 53  public class EffectChain extends org.lin
53           * @param l The <code>EffectChainListener</code> to register.           * @param l The <code>EffectChainListener</code> to register.
54           */           */
55          public void          public void
56          addAudioDeviceListener(EffectChainListener l) { listeners.add(l); }          addEffectChainListener(EffectChainListener l) { listeners.add(l); }
57                    
58          /**          /**
59           * Removes the specified listener.           * Removes the specified listener.
60           * @param l The <code>EffectChainListener</code> to remove.           * @param l The <code>EffectChainListener</code> to remove.
61           */           */
62          public void          public void
63          removeAudioDeviceListener(EffectChainListener l) { listeners.remove(l); }          removeEffectChainListener(EffectChainListener l) { listeners.remove(l); }
64            
65            /**
66             * Gets the numerical ID of the chain.
67             * @return The numerical ID of the chain or -1 if the ID is not set.
68             */
69            public int
70            getChainId() { return chainId; }
71            
72            /** Sets the numerical ID of the chain. */
73            public void
74            setChainId(int id) { chainId = id; }
75                    
76          public EffectInstance[]          public EffectInstance[]
77          getEffectInstances() {          getEffectInstances() {
78                  return Arrays.copyOf(effectInstances, effectInstances.length);                  return effectInstances.toArray(new EffectInstance[0]);
79          }          }
80                    
81          public void          public void
82          setEffectInstances(EffectInstance[] instances) {          setEffectInstances(EffectChainInfo chain) {
83                  effectInstances = instances;                  effectInstances.clear();
84                  fireEffectInstanceListChanged(instances);                  for(int i = 0; i < chain.getEffectInstanceCount(); i++) {
85                            effectInstances.add(new EffectInstance(chain.getEffectInstance(i)));
86                    }
87                    fireEffectInstanceListChanged();
88                                    
89          }          }
90                    
91          public int          public int
92            getEffectInstanceCount() { return effectInstances.size(); }
93            
94            public EffectInstance
95            getEffectInstance(int idx) { return effectInstances.get(idx); }
96            
97            public int
98          getIndex(int instanceId) {          getIndex(int instanceId) {
99                  for(int i = 0; i < effectInstances.length; i++) {                  for(int i = 0; i < effectInstances.size(); i++) {
100                          if(effectInstances[i].getInstanceId() == instanceId) {                          if(effectInstances.get(i).getInstanceId() == instanceId) {
101                                  return i;                                  return i;
102                          }                          }
103                  }                  }
104                  return -1;                  return -1;
105          }          }
106                    
107            public EffectInstance
108            getEffectInstanceById(int instanceId) {
109                    int idx = getIndex(instanceId);
110                    if(idx == -1) return null;
111                    
112                    return effectInstances.get(idx);
113            }
114            
115          private void          private void
116          fireEffectInstanceListChanged(EffectInstance[] instances) {          fireEffectInstanceListChanged() {
117                  final EffectChainEvent e = new EffectChainEvent(this, this, instances);                  final EffectChainEvent e = new EffectChainEvent(this, this);
118                  SwingUtilities.invokeLater(new Runnable() {                  SwingUtilities.invokeLater(new Runnable() {
119                          public void                          public void
120                          run() { fireEffectInstanceListChanged(e); }                          run() { fireEffectInstanceListChanged(e); }

Legend:
Removed from v.2194  
changed lines
  Added in v.2195

  ViewVC Help
Powered by ViewVC