Changeset 464

Show
Ignore:
Timestamp:
01/09/07 07:32:19 (2 years ago)
Author:
radekk
Message:

Register operation at:
- new time marker
- change name of time marker
- change location (frame) of time maker

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • sweep/branches/sweep-info-panel/include/sweep/sweep_marker.h

    r457 r464  
    2424 
    2525sw_mark * 
    26 mark_new (sw_framecount_t frame, sw_mark_type_t type, gchar * name); 
     26mark_new (sw_framecount_t frame, sw_mark_type_t type, gint color, gchar * name); 
    2727 
    2828sw_mark * 
     
    3333 
    3434GList * 
    35 marks_add_marker_1 (GList * marks, sw_framecount_t frame, sw_mark_type_t type, gchar * name); 
     35marks_add_marker_1 (GList * marks, sw_framecount_t frame, sw_mark_type_t type, gint color, gchar * name); 
     36 
     37void 
     38marks_destroy (GList * marks); 
    3639 
    3740/* 
     
    4346gint 
    4447mark_cmp (sw_mark * m1, sw_mark * m2); 
     48 
     49GList * 
     50marks_resort (GList * marks); 
    4551 
    4652/* 
     
    5662                      sw_param_set pset, gpointer custom_data); 
    5763 
     64sw_op_instance * 
     65perform_marker_start_op (sw_sample * sample, gchar * desc); 
     66 
     67void 
     68perform_marker_finish_op (sw_sample * sample, sw_op_instance * inst); 
     69 
    5870#endif /* __SWEEP_MARKER_H__ */ 
  • sweep/branches/sweep-info-panel/include/sweep/sweep_sample.h

    r124 r464  
    149149sw_sel * 
    150150sample_add_selection_1 (sw_sample * s, 
    151                         sw_framecount_t start, sw_framecount_t end); 
     151                        sw_framecount_t start, sw_framecount_t end, gchar * name); 
    152152 
    153153void 
     
    156156sw_sel * 
    157157sample_set_selection_1 (sw_sample * s, 
    158                         sw_framecount_t start, sw_framecount_t end); 
     158                        sw_framecount_t start, sw_framecount_t end, gchar * name); 
    159159 
    160160 
     
    162162void 
    163163sample_selection_modify (sw_sample * s, sw_sel * sel, 
    164                          sw_framecount_t new_start, sw_framecount_t new_end); 
     164                         sw_framecount_t new_start, sw_framecount_t new_end, gchar * name); 
    165165 
    166166void 
  • sweep/branches/sweep-info-panel/include/sweep/sweep_selection.h

    r455 r464  
    3434sels_add_selection_1 (GList * sels, sw_framecount_t start, sw_framecount_t end, gchar * name); 
    3535 
     36void 
     37sels_destroy (GList * sels); 
     38 
    3639/* 
    3740 * sel_cmp (s1, s2) 
  • sweep/branches/sweep-info-panel/include/sweep/sweep_sounddata.h

    r124 r464  
    5252sw_sel * 
    5353sounddata_add_selection_1 (sw_sounddata * sounddata, 
    54                            sw_framecount_t start, sw_framecount_t end); 
     54                           sw_framecount_t start, sw_framecount_t end, gchar * name); 
    5555 
    5656sw_sel * 
    5757sounddata_set_selection_1 (sw_sounddata * sounddata, 
    58                            sw_framecount_t start, sw_framecount_t end); 
     58                           sw_framecount_t start, sw_framecount_t end, gchar * name); 
    5959 
    6060guint 
  • sweep/branches/sweep-info-panel/plugins/byenergy/byenergy.c

    r124 r464  
    201201      if (loc - end > max_interruption) { 
    202202        if (end - start > min_duration) { 
    203           sounddata_add_selection_1 (sounddata, start+1, end-1); 
     203          sounddata_add_selection_1 (sounddata, start + 1, end - 1, NULL); 
    204204        } 
    205205        end = start = -1; 
     
    214214  if (start != -1) { 
    215215    if (end - start > min_duration) { 
    216       sounddata_add_selection_1 (sounddata, start, end); 
     216      sounddata_add_selection_1 (sounddata, start, end, NULL); 
    217217    } 
    218218  } 
  • sweep/branches/sweep-info-panel/src/info-panel.c

    r463 r464  
    13051305        g_mutex_lock (s->sounddata->marks_mutex); 
    13061306 
    1307         mark = mark_new ((view->end - view->start) / 2 + view->start, SWEEP_MARK_TYPE_SIMPLE, NULL); 
     1307        mark = mark_new ((view->end - view->start) / 2 + view->start, SWEEP_MARK_TYPE_SIMPLE, 0, NULL); 
    13081308 
    13091309        view->sample->sounddata->marks = marks_add_marker (view->sample->sounddata->marks, mark); 
     
    15931593} 
    15941594 
    1595 static sw_sample * info_panel_selection_modify (sw_sample * s, sw_param_set unused, SelectionData * seldata) 
     1595static sw_sample * 
     1596info_panel_selection_modify (sw_sample * s, sw_param_set unused, SelectionData * seldata) 
    15961597{ 
    15971598        g_mutex_lock (s->sounddata->sels_mutex); 
     
    16081609} 
    16091610 
    1610 void info_panel_selections_edited_name_cb (GtkCellRendererText *cell, gchar *path_string, gchar *new_text, sw_view * view) 
     1611void 
     1612info_panel_selections_edited_name_cb (GtkCellRendererText *cell, gchar *path_string, gchar *new_text, sw_view * view) 
    16111613{ 
    16121614        GtkTreeModel * model; 
     
    16561658} 
    16571659 
     1660static sw_sample * 
     1661info_panel_marker_modify (sw_sample * s, sw_param_set unused, MarkerData * markdata) 
     1662{ 
     1663        g_mutex_lock (s->sounddata->marks_mutex); 
     1664 
     1665        markdata->mark_modify->name = markdata->mark_data.name; 
     1666        markdata->mark_modify->frame = markdata->mark_data.frame; 
     1667        markdata->mark_modify->color = markdata->mark_data.color; 
     1668        markdata->mark_modify->type = markdata->mark_data.type; 
     1669 
     1670        g_mutex_unlock (s->sounddata->marks_mutex); 
     1671 
     1672        g_free(markdata); 
     1673 
     1674        return s; 
     1675} 
     1676 
    16581677void info_panel_markers_edited_name_cb (GtkCellRendererText *cell, gchar *path_string, gchar *new_text, sw_view * view) 
    16591678{ 
     
    16631682        sw_mark * mark; 
    16641683        GList * gl; 
    1665 //     SelectionData * seldata; 
     1684       MarkerData * markdata; 
    16661685        gchar * name; 
    16671686 
     
    16891708                                info_panel_row_update_str(model, path_string, INFO_PANEL_MARKERS_COL_NAME, new_text); 
    16901709 
    1691                               mark->name = g_strdup(new_text); 
    1692 /* 
    1693                                 seldata = g_malloc0(sizeof(SelectionData)); 
    1694                  
    1695                                 seldata->sel_data.name = g_strdup(new_text); 
    1696                  
    1697                                 seldata->sel_data.sel_start = sel->sel_start
    1698                                 seldata->sel_data.sel_end = sel->sel_end
    1699  
    1700                                 seldata->sel_modify = sel; 
    1701  
    1702                                 perform_selection_op (view->sample, _("Set sel name"), (SweepFilter)info_panel_selection_modify, NULL, seldata); 
    1703 */ 
     1710//                            mark->name = g_strdup(new_text); 
     1711 
     1712                                markdata = g_malloc0 ( sizeof (SelectionData) ); 
     1713 
     1714                                /* TODO: change direct coping date into function mark_copy */ 
     1715                               markdata->mark_data.name = g_strdup(new_text); 
     1716                                markdata->mark_data.frame = mark->frame
     1717                                markdata->mark_data.color = mark->color
     1718                                markdata->mark_data.type = mark->type; 
     1719 
     1720                                markdata->mark_modify = mark; 
     1721 
     1722                                perform_marker_op (view->sample, _("Set marker name"), (SweepFilter)info_panel_marker_modify, NULL, markdata); 
    17041723                        } 
    17051724                         
  • sweep/branches/sweep-info-panel/src/sample-display.c

    r463 r464  
    21122112} 
    21132113 
    2114 #if 0 
    2115 typedef struct _MarkerData MarkerData; 
    2116 struct _MarkerData 
    2117 { 
    2118         sw_framecount_t offset; 
    2119         sw_mark * mark_modify; 
    2120 }; 
    2121  
    2122 static void 
    2123 sample_display_mod_marker (sw_sample * s, sw_param_set unused, MarkerData * markdata) 
    2124 { 
    2125   /* pointer into moving marker */ 
    2126   s->tmp_mark = markdata->mark_modify; 
    2127  
    2128   /* modify data */ 
    2129   s->tmp_mark->frame = markdata->offset; 
    2130                          
    2131   g_free(markdata); 
    2132 } 
    2133 #endif 
    2134  
    21352114static void 
    21362115sample_display_handle_marker_motion (SampleDisplay * s, int x, int y) 
     
    21412120  sw_framecount_t offset, off1, off2; 
    21422121  gboolean mod = FALSE; 
    2143   //MarkerData * markdata; 
    21442122 
    21452123  offset = XPOS_TO_OFFSET(x); 
     
    21602138 
    21612139                if ( (mark->frame >= off1) && (mark->frame <= off2) ){ 
     2140                        /* start modifing operation */ 
     2141                        sample->tmp_mark_inst = perform_marker_start_op (sample, _("Modify Time marker")); 
     2142 
    21622143                        /* pointer into moving marker */ 
    21632144                        sample->tmp_mark =  mark; 
     
    24722453        break; 
    24732454 
    2474       case TOOL_HAND: 
    2475         s->selecting = SELECTING_HAND; 
    2476         s->view->hand_offset = x; 
    2477         SET_CURSOR(widget, HAND_CLOSE); 
    2478         sample_display_handle_hand_motion (s, x, y); 
     2455    case TOOL_HAND: 
     2456               s->selecting = SELECTING_HAND; 
     2457               s->view->hand_offset = x; 
     2458               SET_CURSOR(widget, HAND_CLOSE); 
     2459               sample_display_handle_hand_motion (s, x, y); 
    24792460        break; 
    24802461 
    2481       case TOOL_MARKER: 
    2482         s->selecting = SELECTING_MARKER; 
    2483         sample_display_handle_marker_motion (s, x, y); 
     2462    case TOOL_MARKER: 
     2463               s->selecting = SELECTING_MARKER; 
     2464               sample_display_handle_marker_motion (s, x, y); 
    24842465        break; 
    24852466 
     
    25682549                    "selection-changed"); 
    25692550  } 
    2570 } 
    2571  
    2572 static sw_sample * sample_display_marker_mod (sw_sample * s, sw_param_set unused, sw_view * view) 
    2573 { 
    2574  
    2575  
    2576  
    25772551} 
    25782552 
     
    26372611 
    26382612  case TOOL_MARKER: 
    2639     s->view->sample->tmp_mark = NULL; 
    2640      
    26412613    s->view->sample->sounddata->marks =  
    26422614            marks_resort(s->view->sample->sounddata->marks); 
    26432615     
    2644     perform_marker_op (s->view->sample, _("Modify Time marker"), (SweepFilter)sample_display_marker_mod, NULL, s->view); 
     2616    perform_marker_finish_op (s->view->sample, s->view->sample->tmp_mark_inst); 
    26452617 
    26462618    info_panel_markers_info_update (s->view->sample); 
     2619 
     2620    s->view->sample->tmp_mark = NULL; 
     2621        s->view->sample->tmp_mark_inst = NULL; 
    26472622 
    26482623    break; 
  • sweep/branches/sweep-info-panel/src/sweep_app.h

    r463 r464  
    250250  sw_sel * tmp_sel;   /* Temporary selection, used while selecting */ 
    251251  sw_mark * tmp_mark; /* Temp marker, used while moving */ 
     252  sw_op_instance * tmp_mark_inst; /* instance of modified marker */ 
    252253 
    253254  /* Operations; lock on scheduling */ 
  • sweep/branches/sweep-info-panel/src/sweep_marker.c

    r463 r464  
    101101 
    102102sw_mark * 
    103 mark_new (sw_framecount_t frame, sw_mark_type_t type, gchar * name) 
     103mark_new (sw_framecount_t frame, sw_mark_type_t type, gint color, gchar * name) 
    104104{ 
    105105  sw_mark * mark; 
    106106 
    107   mark = g_malloc0 ( sizeof( sw_mark ) ); 
     107  mark = g_malloc0 ( sizeof (sw_mark) ); 
    108108  mark->frame = frame; 
    109109  mark->type = type; 
    110   mark->color = 0
     110  mark->color = color
    111111 
    112112  if (name != NULL) 
     
    150150  sw_mark * nmark; 
    151151 
    152   nmark = mark_new (mark->frame, mark->type, mark->name); 
     152  nmark = mark_new (mark->frame, mark->type, mark->color, mark->name); 
    153153 
    154154  return nmark; 
     
    203203 
    204204GList * 
    205 marks_add_marker_1 (GList * marks, sw_framecount_t frame, sw_mark_type_t type, gchar * name) 
     205marks_add_marker_1 (GList * marks, sw_framecount_t frame, sw_mark_type_t type, gint color, gchar * name) 
    206206{ 
    207207  sw_mark * mark; 
    208208 
    209   mark = mark_new (frame, type, name); 
     209  mark = mark_new (frame, type, color, name); 
    210210 
    211211  return marks_add_marker (marks, mark); 
     
    305305 
    306306/* 
    307  * function preform immediate operation, so no threading, no asynchronous 
    308  * operations, clean and easy. 
    309  */ 
    310 void 
    311 perform_marker_immediate_op (sw_sample * sample, gchar * desc, SweepFilter func, 
    312                                 sw_param_set pset, gpointer custom_data) 
     307 * functions used for starting and finishing marker modification operation 
     308 * where operation thread is user interaction 
     309 */ 
     310sw_op_instance * 
     311perform_marker_start_op (sw_sample * sample, gchar * desc) 
    313312{ 
    314313  sw_op_instance * inst; 
     
    316315 
    317316  inst = sw_op_instance_new (sample, desc, &marker_op); 
    318   inst->do_data = custom_data; 
     317/*  inst->do_data = custom_data; */ 
    319318 
    320319  /* marks, "copied for undo data" */ 
     
    322321  inst->undo_data = mark_replace_data_new (marks); 
    323322  set_active_op (sample, inst); 
    324  
     323#if 0 
    325324  func (sample, pset, custom_data); 
    326325 
     
    332331 
    333332  undo_dialog_refresh_history (sample); 
    334 
    335  
     333#endif 
     334  return inst; 
     335
     336 
     337void 
     338perform_marker_finish_op (sw_sample * sample, sw_op_instance * inst) 
     339
     340  GList * marks; 
     341#if 0 
     342  inst = sw_op_instance_new (sample, desc, &marker_op); 
     343  inst->do_data = custom_data; 
     344 
     345  /* marks, "copied for undo data" */ 
     346  marks = marks_copy (sample->sounddata->marks); 
     347  inst->undo_data = mark_replace_data_new (marks); 
     348  set_active_op (sample, inst); 
     349 
     350  func (sample, pset, custom_data); 
     351#endif 
     352  /* marks, "copied for redo data" */ 
     353  marks = marks_copy (sample->sounddata->marks); 
     354  inst->redo_data = mark_replace_data_new (marks); 
     355 
     356  register_operation (sample, inst); 
     357 
     358  undo_dialog_refresh_history (sample); 
     359
     360 
  • sweep/branches/sweep-info-panel/src/sweep_sample.c

    r463 r464  
    152152 
    153153  s->tmp_sel = NULL; 
     154  s->tmp_mark = NULL; 
     155  s->tmp_mark_inst = NULL; 
    154156 
    155157  s->playmarker_tag = 0;