~artem-anufrij/metronome/trunk

« back to all changes in this revision

Viewing changes to src/objects/Setting.vala

  • Committer: Artem Anufrij
  • Date: 2015-10-05 23:37:03 UTC
  • Revision ID: artem.anufrij@live.de-20151005233703-h2c35air89dcvsif
added files

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
namespace Metronome {
 
2
    public class Setting {
 
3
        public signal void tempo_changed (uint tempo);
 
4
        public signal void beat_changed (uint beat);
 
5
 
 
6
        public string title { get; set; }
 
7
 
 
8
        uint _tempo;
 
9
        public uint tempo {
 
10
            get { 
 
11
                return _tempo;
 
12
            } 
 
13
            set {
 
14
                _tempo = value;
 
15
                tempo_changed (value);
 
16
            }
 
17
        }
 
18
 
 
19
        uint _beat;
 
20
        public uint beat {
 
21
            get {
 
22
                return _beat;
 
23
            } 
 
24
            set {
 
25
                _beat = value;
 
26
                beat_changed (value);
 
27
            }
 
28
        }
 
29
 
 
30
        public static Setting? parse (string custom_settings) {
 
31
            Setting? return_value = null;
 
32
            debug ("parse custom setting %s", custom_settings);
 
33
            string [] split_title = custom_settings.split (":");
 
34
            if (split_title.length == 2) {
 
35
                string [] split_properties = split_title [1].split (",");
 
36
                if (split_properties.length == 2) {
 
37
                    return_value = new Setting ();
 
38
                    return_value.title = split_title [0];
 
39
                    return_value.tempo = int.parse (split_properties [0]);
 
40
                    return_value.beat = int.parse (split_properties [1]);
 
41
                }
 
42
            }
 
43
 
 
44
            return return_value;
 
45
        }
 
46
 
 
47
        public string get_setting_string () {
 
48
            return "%s:%d,%d".printf (title, (int)tempo, (int)beat);
 
49
        }
 
50
    }
 
51
}