From: Joachim B. <jba...@pi...> - 2005-02-25 13:19:24
|
> Of course, we could take this further and have arrays for each type... = > listing the types in various languages (in anticipation of a = multi-language version down the road someday). Maybe we should read the values from property files with english names as default and naming the files using locale IDs. E.g. gui.properties <- default values gui_de.properties <- values for german language gui_fr.properties <- values for french language gui_en_US.properties <- values for american-english gui_en_GB.properties <- values for british-english And e.g. the constants just include the key: public static final String DEV_TYPE_SYNTH =3D = classification.device-type.synthesizer"; public static final String DEV_TYPE_DRUM =3D = "classification.device-type.drum-machine"); A content example could be: English: classification.device-type.drum-machine =3D Drum Machine German: classification.device-type.drum-machine =3D Schlagzeugmodul Maybe it would be nice to have a "Classification" class with methods like: public String getDeviceType(String key) <- Use the system's default = locale public String getDeviceType(String key, Locale locale) <- Use a specific = locale and the constants. Multiple classifications could relatively easy be done by using a String array. But I don't know if that would be the best way. Regards, Joachim Backhaus -----Urspr=FCngliche Nachricht----- Von: jsy...@li... = [mailto:jsy...@li...]Im Auftrag von Joe = Emenaker Gesendet: Donnerstag, 24. Februar 2005 22:48 An: JSynthLib Development Betreff: Re: AW: [Jsynthlib-devel] Switch to JTree for the device list? Joachim Backhaus wrote:=20 However, it would be even nicer if we could start classifying the=20 devices as, say, synthesizer, drum machine, foot controller,=20 etc. =20 I think that's a very good idea. Hmm, should the classification be done via the Device class using a new field "classification" or "type" as String? Should constants be used for the classifcations? Else it may be that one developer classifies the driver as being a "synthesizer" and another as "synthesiser" (Great = britain). =20 If I could carve it in stone and send it over email, I would:=20 Individual synthdrivers should NOT be able to make up their = own classification string. Individual synthdrivers should NOT be able to make up their = own classification string. Individual synthdrivers should NOT be able to make up their = own classification string. The only way to do this (that I can see) which won't lead to chaos down = the road is to have defined constants in the core app, like: public static final String DEV_TYPE_SYNTH =3D "Synthesizer"; public static final String DEV_TYPE_DRUM =3D "Drum Machine"; Of course, we could take this further and have arrays for each type... = listing the types in various languages (in anticipation of a = multi-language version down the road someday). Of course, there are some judgement calls that would have to be made. = Many keyboard synths are controllers *and* synths (ie a keyboard = controller and a rackmount synth) in the same box. They're probably best = categorized together with the rackmount synths. Ok, I state an example here how I understood it: Default tree uses manufactures, e.g.: Behringer -> FCB-1010 Quasimidi -> Quasar Roland -> JV-80 -> JV-1080 And a possibility is offered (via button or so) to order it by a classification, e.g.: MIDI Controller -> Behringer FCB-1010 Synthesizer -> Quasimidi Quasar -> Roland JV-80 -> Roland JV-1080 =20 Exactly! There'd also be the possibility of multiple levels like: MIDI Controller -> Art ---> X-11 ---> X-15 Ultrafoot -> Behringer ---> FCB-1010 Synthesizer -> Roland ---> JV-80 ---> JV-1080 And we could even, someday, do multiple levels of types: MIDI Controller -> Foot Controllers -> Keyboard Controllers -> Control Surfaces Synthesizer -> Keyboard Synthesizer -> Rackmount Synthesizer Drum Units -> Drum Machines -> Drum Modules/Brains However, I'm getting a little too far ahead. I don't want to scare = anybody. I just want to open everyone's eyes to the ultimate = possibilities. What I'd like to see first, is for us to pick the = "low-hanging fruit"... which is just getting the manufacturer/model = JList going. - Joe |