File tree 8 files changed +464
-1822
lines changed
library/src/main/java/com/chrynan/guitarchords
8 files changed +464
-1822
lines changed Original file line number Diff line number Diff line change @@ -198,7 +198,7 @@ public static GuitarChordView.Chord getChordFromString(String string){
198
198
baseFret = string .substring (baseFretStart + MetaTag .BASE_FRET .length (), string .length ()).trim ();
199
199
}
200
200
GuitarChordView .Chord chord = new GuitarChordView .Chord ();
201
- chord .setTitle ( title ) ;
201
+ chord .title = title ;
202
202
int b ;
203
203
try {
204
204
b = (Integer .valueOf (baseFret ) < 0 ) ? 0 : Integer .valueOf (baseFret );
Original file line number Diff line number Diff line change @@ -12,4 +12,18 @@ data class Chord(
12
12
val opens: Set <ChordMarker .Open > by lazy { markers.filterIsInstance<ChordMarker .Open >().toSet() }
13
13
14
14
val mutes: Set <ChordMarker .Muted > by lazy { markers.filterIsInstance<ChordMarker .Muted >().toSet() }
15
+
16
+ operator fun contains (marker : ChordMarker ) = markers.contains(marker)
17
+
18
+ fun getMarkersOnString (number : Int ): List <ChordMarker > {
19
+ return markers.filter {
20
+ when {
21
+ it is ChordMarker .Note && it.string.number == number -> true
22
+ it is ChordMarker .Bar && (number in it.startString.number.. it.endString.number) -> true
23
+ it is ChordMarker .Open && it.stringNumber.number == number -> true
24
+ it is ChordMarker .Muted && it.stringNumber.number == number -> true
25
+ else -> false
26
+ }
27
+ }
28
+ }
15
29
}
Original file line number Diff line number Diff line change @@ -5,17 +5,26 @@ sealed class ChordMarker {
5
5
data class Note (
6
6
val finger : Finger ,
7
7
val fretNumber : FretNumber ,
8
- val stringNumber : StringNumber
8
+ val string : ChordString
9
9
) : ChordMarker()
10
10
11
11
data class Bar (
12
12
val finger : Finger ,
13
13
val fretNumber : FretNumber ,
14
- val startString : StringNumber ,
15
- val endString : StringNumber
16
- ) : ChordMarker()
14
+ val startString : ChordString ,
15
+ val endString : ChordString
16
+ ) : ChordMarker() {
17
+
18
+ val notes: Set <Note > by lazy {
19
+ (startString.number.. endString.number).map {
20
+ Note (finger = finger,
21
+ fretNumber = fretNumber,
22
+ string = ChordString (number = it))
23
+ }.toSet()
24
+ }
25
+ }
17
26
18
- data class Open (val stringNumber : StringNumber ) : ChordMarker()
27
+ data class Open (val stringNumber : ChordString ) : ChordMarker()
19
28
20
- data class Muted (val stringNumber : StringNumber ) : ChordMarker()
29
+ data class Muted (val stringNumber : ChordString ) : ChordMarker()
21
30
}
Original file line number Diff line number Diff line change
1
+ package com.chrynan.guitarchords.model
2
+
3
+ interface ChordParser <T > {
4
+
5
+ fun parse (item : T ): Chord
6
+ }
Original file line number Diff line number Diff line change
1
+ package com.chrynan.guitarchords.model
2
+
3
+ data class ChordString (
4
+ val number : Int ,
5
+ val label : String? = null
6
+ )
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments