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

Annotation of /jsampler/trunk/src/org/jsampler/AudioDeviceModel.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2200 - (hide annotations) (download)
Sun Jul 3 22:01:16 2011 UTC (12 years, 10 months ago) by iliev
File size: 5153 byte(s)
* added support for exporting effects to LSCP script
* Sampler Browser (work in progress): initial
  implementation of sampler channels

1 iliev 787 /*
2     * JSampler - a java front-end for LinuxSampler
3     *
4 iliev 2192 * Copyright (C) 2005-2011 Grigor Iliev <grigor@grigoriliev.com>
5 iliev 787 *
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;
24    
25     import org.jsampler.event.AudioDeviceListener;
26    
27     import org.linuxsampler.lscp.AudioOutputDevice;
28 iliev 2192 import org.linuxsampler.lscp.Effect;
29 iliev 1143 import org.linuxsampler.lscp.Parameter;
30 iliev 787
31    
32     /**
33 iliev 911 * A data model for an audio output device.
34 iliev 787 * @author Grigor Iliev
35     */
36     public interface AudioDeviceModel {
37     /**
38     * Registers the specified listener to be notified when
39     * the settings of the audio device are changed.
40     * @param l The <code>AudioDeviceListener</code> to register.
41     */
42     public void
43     addAudioDeviceListener(AudioDeviceListener l);
44    
45     /**
46     * Removes the specified listener.
47     * @param l The <code>AudioDeviceListener</code> to remove.
48     */
49     public void removeAudioDeviceListener(AudioDeviceListener l);
50    
51     /**
52     * Gets the numerical ID of this audio device.
53     * @return The numerical ID of this audio device or
54     * -1 if the device number is not set.
55     */
56 iliev 1143 public int getDeviceId();
57 iliev 787
58     /**
59     * Gets the current settings of the audio device represented by this model.
60     * @return <code>AudioOutputDevice</code> instance providing
61     * the current settings of the audio device represented by this model.
62     */
63     public AudioOutputDevice getDeviceInfo();
64    
65     /**
66     * Updates the settings of the audio device represented by this model.
67     * @param device The new audio device settings.
68     */
69     public void setDeviceInfo(AudioOutputDevice device);
70    
71     /**
72     * Sets whether the audio device is enabled or disabled.
73     * @param active If <code>true</code> the audio device is enabled,
74     * else the device is disabled.
75     */
76     public void setActive(boolean active);
77    
78     /**
79     * Determines whether the audio device is active.
80     * @return <code>true</code> if the device is enabled and <code>false</code> otherwise.
81     */
82     public boolean isActive();
83 iliev 1143
84     /**
85     * Schedules a new task for enabling/disabling the audio device.
86     * @param active If <code>true</code> the audio device is enabled,
87     * else the device is disabled.
88     */
89     public void setBackendActive(boolean active);
90    
91     /**
92 iliev 1357 * Schedules a new task for altering
93     * a specific setting of the audio output device.
94     * @param prm The parameter to be set.
95     */
96     public void setBackendDeviceParameter(Parameter prm);
97    
98     /**
99 iliev 1143 * Schedules a new task for changing the channel number of the audio device.
100     * @param channels The new number of audio channels.
101     */
102     public void setBackendChannelCount(int channels);
103    
104     /**
105     * Schedules a new task for altering a specific
106     * setting of the specified audio output channel.
107     * @param channel The channel number.
108     * @param prm The parameter to be set.
109     */
110     public void setBackendChannelParameter(int channel, Parameter prm);
111 iliev 2192
112     /** Gets the current number of send effect chains. */
113     public int getSendEffectChainCount();
114    
115     /** Gets the effect chain at the specified position. */
116     public EffectChain getSendEffectChain(int chainIdx);
117    
118     public EffectChain getSendEffectChainById(int chainId);
119    
120     /**
121 iliev 2200 * Gets the index of the send effect chain with ID <code>chainId</code>.
122     * @param chainId The ID of the send effect chain.
123     * @return The zero-based position of the specified send effect chain
124     * in the send effect chain list or <code>-1</code>
125     * if there is no send effect chain with ID <code>chainId</code>.
126     */
127     public int getSendEffectChainIndex(int chainId);
128    
129     /**
130 iliev 2192 * Adds the specified send effect chain to the audio output device.
131     */
132     public void addSendEffectChain(EffectChain chain);
133    
134     /** Schedules a new task for removing the specified send effect chain. */
135     public void removeBackendSendEffectChain(int chainId);
136    
137     /**
138     * Removes the specified send effect chain from the audio output device.
139     */
140     public void removeSendEffectChain(int chainId);
141    
142     public void removeAllSendEffectChains();
143    
144     /**
145     * Schedules a new task for adding a new send effect chain and
146     * assigning it to the specified audio output device.
147     */
148     public void addBackendSendEffectChain();
149    
150     /**
151     * Schedules a new task for creating new effect instances and inserting them
152     * in the specified send effect chain at the specified position.
153     */
154     public void addBackendEffectInstances(Effect[] effects, int chainId, int index);
155    
156     /**
157     * Schedules a new task for removing the specified
158     * effect instance from the specified send effect chain.
159     */
160     public void removeBackendEffectInstance(int chainId, int instanceId);
161 iliev 787 }

  ViewVC Help
Powered by ViewVC