File tree Expand file tree Collapse file tree
library/src/main/java/com/chrynan/guitarchords Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -198,7 +198,7 @@ public static GuitarChordView.Chord getChordFromString(String string){
198198 baseFret = string .substring (baseFretStart + MetaTag .BASE_FRET .length (), string .length ()).trim ();
199199 }
200200 GuitarChordView .Chord chord = new GuitarChordView .Chord ();
201- chord .setTitle ( title ) ;
201+ chord .title = title ;
202202 int b ;
203203 try {
204204 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(
1212 val opens: Set <ChordMarker .Open > by lazy { markers.filterIsInstance<ChordMarker .Open >().toSet() }
1313
1414 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+ }
1529}
Original file line number Diff line number Diff line change @@ -5,17 +5,26 @@ sealed class ChordMarker {
55 data class Note (
66 val finger : Finger ,
77 val fretNumber : FretNumber ,
8- val stringNumber : StringNumber
8+ val string : ChordString
99 ) : ChordMarker()
1010
1111 data class Bar (
1212 val finger : Finger ,
1313 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+ }
1726
18- data class Open (val stringNumber : StringNumber ) : ChordMarker()
27+ data class Open (val stringNumber : ChordString ) : ChordMarker()
1928
20- data class Muted (val stringNumber : StringNumber ) : ChordMarker()
29+ data class Muted (val stringNumber : ChordString ) : ChordMarker()
2130}
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