Changeset 268
- Timestamp:
- 08/18/08 14:44:00 (4 years ago)
- Location:
- trunk/fm_gui
- Files:
-
- 10 modified
-
data/fm_cdj.glade (modified) (25 diffs)
-
src/base.c (modified) (1 diff)
-
src/fm_beatcalc_gui.c (modified) (5 diffs)
-
src/fm_beatcalc_gui.h (modified) (2 diffs)
-
src/fm_cdj.h (modified) (1 diff)
-
src/fm_cdj_gui.c (modified) (9 diffs)
-
src/fm_cdj_gui.h (modified) (2 diffs)
-
src/main.c (modified) (2 diffs)
-
src/marlin-window-menu.c (modified) (2 diffs)
-
src/marlin-window.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/fm_gui/data/fm_cdj.glade
r133 r268 1 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 2 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> 3 <!-- Generated with glade33 <!--Generated with glade3 3.4.5 on Wed Jul 16 11:53:17 2008 4 4 Version: 3.0.1 5 5 Date: Fri Sep 15 22:26:58 2006 … … 9 9 <glade-interface> 10 10 <widget class="GtkWindow" id="cdj_window"> 11 <property name="visible">True</property>12 11 <property name="title">CDJ %n</property> 13 12 <property name="resizable">False</property> … … 46 45 <property name="height_request">16</property> 47 46 <property name="visible">True</property> 48 <property name="xalign">0 ,000000</property>49 <property name="yalign">0 ,000000</property>47 <property name="xalign">0</property> 48 <property name="yalign">0</property> 50 49 <property name="label" translatable="yes"><span size="x-small" color="Cyan">PITCH</span></property> 51 50 <property name="use_markup">True</property> … … 61 60 <property name="height_request">16</property> 62 61 <property name="visible">True</property> 63 <property name="xalign">0 ,000000</property>64 <property name="yalign">0 ,000000</property>62 <property name="xalign">0</property> 63 <property name="yalign">0</property> 65 64 <property name="label" translatable="yes"><span size="x-small" color="Cyan">BPM</span></property> 66 65 <property name="use_markup">True</property> … … 76 75 <property name="height_request">16</property> 77 76 <property name="visible">True</property> 78 <property name="xalign">0 ,000000</property>79 <property name="yalign">0 ,000000</property>77 <property name="xalign">0</property> 78 <property name="yalign">0</property> 80 79 <property name="label" translatable="yes"><span size="small" color="Cyan">NO FILE LOADED</span></property> 81 80 <property name="use_markup">True</property> … … 92 91 <property name="height_request">24</property> 93 92 <property name="visible">True</property> 94 <property name="xalign">0 ,000000</property>95 <property name="yalign">0 ,000000</property>93 <property name="xalign">0</property> 94 <property name="yalign">0</property> 96 95 <property name="label" translatable="yes"><span size="xx-large" color="Cyan"><b>- 0:00.000</b></span></property> 97 96 <property name="use_markup">True</property> … … 107 106 <property name="height_request">16</property> 108 107 <property name="visible">True</property> 109 <property name="xalign">0 ,000000</property>110 <property name="yalign">0 ,000000</property>108 <property name="xalign">0</property> 109 <property name="yalign">0</property> 111 110 <property name="label" translatable="yes"><span size="x-large" color="Cyan"><b>+0.00</b></span></property> 112 111 <property name="use_markup">True</property> … … 122 121 <property name="height_request">16</property> 123 122 <property name="visible">True</property> 124 <property name="xalign">0 ,000000</property>125 <property name="yalign">0 ,000000</property>123 <property name="xalign">0</property> 124 <property name="yalign">0</property> 126 125 <property name="label" translatable="yes"><span size="xx-large" color="Cyan"><b>---.-</b></span></property> 127 126 <property name="use_markup">True</property> … … 143 142 <property name="height_request">16</property> 144 143 <property name="visible">True</property> 145 <property name="xalign">0 ,000000</property>146 <property name="yalign">0 ,000000</property>144 <property name="xalign">0</property> 145 <property name="yalign">0</property> 147 146 <property name="label" translatable="yes"><span size="x-small" color="Cyan">POSITION</span></property> 148 147 <property name="use_markup">True</property> … … 205 204 <property name="height_request">21</property> 206 205 <property name="visible">True</property> 206 <property name="response_id">0</property> 207 207 <child> 208 208 <widget class="GtkLabel" id="label1"> … … 223 223 <property name="height_request">21</property> 224 224 <property name="visible">True</property> 225 <property name="response_id">0</property> 225 226 <child> 226 227 <widget class="GtkLabel" id="label3"> … … 245 246 <property name="can_focus">True</property> 246 247 <property name="use_underline">True</property> 248 <property name="response_id">0</property> 247 249 </widget> 248 250 <packing> … … 260 262 <property name="can_focus">True</property> 261 263 <property name="use_underline">True</property> 264 <property name="response_id">0</property> 262 265 </widget> 263 266 <packing> … … 268 271 </child> 269 272 <child> 270 <widget class="GtkButton" id="button 5">273 <widget class="GtkButton" id="button_beatcalc"> 271 274 <property name="width_request">29</property> 272 275 <property name="height_request">21</property> 273 276 <property name="visible">True</property> 274 <property name="sensitive">False</property>275 277 <property name="can_focus">True</property> 278 <property name="label" translatable="yes">BC</property> 276 279 <property name="use_underline">True</property> 280 <property name="response_id">0</property> 277 281 </widget> 278 282 <packing> … … 297 301 <property name="visible">True</property> 298 302 <property name="can_focus">True</property> 303 <property name="response_id">0</property> 299 304 <child> 300 305 <widget class="GtkImage" id="image_play"> 301 306 <property name="visible">True</property> 307 <property name="stock">gtk-missing-image</property> 302 308 </widget> 303 309 </child> … … 315 321 <property name="can_focus">True</property> 316 322 <property name="relief">GTK_RELIEF_HALF</property> 317 <property name="yalign">0,480000</property> 323 <property name="yalign">0</property> 324 <property name="response_id">0</property> 318 325 <child> 319 326 <widget class="GtkImage" id="image_cue"> 320 327 <property name="visible">True</property> 328 <property name="stock">gtk-missing-image</property> 321 329 </widget> 322 330 </child> … … 341 349 <property name="n_columns">2</property> 342 350 <child> 343 <widget class="GtkButton" id="button_skip_ a">351 <widget class="GtkButton" id="button_skip_f"> 344 352 <property name="visible">True</property> 345 353 <property name="can_focus">True</property> 346 <child> 347 <widget class="GtkImage" id="image10"> 348 <property name="visible">True</property> 349 <property name="xalign">0,000000</property> 350 <property name="yalign">0,000000</property> 351 <property name="stock">gtk-media-rewind</property> 352 </widget> 353 </child> 354 </widget> 355 <packing> 354 <property name="response_id">0</property> 355 <child> 356 <widget class="GtkImage" id="image7"> 357 <property name="visible">True</property> 358 <property name="xalign">0</property> 359 <property name="yalign">0</property> 360 <property name="stock">gtk-goto-last</property> 361 </widget> 362 </child> 363 </widget> 364 <packing> 365 <property name="left_attach">1</property> 366 <property name="right_attach">2</property> 367 <property name="top_attach">2</property> 368 <property name="bottom_attach">3</property> 356 369 <property name="x_options">GTK_FILL</property> 357 370 <property name="y_options"></property> … … 359 372 </child> 360 373 <child> 361 <widget class="GtkButton" id="button_skip_ b">374 <widget class="GtkButton" id="button_skip_e"> 362 375 <property name="visible">True</property> 363 376 <property name="can_focus">True</property> 364 <child> 365 <widget class="GtkImage" id="image11"> 366 <property name="visible">True</property> 367 <property name="xalign">0,000000</property> 368 <property name="yalign">0,000000</property> 369 <property name="stock">gtk-media-forward</property> 370 </widget> 371 </child> 372 </widget> 373 <packing> 374 <property name="left_attach">1</property> 375 <property name="right_attach">2</property> 377 <property name="response_id">0</property> 378 <child> 379 <widget class="GtkImage" id="image6"> 380 <property name="visible">True</property> 381 <property name="xalign">0</property> 382 <property name="yalign">0</property> 383 <property name="stock">gtk-goto-first</property> 384 </widget> 385 </child> 386 </widget> 387 <packing> 388 <property name="top_attach">2</property> 389 <property name="bottom_attach">3</property> 376 390 <property name="x_options">GTK_FILL</property> 377 391 <property name="y_options"></property> … … 379 393 </child> 380 394 <child> 381 <widget class="GtkButton" id="button_skip_ c">395 <widget class="GtkButton" id="button_skip_d"> 382 396 <property name="visible">True</property> 383 397 <property name="can_focus">True</property> 384 <child> 385 <widget class="GtkImage" id="image12"> 386 <property name="visible">True</property> 387 <property name="xalign">0,000000</property> 388 <property name="yalign">0,000000</property> 389 <property name="stock">gtk-media-previous</property> 390 </widget> 391 </child> 392 </widget> 393 <packing> 394 <property name="top_attach">1</property> 395 <property name="bottom_attach">2</property> 396 <property name="x_options">GTK_FILL</property> 397 <property name="y_options"></property> 398 </packing> 399 </child> 400 <child> 401 <widget class="GtkButton" id="button_skip_d"> 402 <property name="visible">True</property> 403 <property name="can_focus">True</property> 398 <property name="response_id">0</property> 404 399 <child> 405 400 <widget class="GtkImage" id="image13"> 406 401 <property name="visible">True</property> 407 <property name="xalign">0 ,000000</property>408 <property name="yalign">0 ,000000</property>402 <property name="xalign">0</property> 403 <property name="yalign">0</property> 409 404 <property name="stock">gtk-media-next</property> 410 405 </widget> … … 421 416 </child> 422 417 <child> 423 <widget class="GtkButton" id="button_skip_ e">418 <widget class="GtkButton" id="button_skip_c"> 424 419 <property name="visible">True</property> 425 420 <property name="can_focus">True</property> 426 <child> 427 <widget class="GtkImage" id="image6"> 428 <property name="visible">True</property> 429 <property name="xalign">0,000000</property> 430 <property name="yalign">0,000000</property> 431 <property name="stock">gtk-goto-first</property> 432 </widget> 433 </child> 434 </widget> 435 <packing> 436 <property name="top_attach">2</property> 437 <property name="bottom_attach">3</property> 421 <property name="response_id">0</property> 422 <child> 423 <widget class="GtkImage" id="image12"> 424 <property name="visible">True</property> 425 <property name="xalign">0</property> 426 <property name="yalign">0</property> 427 <property name="stock">gtk-media-previous</property> 428 </widget> 429 </child> 430 </widget> 431 <packing> 432 <property name="top_attach">1</property> 433 <property name="bottom_attach">2</property> 438 434 <property name="x_options">GTK_FILL</property> 439 435 <property name="y_options"></property> … … 441 437 </child> 442 438 <child> 443 <widget class="GtkButton" id="button_skip_ f">439 <widget class="GtkButton" id="button_skip_b"> 444 440 <property name="visible">True</property> 445 441 <property name="can_focus">True</property> 446 <child> 447 <widget class="GtkImage" id="image7"> 448 <property name="visible">True</property> 449 <property name="xalign">0,000000</property> 450 <property name="yalign">0,000000</property> 451 <property name="stock">gtk-goto-last</property> 442 <property name="response_id">0</property> 443 <child> 444 <widget class="GtkImage" id="image11"> 445 <property name="visible">True</property> 446 <property name="xalign">0</property> 447 <property name="yalign">0</property> 448 <property name="stock">gtk-media-forward</property> 452 449 </widget> 453 450 </child> … … 456 453 <property name="left_attach">1</property> 457 454 <property name="right_attach">2</property> 458 <property name="top_attach">2</property> 459 <property name="bottom_attach">3</property> 455 <property name="x_options">GTK_FILL</property> 456 <property name="y_options"></property> 457 </packing> 458 </child> 459 <child> 460 <widget class="GtkButton" id="button_skip_a"> 461 <property name="visible">True</property> 462 <property name="can_focus">True</property> 463 <property name="response_id">0</property> 464 <child> 465 <widget class="GtkImage" id="image10"> 466 <property name="visible">True</property> 467 <property name="xalign">0</property> 468 <property name="yalign">0</property> 469 <property name="stock">gtk-media-rewind</property> 470 </widget> 471 </child> 472 </widget> 473 <packing> 460 474 <property name="x_options">GTK_FILL</property> 461 475 <property name="y_options"></property> … … 508 522 <property name="label" translatable="yes">></property> 509 523 <property name="use_underline">True</property> 524 <property name="response_id">0</property> 510 525 <accelerator key="0" modifiers="" signal="activate"/> 511 526 </widget> … … 523 538 <property name="sensitive">False</property> 524 539 <property name="can_focus">True</property> 540 <property name="response_id">0</property> 525 541 <child> 526 542 <widget class="GtkImage" id="image2"> 527 543 <property name="visible">True</property> 528 <property name="xalign">0 ,000000</property>529 <property name="yalign">0 ,000000</property>544 <property name="xalign">0</property> 545 <property name="yalign">0</property> 530 546 <property name="stock">gtk-add</property> 531 547 </widget> … … 542 558 <property name="sensitive">False</property> 543 559 <property name="can_focus">True</property> 560 <property name="response_id">0</property> 544 561 <child> 545 562 <widget class="GtkImage" id="image3"> 546 563 <property name="visible">True</property> 547 <property name="xalign">0 ,000000</property>548 <property name="yalign">0 ,000000</property>564 <property name="xalign">0</property> 565 <property name="yalign">0</property> 549 566 <property name="stock">gtk-remove</property> 550 567 </widget> -
trunk/fm_gui/src/base.c
r255 r268 115 115 /* if not, build one */ 116 116 117 fm_beatcalc_gui_new (NULL);117 // fm_beatcalc_gui_new (NULL); 118 118 119 119 rgc_remote_object_new_async (base_pipeline_created_cb, bdata, -
trunk/fm_gui/src/fm_beatcalc_gui.c
r255 r268 15 15 16 16 #include "marlin-window.h" 17 18 #include "base.h" 19 #include "fm_cdj_gui.h" 20 #include "fm_cdj.h" 17 21 #include "fm_beatcalc_gui.h" 18 22 … … 24 28 fm_beatcalc_window_load_file (FmBeatcalcGui *gui, const gchar *filename) 25 29 { 30 marlin_window_load_file (gui->marlin_window, filename); 26 31 } 27 32 … … 42 47 43 48 FmBeatcalcGui * 44 fm_beatcalc_gui_new ( const gchar *filename)49 fm_beatcalc_gui_new (FmCDJData *cdj) 45 50 { 51 const gchar *filename = cdj->selected_filename; 52 46 53 if (!beatcalc_initialized) { 47 54 marlin_gst_register (); … … 52 59 53 60 FmBeatcalcGui *gui = g_new0(FmBeatcalcGui, 1); 61 gui->cdj = cdj; 54 62 55 63 /* Create a sample to be used in the window */ … … 75 83 76 84 gui->marlin_window = marlin_window_new (); 77 85 g_object_set (G_OBJECT (gui->marlin_window), "sample", gui->sample, NULL); 78 86 g_object_unref (gui->sample); 79 87 -
trunk/fm_gui/src/fm_beatcalc_gui.h
r255 r268 3 3 struct _FmBeatcalcGui { 4 4 // GladeXML *xml; 5 6 FmCDJData *cdj; 5 7 6 8 MarlinWindow *marlin_window; … … 18 20 19 21 FmBeatcalcGui * 20 fm_beatcalc_gui_new ( const gchar *filename);22 fm_beatcalc_gui_new (FmCDJData *cdj); -
trunk/fm_gui/src/fm_cdj.h
r114 r268 10 10 gchar *artist; 11 11 gchar *title; 12 13 gchar *selected_filename; 12 14 }; 13 15 -
trunk/fm_gui/src/fm_cdj_gui.c
r264 r268 13 13 #include "fm_cdj_gui.h" 14 14 #include "fm_cdj.h" 15 #include "marlin-window.h" 16 #include "fm_beatcalc_gui.h" 15 17 16 18 static void _button_play_clicked_cb (GtkButton *button, gpointer user_data); … … 39 41 static void _tbutton_sync_master_toggled_cb (GtkToggleButton *togglebutton, 40 42 gpointer user_data); 41 42 43 static void _tbutton_sync_slave_toggled_cb (GtkToggleButton *togglebutton, 44 gpointer user_data); 45 static void _button_beatcalc_clicked_cb (GtkButton *button, 43 46 gpointer user_data); 44 47 … … 161 164 gui->togglebutton_sync_master = glade_xml_get_widget (gui->xml, "togglebutton_sync_master"); 162 165 gui->togglebutton_sync_slave = glade_xml_get_widget (gui->xml, "togglebutton_sync_slave"); 166 gui->button_beatcalc = glade_xml_get_widget (gui->xml, "button_beatcalc"); 163 167 164 168 gui->button_play = glade_xml_get_widget(gui->xml, "button_play"); … … 201 205 g_signal_connect(gui->togglebutton_sync_master, "toggled", G_CALLBACK(_tbutton_sync_master_toggled_cb), data); 202 206 g_signal_connect(gui->togglebutton_sync_slave, "toggled", G_CALLBACK(_tbutton_sync_slave_toggled_cb), data); 207 g_signal_connect(gui->button_beatcalc, "clicked", G_CALLBACK(_button_beatcalc_clicked_cb), data); 203 208 204 209 g_signal_connect(gui->button_play, "clicked", G_CALLBACK(_button_play_clicked_cb), data); … … 236 241 g_signal_connect (G_OBJECT (gui->scrolledwindow_display), "drag_data_received", 237 242 G_CALLBACK (_dnd_filename_cb), data); 243 244 gtk_widget_show (gui->window_cdj); 245 238 246 return gui; 239 247 } … … 307 315 FmCDJData *cdata = (FmCDJData *) user_data; 308 316 gchar *dropped_filename; 309 gchar *selected_filename;310 317 GError *error = NULL; 311 318 … … 313 320 gtk_drag_finish (context, TRUE, FALSE, time); 314 321 315 selected_filename = g_strdup (g_filename_from_uri ((gchar *) dropped_filename, NULL, &error));316 if ( selected_filename[strlen (selected_filename) - 1] == '\n')317 selected_filename = g_strndup (selected_filename, strlen (selected_filename) - 2);318 319 g_print ("Selected filename: %s\n", selected_filename);320 gchar *basename = g_path_get_basename ( selected_filename);322 cdata->selected_filename = g_strdup (g_filename_from_uri ((gchar *) dropped_filename, NULL, &error)); 323 if (cdata->selected_filename[strlen (cdata->selected_filename) - 1] == '\n') 324 cdata->selected_filename = g_strndup (cdata->selected_filename, strlen (cdata->selected_filename) - 2); 325 326 g_print ("Selected filename: %s\n", cdata->selected_filename); 327 gchar *basename = g_path_get_basename (cdata->selected_filename); 321 328 gchar *message = g_strdup_printf ("LOADING %s", basename); 322 329 … … 330 337 g_free(basename); 331 338 332 GValue *fn = g_value_init_string ( selected_filename);339 GValue *fn = g_value_init_string (cdata->selected_filename); 333 340 rgc_remote_object_call (cdata->element, "load_file", fn, NULL); 334 341 g_value_destroy(fn); … … 567 574 g_print ("togglebutton_sync_slave_toggled\n"); 568 575 } 576 577 578 static void 579 _button_beatcalc_clicked_cb (GtkButton *button, 580 gpointer user_data) 581 { 582 FmCDJData *cdata = (FmCDJData *) user_data; 583 584 g_print ("button_beatcalc_clicked, filename \"%s\"\n", cdata->selected_filename); 585 586 if (cdata->selected_filename) 587 fm_beatcalc_gui_new (cdata); 588 } -
trunk/fm_gui/src/fm_cdj_gui.h
r153 r268 3 3 struct _FmCDJGui { 4 4 GladeXML *xml; 5 6 5 7 6 GtkWidget *window_cdj; … … 12 11 GtkWidget *togglebutton_sync_master; 13 12 GtkWidget *togglebutton_sync_slave; 13 GtkWidget *button_beatcalc; 14 14 15 15 GtkWidget *button_play; -
trunk/fm_gui/src/main.c
r228 r268 5 5 #include <rgc_client.h> 6 6 #include <string.h> 7 8 #include <gst/gst.h> 7 9 8 10 #include "global.h" … … 26 28 gtk_init (&argc, &argv); 27 29 gtk_tx_widgets_init (); 30 gst_init (&argc, &argv); // FIXMEEEEEEEEEEEE 28 31 29 32 static gchar *hostname = "localhost"; -
trunk/fm_gui/src/marlin-window-menu.c
r255 r268 931 931 } 932 932 933 933 934 static GtkActionEntry toplevel_entries[] = { 934 935 { "File", NULL, N_("_File") }, … … 964 965 N_("Information about the sample"), 965 966 G_CALLBACK (file_properties) },*/ 967 { "BeatinfoSave", GTK_STOCK_CLOSE, N_("Save beatinfo"), NULL, 968 N_("Save the current beat info"), 969 G_CALLBACK (beatinfo_save) }, 966 970 { "FileClose", GTK_STOCK_CLOSE, N_("Close"), "<control>W", 967 971 N_("Close this window"), -
trunk/fm_gui/src/marlin-window.c
r255 r268 387 387 NULL); 388 388 389 if (channels == 1) {389 /*if (channels == 1) { 390 390 gtk_widget_hide (window->priv->right_vu); 391 391 } else { 392 392 gtk_widget_show (window->priv->right_vu); 393 } 393 }*/ 394 394 395 395 marlin_window_set_process_name (window); … … 2281 2281 set_path_sensitive (ag, "SelectAll", sensitive); 2282 2282 //set_path_sensitive (ag, "SelectRegion", sensitive); 2283 set_path_sensitive (ag, "AddBeatSection", FALSE);2283 set_path_sensitive (ag, "AddBeatSection", TRUE); 2284 2284 marlin_sample_selection_get (priv->selection, 2285 2285 &coverage, … … 2294 2294 set_path_sensitive (ag, "SelectRight", FALSE); 2295 2295 set_path_sensitive (ag, "SelectSnapToZero", FALSE); 2296 set_path_sensitive (ag, "SaveBeatInfo", FALSE);2296 set_path_sensitive (ag, "SaveBeatInfo", TRUE); 2297 2297 } else { 2298 2298 set_path_sensitive (ag, "SelectNone", sensitive); … … 2302 2302 set_path_sensitive (ag, "SelectRight", TRUE); 2303 2303 set_path_sensitive (ag, "SelectSnapToZero", TRUE); 2304 set_path_sensitive (ag, "SaveBeatInfo", FALSE);2304 set_path_sensitive (ag, "SaveBeatInfo", TRUE); 2305 2305 } 2306 2306 } … … 2443 2443 } 2444 2444 2445 static void2445 /*static void 2446 2446 set_path_tooltip (GtkActionGroup *ag, 2447 2447 const char *path, … … 2452 2452 action = gtk_action_group_get_action (ag, path); 2453 2453 g_object_set (action, "tooltip", text, NULL); 2454 } 2454 }*/ 2455 2455 2456 2456 void … … 2537 2537 #endif 2538 2538 2539 #if 0 2539 2540 if (marlin_undo_manager_can_redo (window->priv->undo)) { 2540 2541 char *name; … … 2548 2549 set_path_name (ag, "EditRedo", _("Redo")); 2549 2550 set_path_tooltip (ag, "EditRedo", _("Redo the last action")); 2550 } 2551 } 2552 #endif 2551 2553 } 2552 2554 … … 5516 5518 NULL); 5517 5519 5518 5519 5520 5520 g_print ("WRITING INFO\n"); 5521 5521
