15
15
int filecopy = 0 ;
16
16
17
17
int intimer = 0 ;
18
+ int dofullup = 0 ;
18
19
int vst2filehit = 0 ;
19
20
20
21
size_t find_last (std::string searchstr, std::string searcharg)
85
86
86
87
if (vst2filehit == 1 )
87
88
{
89
+ if (dofullup == 1 )
90
+ {
88
91
std::string sourcename = linvst;
89
92
std::ifstream source (sourcename.c_str (), std::ios::binary);
90
93
std::ofstream dest (convertname.c_str (), std::ios::binary);
91
94
dest << source.rdbuf ();
92
95
source.close ();
93
96
dest.close ();
94
- }
97
+ }
98
+ else
99
+ {
100
+ test = std::ifstream (convertname).good ();
101
+
102
+ if (!test)
103
+ {
104
+ std::string sourcename = linvst;
105
+ std::ifstream source (sourcename.c_str (), std::ios::binary);
106
+ std::ofstream dest (convertname.c_str (), std::ios::binary);
107
+ dest << source.rdbuf ();
108
+ source.close ();
109
+ dest.close ();
110
+ }
111
+ }
112
+ }
95
113
}
96
114
97
115
if (fs)
@@ -139,7 +157,18 @@ filehit = 1;
139
157
gboolean dolabelupdate (gpointer data)
140
158
{
141
159
142
- gtk_button_set_label (GTK_BUTTON (data), " Start" );
160
+ gtk_button_set_label (GTK_BUTTON (data), " Update Newly Added Plugins" );
161
+
162
+ intimer = 0 ;
163
+
164
+ return FALSE ;
165
+
166
+ }
167
+
168
+ gboolean dolabelupdate2 (gpointer data)
169
+ {
170
+
171
+ gtk_button_set_label (GTK_BUTTON (data), " Update All Plugins (Upgrade All Plugins)" );
143
172
144
173
intimer = 0 ;
145
174
@@ -201,15 +230,72 @@ void buttoncallback(GtkFileChooser *button, gpointer data)
201
230
202
231
}
203
232
233
+ void buttoncallback2 (GtkFileChooser *button, gpointer data)
234
+ {
235
+ std::string name;
236
+
237
+ if ((filehit == 1 ) && (folderhit == 1 ) && (intimer == 0 ))
238
+ {
239
+
240
+ name = filepath;
241
+
242
+ if (name.find (" linvst.so" ) == std::string::npos)
243
+ {
244
+ gtk_button_set_label (GTK_BUTTON (button), " Not Found" );
245
+
246
+ filecopy = 0 ;
247
+ filehit = 0 ;
248
+ folderhit = 0 ;
249
+
250
+ intimer = 1 ;
251
+
252
+ g_timeout_add_seconds (3 , dolabelupdate2, (GtkWidget *)data);
253
+
254
+ return ;
255
+ }
256
+
257
+ dofullup = 1 ;
258
+
259
+ if (doconvert (filepath, folderpath) == 1 )
260
+ {
261
+ gtk_button_set_label (GTK_BUTTON (button), " Not Found" );
262
+
263
+ filecopy = 0 ;
264
+ filehit = 0 ;
265
+ folderhit = 0 ;
266
+ dofullup = 0 ;
267
+
268
+ intimer = 1 ;
269
+
270
+ g_timeout_add_seconds (3 , dolabelupdate2, (GtkWidget *)data);
271
+
272
+ return ;
273
+ }
274
+
275
+ filecopy = 0 ;
276
+ filehit = 1 ;
277
+ folderhit = 0 ;
278
+ dofullup = 0 ;
279
+
280
+ gtk_button_set_label (GTK_BUTTON (button), " Done" );
281
+
282
+ intimer = 1 ;
283
+
284
+ g_timeout_add_seconds (3 , dolabelupdate2, (GtkWidget *)data);
285
+
286
+ }
287
+ }
288
+
289
+
204
290
int main (int argc, char *argv[])
205
291
{
206
- GtkWidget *window, *folderselect, *fileselect, *spacertext, *spacertext2, *spacertext3, *vbox, *button;
292
+ GtkWidget *window, *folderselect, *fileselect, *spacertext, *spacertext2, *spacertext3, *vbox, *button, *button2 ;
207
293
GtkFileFilter *extfilter;
208
294
209
295
gtk_init (&argc, &argv);
210
296
211
297
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
212
- gtk_window_set_default_size (GTK_WINDOW (window), 300 , 300 );
298
+ gtk_window_set_default_size (GTK_WINDOW (window), 600 , 300 );
213
299
gtk_window_set_title (GTK_WINDOW (window), " LinVst" );
214
300
gtk_container_set_border_width (GTK_CONTAINER (window), 8 );
215
301
@@ -221,7 +307,10 @@ int main (int argc, char *argv[])
221
307
fileselect = gtk_file_chooser_button_new (" Choose linvst.so" , GTK_FILE_CHOOSER_ACTION_OPEN);
222
308
223
309
button = gtk_button_new ();
224
- gtk_button_set_label (GTK_BUTTON (button), " Start" );
310
+ gtk_button_set_label (GTK_BUTTON (button), " Update Newly Added Plugins" );
311
+
312
+ button2 = gtk_button_new ();
313
+ gtk_button_set_label (GTK_BUTTON (button2), " Update All Plugins (Upgrade All Plugins)" );
225
314
226
315
vbox = gtk_vbox_new (FALSE , 8 );
227
316
gtk_box_pack_start (GTK_BOX (vbox), spacertext, FALSE , FALSE , 0 );
@@ -230,11 +319,13 @@ int main (int argc, char *argv[])
230
319
gtk_box_pack_start (GTK_BOX (vbox), folderselect, FALSE , FALSE , 0 );
231
320
gtk_box_pack_start (GTK_BOX (vbox), spacertext3, FALSE , FALSE , 0 );
232
321
gtk_box_pack_start (GTK_BOX (vbox), button, FALSE , FALSE , 0 );
322
+ gtk_box_pack_start (GTK_BOX (vbox), button2, FALSE , FALSE , 0 );
233
323
234
324
g_signal_connect (G_OBJECT (window), " destroy" , G_CALLBACK (quitcallback), NULL );
235
325
g_signal_connect (G_OBJECT (folderselect), " selection_changed" , G_CALLBACK (foldercallback), NULL );
236
326
g_signal_connect (G_OBJECT (fileselect), " selection_changed" , G_CALLBACK (filecallback), NULL );
237
327
g_signal_connect (G_OBJECT (button), " clicked" , G_CALLBACK (buttoncallback), button);
328
+ g_signal_connect (G_OBJECT (button2), " clicked" , G_CALLBACK (buttoncallback2), button2);
238
329
239
330
gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER (folderselect), TRUE );
240
331
gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER (fileselect), TRUE );
0 commit comments