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

Contents of /jsampler/trunk/src/org/jsampler/view/JSViewConfig.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1818 - (show annotations) (download)
Wed Dec 24 17:29:47 2008 UTC (15 years, 3 months ago) by iliev
File size: 3790 byte(s)
* Added support for controlling the global sampler-wide limit of
  maximum voices and disk streams
  (choose Edit/Preferences, then click the `General' tab)
* Fantasia: store the view configuration of audio/MIDI devices and sampler
  channels in the LSCP script when exporting sampler configuration
* Fantasia: Implemented multiple sampler channels' selection
* Fantasia: Added option to move sampler channels up and down
  in the channels list
* Fantasia: Added option to move sampler channels
  to another channels panels

1 /*
2 * JSampler - a java front-end for LinuxSampler
3 *
4 * Copyright (C) 2005-2008 Grigor Iliev <grigor@grigoriliev.com>
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.view;
24
25 import java.beans.PropertyChangeEvent;
26 import java.beans.PropertyChangeListener;
27
28 import org.jsampler.JSPrefs;
29 import org.jsampler.MidiInstrument;
30
31 import static org.jsampler.JSPrefs.*;
32
33 /**
34 * Provides the view configuration.
35 * @author Grigor Iliev
36 */
37 public abstract class JSViewConfig {
38 private boolean measurementUnitDecibel;
39
40 private int firstMidiBankNumber;
41 private int firstMidiProgramNumber;
42
43 /** Creates a new instance of <code>JSViewConfig</code> */
44 public
45 JSViewConfig() {
46 measurementUnitDecibel = preferences().getBoolProperty(VOL_MEASUREMENT_UNIT_DECIBEL);
47
48 String s = VOL_MEASUREMENT_UNIT_DECIBEL;
49 preferences().addPropertyChangeListener(s, new PropertyChangeListener() {
50 public void
51 propertyChange(PropertyChangeEvent e) {
52 boolean b;
53 b = preferences().getBoolProperty(VOL_MEASUREMENT_UNIT_DECIBEL);
54 measurementUnitDecibel = b;
55 }
56 });
57
58 firstMidiBankNumber = preferences().getIntProperty(FIRST_MIDI_BANK_NUMBER);
59 firstMidiProgramNumber = preferences().getIntProperty(FIRST_MIDI_PROGRAM_NUMBER);
60
61 MidiInstrument.setFirstProgramNumber(firstMidiProgramNumber);
62
63 s = FIRST_MIDI_BANK_NUMBER;
64 preferences().addPropertyChangeListener(s, new PropertyChangeListener() {
65 public void
66 propertyChange(PropertyChangeEvent e) {
67 firstMidiBankNumber = preferences().getIntProperty(FIRST_MIDI_BANK_NUMBER);
68 }
69 });
70
71 s = FIRST_MIDI_PROGRAM_NUMBER;
72 preferences().addPropertyChangeListener(s, new PropertyChangeListener() {
73 public void
74 propertyChange(PropertyChangeEvent e) {
75 firstMidiProgramNumber = preferences().getIntProperty(FIRST_MIDI_PROGRAM_NUMBER);
76 MidiInstrument.setFirstProgramNumber(firstMidiProgramNumber);
77 }
78 });
79 }
80
81 /**
82 * Provides UI information for instruments database trees.
83 */
84 public abstract InstrumentsDbTreeView getInstrumentsDbTreeView();
85
86 /**
87 * Provides UI information for instruments database tables.
88 */
89 public abstract InstrumentsDbTableView getInstrumentsDbTableView();
90
91 public abstract BasicIconSet getBasicIconSet();
92
93 public abstract JSPrefs preferences();
94
95 /**
96 * Determines whether this view provides instruments database support.
97 * @return <code>false</code>
98 */
99 public boolean
100 getInstrumentsDbSupport() { return false; }
101
102 /**
103 * Determines whether the volume values should be shown in decibels.
104 */
105 public boolean
106 isMeasurementUnitDecibel() { return measurementUnitDecibel; }
107
108 /** Exports the view configuration of the current session. */
109 public String
110 exportSessionViewConfig() { return ""; }
111
112 private SessionViewConfig sessionViewConfig = null;
113
114 public SessionViewConfig
115 getSessionViewConfig() { return sessionViewConfig; }
116
117 public void
118 setSessionViewConfig(SessionViewConfig config) { sessionViewConfig = config; }
119
120 public int
121 getFirstMidiBankNumber() { return firstMidiBankNumber; }
122
123 public int
124 getFirstMidiProgramNumber() { return firstMidiProgramNumber; }
125 }

  ViewVC Help
Powered by ViewVC