return list;
};
+static void omnplay_playlist_block(omnplay_instance_t* app, control_buttons_t button)
+{
+ int start, stop;
+ int* list = get_selected_items_playlist(app);
+
+ if(!list)
+ return;
+
+ pthread_mutex_lock(&app->playlist.lock);
+ pthread_mutex_lock(&app->players.lock);
+
+ start = list[1];
+ stop = list[list[0]];
+
+ fprintf(stderr, "omnplay_playlist_block: [%d %d]\n",
+ start, stop);
+
+ pthread_mutex_unlock(&app->players.lock);
+ pthread_mutex_unlock(&app->playlist.lock);
+
+ free(list);
+};
+
static int get_first_selected_item_playlist(omnplay_instance_t* app)
{
int idx;
OmPlrStop((OmPlrHandle)player->handle);
/* detach previous clips */
-// player->playlist_start = -1;
-// player->playlist_count = -1;
+ player->playlist_length = -1;
OmPlrDetachAllClips((OmPlrHandle)player->handle);
};
OmPlrLoop((OmPlrHandle)player->handle, hs.minPos, hs.maxPos);
player->playlist_start = start;
+ player->playlist_length = stop - start + 1;
/* Cue */
OmPlrCuePlay((OmPlrHandle)player->handle, 0.0);
- OmPlrPlay((OmPlrHandle)player->handle, 0.0);
};
};
break;
case BUTTON_PLAYLIST_BLOCK_SINGLE:
case BUTTON_PLAYLIST_BLOCK_LOOP:
+ omnplay_playlist_block(app, button);
break;
case BUTTON_PLAYLIST_ITEM_UP:
case BUTTON_PLAYLIST_ITEM_DOWN:
GtkWidget *label_status, *label_state, *label_tc_cur, *label_tc_rem, *label_clip;
struct omnplay_instance *app;
int playlist_start;
+ int playlist_length;
} omnplay_player_t;
typedef struct omnplay_instance