rework a remain timecode display
[omnplay] / src / omnplay.cpp
index aa384e2..dbdc7d3 100644 (file)
@@ -46,6 +46,8 @@ int omnplay_get_content(omnplay_instance_t* app, playlist_item_t *items, int lim
     OmPlrClipInfo clip_info;
     char clip_name[omPlrMaxClipDirLen];
 
+    app->library.id_display_idx = 0;
+
     pthread_mutex_lock(&app->players.lock);
 
     r = OmPlrClipGetFirst((OmPlrHandle)app->players.item[0].handle, clip_name, sizeof(clip_name));
@@ -186,14 +188,11 @@ static void omnplay_update_status(omnplay_player_t* player, OmPlrStatus *prev ,
     gdk_threads_enter();
     pthread_mutex_lock(&player->app->playlist.lock);
     pthread_mutex_lock(&player->app->players.lock);
-    if(curr->state == omPlrStatePlay || curr->state == omPlrStateCuePlay)
+
+    /* check if playlist exist */
+    if(player->playlist_length)
     {
-        idx = find_index_of_playlist_item(player->app, player->playlist_start, curr->currClipNum);
-        if(idx >= 0)
-        {
-            frames2tc(curr->currClipStartPos + curr->currClipLen - curr->pos, 25.0, tc_rem);
-            omnplay_playlist_draw_item_rem(player->app, idx, tc_rem);
-        }
+        /* clear remain on "previous" item */
         if(curr->currClipNum != prev->currClipNum && 1 != prev->numClips)
         {
             tc_rem[0] = 0;
@@ -201,16 +200,21 @@ static void omnplay_update_status(omnplay_player_t* player, OmPlrStatus *prev ,
             if(idx >= 0)
                 omnplay_playlist_draw_item_rem(player->app, idx, tc_rem);
         };
-    }
-    else
-    {
-        tc_rem[0] = 0;
+
+        /* update current item */
         idx = find_index_of_playlist_item(player->app, player->playlist_start, curr->currClipNum);
         if(idx >= 0)
+        {
+            /* reset value */
+            tc_rem[0] = 0;
+
+            /* for play and cue calc new value */
+            if(curr->state == omPlrStatePlay || curr->state == omPlrStateCuePlay)
+                frames2tc(curr->currClipStartPos + curr->currClipLen - curr->pos, 25.0, tc_rem);
+
+            /* setup that value */
             omnplay_playlist_draw_item_rem(player->app, idx, tc_rem);
-        idx = find_index_of_playlist_item(player->app, player->playlist_start, prev->currClipNum);
-        if(idx >= 0)
-            omnplay_playlist_draw_item_rem(player->app, idx, tc_rem);
+        };
     };
     pthread_mutex_unlock(&player->app->players.lock);
     pthread_mutex_unlock(&player->app->playlist.lock);
@@ -1206,11 +1210,13 @@ static gboolean on_library_grid_button(GtkWidget *widget, GdkEventButton *event,
 
 static gboolean on_playlist_grid_button(GtkWidget *widget, GdkEventButton *event, gpointer data)
 {
+    omnplay_instance_t* app = (omnplay_instance_t*)data;
+
 //    g_warning("on_playlist_grid_button");
 
     if(event->button==1 && event->type==GDK_2BUTTON_PRESS)
     {
-        omnplay_ctl((omnplay_instance_t* )data, BUTTON_PLAYER_CUE);
+        omnplay_playlist_item_edit(app);
         return TRUE;
     };