/// <summary> /// Unload ourselves. /// </summary> public void Stop() { log.Info("Movie manager stop"); foreach (ICodec codec in Codecs) { codec.Stop(); } Codecs.Clear(); Instance = null; }
/// <summary> /// Initialize the singleton member and wait for the interpreter to /// load to reflect ourselves. /// </summary> public void Start() { Instance = this; ExternalTextureSourceManager.Instance.SetExternalTextureSource( MovieTextureSource.MV_SOURCE_NAME, new MovieTextureSource()); Assembly assembly = Assembly.GetAssembly(typeof(Manager)); foreach (Type type in assembly.GetTypes()) { if ((type.GetInterface("ICodec") == typeof(ICodec)) && (!type.IsInterface)) { try { ICodec codec = (ICodec)Activator.CreateInstance(type); if (codec != null) { if (codec.Name() != null) { codec.Start(); Codecs.Add(codec); } } } catch (Exception e) { LogManager.Instance.WriteException("Failed to create instance of codec of type {0} from assembly {1}", type, assembly.FullName); LogManager.Instance.WriteException(e.Message); } } } }