void MovieFiles_OnStatusUpdate(string file, MovieFiles.VIRTUAL_CHANNEL.PLAY_STATUS_UPDATE status, MovieFiles.VIRTUAL_CHANNEL.PlayNextFileDelegate playnext) { if (OnStatusUpdateFromPlayerEvent != null) { OnStatusUpdateFromPlayerEvent(file, status, playnext); } }
void MovieFileController_OnStatusUpdateFromPlayerEvent(string file, MovieFiles.VIRTUAL_CHANNEL.PLAY_STATUS_UPDATE status, MovieFiles.VIRTUAL_CHANNEL.PlayNextFileDelegate playnext) { if (m_DataGridRowIndex.Contains(file)) { int rowIndex = (int)m_DataGridRowIndex[file]; dataGridViewFilesInProcess.Rows[rowIndex].Cells[1].Value = status.ToString(); } if (playnext != null) { // the playnext delegate will be called from a UI thread, so that the Directshow movie player will run on the UI thread to eable painting on the UI owned panel this.BeginInvoke((MethodInvoker) delegate { playnext(); }); } }