- if (s.right_str(2) == "_8") // Down one octave
- {
- octave_dir_ = DOWN;
- s = s.left_str(s.length_i() - 2);
- }
- else if (s.right_str(2) == "^8") // Up one octave
- {
- octave_dir_ = UP;
- s = s.left_str(s.length_i() - 2);
- }
- else
- octave_dir_ = CENTER;
-
- bool found = false;
- SCM c = get_property ("supportedClefTypes",0);
- for (; gh_pair_p(c); c = gh_cdr (c))
- {
- SCM entry = gh_car (c);
- SCM name = gh_car (entry);
-
- if (ly_scm2string (name) != s)
- continue;
-
- SCM glyph = gh_cadr (entry);
- SCM pos = gh_caddr (entry);
-
- clef_type_str_ = ly_scm2string (glyph);
- clef_position_i_ = gh_scm2int (pos);
- found = true;
- break;
- }
-
- if (!found)
- {
- switch(toupper (s[0]))
- {
- case 'F':
- clef_type_str_ = "bass";
- break;
- case 'G':
- clef_type_str_ = "treble";
- break;
- case 'C':
- clef_type_str_ = "alto";
- break;
- default:
- return false;
- }
- clef_position_i_ = 2 * (s[1] - '0') - 6;
- }