示例#1
0
        protected void Application_Start()
        {
            

            Action<User> saveUserToSession = (account) =>
            {
                HttpContext.Current.Session.Remove("User");
                HttpContext.Current.Session.Add("User", account);
            };
            Func<User> getFromSession = () => (User)HttpContext.Current.Session["User"];

            var memoryDataSourceUser = new Dictionary<string, User>();

            //sample initialization
            memoryDataSourceUser.Add("wow", new User() { Id = Guid.Parse("537c8609-ddbe-434f-9e74-b2f55b9a35da"),  Name = "wow", Password = "******" });
            memoryDataSourceUser.Add("wah", new User() { Id = Guid.Parse("2939c3e6-0ee6-4167-a8aa-f5e95e58edee"),  Name = "wah", Password = "******" }); 
            

            //var repoAccount = new MemoryRepoAccount(new Dictionary<Guid, Account>());
            var repoAccount = new FileSystemRepoAccount();
            var serviceAccount = new ServiceAccount(repoAccount);

            var repoUser = new MemoryRepoUser(memoryDataSourceUser);
            var serviceUser = new ServiceUser(repoUser, saveUserToSession, getFromSession);

            var filterConfig = new FilterConfig(serviceUser);

            var controllerFactory = new PoorManControllerFactory(serviceUser,serviceAccount);
            ControllerBuilder.Current.SetControllerFactory(controllerFactory);

            AreaRegistration.RegisterAllAreas();
            filterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
示例#2
0
 public void SetConfig(FilterConfig config)
 {
     if(config==null)
     {
         return;
     }
     TypeFilter = config.TypeFilter;
     RarityFilter = config.RarityFilter;
     NameFilter = config.NameFilter;
     var asm = typeof(CenterEffect).Assembly;
     CenterEffectFilter = string.IsNullOrEmpty(config.CenterEffectFilter) ? null : asm.GetType(config.CenterEffectFilter);
     SkillFilter = string.IsNullOrEmpty(config.SkillFilter) ? null : Type.GetType(config.SkillFilter);
     FilterOwned = config.FilterOwned;
 }
示例#3
0
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     GlobalConfiguration.Configure(WebApiConfig.Register);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     GlobalConfiguration.Configuration.Formatters.Clear();
     GlobalConfiguration.Configuration.Formatters.Add(new JsonpMediaTypeFormatter(new JsonMediaTypeFormatter()));
     //var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;
     //json.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
     //json.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;
     //GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
 }
    protected void Application_Start()
    {
        var busConfiguration = new BusConfiguration();
        busConfiguration.EndpointName("Store.ECommerce");
        busConfiguration.PurgeOnStartup(true);

        busConfiguration.ApplyCommonConfiguration();

        Bus = NServiceBus.Bus.Create(busConfiguration).Start();

        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
示例#5
0
        public void Configuration(IAppBuilder app)
        {
            // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=316888

            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            FilterConfig.Configure(GlobalFilters.Filters);
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                ReturnUrlParameter = "returnUrl",
                AuthenticationType = "ApplicationCookie",
                CookieName         = "MailLogging",
                LoginPath          = new PathString("/Auth/Login")
            });
        }
示例#6
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

			GlobalConfiguration.Configure(WebApiConfig.Register);

			FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            // Remove data annotations validation provider 
            ModelValidatorProviders.Providers.Remove(
                ModelValidatorProviders.Providers.OfType<DataAnnotationsModelValidatorProvider>().First());

			DependencyInjection();

		}
示例#7
0
        protected void Application_Start()
        {
            GlobalConfig.SetRoot(HostingEnvironment.MapPath("~/Configs/"));

            var environment = ConfigurationManager.AppSettings["Environment"];

            if (string.IsNullOrWhiteSpace(environment))
            {
                GlobalConfig.SetEnvironment("Local");
            }
            else
            {
                GlobalConfig.SetEnvironment(environment);
            }

            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
示例#8
0
        /// <summary>
        /// Read filter rules from the configuration file
        /// </summary>
        /// <returns>true on success</returns>
        public bool Read()
        {
            try {
                string path = GetFilterConfigPath();
                using (var stream = File.OpenRead(path)) {
                    var currentCulture = Thread.CurrentThread.CurrentCulture;
                    Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

                    try {
                        var serializer = new DataContractJsonSerializer(typeof(FilterConfig), Settings);
                        var item       = (FilterConfig)serializer.ReadObject(stream);
                        if (Equals(item, null))
                        {
                            throw new Exception();
                        }
                        conf = item;
                        foreach (FilterRule rule in conf.Rules)
                        {
                            if (rule.ExePath != null)
                            {
                                rule.ExePath = rule.ExePath.Replace("/", @"\");
                            }
                        }
                        return(true);
                    }
                    catch (Exception exception) {
                        Debug.WriteLine(exception.ToString());
                        return(false);
                    }
                    finally {
                        Thread.CurrentThread.CurrentCulture = currentCulture;
                    }
                }
            }
            catch {
                return(false);
            }
        }
示例#9
0
        private void Application_Start()
        {
            MvcHandler.DisableMvcResponseHeader = true;

            AreaRegistration.RegisterAllAreas();

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            var container = BuildContainer();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

            ViewEngines.Engines.Clear();
            ViewEngines.Engines.Add(new FunnelWebViewEngine());

            ControllerBuilder.Current.SetControllerFactory(new FunnelWebControllerFactory(container));

            var federatedAuthenticationConfigurator = container.Resolve <IFederatedAuthenticationConfigurator>();

            federatedAuthenticationConfigurator.InitiateFederatedAuthentication();
        }
示例#10
0
 public static void ApplicationStart()
 {
     try
     {
         StructureMapConfig.RegisterStructureMap();
         MvcConfig.RegisterMvc();
         //EntityFrameworkProfilerConfig.RegisterEntityFrameworkProfiler();
         AreaRegistration.RegisterAllAreas();
         RouteConfig.RegisterRoutes(RouteTable.Routes);
         BundleConfig.RegisterBundles(BundleTable.Bundles);
         FilterConfig.RegisterFilters(GlobalFilters.Filters);
         //RazorGeneratorConfig.RegisterRazorGenerator();
         EntityFrameworkConfig.RegisterEntityFramework();
         AutoMapperConfig.RegisterAutoMapper();
         StartupConfig.Configuration();
         Configuration();
     }
     catch
     {
         // سبب ری استارت برنامه و آغاز مجدد آن با درخواست بعدی می‌شود
         HttpRuntime.UnloadAppDomain();
         throw;
     }
 }
示例#11
0
    /// <summary> create the used COM components and get the interfaces. </summary>
    protected override bool GetInterfaces()
    {
      GetInterface = true;
      try
      {
        graphBuilder = (IGraphBuilder) new FilterGraph();
        _rotEntry = new DsROTEntry((IFilterGraph) graphBuilder);
        // add preferred video & audio codecs
        int hr;
        filterConfig = GetFilterConfiguration();
        //Get filterCodecName
        filterCodec = GetFilterCodec();

        if (filterConfig.bAutoDecoderSettings)
        {
          AutoRenderingCheck = true;
          return AutoRendering(this.filterConfig.wmvAudio);
        }

        string extension = Path.GetExtension(m_strCurrentFile).ToLowerInvariant();

        //Get video/audio Info
        _mediaInfo = new MediaInfoWrapper(m_strCurrentFile);

        //Manually add codecs based on file extension if not in auto-settings
        // switch back to directx fullscreen mode
        Log.Info("VideoPlayer9: Enabling DX9 exclusive mode");
        GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SWITCH_FULL_WINDOWED, 0, 0, 0, 1, 0, null);
        GUIWindowManager.SendMessage(msg);

        // add the VMR9 in the graph
        // after enabeling exclusive mode, if done first it causes MediPortal to minimize if for example the "Windows key" is pressed while playing a video
        Vmr9 = new VMR9Util();
        if (File.Exists(m_strCurrentFile) && extension != ".dts" && extension != ".mp3" && extension != ".mka" && extension != ".ac3")
        {
          Vmr9.AddVMR9(graphBuilder);
          Vmr9.Enable(false);
        }
        else
        {
          AudioOnly = true;
        }

        if (extension == ".mpls" || extension == ".bdmv")
          filterConfig.bForceSourceSplitter = false;

        if (filterConfig.strsplitterfilter == LAV_SPLITTER_FILTER_SOURCE && filterConfig.bForceSourceSplitter)
        {
          LoadLAVSplitter(LAV_SPLITTER_FILTER_SOURCE);
          hr = graphBuilder.AddFilter(_interfaceSourceFilter, LAV_SPLITTER_FILTER_SOURCE);
          DsError.ThrowExceptionForHR(hr);

          Log.Debug("VideoPlayer9: Add LAVSplitter Source to graph");

          IFileSourceFilter interfaceFile = (IFileSourceFilter)_interfaceSourceFilter;
          hr = interfaceFile.Load(m_strCurrentFile, null);

          if (hr != 0)
          {
            Error.SetError("Unable to play movie", "Unable build graph for VMR9");
            Cleanup();
            return false;
          }
        }
        else
        {
          _interfaceSourceFilter = filterConfig.bForceSourceSplitter
                                     ? DirectShowUtil.AddFilterToGraph(graphBuilder, filterConfig.strsplitterfilter)
                                     : null;
          if (_interfaceSourceFilter == null && !filterConfig.bForceSourceSplitter)
          {
            graphBuilder.AddSourceFilter(m_strCurrentFile, null, out _interfaceSourceFilter);
          }
          else
          {
            try
            {
              int result = ((IFileSourceFilter) _interfaceSourceFilter).Load(m_strCurrentFile, null);
              if (result != 0)
              {
                graphBuilder.RemoveFilter(_interfaceSourceFilter);
                DirectShowUtil.ReleaseComObject(_interfaceSourceFilter);
                _interfaceSourceFilter = null;
                graphBuilder.AddSourceFilter(m_strCurrentFile, null, out _interfaceSourceFilter);
              }
            }

            catch (Exception ex)
            {
              Log.Error(
                "VideoPlayer9: Exception loading Source Filter setup in setting in DShow graph , try to load by merit",
                ex);
              graphBuilder.RemoveFilter(_interfaceSourceFilter);
              DirectShowUtil.ReleaseComObject(_interfaceSourceFilter);
              _interfaceSourceFilter = null;
              graphBuilder.AddSourceFilter(m_strCurrentFile, null, out _interfaceSourceFilter);
            }
          }

          //Detection of File Source (Async.) as source filter, return true if found
          IBaseFilter fileSyncbaseFilter = null;
          DirectShowUtil.FindFilterByClassID(graphBuilder, ClassId.FilesyncSource, out fileSyncbaseFilter);
          if (fileSyncbaseFilter == null)
            graphBuilder.FindFilterByName("File Source (Async.)", out fileSyncbaseFilter);
          if (fileSyncbaseFilter != null && filterConfig.bForceSourceSplitter)
          {
            FileSync = true;
            DirectShowUtil.ReleaseComObject(fileSyncbaseFilter);
            fileSyncbaseFilter = null;
            if (filterConfig.strsplitterfilefilter == LAV_SPLITTER_FILTER)
            {
              LoadLAVSplitter(LAV_SPLITTER_FILTER);
              hr = graphBuilder.AddFilter(Splitter, LAV_SPLITTER_FILTER);
              DsError.ThrowExceptionForHR(hr);

              Log.Debug("VideoPlayer9: Add LAVSplitter to graph");

              if (hr != 0)
              {
                Error.SetError("Unable to play movie", "Unable build graph for VMR9");
                Cleanup();
                return false;
              }
            }
            else
            {
              Splitter = DirectShowUtil.AddFilterToGraph(graphBuilder, filterConfig.strsplitterfilefilter);
            }
          }
        }

        // Add preferred video filters
        UpdateFilters("Video");

        //Add Audio Renderer
        if (filterConfig.AudioRenderer.Length > 0 && filterCodec._audioRendererFilter == null)
        {
          filterCodec._audioRendererFilter = DirectShowUtil.AddAudioRendererToGraph(graphBuilder,
                                                                                    filterConfig.AudioRenderer, false);
        }

        #region load external audio streams

        // check if current "File" is a file... it could also be a URL
        // Directory.Getfiles, ... will other give us an exception
        if (File.Exists(m_strCurrentFile) && !AudioOnly)
        {
          //load audio file (ac3, dts, mka, mp3) only with if the name matches partially with video file.
          string[] audioFiles = Directory.GetFiles(Path.GetDirectoryName(m_strCurrentFile),
                                                   Path.GetFileNameWithoutExtension(m_strCurrentFile) + "*.*");
          bool audioSwitcherLoaded = false;
          foreach (string file in audioFiles)
          {
            switch (Path.GetExtension(file))
            {
              case ".mp3":
              case ".dts":
              case ".mka":
              case ".ac3":
                if (!audioSwitcherLoaded)
                {
                  IBaseFilter switcher = DirectShowUtil.GetFilterByName(graphBuilder, MEDIAPORTAL_AUDIOSWITCHER_FILTER);
                  if (switcher != null)
                  {
                    DirectShowUtil.ReleaseComObject(switcher);
                    switcher = null;
                  }
                  else
                  {
                    _audioSwitcher = DirectShowUtil.AddFilterToGraph(graphBuilder, MEDIAPORTAL_AUDIOSWITCHER_FILTER);
                  }
                  audioSwitcherLoaded = true;
                }
                _AudioSourceFilter = DirectShowUtil.AddFilterToGraph(graphBuilder, FILE_SYNC_FILTER);
                int result = ((IFileSourceFilter) _AudioSourceFilter).Load(file, null);

                //Force using LAVFilter
                _AudioExtSplitterFilter = DirectShowUtil.AddFilterToGraph(graphBuilder, LAV_SPLITTER_FILTER);

                if (result != 0 || _AudioExtSplitterFilter == null)
                {
                  if (_AudioSourceFilter != null)
                  {
                    graphBuilder.RemoveFilter(_AudioSourceFilter);
                    DirectShowUtil.ReleaseComObject(_AudioSourceFilter);
                    _AudioSourceFilter = null;
                  }
                  if (_AudioExtSplitterFilter != null)
                  {
                    graphBuilder.RemoveFilter(_AudioExtSplitterFilter);
                    DirectShowUtil.ReleaseComObject(_AudioExtSplitterFilter);
                    _AudioExtSplitterFilter = null;
                  }
                  //Trying Add Audio decoder in graph
                  AddFilterToGraphAndRelease(filterConfig.Audio);
                  graphBuilder.RenderFile(file, string.Empty);
                  Log.Debug("VideoPlayerVMR9 : External audio file loaded \"{0}\"", file);
                  AudioExternal = true;
                  break;
                }

                //Add Audio decoder in graph
                _AudioExtFilter = DirectShowUtil.AddFilterToGraph(graphBuilder, filterConfig.Audio);

                //Connect Filesource with the splitter
                IPin pinOutAudioExt1 = DsFindPin.ByDirection((IBaseFilter) _AudioSourceFilter, PinDirection.Output, 0);
                IPin pinInAudioExt2 = DsFindPin.ByDirection((IBaseFilter) _AudioExtSplitterFilter, PinDirection.Input, 0);
                hr = graphBuilder.Connect(pinOutAudioExt1, pinInAudioExt2);

                //Connect Splitter with the Audio Decoder
                IPin pinOutAudioExt3 = DsFindPin.ByDirection((IBaseFilter) _AudioExtSplitterFilter, PinDirection.Output,
                                                             0);
                IPin pinInAudioExt4 = DsFindPin.ByDirection((IBaseFilter) _AudioExtFilter, PinDirection.Input, 0);
                hr = graphBuilder.Connect(pinOutAudioExt3, pinInAudioExt4);

                //Render outpin from Audio Decoder
                DirectShowUtil.RenderUnconnectedOutputPins(graphBuilder, _AudioExtFilter);

                //Cleanup External Audio (Release)
                if (_AudioSourceFilter != null)
                {
                  DirectShowUtil.ReleaseComObject(_AudioSourceFilter);
                  _AudioSourceFilter = null;
                }
                if (_AudioExtSplitterFilter != null)
                {
                  DirectShowUtil.ReleaseComObject(_AudioExtSplitterFilter);
                  _AudioExtSplitterFilter = null;
                }
                if (_AudioExtFilter != null)
                {
                  DirectShowUtil.ReleaseComObject(_AudioExtFilter);
                  _AudioExtFilter = null;
                }
                if (pinOutAudioExt1 != null)
                {
                  DirectShowUtil.ReleaseComObject(pinOutAudioExt1);
                  pinOutAudioExt1 = null;
                }
                if (pinInAudioExt2 != null)
                {
                  DirectShowUtil.ReleaseComObject(pinInAudioExt2);
                  pinInAudioExt2 = null;
                }
                if (pinOutAudioExt3 != null)
                {
                  DirectShowUtil.ReleaseComObject(pinOutAudioExt3);
                  pinOutAudioExt3 = null;
                }
                if (pinInAudioExt4 != null)
                {
                  DirectShowUtil.ReleaseComObject(pinInAudioExt4);
                  pinInAudioExt4 = null;
                }

                Log.Debug("VideoPlayerVMR9 : External audio file loaded \"{0}\"", file);
                AudioExternal = true;
                break;
            }
          }
        }

        #endregion

        // Add preferred audio filters
        UpdateFilters("Audio");

        #region Set High Audio

        //Set High Resolution Output > 2 channels
        IBaseFilter baseFilter = null;
        bool FFDShowLoaded = false;
        graphBuilder.FindFilterByName("WMAudio Decoder DMO", out baseFilter);
        if (baseFilter != null && filterConfig.wmvAudio != false) //Also check configuration option enabled
        {
          //Set the filter setting to enable more than 2 audio channels
          const string g_wszWMACHiResOutput = "_HIRESOUTPUT";
          object val = true;
          IPropertyBag propBag = (IPropertyBag) baseFilter;
          hr = propBag.Write(g_wszWMACHiResOutput, ref val);
          if (hr != 0)
          {
            Log.Info("VideoPlayer9: Unable to turn WMAudio multichannel on. Reason: {0}", hr);
          }
          else
          {
            Log.Info("VideoPlayer9: WMAudio Decoder now set for > 2 audio channels");
          }
          if (!FFDShowLoaded)
          {
            IBaseFilter FFDShowAudio = DirectShowUtil.GetFilterByName(graphBuilder, FFDSHOW_AUDIO_DECODER_FILTER);
            if (FFDShowAudio != null)
            {
              DirectShowUtil.ReleaseComObject(FFDShowAudio);
              FFDShowAudio = null;
            }
            else
            {
              _FFDShowAudio = DirectShowUtil.AddFilterToGraph(graphBuilder, FFDSHOW_AUDIO_DECODER_FILTER);
            }
            FFDShowLoaded = true;
          }
          DirectShowUtil.ReleaseComObject(baseFilter);
          baseFilter = null;
        }

        #endregion

        if (_interfaceSourceFilter != null)
        {
          DirectShowUtil.RenderGraphBuilderOutputPins(graphBuilder, _interfaceSourceFilter);
        }

        //Test and remove orphelin Audio Renderer
        //RemoveAudioR();

        //remove InternalScriptRenderer as it takes subtitle pin
        disableISR();

        //disable Closed Captions!
        disableCC();

        DirectShowUtil.RemoveUnusedFiltersFromGraph(graphBuilder);

        //remove orphelin audio renderer
        RemoveAudioR();

        //EnableClock();

        if (Vmr9 == null || !Vmr9.IsVMR9Connected && !AudioOnly)
        {
          Log.Error("VideoPlayer9: Failed to render file -> vmr9");
          mediaCtrl = null;
          Cleanup();
          return false;
        }

        mediaCtrl = (IMediaControl) graphBuilder;
        mediaEvt = (IMediaEventEx) graphBuilder;
        mediaSeek = (IMediaSeeking) graphBuilder;
        mediaPos = (IMediaPosition) graphBuilder;
        basicAudio = (IBasicAudio) graphBuilder;
        videoWin = (IVideoWindow) graphBuilder;
        m_iVideoWidth = Vmr9.VideoWidth;
        m_iVideoHeight = Vmr9.VideoHeight;
        Vmr9.SetDeinterlaceMode();
        return true;
      }
      catch (Exception ex)
      {
        Error.SetError("Unable to play movie", "Unable build graph for VMR9");
        Log.Error("VideoPlayer9: Exception while creating DShow graph {0} {1}", ex.Message, ex.StackTrace);
        Cleanup();
        return false;
      }
    }
示例#12
0
    protected virtual FilterConfig GetFilterConfiguration()
    {
      FilterConfig filterConfig = new FilterConfig();

      using (Settings xmlreader = new MPSettings())
      {

        // get pre-defined filter setup
        filterConfig.bAutoDecoderSettings = xmlreader.GetValueAsBool("movieplayer", "autodecodersettings", false);
        filterConfig.bForceSourceSplitter = xmlreader.GetValueAsBool("movieplayer", "forcesourcesplitter", false);
        filterConfig.wmvAudio = xmlreader.GetValueAsBool("movieplayer", "wmvaudio", false);
        filterConfig.autoloadSubtitles = xmlreader.GetValueAsBool("subtitles", "enabled", false);
        filterConfig.strsplitterfilter = xmlreader.GetValueAsString("movieplayer", "splitterfilter", "");
        filterConfig.strsplitterfilefilter = xmlreader.GetValueAsString("movieplayer", "splitterfilefilter", "");
        filterConfig.Video = xmlreader.GetValueAsString("movieplayer", "mpeg2videocodec", "");
        filterConfig.Audio = xmlreader.GetValueAsString("movieplayer", "mpeg2audiocodec", "");
        filterConfig.AudioAAC = xmlreader.GetValueAsString("movieplayer", "aacaudiocodec", "");
        filterConfig.VideoH264 = xmlreader.GetValueAsString("movieplayer", "h264videocodec", "");
        filterConfig.VideoVC1 = xmlreader.GetValueAsString("movieplayer", "vc1videocodec", "");
        filterConfig.VideoVC1I = xmlreader.GetValueAsString("movieplayer", "vc1ivideocodec", "");
        filterConfig.VideoXVID = xmlreader.GetValueAsString("movieplayer", "xvidvideocodec", "");
        filterConfig.AudioRenderer = xmlreader.GetValueAsString("movieplayer", "audiorenderer",
                                                                "Default DirectSound Device");
        filterConfig.strextAudioSource = xmlreader.GetValueAsString("movieplayer", "AudioExtSplitterFilter", "");
        filterConfig.strextAudioCodec = xmlreader.GetValueAsString("movieplayer", "AudioExtFilter", "");

        // get post-processing filter setup
        int i = 0;
        while (xmlreader.GetValueAsString("movieplayer", "filter" + i, "undefined") != "undefined")
        {
          if (xmlreader.GetValueAsBool("movieplayer", "usefilter" + i, false))
          {
            filterConfig.OtherFilters.Add(xmlreader.GetValueAsString("movieplayer", "filter" + i, "undefined"));
          }
          i++;
        }
      }
      return filterConfig;
    }
 protected void Application_Start()
 {
     AreaRegistration.RegisterAllAreas();
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
 }
示例#14
0
        private void GenerateDestinationCode(WordLibraryList wordLibraryList, CodeType codeType)
        {
            if (wordLibraryList.Count == 0)
            {
                return;
            }
            if (wordLibraryList[0].CodeType == CodeType.NoCode && codeType == CodeType.UserDefinePhrase)
            {
                codeType = CodeType.Pinyin;
            }
            IWordCodeGenerater generater = CodeTypeHelper.GetGenerater(codeType);

            if (generater == null) //未知编码方式,则不进行编码。
            {
                return;
            }
            countWord     = wordLibraryList.Count;
            currentStatus = 0;
            Regex spaceRegex     = new Regex("(?=[^a-zA-Z])\\s+");
            Regex numberRegex    = new Regex("[0-90-9]+");
            Regex englishRegex   = new Regex("[a-zA-Za-zA-Z]+");
            Regex fullWidthRegex = new Regex("[\uff00-\uff5e]+");
            // Regex fullWidthRegex = new Regex("[a-zA-Z0-9]+");
            // Regex punctuationRegex = new Regex("[-・·&%']");
            Regex punctuationRegex = new Regex("[\u0021-\u002f\u003a-\u0040\u005b-\u0060\u007b-\u008f\u00a0-\u00bf\u00d7\u00f7\u2000-\u2bff\u3000-\u303f\u30a0\u30fb\uff01-\uff0f\uff1a-\uff20\uff5b-\uff65]");


            foreach (WordLibrary wordLibrary in wordLibraryList)
            {
                currentStatus++;
                processMessage = "生成目标编码:" + currentStatus + "/" + countWord;
                if (wordLibrary.CodeType == codeType)
                {
                    continue;
                }
                if (wordLibrary.CodeType == CodeType.English)
                {
                    wordLibrary.SetCode(CodeType.English, wordLibrary.Word.ToLower());
                    continue;
                }
                try
                {
                    string word_0 = wordLibrary.Word;
                    string word   = wordLibrary.Word;

                    if (FilterConfig.FullWidth && fullWidthRegex.IsMatch(word))
                    {
                        char[] c = word.ToCharArray();
                        for (int i = 0; i < c.Length; i++)
                        {
                            if (c[i] <= 0xff5e && c[i] >= 0xff00)
                            {
                                c[i] = (char)(c[i] - 65248);
                            }
                        }
                        word = new String(c);
                    }

                    if (FilterConfig.KeepNumber_)
                    {
                        word = numberRegex.Replace(word, "");
                    }

                    if (FilterConfig.KeepEnglish_)
                    {
                        word = englishRegex.Replace(word, "");
                    }

                    if (FilterConfig.KeepSpace_)
                    {
                        if (FilterConfig.KeepSpace == false)
                        {
                            word = word.Replace(" ", "");
                        }
                        else
                        {
                            word = spaceRegex.Replace(word, "");
                        }
                    }

                    if (FilterConfig.KeepPunctuation_)
                    {
                        word = punctuationRegex.Replace(word, "");
                    }

                    if (FilterConfig.ChsNumber)
                    {
                        word = TranslateChineseNumber(word);
                    }

                    if ((FilterConfig.KeepEnglish && englishRegex.IsMatch(word)) ||
                        (FilterConfig.KeepNumber && numberRegex.IsMatch(word)) ||
                        (FilterConfig.KeepPunctuation && punctuationRegex.IsMatch(word)))
                    {
                        StringBuilder          input  = new StringBuilder();
                        List <IList <string> > output = new List <IList <string> >();

                        int clipType = -1; int type = 0;

                        foreach (char c in word)
                        {
                            if (c >= 0x30 && c <= 0x39)
                            {
                                type = 1;
                            }
                            else if (c >= 0x41 && c <= 0x5a)
                            {
                                type = 2;
                            }
                            else if (c >= 0x61 && c <= 0x7a)
                            {
                                type = 2;
                            }
                            else if (FilterConfig.KeepSpace && c == 0x20 && clipType == 2)
                            {
                                type = 2;
                            }
                            else if ("-・&%'".Contains(c))
                            {
                                type = 3;
                            }
                            else if (punctuationRegex.IsMatch(c.ToString()))
                            {
                                type = 3;
                            }
                            else
                            {
                                type = 0;
                            }
                            if (input.Length < 1)
                            {
                                clipType = type;
                                input.Append(c);
                            }
                            else if (type == clipType)
                            {
                                input.Append(c);
                            }

                            else
                            {
                                if (FilterConfig.KeepEnglish && clipType == 2)
                                {
                                    if (FilterConfig.needEnglishTag())
                                    {
                                        output.Add(new List <string> {
                                            '_' + input.ToString()
                                        });
                                    }
                                    else
                                    {
                                        output.Add(new List <string> {
                                            input.ToString()
                                        });
                                    }
                                }
                                else if ((FilterConfig.KeepNumber && clipType == 1) || (FilterConfig.KeepPunctuation && clipType == 3))
                                {
                                    output.Add(new List <string> {
                                        input.ToString()
                                    });
                                }
                                else
                                {
                                    wordLibrary.Word     = input.ToString();
                                    wordLibrary.CodeType = CodeType.NoCode;
                                    generater.GetCodeOfWordLibrary(wordLibrary);
                                    output.AddRange(wordLibrary.Codes);
                                }
                                input.Clear();
                                input.Append(c);
                                clipType = type;
                            }
                        }

                        if (input.Length > 0)
                        {
                            if (FilterConfig.KeepEnglish && clipType == 2)
                            {
                                if (FilterConfig.needEnglishTag())
                                {
                                    output.Add(new List <string> {
                                        '_' + input.ToString()
                                    });
                                }
                                else
                                {
                                    output.Add(new List <string> {
                                        input.ToString()
                                    });
                                }
                            }
                            else if ((FilterConfig.KeepNumber && clipType == 1) || (FilterConfig.KeepPunctuation && clipType == 3))
                            {
                                output.Add(new List <string> {
                                    input.ToString()
                                });
                            }
                            else
                            {
                                wordLibrary.Word     = input.ToString();
                                wordLibrary.CodeType = CodeType.NoCode;
                                generater.GetCodeOfWordLibrary(wordLibrary);
                                output.AddRange(wordLibrary.Codes);
                            }
                        }

                        wordLibrary.Word  = word_0;
                        wordLibrary.Codes = new Code(output);
                    }
                    else
                    {
                        if (word == word_0)
                        {
                            generater.GetCodeOfWordLibrary(wordLibrary);
                        }
                        else
                        {
                            wordLibrary.Word = word;
                            generater.GetCodeOfWordLibrary(wordLibrary);
                            wordLibrary.Word = word_0;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("生成编码失败" + ex.Message);
                }
                if (codeType != CodeType.Unknown)
                {
                    wordLibrary.CodeType = codeType;
                }
            }
        }
        protected void btnPreFilters_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                return;
            }

            int ch_num = int.Parse(((PictureButton)sender).Name.Substring(5, 1));

            int settings_index, plainfilter_index;

            FilterConfig[] cached_filters = new FilterConfig[3];

            for (int i = 0; i < 3; i ++)
            {
                if (PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i] != null)
                {
                    if (PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i] != null)
                    {
                        cached_filters[i] = (FilterConfig) PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i].Clone();
                    }
                }
            }

            using (FilterForm filterForm = new FilterForm(this, ch_num))
            {
                filterForm.Height = 500;

                DialogResult showBlock = filterForm.ShowDialog(this);

                if (showBlock == DialogResult.Cancel)
                {

                    for (int i = 0; i < 3; i++)
                    {
                        if (cached_filters[i] != null)
                        {
                            settings_index = (40) + ((ch_num - 1) * 45) + (i * 5);
                            plainfilter_index = (300) + ((ch_num - 1) * 27) + (i * 3);

                            PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i] = (FilterConfig) cached_filters[i].Clone();

                            if(LIVE_MODE)
                            {
                                PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i].QueueChange(this, settings_index, plainfilter_index, ch_num);
                            }
                        }
                    }

                }
                else
                {
                    UpdateTooltips();
                }
            }
        }
        protected void btnPostFilters_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                return;
            }

            int ch_num = int.Parse(((PictureButton)sender).Name.Substring(5, 1));

            int settings_index, plainfilter_index;
            FilterConfig[] cached_filters = new FilterConfig[6];

            for (int i = 3; i < 9; i++)
            {
                if (PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i] != null)
                {
                    cached_filters[i-3] = (FilterConfig)PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i].Clone();
                }
            }

            using (FilterForm filterForm = new FilterForm(this, ch_num, true))
            {
                DialogResult showBlock = filterForm.ShowDialog(this);

                if (showBlock == DialogResult.Cancel)
                {

                    for (int i = 3; i < 9; i++)
                    {
                        settings_index = (40) + ((ch_num - 1) * 45) + (i * 5);
                        plainfilter_index = (300) + ((ch_num - 1) * 27) + (i * 3);

                        if (cached_filters[i - 3] != null)
                        {
                            PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i] = (FilterConfig) cached_filters[i - 3].Clone();
                            if (LIVE_MODE)
                            {
                                PROGRAMS[CURRENT_PROGRAM].filters[ch_num - 1][i].QueueChange(this, settings_index, plainfilter_index, ch_num);
                            }
                        } else
                        {
                            if (LIVE_MODE)
                            {
                                // Filter doesn't exist... SO... let's just send a blank one
                                new FilterConfig(FilterType.None, true).QueueChange(this, settings_index, plainfilter_index, ch_num);
                            }
                        }
                    }

                }
                else
                {
                    UpdateTooltips();
                }

            }
        }