- /* list in is empty, need a seek */
- {
- /* 1.1 Add requests to list_in */
- GSList *ltime = NULL;
- GSList *lpos = NULL;
- GSList *iter = NULL;
-
- /* 1.1.1 Find all time requests with the lowest start time in list_out
- * (ltime)
- */
- if(g_slist_length(list_out) > 0)
- ltime = g_slist_append(ltime, g_slist_nth_data(list_out, 0));
- for(iter=g_slist_nth(list_out,1);iter!=NULL;iter=g_slist_next(iter)) {
- /* Find all time requests with the lowest start time in list_out */
- guint index_ltime = g_array_index(ltime, guint, 0);
- EventsRequest *event_request_ltime = (EventsRequest*)g_slist_nth_data(ltime, 0);
- EventsRequest *event_request_list_out = (EventsRequest*)iter->data;
-
- int comp;
- comp = ltt_time_compare(event_request_ltime->start_time,
- event_request_list_out->start_time);
- if(comp == 0)
- ltime = g_slist_append(ltime, event_request_list_out);
- else if(comp > 0) {
- /* Remove all elements from ltime, and add current */
- while(ltime != NULL)
- ltime = g_slist_delete_link(ltime, g_slist_nth(ltime, 0));
- ltime = g_slist_append(ltime, event_request_list_out);
- }
+ /* list in is empty, need a seek */
+ {
+ /* 1.1 Add requests to list_in */
+ GSList *ltime = NULL;
+ GSList *lpos = NULL;
+ GSList *iter = NULL;
+
+ /* 1.1.1 Find all time requests with the lowest start time in list_out
+ * (ltime)
+ */
+ if(g_slist_length(list_out) > 0)
+ ltime = g_slist_append(ltime, g_slist_nth_data(list_out, 0));
+ for(iter=g_slist_nth(list_out,1);iter!=NULL;iter=g_slist_next(iter)) {
+ /* Find all time requests with the lowest start time in list_out */
+ guint index_ltime = g_array_index(ltime, guint, 0);
+ EventsRequest *event_request_ltime = (EventsRequest*)g_slist_nth_data(ltime, 0);
+ EventsRequest *event_request_list_out = (EventsRequest*)iter->data;
+
+ int comp;
+ comp = ltt_time_compare(event_request_ltime->start_time,
+ event_request_list_out->start_time);
+ if(comp == 0)
+ ltime = g_slist_append(ltime, event_request_list_out);
+ else if(comp > 0) {
+ /* Remove all elements from ltime, and add current */
+ while(ltime != NULL)
+ ltime = g_slist_delete_link(ltime, g_slist_nth(ltime, 0));
+ ltime = g_slist_append(ltime, event_request_list_out);
+ }
+ }
+
+ /* 1.1.2 Find all position requests with the lowest position in list_out
+ * (lpos)
+ */
+ if(g_slist_length(list_out) > 0)
+ lpos = g_slist_append(lpos, g_slist_nth_data(list_out, 0));
+ for(iter=g_slist_nth(list_out,1);iter!=NULL;iter=g_slist_next(iter)) {
+ /* Find all position requests with the lowest position in list_out */
+ EventsRequest *event_request_lpos = (EventsRequest*)g_slist_nth_data(lpos, 0);
+ EventsRequest *event_request_list_out = (EventsRequest*)iter->data;
+
+ int comp;
+ if(event_request_lpos->start_position != NULL
+ && event_request_list_out->start_position != NULL)
+ {
+ comp = lttv_traceset_context_pos_pos_compare
+ (event_request_lpos->start_position,
+ event_request_list_out->start_position);
+ } else {
+ comp = -1;
+ }
+ if(comp == 0)
+ lpos = g_slist_append(lpos, event_request_list_out);
+ else if(comp > 0) {
+ /* Remove all elements from lpos, and add current */
+ while(lpos != NULL)
+ lpos = g_slist_delete_link(lpos, g_slist_nth(lpos, 0));
+ lpos = g_slist_append(lpos, event_request_list_out);