return 0;
if (!force && mm->mm_tsid != MPEGTS_TSID_NONE)
return 0;
- mm->mm_scan_state = MM_SCAN_STATE_ACTIVE;
mm->mm_tsid = tsid;
tvhtrace(LS_MPEGTS, "%s - set tsid %04X (%d)", mm->mm_nicename, tsid, tsid);
idnode_changed(&mm->mm_id);
+ mpegts_network_scan_mux_reactivate(mm);
return 1;
}
TAILQ_INSERT_TAIL(&mn->mn_scan_active, mm, mm_scan_link);
}
+/* Mux has been reactivated */
+void
+mpegts_network_scan_mux_reactivate ( mpegts_mux_t *mm )
+{
+ mpegts_network_t *mn = mm->mm_network;
+ if (mm->mm_scan_state == MM_SCAN_STATE_ACTIVE)
+ return;
+ if (mm->mm_scan_state == MM_SCAN_STATE_PEND)
+ TAILQ_REMOVE(&mn->mn_scan_pend, mm, mm_scan_link);
+ mm->mm_scan_init = 0;
+ mm->mm_scan_state = MM_SCAN_STATE_ACTIVE;
+ TAILQ_INSERT_TAIL(&mn->mn_scan_active, mm, mm_scan_link);
+}
+
/******************************************************************************
* Mux queue handling
*****************************************************************************/
void mpegts_network_scan_mux_partial ( mpegts_mux_t *mm );
void mpegts_network_scan_mux_cancel ( mpegts_mux_t *mm, int reinsert );
void mpegts_network_scan_mux_active ( mpegts_mux_t *mm );
+void mpegts_network_scan_mux_reactivate ( mpegts_mux_t *mm );
/*
* Init / Teardown