- /* Servicing */
- /* 1. If list_in is empty (need a seek) */
- if( g_slist_length(list_in) == 0 ) {
-
- /* 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);
- }
- }
-