Changeset 704dd17c89c92120558913929eb1e86130c68ce6


Ignore:
Timestamp:
08/01/11 21:22:58 (2 years ago)
Author:
Matias De la Puente <mfpuente.ar@…>
Children:
9cd11c02b25537ee501c8e398b6baeb2e6eb7bc7
Parents:
c8a12325832a68ad842b2d51a7380aebdb4ca52a
git-committer:
Matias De la Puente <mfpuente.ar@…> (08/01/11 21:22:58)
Message:

Programmers: switch programmers to xml

Some programmer information (i.e. devices and has_* flags) aren't loaded or used. They will be replaced with command introspection

Files:
4 added
3 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • data/programmers/Makefile.am

    rc54bf3e r704dd17  
    44 
    55programmers_DATA = \ 
    6         lpc21isp.i4ucprogrammer \ 
    7         pickit2.i4ucprogrammer \ 
    8         picstartplus.i4ucprogrammer \ 
     6        lpc21isp.xml \ 
     7        pickit2.xml \ 
     8        picstartplus.xml \ 
    99        $(NULL) 
    1010 
  • gtkfrontend/main.vala

    rc8a1232 r704dd17  
    275275        // Get programmers files in $(pkgdatadir)/programmers/ 
    276276        var programmers_list = new ArrayList<File> (); 
    277         programmers_list.add_all (get_files (File.new_for_path (Config.PROGRAMMERS_DIR), ".i4ucprogrammer")); 
     277        programmers_list.add_all (get_files (File.new_for_path (Config.PROGRAMMERS_DIR), ".xml")); 
    278278         
    279279        // Get programmers files in $(HOME)/.i4uc/programmers/. If the folder doesn't exists, create it 
    280280        var home_folder = File.new_for_path (Path.build_filename (Environment.get_home_dir (), ".i4uc", "programmers")); 
    281         programmers_list.add_all (get_files (home_folder, ".i4ucprogrammer", true)); 
     281        programmers_list.add_all (get_files (home_folder, ".xml", true)); 
    282282         
    283283        // Load programmers 
     
    287287                try 
    288288                { 
    289                         programmer.open (programmer_file.get_uri ()); 
    290                         _app.programmers[programmer.id] = programmer; 
     289                        ProgrammerLoader.load (programmer, programmer_file.get_uri ()); 
     290                        _app.programmers[programmer.name] = programmer; 
    291291                } 
    292292                catch (KeyFileError e) 
  • libi4uccore/Makefile.am

    rc8a1232 r704dd17  
    7070        profiledialogview.vala \ 
    7171        programmer.vala \ 
     72        programmerloader.vala \ 
    7273        programmerslogic.vala \ 
    7374        programmerspage.vala \ 
  • libi4uccore/programmer.vala

    r074ab07 r704dd17  
    11/* programmer.vala 
    22 * 
    3  * Copyright (C) 2010  Matias De la Puente 
     3 * Copyright (C) 2010-2011  Matias De la Puente 
    44 * 
    55 * This program is free software: you can redistribute it and/or modify 
     
    2323public class I4uc.Core.Programmer : GLib.Object 
    2424{ 
    25         private const string _I4UC_PROGRAMMER = "i4uc programmer"; 
    26          
    27         private Document _programmer_file = new Document (); 
    2825        private ArrayList<string> _devices = new ArrayList<string> (); 
    2926        private ArrayList<string> _firmware_types = new ArrayList<string> (); 
    3027         
    31         public string id { set; get; } 
     28        public string name { set; get; } 
     29        public string command { set; get; } 
    3230        public bool has_serial_port { set; get; } 
    3331        public bool has_baud_rate { set; get; } 
     
    5452        public Gee.List<string> firmware_types { get { return _firmware_types; } } 
    5553         
    56         public void open (string uri) throws GLib.Error, GLib.KeyFileError 
    57         { 
    58                 var programmer_content = _programmer_file.load_contents (uri); 
    59                 var key_file = new KeyFile (); 
    60                 if (!key_file.load_from_data (programmer_content, programmer_content.length, KeyFileFlags.NONE) || 
    61                     key_file.get_start_group () != _I4UC_PROGRAMMER) 
    62                         throw new GLib.KeyFileError.GROUP_NOT_FOUND (_("The file doesn't start with the [%s] group"), _I4UC_PROGRAMMER); 
    63                  
    64                 this.id = key_file.get_string (_I4UC_PROGRAMMER, "id"); 
    65                 this.has_serial_port = key_file.get_boolean (_I4UC_PROGRAMMER, "has_serial_port"); 
    66                 this.has_baud_rate = key_file.get_boolean (_I4UC_PROGRAMMER, "has_baud_rate"); 
    67                 this.has_devices_file = key_file.get_boolean (_I4UC_PROGRAMMER, "has_devices_file"); 
    68                 this.has_devices_folder = key_file.get_boolean (_I4UC_PROGRAMMER, "has_devices_folder"); 
    69                 this.has_clock = key_file.get_boolean (_I4UC_PROGRAMMER, "has_clock"); 
    70                  
    71                 this.can_write_flash = key_file.has_key (_I4UC_PROGRAMMER, "write_flash_command"); 
    72                 this.can_read_flash = key_file.has_key (_I4UC_PROGRAMMER, "read_flash_command"); 
    73                 this.can_verify_flash = key_file.has_key (_I4UC_PROGRAMMER, "verify_flash_command"); 
    74                 this.can_erase_flash = key_file.has_key (_I4UC_PROGRAMMER, "erase_flash_command"); 
    75                 this.can_write_fuses = key_file.has_key (_I4UC_PROGRAMMER, "write_fuses_command"); 
    76                 this.can_read_fuses = key_file.has_key (_I4UC_PROGRAMMER, "read_fuses_command"); 
    77                 this.can_get_version = key_file.has_key (_I4UC_PROGRAMMER, "get_version_command"); 
    78                  
    79                 if (_can_write_flash) 
    80                         this.write_flash_command = key_file.get_string (_I4UC_PROGRAMMER, "write_flash_command"); 
    81                 if (_can_read_flash) 
    82                         this.read_flash_command = key_file.get_string (_I4UC_PROGRAMMER, "read_flash_command"); 
    83                 if (_can_verify_flash) 
    84                         this.verify_flash_command = key_file.get_string (_I4UC_PROGRAMMER, "verify_flash_command"); 
    85                 if (_can_erase_flash) 
    86                         this.erase_flash_command = key_file.get_string (_I4UC_PROGRAMMER, "erase_flash_command"); 
    87                 if (_can_write_fuses) 
    88                         this.write_fuses_command = key_file.get_string (_I4UC_PROGRAMMER, "write_fuses_command"); 
    89                 if (_can_read_fuses) 
    90                         this.read_fuses_command = key_file.get_string (_I4UC_PROGRAMMER, "read_fuses_command"); 
    91                 if (_can_get_version) 
    92                         this.get_version_command = key_file.get_string (_I4UC_PROGRAMMER, "get_version_command"); 
    93                  
    94                 _devices.clear (); 
    95                 foreach (var device in key_file.get_string_list (_I4UC_PROGRAMMER, "devices")) 
    96                         _devices.add (device); 
    97                  
    98                 _firmware_types.clear (); 
    99                 if (key_file.has_key (_I4UC_PROGRAMMER, "firmware_types")) 
    100                         foreach (var firmware_type in key_file.get_string_list (_I4UC_PROGRAMMER, "firmware_types")) 
    101                                 _firmware_types.add (firmware_type); 
    102         } 
    103          
    104         public void save (string? uri = null) throws GLib.Error, GLib.FileError 
    105         { 
    106                 var key_file = new KeyFile (); 
    107                  
    108                 key_file.set_string (_I4UC_PROGRAMMER, "id", _id); 
    109                 key_file.set_boolean (_I4UC_PROGRAMMER, "has_serial_port", _has_serial_port); 
    110                 key_file.set_boolean (_I4UC_PROGRAMMER, "has_baud_rate", _has_baud_rate); 
    111                 key_file.set_boolean (_I4UC_PROGRAMMER, "has_devices_file", _has_devices_file); 
    112                 key_file.set_boolean (_I4UC_PROGRAMMER, "has_devices_folder", _has_devices_folder); 
    113                 key_file.set_boolean (_I4UC_PROGRAMMER, "has_clock", _has_clock); 
    114                  
    115                 if (_can_write_flash) 
    116                         key_file.set_string (_I4UC_PROGRAMMER, "write_flash_command", _write_flash_command); 
    117                 if (_can_read_flash) 
    118                         key_file.set_string (_I4UC_PROGRAMMER, "read_flash_command", _read_flash_command); 
    119                 if (_can_verify_flash) 
    120                         key_file.set_string (_I4UC_PROGRAMMER, "verify_flash_command", _verify_flash_command); 
    121                 if (_can_erase_flash) 
    122                         key_file.set_string (_I4UC_PROGRAMMER, "erase_flash_command", _erase_flash_command); 
    123                 if (_can_write_fuses) 
    124                         key_file.set_string (_I4UC_PROGRAMMER, "write_fuses_command", _write_fuses_command); 
    125                 if (_can_read_fuses) 
    126                         key_file.set_string (_I4UC_PROGRAMMER, "read_fuses_command", _read_fuses_command); 
    127                 if (_can_get_version) 
    128                         key_file.set_string (_I4UC_PROGRAMMER, "get_version_command", _get_version_command); 
    129                  
    130                 key_file.set_string_list (_I4UC_PROGRAMMER, "devices", _devices.to_array ()); 
    131                 key_file.set_string_list (_I4UC_PROGRAMMER, "firmware_types", _firmware_types.to_array ()); 
    132                  
    133                 _programmer_file.save_contents (key_file.to_data (null), uri); 
    134         } 
    135          
    13654        public bool is_valid_firmware_type (string filename) 
    13755        { 
  • libi4uccore/programmerslogic.vala

    r134a360 r704dd17  
    5454                //Load programmers 
    5555                foreach (var programmer in _app.programmers.values) 
    56                         _view.page.add_programmer (programmer.id); 
     56                        _view.page.add_programmer (programmer.name); 
    5757                if (_app.settings.programmer in _app.programmers.keys) 
    5858                        _view.page.current_programmer = _app.settings.programmer; 
     
    130130                _current_programmer = _app.programmers[_view.page.current_programmer]; 
    131131                 
    132                 if (_app.settings.programmer != _current_programmer.id) 
    133                         _app.settings.programmer = _current_programmer.id; 
     132                if (_app.settings.programmer != _current_programmer.name) 
     133                        _app.settings.programmer = _current_programmer.name; 
    134134                 
    135135                var working_folder = _app.settings.working_folder; 
    136136                 
    137137                //Load devices file if the programmer has devices file 
    138                 var has_devices_file_key = _app.settings.devices_files.has_key (_current_programmer.id); 
     138                var has_devices_file_key = _app.settings.devices_files.has_key (_current_programmer.name); 
    139139                if (_current_programmer.has_devices_file) 
    140                         _view.page.current_devices_file = has_devices_file_key ? _app.settings.devices_files[_current_programmer.id] : working_folder; 
     140                        _view.page.current_devices_file = has_devices_file_key ? _app.settings.devices_files[_current_programmer.name] : working_folder; 
    141141                 
    142142                //Load devices folder if the programmer has devices folder 
    143                 var has_devices_folder_key = _app.settings.devices_folders.has_key (_current_programmer.id); 
     143                var has_devices_folder_key = _app.settings.devices_folders.has_key (_current_programmer.name); 
    144144                if (_current_programmer.has_devices_folder) 
    145                         _view.page.current_devices_folder = has_devices_folder_key ? _app.settings.devices_folders[_current_programmer.id] : working_folder; 
     145                        _view.page.current_devices_folder = has_devices_folder_key ? _app.settings.devices_folders[_current_programmer.name] : working_folder; 
    146146                 
    147147                //Load clock if the programmer has clock 
    148                 var has_clock_key = _app.settings.clocks.has_key (_current_programmer.id); 
     148                var has_clock_key = _app.settings.clocks.has_key (_current_programmer.name); 
    149149                if (_current_programmer.has_clock) 
    150                         _view.page.current_clock = has_clock_key ? _app.settings.clocks[_current_programmer.id] : ""; 
     150                        _view.page.current_clock = has_clock_key ? _app.settings.clocks[_current_programmer.name] : ""; 
    151151                 
    152152                //Load devices list 
     
    154154                foreach (var device in _current_programmer.devices) 
    155155                        _view.page.add_device (device); 
    156                 var has_device_key = _app.settings.devices.has_key (_current_programmer.id); 
     156                var has_device_key = _app.settings.devices.has_key (_current_programmer.name); 
    157157                if (has_device_key) 
    158                         _view.page.current_device = _app.settings.devices[_current_programmer.id]; 
     158                        _view.page.current_device = _app.settings.devices[_current_programmer.name]; 
    159159                 
    160160                //Load fuses if the programmer can write fuses 
    161                 var can_write_fuses_key = _app.settings.fuses.has_key (_current_programmer.id); 
     161                var can_write_fuses_key = _app.settings.fuses.has_key (_current_programmer.name); 
    162162                if (_current_programmer.can_write_fuses) 
    163                         _view.page.current_fuses = can_write_fuses_key ? _app.settings.fuses[_current_programmer.id] : ""; 
     163                        _view.page.current_fuses = can_write_fuses_key ? _app.settings.fuses[_current_programmer.name] : ""; 
    164164                 
    165165                _view.page.serial_port_visible = _current_programmer.has_serial_port; 
     
    222222                var current_devices_file = _view.page.current_devices_file; 
    223223                 
    224                 if (_app.settings.devices_files[_current_programmer.id] != current_devices_file) 
    225                         _app.settings.devices_files[_current_programmer.id] = current_devices_file; 
     224                if (_app.settings.devices_files[_current_programmer.name] != current_devices_file) 
     225                        _app.settings.devices_files[_current_programmer.name] = current_devices_file; 
    226226                 
    227227                enable_actions (); 
     
    237237                var current_devices_folder = _view.page.current_devices_folder; 
    238238                 
    239                 if (_app.settings.devices_folders[_current_programmer.id] != current_devices_folder) 
    240                         _app.settings.devices_folders[_current_programmer.id] = current_devices_folder; 
     239                if (_app.settings.devices_folders[_current_programmer.name] != current_devices_folder) 
     240                        _app.settings.devices_folders[_current_programmer.name] = current_devices_folder; 
    241241                 
    242242                enable_actions (); 
     
    252252                var current_clock = _view.page.current_clock; 
    253253                 
    254                 if (_app.settings.clocks[_current_programmer.id] != current_clock) 
    255                         _app.settings.clocks[_current_programmer.id] = current_clock; 
     254                if (_app.settings.clocks[_current_programmer.name] != current_clock) 
     255                        _app.settings.clocks[_current_programmer.name] = current_clock; 
    256256                 
    257257                enable_actions (); 
     
    267267                var current_device = _view.page.current_device; 
    268268                 
    269                 if (current_device != null && _app.settings.devices[_current_programmer.id] != current_device) 
    270                         _app.settings.devices[_current_programmer.id] = current_device; 
     269                if (current_device != null && _app.settings.devices[_current_programmer.name] != current_device) 
     270                        _app.settings.devices[_current_programmer.name] = current_device; 
    271271                 
    272272                enable_actions (); 
     
    282282                var current_fuses = _view.page.current_fuses; 
    283283                 
    284                 if (_app.settings.fuses[_current_programmer.id] != current_fuses) 
    285                         _app.settings.fuses[_current_programmer.id] = current_fuses; 
     284                if (_app.settings.fuses[_current_programmer.name] != current_fuses) 
     285                        _app.settings.fuses[_current_programmer.name] = current_fuses; 
    286286                 
    287287                enable_actions (); 
Note: See TracChangeset for help on using the changeset viewer.