コード例 #1
0
ファイル: F1TVOverlay.xaml.cs プロジェクト: TheSmoun/TMTVO
        public void WeatherFadeIn()
        {
            if (!MyCanvas.Children.Contains(WeatherWidget))
            {
                MyCanvas.Children.Add(WeatherWidget);
            }

            WeatherWidget.FadeIn();
        }
コード例 #2
0
        public override void Load()
        {
            var weatherConfig = Assembly.GetExecutingAssembly().GetManifestResourceStream("Widget.Weather.Weather.config");

            //Settings = (Settings)XmlSerializable.Load(typeof(Settings), Envi.WidgetsRoot + "\\Weather\\Weather.config") ?? new Settings();
            Settings      = (Settings)XmlSerializable.Load(typeof(Settings), weatherConfig) ?? new Settings();
            widgetControl = new WeatherWidget();
            widgetControl.Load();
        }
コード例 #3
0
        public WeatherWidget GetWeatherWidget()
        {
            IpInfo     ipInfo = GetLocationByIp();
            RegionInfo region = GetRegionCode(ipInfo.Country);
            //Request to OpenWeatherMap API
            var apiRequest = WebRequest.Create(
                $"https://api.openweathermap.org/data/2.5/weather?q={ipInfo.City},{region}&APPID={Apikey}&units=metric");

            //Get response from OpenWeatherMap
            using (HttpWebResponse response = apiRequest.GetResponse() as HttpWebResponse)
            {
                if (response != null)
                {
                    StreamReader reader =
                        new StreamReader(response.GetResponseStream() ?? throw new Exception("Fail response"));
                    _apiResponse = reader.ReadToEnd();
                }
            }

            //convert for model
            WeatherWidget weatherWidget = JsonConvert.DeserializeObject <WeatherWidget>(_apiResponse);

            return(weatherWidget);
        }
コード例 #4
0
        public void OnGet()
        {
            cityid = _weathersettings.Value.Id;
            apikey = _weathersettings.Value.Appid;

            apicall = $"https://api.openweathermap.org/data/2.5/weather?id={cityid}&units=metric&appid={apikey}";

            // Convert all weather properties as .NET objects.
            WeatherConverter converter = new WeatherConverter(apicall);

            Weather = converter.DeserializeJsonFile();

            // Use the properties as weather widgets
            WeatherWidget widget = new WeatherWidget(Weather);

            // Get the temperature with the celsius symbol for a small widget.
            SmallWidget = widget.SmallWidget();

            // Get the temperature and weather icon for a medium size widget.
            MediumWidget = widget.MediumWidget();

            // Get the city name, temperature, weather icon and weather details for a big widget.
            BigWidget = widget.BigWidget();
        }
コード例 #5
0
ファイル: Overlay.xaml.cs プロジェクト: TheSmoun/F1TVOverlay
        public Overlay()
        {
            InitializeComponent();

            CompositionTarget.Rendering += CompositionTarget_Rendering;
            fpsTimer          = new DispatcherTimer();
            fpsTimer.Interval = TimeSpan.FromSeconds(1);
            fpsTimer.Tick    += fpsTimer_Tick;
            fpsTimer.Start();

            widgets = new List <IWidget>();

            this.DriverInfo        = new DriverInfo();
            this.DriverInfo.Width  = 640;
            this.DriverInfo.Height = 72;
            this.DriverInfo.HorizontalAlignment = HorizontalAlignment.Left;
            this.DriverInfo.VerticalAlignment   = VerticalAlignment.Top;
            this.DriverInfo.Margin = new Thickness(370, 899, 0, 0);

            this.LapsRemaining        = new LapsRemainingWidget();
            this.LapsRemaining.Width  = 320;
            this.LapsRemaining.Height = 36;
            this.LapsRemaining.HorizontalAlignment = HorizontalAlignment.Left;
            this.LapsRemaining.VerticalAlignment   = VerticalAlignment.Top;
            this.LapsRemaining.Margin = new Thickness(798, 106, 0, 0);

            this.LapTimerLeft        = new LapTimerLeft();
            this.LapTimerLeft.Width  = 430;
            this.LapTimerLeft.Height = 108;
            this.LapTimerLeft.HorizontalAlignment = HorizontalAlignment.Left;
            this.LapTimerLeft.VerticalAlignment   = VerticalAlignment.Top;
            this.LapTimerLeft.Margin = new Thickness(370, 863, 0, 0);

            this.LiveTimingWidget        = new LiveTimingWidget();
            this.LiveTimingWidget.Width  = 310;
            this.LiveTimingWidget.Height = 792;
            this.LiveTimingWidget.HorizontalAlignment = HorizontalAlignment.Left;
            this.LiveTimingWidget.VerticalAlignment   = VerticalAlignment.Top;
            this.LiveTimingWidget.Margin = new Thickness(158, 70, 0, 0);

            this.RaceBar        = new RaceBar();
            this.RaceBar.Width  = 1920;
            this.RaceBar.Height = 50;
            this.RaceBar.HorizontalAlignment = HorizontalAlignment.Center;
            this.RaceBar.VerticalAlignment   = VerticalAlignment.Top;
            this.RaceBar.Margin = new Thickness(0, 970, 0, 0);

            this.ResultsWidget        = new ResultsWidget();
            this.ResultsWidget.Width  = 1152;
            this.ResultsWidget.Height = 580;
            this.ResultsWidget.HorizontalAlignment = HorizontalAlignment.Left;
            this.ResultsWidget.VerticalAlignment   = VerticalAlignment.Top;
            this.ResultsWidget.Margin = new Thickness(418, 143, 0, 0);

            this.RevMeter        = new RevMeter();
            this.RevMeter.Width  = 315;
            this.RevMeter.Height = 301;
            this.RevMeter.HorizontalAlignment = HorizontalAlignment.Left;
            this.RevMeter.VerticalAlignment   = VerticalAlignment.Top;
            this.RevMeter.Margin = new Thickness(100, 400, 0, 0);

            this.SessionTimer        = new SessionTimer();
            this.SessionTimer.Width  = 410;
            this.SessionTimer.Height = 36;
            this.SessionTimer.HorizontalAlignment = HorizontalAlignment.Left;
            this.SessionTimer.VerticalAlignment   = VerticalAlignment.Top;
            this.SessionTimer.Margin = new Thickness(860, 70, 0, 0);

            this.SideBar        = new SideBarWidget();
            this.SideBar.Width  = 280;
            this.SideBar.Height = 792;
            this.SideBar.HorizontalAlignment = HorizontalAlignment.Left;
            this.SideBar.VerticalAlignment   = VerticalAlignment.Top;
            this.SideBar.Margin = new Thickness(158, 70, 0, 0);

            this.SpeedCompareWidget        = new SpeedCompareWidget();
            this.SpeedCompareWidget.Width  = 555;
            this.SpeedCompareWidget.Height = 203;
            this.SpeedCompareWidget.HorizontalAlignment = HorizontalAlignment.Left;
            this.SpeedCompareWidget.VerticalAlignment   = VerticalAlignment.Top;
            this.SpeedCompareWidget.Margin = new Thickness(1215, 762, 0, 0);

            this.TeamRadio        = new TeamRadio();
            this.TeamRadio.Width  = 342;
            this.TeamRadio.Height = 76;
            this.TeamRadio.HorizontalAlignment = HorizontalAlignment.Left;
            this.TeamRadio.VerticalAlignment   = VerticalAlignment.Top;
            this.TeamRadio.Margin = new Thickness(1458, 520, 0, 0);

            this.WeatherWidget        = new WeatherWidget();
            this.WeatherWidget.Width  = 675;
            this.WeatherWidget.Height = 235;
            this.WeatherWidget.HorizontalAlignment = HorizontalAlignment.Center;
            this.WeatherWidget.VerticalAlignment   = VerticalAlignment.Top;
            this.WeatherWidget.Margin = new Thickness(1045, 755, 0, 0);

            widgets.Add(DriverInfo);
            widgets.Add(LapsRemaining);
            widgets.Add(LapTimerLeft);
            widgets.Add(LiveTimingWidget);
            widgets.Add(RaceBar);
            widgets.Add(ResultsWidget);
            widgets.Add(RevMeter);
            widgets.Add(SessionTimer);
            widgets.Add(SideBar);
            widgets.Add(SpeedCompareWidget);
            widgets.Add(TeamRadio);
            widgets.Add(WeatherWidget);

            timer          = new DispatcherTimer();
            timer.Tick    += timer_Tick;
            timer.Interval = new TimeSpan(0, 0, 0, 0, 20);
            timer.Start();
        }
コード例 #6
0
    public override object Deserialize(IDictionary <string, object> dictionary, Type type, JavaScriptSerializer serializer)
    {
        if (type == typeof(APIResultWidget))
        {
            switch ((string)dictionary["Type"])
            {
            case "weather":
            {
                WeatherWidget x = new WeatherWidget();
                x.Location = (string)dictionary["Location"];
                x.Current  = (CurrentWeather)dictionary["Current"];
                //x.Forcast = (List<WeatherForcastItem>)dictionary["Forcast"];
                System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Forcast"]);
                foreach (var item in itemss)
                {
                    x.Forcast.Add(serializer.ConvertToType <WeatherForcastItem>(item));
                }
                return(x);
            };

            case "text":
            {
                TextWidget x = new TextWidget();
                x.Content = (string)dictionary["Content"];
                return(x);
            };

            case "keyValueText":
            {
                KeyValueTextWidget x = new KeyValueTextWidget();
                x.Key = (string)dictionary["Key"];
                x.Key = (string)dictionary["Value"];
                x.Key = (string)dictionary["ValueURL"];
                return(x);
            };

            case "keyValuesText":
            {
                KeyValuesTextWidget x = new KeyValuesTextWidget();
                x.Key = (string)dictionary["Key"];
                //x.Values = (List<ValueItem>)dictionary["ValueItem"];
                System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["ValueItem"]);
                foreach (var item in itemss)
                {
                    x.Values.Add(serializer.ConvertToType <ValueItem>(item));
                }
                return(x);
            };

            case "url":
            {
                URLWidget x = new URLWidget();
                x.ThumbnailImageURL = (string)dictionary["ThumbnailImageURL"];
                x.Title             = (string)dictionary["Title"];
                x.URL         = (string)dictionary["URL"];
                x.HTMLContent = (string)dictionary["HTMLContent"];
                return(x);
            };

            case "map":
            {
                MapWidget x = new MapWidget();
                System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Pins"]);
                foreach (var item in itemss)
                {
                    x.Pins.Add(serializer.ConvertToType <MapPoint>(item));
                }
                //x.Pins = (List<MapPoint>)dictionary["Pins"];
                return(x);
            };

            case "image":
            {
                ImageWidget x = new ImageWidget();
                x.Title        = (string)dictionary["Title"];
                x.ImageURL     = (string)dictionary["ImageURL"];
                x.ThumbnailURL = (string)dictionary["ThumbnailURL"];
                x.PageURL      = (string)dictionary["PageURL"];
                return(x);
            };

            case "html":
            {
                HTMLWidget x = new HTMLWidget();
                x.Title = (string)dictionary["Title"];
                x.HTML  = (string)dictionary["HTML"];
                return(x);
            };

            case "entity":
            {
                EntityWidget x = new EntityWidget();
                x.SubType  = (string)dictionary["SubType"];
                x.Title    = (string)dictionary["Title"];
                x.Abstract = (string)dictionary["Abstract"];
                x.ImageURL = (string)dictionary["ImageURL"];
                x.Url      = (string)dictionary["Url"];
                return(x);
            };

            case "chart":
            {
                ChartWidget x = new ChartWidget();
                x.Title = (string)dictionary["Title"];
                //x.Categories = (List<string>)dictionary["Categories"];
                System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Categories"]);
                foreach (var item in itemss)
                {
                    x.Categories.Add(serializer.ConvertToType <string>(item));
                }
                System.Collections.ArrayList itemss2 = ((System.Collections.ArrayList)dictionary["Data"]);
                foreach (var item in itemss2)
                {
                    x.Data.Add(serializer.ConvertToType <ChartsData>(item));
                }
                //x.Data = (List<ChartsData>)dictionary["Data"];
                return(x);
            };

            case "businessEntity":
            {
                BusinessEntityWidget x = new BusinessEntityWidget();
                x.SubType  = (string)dictionary["SubType"];
                x.Title    = (string)dictionary["Title"];
                x.Abstract = (string)dictionary["Abstract"];
                x.ImageURL = (string)dictionary["ImageURL"];
                x.URL      = (string)dictionary["URL"];
                //x.Attributes = (List<KeyValueTextWidget>)dictionary["Attributes"];
                System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Attributes"]);
                foreach (var item in itemss)
                {
                    x.Attributes.Add(serializer.ConvertToType <KeyValueTextWidget>(item));
                }
                x.Address = (string)dictionary["Address"];
                x.Phone   = (string)dictionary["Phone"];
                x.Lat     = (double)dictionary["Lat"];
                x.Lng     = (double)dictionary["Lng"];
                System.Collections.ArrayList itemss2 = ((System.Collections.ArrayList)dictionary["OtherURLs"]);
                foreach (var item in itemss2)
                {
                    x.OtherURLs.Add(serializer.ConvertToType <URLWidget>(item));
                }
                //x.OtherURLs = (List<URLWidget>)dictionary["OtherURLs"];
                return(x);
            };

            case "list":
            {
                switch ((string)dictionary["SubType"])
                {
                case null:
                {
                    ListWidget x = new ListWidget();
                    x.Title = (string)dictionary["Title"];
                    System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]);
                    foreach (var item in itemss)
                    {
                        x.Items.Add(serializer.ConvertToType <APIResultWidget>(item));
                    }
                    return(x);
                };

                case "videos":
                {
                    ListOfVideosWidget           x      = new ListOfVideosWidget();
                    System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]);
                    foreach (var item in itemss)
                    {
                        x.Items.Add(serializer.ConvertToType <URLWidget>(item));
                    }
                    return(x);
                };

                case "images":
                {
                    ListOfImagesWidget           x      = new ListOfImagesWidget();
                    System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]);
                    foreach (var item in itemss)
                    {
                        x.Items.Add(serializer.ConvertToType <ImageWidget>(item));
                    }
                    return(x);
                };

                case "webResults":
                {
                    ListOfWebsitesWidget         x      = new ListOfWebsitesWidget();
                    System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]);
                    foreach (var item in itemss)
                    {
                        x.Items.Add(serializer.ConvertToType <URLWidget>(item));
                    }
                    return(x);
                };

                case "businesses":
                {
                    ListOfBusinessesWidget x = new ListOfBusinessesWidget();
                    x.Title = (string)dictionary["Title"];
                    System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["Items"]);
                    foreach (var item in itemss)
                    {
                        x.Items.Add(serializer.ConvertToType <BusinessEntityWidget>(item));
                    }
                    return(x);
                };
                }
            }; break;
            }
        }
        else                                   //in case of objects not inheriting from the abstract class, in this case we identify each one by something else, not "type"
        {
            if (dictionary.ContainsKey("Day")) //WeatherForcastItem
            {
                WeatherForcastItem x = new WeatherForcastItem();
                x.Day     = (string)dictionary["Day"];
                x.Hi      = (string)dictionary["Hi"];
                x.Lo      = (string)dictionary["Lo"];
                x.Status  = (string)dictionary["Status"];
                x.IconURL = (string)dictionary["IconURL"];
                return(x);
            }
            else if (dictionary.ContainsKey("Temprature"))     // CurrentWeather
            {
                CurrentWeather x = new CurrentWeather();
                x.Temprature    = (string)dictionary["Temprature"];
                x.Status        = (string)dictionary["Status"];
                x.WindSpeed     = (string)dictionary["WindSpeed"];
                x.WindDirection = (string)dictionary["WindDirection"];
                x.Humidity      = (string)dictionary["Humidity"];
                x.IconURL       = (string)dictionary["IconURL"];
                x.IsNight       = (string)dictionary["IsNight"];
                return(x);
            }
            else if (dictionary.ContainsKey("Lat"))     //MapPoint
            {
                MapPoint x = new MapPoint();
                x.Title = (string)dictionary["Title"];
                x.Lat   = (double)dictionary["Lat"];
                x.Lng   = (double)dictionary["Lng"];
                return(x);
            }
            else if (dictionary.ContainsKey("Value"))     //ValueItem
            {
                ValueItem x = new ValueItem();
                x.Value    = (string)dictionary["Value"];
                x.ValueURL = (string)dictionary["ValueURL"];
                return(x);
            }
            else if (dictionary.ContainsKey("name"))     //ChartsData
            {
                ChartsData x = new ChartsData();
                x.name = (string)dictionary["name"];
                System.Collections.ArrayList itemss = ((System.Collections.ArrayList)dictionary["name"]);
                foreach (var item in itemss)
                {
                    x.values.Add(serializer.ConvertToType <string>(item));
                }
                return(x);
            }
        }
        return(null);
    }
コード例 #7
0
ファイル: F1TVOverlay.xaml.cs プロジェクト: TheSmoun/TMTVO
 public void WeatherFadeOut()
 {
     WeatherWidget.FadeOut();
 }