~lfaraone/ubuntu/maverick/tuxguitar/fix-mistaken-merge-20100527

« back to all changes in this revision

Viewing changes to TuxGuitar/src/org/herac/tuxguitar/gui/editors/chord/ChordNamingConvention.java

  • Committer: Bazaar Package Importer
  • Author(s): Philippe Coval
  • Date: 2008-06-19 00:30:30 UTC
  • mfrom: (1.1.1 upstream) (2.1.3 hardy)
  • Revision ID: james.westby@ubuntu.com-20080619003030-agens2gvd5m4dacu
New upstream release (Closes: #481728) also (LP: #176979, #212207)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.herac.tuxguitar.gui.editors.chord;
 
2
 
 
3
/**
 
4
 * Creates a chord name String out of given parameters
 
5
 * @author Nikola Kolarovic
 
6
 */
 
7
public class ChordNamingConvention {
 
8
        
 
9
        /** generates the chord name out of selected items */
 
10
        public String createChordName(int chordTonic,
 
11
                                      int chordIndex,
 
12
                                      int alteration,
 
13
                                      int plusMinus,
 
14
                                      boolean add,
 
15
                                      int add5,
 
16
                                      int add9,
 
17
                                      int add11,
 
18
                                      int bassTonic,
 
19
                                      boolean sharp) {
 
20
                
 
21
                StringBuffer sb = new StringBuffer();
 
22
                
 
23
                sb.append(getTonic(chordTonic,sharp));
 
24
                
 
25
                //String chordName = ((ChordInfo)ChordCreatorUtil.getChordData().getChords().get(chordIndex)).getName();
 
26
                String chordName = ChordDatabase.get(chordIndex).getName();
 
27
                if (!chordName.equals("M"))
 
28
                        sb.append(chordName);
 
29
                
 
30
                if (add)
 
31
                        sb.append("add");
 
32
                
 
33
                // TODO: ALTERATION
 
34
                if (alteration!=0) {
 
35
                        char lastChar = sb.toString().charAt(sb.toString().length()-1);
 
36
                        // if chord name ends with a number then add a backslash
 
37
                        if (lastChar>='0' && lastChar <='9')
 
38
                                sb.append("/");
 
39
                        
 
40
                        switch (alteration) {
 
41
                                case 1 : sb.append( getAdd("9",plusMinus));
 
42
                                        break;
 
43
                                case 2 : sb.append( getAdd("11",plusMinus));
 
44
                                        break;
 
45
                                case 3 : sb.append( getAdd("13",plusMinus));
 
46
                                        break;
 
47
                        }
 
48
                        
 
49
                }
 
50
                
 
51
                if (add5!=0)
 
52
                        sb.append("/").append(getAdd("5",add5));
 
53
                if (add9!=0)
 
54
                        sb.append("/").append(getAdd("9",add9));
 
55
                if (add11!=0)
 
56
                        sb.append("/").append(getAdd("11",add11));
 
57
                
 
58
                if (chordTonic!=bassTonic) {
 
59
                        sb.append(" \\");
 
60
                        sb.append(getTonic(bassTonic,sharp));
 
61
                }
 
62
                return sb.toString();
 
63
        }
 
64
        
 
65
        /** tonic marks */
 
66
        public String getTonic(int chordTonic, boolean sharp) {
 
67
                String retVal;
 
68
                switch(chordTonic) {
 
69
                        case 0 : retVal="C"; break;
 
70
                        case 1 : retVal= sharp ? "C#" : "Db"; break;
 
71
                        case 2 : retVal="D"; break;
 
72
                        case 3 : retVal= sharp ? "D#" : "Eb"; break;
 
73
                        case 4 : retVal="E"; break;
 
74
                        case 5 : retVal="F"; break;
 
75
                        case 6 : retVal= sharp ? "F#" : "Gb"; break;
 
76
                        case 7 : retVal="G"; break;
 
77
                        case 8 : retVal= sharp ? "G#" : "Ab"; break;
 
78
                        case 9 : retVal="A"; break;
 
79
                        case 10 : retVal= sharp ? "A#" : "Bb"; break;
 
80
                        default : retVal="B"; break;
 
81
                }
 
82
                return retVal;
 
83
        }
 
84
        
 
85
        /** adds + or - to an add chord String */
 
86
        private String getAdd(String number, int selectionIndex) {
 
87
                StringBuffer retVal=new StringBuffer(number);
 
88
                switch(selectionIndex) {
 
89
                        case 1 : retVal.append("+"); break;
 
90
                        case 2 : retVal.append("-"); break;
 
91
                }
 
92
                return retVal.toString();
 
93
        }
 
94
}