/[svn]/gigedit/trunk/src/gigedit/dimensionmanager.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/dimensionmanager.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1733 by persson, Sat May 3 09:54:36 2008 UTC revision 1831 by persson, Tue Feb 3 19:38:19 2009 UTC
# Line 1  Line 1 
1  /*                                                         -*- c++ -*-  /*                                                         -*- c++ -*-
2   * Copyright (C) 2006-2008 Andreas Persson   * Copyright (C) 2006-2009 Andreas Persson
3   *   *
4   * This program is free software; you can redistribute it and/or   * This program is free software; you can redistribute it and/or
5   * modify it under the terms of the GNU General Public License as   * modify it under the terms of the GNU General Public License as
# Line 26  Line 26 
26  #include <gtkmm/spinbutton.h>  #include <gtkmm/spinbutton.h>
27  #include <gtkmm/table.h>  #include <gtkmm/table.h>
28    
29    #include "global.h"
30    
31  // returns a human readable name of the given dimension type  // returns a human readable name of the given dimension type
32  static Glib::ustring __dimTypeAsString(gig::dimension_t d) {  static Glib::ustring __dimTypeAsString(gig::dimension_t d) {
33      char buf[32];      char buf[32];
34      switch (d) {      switch (d) {
35          case gig::dimension_none:          case gig::dimension_none:
36              return "None";              return _("None");
37          case gig::dimension_samplechannel:          case gig::dimension_samplechannel:
38              return "Sample Channel";              return _("Sample Channel");
39          case gig::dimension_layer:          case gig::dimension_layer:
40              return "Layer";              return _("Layer");
41          case gig::dimension_velocity:          case gig::dimension_velocity:
42              return "Velocity";              return _("Velocity");
43          case gig::dimension_channelaftertouch:          case gig::dimension_channelaftertouch:
44              return "Aftertouch";              return _("Aftertouch");
45          case gig::dimension_releasetrigger:          case gig::dimension_releasetrigger:
46              return "Release Trigger";              return _("Release Trigger");
47          case gig::dimension_keyboard:          case gig::dimension_keyboard:
48              return "Keyswitching";              return _("Keyswitching");
49          case gig::dimension_roundrobin:          case gig::dimension_roundrobin:
50              return "Round Robin";              return _("Round Robin");
51          case gig::dimension_random:          case gig::dimension_random:
52              return "Random Generator";              return _("Random Generator");
53          case gig::dimension_smartmidi:          case gig::dimension_smartmidi:
54              return "Smart MIDI";              return _("Smart MIDI");
55          case gig::dimension_roundrobinkeyboard:          case gig::dimension_roundrobinkeyboard:
56              return "Keyboard Round Robin";              return _("Keyboard Round Robin");
57          case gig::dimension_modwheel:          case gig::dimension_modwheel:
58              return "Modulation Wheel";              return _("Modulation Wheel");
59          case gig::dimension_breath:          case gig::dimension_breath:
60              return "Breath Ctrl.";              return _("Breath Ctrl.");
61          case gig::dimension_foot:          case gig::dimension_foot:
62              return "Foot Ctrl.";              return _("Foot Ctrl.");
63          case gig::dimension_portamentotime:          case gig::dimension_portamentotime:
64              return "Portamento Time Ctrl.";              return _("Portamento Time Ctrl.");
65          case gig::dimension_effect1:          case gig::dimension_effect1:
66              return "Effect Ctrl. 1";              return _("Effect Ctrl. 1");
67          case gig::dimension_effect2:          case gig::dimension_effect2:
68              return "Effect Ctrl. 2";              return _("Effect Ctrl. 2");
69          case gig::dimension_genpurpose1:          case gig::dimension_genpurpose1:
70              return "General Purpose Ctrl. 1";              return _("General Purpose Ctrl. 1");
71          case gig::dimension_genpurpose2:          case gig::dimension_genpurpose2:
72              return "General Purpose Ctrl. 2";              return _("General Purpose Ctrl. 2");
73          case gig::dimension_genpurpose3:          case gig::dimension_genpurpose3:
74              return "General Purpose Ctrl. 3";              return _("General Purpose Ctrl. 3");
75          case gig::dimension_genpurpose4:          case gig::dimension_genpurpose4:
76              return "General Purpose Ctrl. 4";              return _("General Purpose Ctrl. 4");
77          case gig::dimension_sustainpedal:          case gig::dimension_sustainpedal:
78              return "Sustain Pedal";              return _("Sustain Pedal");
79          case gig::dimension_portamento:          case gig::dimension_portamento:
80              return "Portamento Ctrl.";              return _("Portamento Ctrl.");
81          case gig::dimension_sostenutopedal:          case gig::dimension_sostenutopedal:
82              return "Sostenuto Pedal";              return _("Sostenuto Pedal");
83          case gig::dimension_softpedal:          case gig::dimension_softpedal:
84              return "Soft Pedal";              return _("Soft Pedal");
85          case gig::dimension_genpurpose5:          case gig::dimension_genpurpose5:
86              return "General Purpose Ctrl. 5";              return _("General Purpose Ctrl. 5");
87          case gig::dimension_genpurpose6:          case gig::dimension_genpurpose6:
88              return "General Purpose Ctrl. 6";              return _("General Purpose Ctrl. 6");
89          case gig::dimension_genpurpose7:          case gig::dimension_genpurpose7:
90              return "General Purpose Ctrl. 7";              return _("General Purpose Ctrl. 7");
91          case gig::dimension_genpurpose8:          case gig::dimension_genpurpose8:
92              return "General Purpose Ctrl. 8";              return _("General Purpose Ctrl. 8");
93          case gig::dimension_effect1depth:          case gig::dimension_effect1depth:
94              return "Effect 1 Depth";              return _("Effect 1 Depth");
95          case gig::dimension_effect2depth:          case gig::dimension_effect2depth:
96              return "Effect 2 Depth";              return _("Effect 2 Depth");
97          case gig::dimension_effect3depth:          case gig::dimension_effect3depth:
98              return "Effect 3 Depth";              return _("Effect 3 Depth");
99          case gig::dimension_effect4depth:          case gig::dimension_effect4depth:
100              return "Effect 4 Depth";              return _("Effect 4 Depth");
101          case gig::dimension_effect5depth:          case gig::dimension_effect5depth:
102              return "Effect 5 Depth";              return _("Effect 5 Depth");
103          default:          default:
104              sprintf(buf, "Unknown Type (0x%x) !!!", d);              sprintf(buf, "Unknown Type (0x%x) !!!", d);
105              return buf;              return buf;
# Line 108  static Glib::ustring __dimTypeAsString(g Line 110  static Glib::ustring __dimTypeAsString(g
110  static Glib::ustring __dimDescriptionAsString(gig::dimension_t d) {  static Glib::ustring __dimDescriptionAsString(gig::dimension_t d) {
111      switch (d) {      switch (d) {
112          case gig::dimension_none:          case gig::dimension_none:
113              return "Dimension not in use";              return _("Dimension not in use");
114          case gig::dimension_samplechannel:          case gig::dimension_samplechannel:
115              return "If used sample has more than one channel (thus is not mono)";              return _("If used sample has more than one channel (thus is not mono)");
116          case gig::dimension_layer:          case gig::dimension_layer:
117              return "For layering of up to 8 instruments (and eventually crossfading of 2 or 4 layers";              return _("For layering of up to 8 instruments (and eventually crossfading of 2 or 4 layers");
118          case gig::dimension_velocity:          case gig::dimension_velocity:
119              return "Key Velocity (this is the only dimension in gig2 where the ranges can exactly be defined)";              return _("Key Velocity (this is the only dimension in gig2 where the ranges can exactly be defined)");
120          case gig::dimension_channelaftertouch:          case gig::dimension_channelaftertouch:
121              return "Channel Key Pressure";              return _("Channel Key Pressure");
122          case gig::dimension_releasetrigger:          case gig::dimension_releasetrigger:
123              return "Special dimension for triggering samples on releasing a key";              return _("Special dimension for triggering samples on releasing a key");
124          case gig::dimension_keyboard:          case gig::dimension_keyboard:
125              return "Dimension for keyswitching (keyboard)";              return _("Dimension for keyswitching (keyboard)");
126          case gig::dimension_roundrobin:          case gig::dimension_roundrobin:
127              return "Different samples triggered each time a note is played, dimension regions selected in sequence";              return _("Different samples triggered each time a note is played, dimension regions selected in sequence");
128          case gig::dimension_random:          case gig::dimension_random:
129              return "Different samples triggered each time a note is played, random order";              return _("Different samples triggered each time a note is played, random order");
130          case gig::dimension_smartmidi:          case gig::dimension_smartmidi:
131              return "For MIDI tools like legato and repetition mode";              return _("For MIDI tools like legato and repetition mode");
132          case gig::dimension_roundrobinkeyboard:          case gig::dimension_roundrobinkeyboard:
133              return "Different samples triggered each time a note is played, any key advances the counter";              return _("Different samples triggered each time a note is played, any key advances the counter");
134          case gig::dimension_modwheel:          case gig::dimension_modwheel:
135              return "MIDI Controller 1";              return _("MIDI Controller 1");
136          case gig::dimension_breath:          case gig::dimension_breath:
137              return "MIDI Controller 2";              return _("MIDI Controller 2");
138          case gig::dimension_foot:          case gig::dimension_foot:
139              return "MIDI Controller 4";              return _("MIDI Controller 4");
140          case gig::dimension_portamentotime:          case gig::dimension_portamentotime:
141              return "MIDI Controller 5";              return _("MIDI Controller 5");
142          case gig::dimension_effect1:          case gig::dimension_effect1:
143              return "MIDI Controller 12";              return _("MIDI Controller 12");
144          case gig::dimension_effect2:          case gig::dimension_effect2:
145              return "MIDI Controller 13";              return _("MIDI Controller 13");
146          case gig::dimension_genpurpose1:          case gig::dimension_genpurpose1:
147              return "Slider, MIDI Controller 16";              return _("Slider, MIDI Controller 16");
148          case gig::dimension_genpurpose2:          case gig::dimension_genpurpose2:
149              return "Slider, MIDI Controller 17";              return _("Slider, MIDI Controller 17");
150          case gig::dimension_genpurpose3:          case gig::dimension_genpurpose3:
151              return "Slider, MIDI Controller 18";              return _("Slider, MIDI Controller 18");
152          case gig::dimension_genpurpose4:          case gig::dimension_genpurpose4:
153              return "Slider, MIDI Controller 19";              return _("Slider, MIDI Controller 19");
154          case gig::dimension_sustainpedal:          case gig::dimension_sustainpedal:
155              return "MIDI Controller 64";              return _("MIDI Controller 64");
156          case gig::dimension_portamento:          case gig::dimension_portamento:
157              return "MIDI Controller 65";              return _("MIDI Controller 65");
158          case gig::dimension_sostenutopedal:          case gig::dimension_sostenutopedal:
159              return "MIDI Controller 66";              return _("MIDI Controller 66");
160          case gig::dimension_softpedal:          case gig::dimension_softpedal:
161              return "MIDI Controller 67";              return _("MIDI Controller 67");
162          case gig::dimension_genpurpose5:          case gig::dimension_genpurpose5:
163              return "Button, MIDI Controller 80";              return _("Button, MIDI Controller 80");
164          case gig::dimension_genpurpose6:          case gig::dimension_genpurpose6:
165              return "Button, MIDI Controller 81";              return _("Button, MIDI Controller 81");
166          case gig::dimension_genpurpose7:          case gig::dimension_genpurpose7:
167              return "Button, MIDI Controller 82";              return _("Button, MIDI Controller 82");
168          case gig::dimension_genpurpose8:          case gig::dimension_genpurpose8:
169              return "Button, MIDI Controller 83";              return _("Button, MIDI Controller 83");
170          case gig::dimension_effect1depth:          case gig::dimension_effect1depth:
171              return "MIDI Controller 91";              return _("MIDI Controller 91");
172          case gig::dimension_effect2depth:          case gig::dimension_effect2depth:
173              return "MIDI Controller 92";              return _("MIDI Controller 92");
174          case gig::dimension_effect3depth:          case gig::dimension_effect3depth:
175              return "MIDI Controller 93";              return _("MIDI Controller 93");
176          case gig::dimension_effect4depth:          case gig::dimension_effect4depth:
177              return "MIDI Controller 94";              return _("MIDI Controller 94");
178          case gig::dimension_effect5depth:          case gig::dimension_effect5depth:
179              return "MIDI Controller 95";              return _("MIDI Controller 95");
180          default:          default:
181              return "Please report this !!!";              return _("Please report this !!!");
182      }      }
183  }  }
184    
185  DimensionManager::DimensionManager() :  DimensionManager::DimensionManager() :
186  addButton(Gtk::Stock::ADD), removeButton(Gtk::Stock::REMOVE)  addButton(Gtk::Stock::ADD), removeButton(Gtk::Stock::REMOVE)
187  {  {
188      set_title("Dimensions of selected Region");      set_title(_("Dimensions of selected Region"));
189      add(vbox);      add(vbox);
190      scrolledWindow.add(treeView);      scrolledWindow.add(treeView);
191      vbox.pack_start(scrolledWindow);      vbox.pack_start(scrolledWindow);
# Line 200  addButton(Gtk::Stock::ADD), removeButton Line 202  addButton(Gtk::Stock::ADD), removeButton
202      // setup the table      // setup the table
203      refTableModel = Gtk::ListStore::create(tableModel);      refTableModel = Gtk::ListStore::create(tableModel);
204      treeView.set_model(refTableModel);      treeView.set_model(refTableModel);
205      treeView.append_column("Dimension Type", tableModel.m_dim_type);      treeView.append_column(_("Dimension Type"), tableModel.m_dim_type);
206      treeView.append_column("Bits", tableModel.m_bits);      treeView.append_column(_("Bits"), tableModel.m_bits);
207      treeView.append_column("Zones", tableModel.m_zones);      treeView.append_column(_("Zones"), tableModel.m_zones);
208      treeView.append_column("Description", tableModel.m_description);      treeView.append_column(_("Description"), tableModel.m_description);
209      treeView.show();      treeView.show();
210    
211      addButton.signal_clicked().connect(      addButton.signal_clicked().connect(
# Line 248  void DimensionManager::set_region(gig::R Line 250  void DimensionManager::set_region(gig::R
250    
251  void DimensionManager::addDimension() {  void DimensionManager::addDimension() {
252      try {      try {
253          Gtk::Dialog dialog("New Dimension", true /*modal*/);          Gtk::Dialog dialog(_("New Dimension"), true /*modal*/);
254          // add dimension type combo box to the dialog          // add dimension type combo box to the dialog
255          Glib::RefPtr<Gtk::ListStore> refComboModel = Gtk::ListStore::create(comboModel);          Glib::RefPtr<Gtk::ListStore> refComboModel = Gtk::ListStore::create(comboModel);
256          for (int i = 0x01; i < 0xff; i++) {          for (int i = 0x01; i < 0xff; i++) {
# Line 261  void DimensionManager::addDimension() { Line 263  void DimensionManager::addDimension() {
263              }              }
264          }          }
265          Gtk::Table table(2, 2);          Gtk::Table table(2, 2);
266          Gtk::Label labelDimType("Dimension:", Gtk::ALIGN_LEFT);          Gtk::Label labelDimType(_("Dimension:"), Gtk::ALIGN_LEFT);
267          Gtk::ComboBox comboDimType;          Gtk::ComboBox comboDimType;
268          comboDimType.set_model(refComboModel);          comboDimType.set_model(refComboModel);
269          comboDimType.pack_start(comboModel.m_type_id);          comboDimType.pack_start(comboModel.m_type_id);
270          comboDimType.pack_start(comboModel.m_type_name);          comboDimType.pack_start(comboModel.m_type_name);
271          Gtk::Label labelZones("Zones:", Gtk::ALIGN_LEFT);          Gtk::Label labelZones(_("Zones:"), Gtk::ALIGN_LEFT);
272          table.attach(labelDimType, 0, 1, 0, 1);          table.attach(labelDimType, 0, 1, 0, 1);
273          table.attach(comboDimType, 1, 2, 0, 1);          table.attach(comboDimType, 1, 2, 0, 1);
274          table.attach(labelZones, 0, 1, 1, 2);          table.attach(labelZones, 0, 1, 1, 2);
# Line 339  void DimensionManager::addDimension() { Line 341  void DimensionManager::addDimension() {
341          // notify that the changes are over (i.e. to avoid dead locks)          // notify that the changes are over (i.e. to avoid dead locks)
342          region_changed_signal.emit(region);          region_changed_signal.emit(region);
343          // show error message          // show error message
344          Glib::ustring txt = "Could not add dimension: " + e.Message;          Glib::ustring txt = _("Could not add dimension: ") + e.Message;
345          Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR);          Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR);
346          msg.run();          msg.run();
347      }      }
# Line 364  void DimensionManager::removeDimension() Line 366  void DimensionManager::removeDimension()
366              // notify that the changes are over (i.e. to avoid dead locks)              // notify that the changes are over (i.e. to avoid dead locks)
367              region_changed_signal.emit(region);              region_changed_signal.emit(region);
368              // show error message              // show error message
369              Glib::ustring txt = "Could not remove dimension: " + e.Message;              Glib::ustring txt = _("Could not remove dimension: ") + e.Message;
370              Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR);              Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR);
371              msg.run();              msg.run();
372          }          }

Legend:
Removed from v.1733  
changed lines
  Added in v.1831

  ViewVC Help
Powered by ViewVC