X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fomnplay.cpp;h=8144bd8d191f587325d118726a0541201f8ca7d2;hb=1b0cbf16ff4f6ecd6da9d0d2b132620622280731;hp=1a1889b68eb95145798908e332e4cd132f916470;hpb=4eff63591040d11a6c4b3726ea357ef2c64d9fb5;p=omnplay diff --git a/src/omnplay.cpp b/src/omnplay.cpp index 1a1889b..8144bd8 100644 --- a/src/omnplay.cpp +++ b/src/omnplay.cpp @@ -134,7 +134,7 @@ static void omnplay_update_status(omnplay_player_t* player, OmPlrStatus *prev , idx = find_index_of_playlist_item(player->app, player->playlist_start, curr->currClipNum); if(idx >= 0) { - strcpy(tc_rem, "PLAYING->"); + frames2tc(curr->currClipStartPos + curr->currClipLen - curr->pos, 25.0, tc_rem); omnplay_playlist_draw_item_rem(player->app, idx, tc_rem); } if(curr->currClipNum != prev->currClipNum && 1 != prev->numClips) @@ -233,20 +233,48 @@ static void* omnplay_thread_proc(void* data) return NULL; }; -static int get_first_selected_item_playlist(omnplay_instance_t* app) +void get_selected_items_playlist_proc(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gpointer data) { - int idx; - GtkTreeIter iter; - GtkTreeModel *model; + int idx, *list = (int*)data; + gtk_tree_model_get(model, iter, 7, &idx, -1); + list[list[0] + 1] = idx; + list[0] = list[0] + 1; +}; + +static int* get_selected_items_playlist(omnplay_instance_t* app) +{ + int* list = NULL; GtkTreeSelection *selection; selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(app->playlist_grid)); - if(selection && gtk_tree_selection_get_selected(selection, &model, &iter)) + if(selection) { - gtk_tree_model_get(model, &iter, 7, &idx, -1); - return idx; + list = (int*)malloc(sizeof(int) * (MAX_PLAYLIST_ITEMS + 1)); + memset(list, 0, sizeof(int) * (MAX_PLAYLIST_ITEMS + 1)); + + gtk_tree_selection_selected_foreach( + selection, + get_selected_items_playlist_proc, + list); + + if(!list[0]) + { + free(list); + list = NULL; + }; }; - return -1; + + return list; +}; + +static int get_first_selected_item_playlist(omnplay_instance_t* app) +{ + int idx; + int* list = get_selected_items_playlist(app); + if(!list) return -1; + idx = list[1]; + free(list); + return idx; }; static int get_playlist_block(omnplay_instance_t* app, int idx, int* start_ptr, int* stop_ptr)