59 |
#include "dimregionchooser.h" |
#include "dimregionchooser.h" |
60 |
#include "dimregionedit.h" |
#include "dimregionedit.h" |
61 |
#include "midirules.h" |
#include "midirules.h" |
62 |
|
#ifdef GLIB_THREADS |
63 |
#ifndef OLD_THREADS |
#ifndef OLD_THREADS |
64 |
#include <glibmm/threads.h> |
#include <glibmm/threads.h> |
65 |
#endif |
#endif |
66 |
|
#else |
67 |
|
#include <thread> |
68 |
|
#include <mutex> |
69 |
|
#endif |
70 |
#include "ManagedWindow.h" |
#include "ManagedWindow.h" |
71 |
|
|
72 |
class MainWindow; |
class MainWindow; |
135 |
void set_MIDIProgram(uint32_t value); |
void set_MIDIProgram(uint32_t value); |
136 |
|
|
137 |
sigc::signal<void> sig_name_changed; |
sigc::signal<void> sig_name_changed; |
138 |
VBox vbox; |
Gtk::Notebook tabs; |
139 |
|
VBox vbox[3]; |
140 |
HButtonBox buttonBox; |
HButtonBox buttonBox; |
141 |
Gtk::Button quitButton; |
Gtk::Button quitButton; |
142 |
|
|
143 |
|
// tab 1 |
144 |
Table table; |
Table table; |
145 |
StringEntry eName; |
StringEntry eName; |
146 |
BoolEntry eIsDrum; |
BoolEntry eIsDrum; |
154 |
BoolEntry ePianoReleaseMode; |
BoolEntry ePianoReleaseMode; |
155 |
NoteEntry eDimensionKeyRangeLow; |
NoteEntry eDimensionKeyRangeLow; |
156 |
NoteEntry eDimensionKeyRangeHigh; |
NoteEntry eDimensionKeyRangeHigh; |
157 |
|
|
158 |
|
// tab 2 |
159 |
|
Table table2; |
160 |
|
StringEntry eName2; |
161 |
|
StringEntry eCreationDate; |
162 |
|
StringEntryMultiLine eComments; |
163 |
|
StringEntry eProduct; |
164 |
|
StringEntry eCopyright; |
165 |
|
StringEntry eArtists; |
166 |
|
StringEntry eGenre; |
167 |
|
StringEntry eKeywords; |
168 |
|
StringEntry eEngineer; |
169 |
|
StringEntry eTechnician; |
170 |
|
StringEntry eSoftware; |
171 |
|
StringEntry eMedium; |
172 |
|
StringEntry eSource; |
173 |
|
StringEntry eSourceForm; |
174 |
|
StringEntry eCommissioned; |
175 |
|
StringEntry eSubject; |
176 |
}; |
}; |
177 |
|
|
178 |
class ProgressDialog : public Gtk::Dialog { |
class ProgressDialog : public Gtk::Dialog { |
191 |
Glib::Dispatcher& signal_error(); |
Glib::Dispatcher& signal_error(); |
192 |
void progress_callback(float fraction); |
void progress_callback(float fraction); |
193 |
float get_progress(); |
float get_progress(); |
194 |
|
void join(); |
195 |
const Glib::ustring filename; |
const Glib::ustring filename; |
196 |
Glib::ustring error_message; |
Glib::ustring error_message; |
197 |
gig::File* gig; |
gig::File* gig; |
200 |
LoaderSaverBase(const Glib::ustring filename, gig::File* gig); |
LoaderSaverBase(const Glib::ustring filename, gig::File* gig); |
201 |
|
|
202 |
private: |
private: |
203 |
|
#ifdef GLIB_THREADS |
204 |
Glib::Threads::Thread* thread; |
Glib::Threads::Thread* thread; |
205 |
|
Glib::Threads::Mutex progressMutex; |
206 |
|
#else |
207 |
|
std::thread thread; |
208 |
|
std::mutex progressMutex; |
209 |
|
#endif |
210 |
void thread_function(); |
void thread_function(); |
211 |
virtual void thread_function_sub(gig::progress_t& progress) = 0; |
virtual void thread_function_sub(gig::progress_t& progress) = 0; |
212 |
Glib::Dispatcher finished_dispatcher; |
Glib::Dispatcher finished_dispatcher; |
213 |
Glib::Dispatcher progress_dispatcher; |
Glib::Dispatcher progress_dispatcher; |
214 |
Glib::Dispatcher error_dispatcher; |
Glib::Dispatcher error_dispatcher; |
|
Glib::Threads::Mutex progressMutex; |
|
215 |
float progress; |
float progress; |
216 |
}; |
}; |
217 |
|
|