From: Maksym Veremeyenko Date: Mon, 20 Jun 2011 13:41:15 +0000 (+0300) Subject: block composing skeleton added X-Git-Url: http://research.m1stereo.tv/gitweb?a=commitdiff_plain;h=6a0af0e7bba391e04e5aac228b6b2743894c60e5;hp=1b0cbf16ff4f6ecd6da9d0d2b132620622280731;p=omnplay block composing skeleton added --- diff --git a/src/omnplay.cpp b/src/omnplay.cpp index 8144bd8..b961c4b 100644 --- a/src/omnplay.cpp +++ b/src/omnplay.cpp @@ -267,6 +267,29 @@ static int* get_selected_items_playlist(omnplay_instance_t* app) 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; @@ -353,8 +376,7 @@ static void omnplay_ctl(omnplay_instance_t* app, control_buttons_t button) OmPlrStop((OmPlrHandle)player->handle); /* detach previous clips */ -// player->playlist_start = -1; -// player->playlist_count = -1; + player->playlist_length = -1; OmPlrDetachAllClips((OmPlrHandle)player->handle); }; @@ -440,10 +462,10 @@ static void omnplay_ctl(omnplay_instance_t* app, control_buttons_t button) 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); }; }; @@ -478,6 +500,7 @@ static gboolean omnplay_button_click(omnplay_instance_t* app, control_buttons_t 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: diff --git a/src/omnplay.h b/src/omnplay.h index ebe0e68..c3b96c8 100644 --- a/src/omnplay.h +++ b/src/omnplay.h @@ -112,6 +112,7 @@ typedef struct omnplay_player 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