//cons public SignalsWindow() { InitializeComponent(); //waverly = new Waverly(this); currentProject = null; //control panel controlPanel = new ControlPanel(this); controlPanel.Location = new Point(0, SignalsMenu.Height); controlPanel.Width = this.ClientSize.Width; this.Controls.Add(controlPanel); //track panel trackPanel = new TrackPanel(this); trackPanel.Location = new Point(0, controlPanel.Bottom); trackPanel.Size = new Size(this.ClientSize.Width, SignalsStatus.Top - controlPanel.Bottom); this.Controls.Add(trackPanel); //mixer window mixerWindow = new MixerWindow(this); mixerWindow.FormClosing += new FormClosingEventHandler(MixerWindow_FormClosing); shuttingdown = false; isPaused = false; playSpeed = 0; }
private void deleteTrack(object sender, RoutedEventArgs e) { Button o = (Button)sender; TrackPanel p = (TrackPanel)o.Parent; StackPanel pp = (StackPanel)p.Parent; pp.Children.Remove(p); }
public int playPos; //cur playing pos in pixels from left end of ruler public TrackRuler(TrackPanel _trackPanel) { trackPanel = _trackPanel; InitializeComponent(); this.Height = 20; this.BackColor = Color.Snow; zoomFactor = TrackPanel.ZOOMFACTOR; zeroPos = TrackView.TRACKHEADERWIDTH + 1; startPos = 0; playPos = 0; }
private void play_step(object sender, EventArgs e) { int columns = Convert.ToInt32(numColumns.Text); if (++step >= columns) { step = 0; } //display current step on leds string leds = Convert.ToString((1 << step % 8), 2); SendPacket(leds.PadLeft(8, '0')); int numTracks = trackViewer.Children.Count; //get cell at step for each track panel for (int i = 0; i < numTracks; i++) { TrackPanel _track = (TrackPanel)trackViewer.Children[i]; TextBox t = (TextBox)(_track.Children)[step + 4]; int octave = 0; string note = t.Text; if (note == "0") { if (debug == true) { Console.WriteLine("empty cell, skipping"); } } else { int letter = CharToIndex(note[0]); if (note[1] == 's') { letter++; octave = note[2] - 0x30; } else { octave = note[1] - 0x30; } if (debug == true) { Console.WriteLine("playing " + letter.ToString() + octave.ToString()); } play_instruments[i].Play(play_channels[i], Notes.table[letter, octave]); Thread.Sleep(2); } } }
void LoadMetaData(int index) { ClearTrackPanels(); Clear(false); int panelYPos = 10; int totalValues = tagReader.sortedFilePaths.Count; Thread.Sleep(10); InitStatus(totalValues); Dictionary <uint, Image> hashCodes = new Dictionary <uint, Image>(); foreach (string path in tagReader.sortedFilePaths.Values) { IPicture iPicture = null; Image finalCover = null; if (tagReader.GetTagsFromPath(path).Pictures.Length != 0) { iPicture = tagReader.GetTagsFromPath(path).Pictures[0]; uint hash = iPicture.Data.Checksum; if (!hashCodes.ContainsKey(hash)) { hashCodes.Add(hash, utils.IPictureToImage(iPicture, 24)); } finalCover = hashCodes[hash]; } TrackPanel trackPanel = new TrackPanel(path, finalCover, tagReader.GetTagsFromPath(path).Title, themeManager) { Location = new Point(10, panelYPos), Size = new Size(mainPanel.ClientSize.Width - 20, 32) }; mainPanel.Controls.Add(trackPanel); trackPanel.MouseClick += mouseClick; trackPanel.Label.MouseClick += mouseClick; panelYPos += TRACKPANEL_Y_OFFSET; UpdateStatus("Displaying Files", (panelYPos / 42), totalValues); } loadMetadataIntoDetailsBox(tagReader.GetTagsFromPath(tagReader.sortedFilePaths[index])); status.Text = "Done."; }
/// <summary> /// 轨迹面板,用于画出Tag的运动轨迹 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TrackPanel_Paint(object sender, PaintEventArgs e) { if (null == TrackPanel || TrackPanel.IsDisposed) { return; } try { if (null != TrackBtm) { TrackPanel.CreateGraphics().DrawImageUnscaled(TrackBtm, 0, 0); } else { TrackPanel.CreateGraphics().Clear(Color.White); } }catch (Exception) { } }
//----------------------------------------------------------------------------- //cons public X1Project(SignalsWindow _signalsWindow, String _name, int _sampleRate, int _duration) { signalsWindow = _signalsWindow; waverly = signalsWindow.waverly; mixerWindow = signalsWindow.mixerWindow; mixerMaster = signalsWindow.mixerWindow.mixmaster; trackPanel = signalsWindow.trackPanel; projectName = _name; filename = null; sampleRate = _sampleRate; duration = _duration; dataSize = sampleRate * duration; leftOutLevel = 1.0f; rightOutLevel = 1.0f; tracks = new List <X1Track>(); isChanged = true; //work out a better determinization of when the project's changes later waverly.newAudioProject(sampleRate, duration); //create new project in back end }
public void ShowTrack() { // Create a Graphics object for the Control. Point center = new Point(125, 125); double declination = tgtDecD; double startHa = tgtUpH; double endHa = tgtDownH; Graphics g = TrackPanel.CreateGraphics(); SkyView sv = new SkyView(g, center, (float)skymapRadius, (float)(90.0 - obsLatD)); //Create pens for drawing Pen whitePen = new Pen(Color.White, 1.0F); whitePen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel; Pen redPen = new Pen(Color.Red, 4.0F); redPen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel; Pen orangePen = new Pen(Color.Orange, 2.0F); orangePen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel; Pen yellowPen = new Pen(Color.Yellow, 4.0F); yellowPen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel; Pen greenPen = new Pen(Color.LightSeaGreen, 2.0F); greenPen.LineJoin = System.Drawing.Drawing2D.LineJoin.Bevel; //Draw hour angle lines (longitude) for (int iHour = 0; iHour < 24; iHour++) { g.DrawCurve(whitePen, sv.HourLine(iHour)); } //Draw declination lines (latitude) -- some lines could be empty because of xy projection for (int iLat = 0; iLat < 18; iLat++) { Point[] latLines = sv.DecLine(iLat * 10); int asz = latLines.Length; if (asz > 1) { g.DrawLines(whitePen, latLines); } } //Draw equator Point[] equLine = sv.DecLine(90.0); g.DrawLines(greenPen, equLine); //Draw transit hour //double transitH = AstroMath.NormalizeHours(tgtPosition.TransitTime(tgtDateUTC, tgtLocation)); g.DrawCurve(orangePen, sv.HourLine(tgtTransitH)); //Draw target path Point[] trackPts = sv.TrackLine(startHa, endHa, declination); if (trackPts.Length > 3) { int tjumpIndx = ContinuityCheck(trackPts); if (tjumpIndx == 0) { if (trackPts.Length > 3) { g.DrawCurve(redPen, trackPts); } } else { if (tjumpIndx > 3) { g.DrawCurve(redPen, trackPts, 0, (tjumpIndx - 2), 1.0F); } if ((trackPts.Length - tjumpIndx) > 3) { g.DrawCurve(redPen, trackPts, (tjumpIndx + 1), (trackPts.Length - tjumpIndx - 2), 1.0F); } } } //Draw moon path Point[] moonPts = sv.TrackLine(moonRiseH, moonSetH, moonDecD); if (moonPts.Length > 3) { int mjumpIndx = ContinuityCheck(moonPts); if (mjumpIndx == 0) { if (moonPts.Length > 3) { g.DrawCurve(yellowPen, moonPts); } } else { if (mjumpIndx > 3) { g.DrawCurve(yellowPen, moonPts, 0, (mjumpIndx - 2), 1.0F); } if ((moonPts.Length - mjumpIndx) > 3) { g.DrawCurve(yellowPen, moonPts, (mjumpIndx + 1), (moonPts.Length - mjumpIndx - 2), 1.0F); } } } int thour = (int)tgtTransitH; int tmin = ((int)(tgtTransitH - thour)) * 60; string transitText = thour.ToString("00") + tmin.ToString("00"); this.Text = targetName + " Track <E-W> Transit @ " + transitText; return; }
private void addTrackRow(Track _track, int colNum) { TrackPanel trackRow = new TrackPanel { Orientation = Orientation.Horizontal, HorizontalAlignment = HorizontalAlignment.Stretch, Height = 30, Background = new SolidColorBrush { Color = Color.FromRgb(65, 71, 75) }, Margin = new Thickness(2), //childTrack = _track }; trackViewer.Children.Add(trackRow); Button destroy = new Button { Content = "X", Height = 25, Width = 20, VerticalContentAlignment = VerticalAlignment.Center }; destroy.Click += new RoutedEventHandler(deleteTrack); trackRow.Children.Add(destroy); TextBox trackTxt = new TextBox { Name = "trackTitle", Height = 30, Width = 60, Text = _track.Name, VerticalContentAlignment = VerticalAlignment.Center }; trackTxt.TextChanged += new TextChangedEventHandler(renameTrack); trackRow.Children.Add(trackTxt); ComboBox instSelect = new ComboBox { Name = "trackInstr", Width = 70, ItemsSource = instrList, SelectedItem = _track.instr, VerticalContentAlignment = VerticalAlignment.Center }; instSelect.SelectionChanged += new SelectionChangedEventHandler(selectInstrument); trackRow.Children.Add(instSelect); ComboBox channelSelect = new ComboBox { Name = "trackChannel", Width = 70, ItemsSource = channelList, VerticalContentAlignment = VerticalAlignment.Center }; channelSelect.SelectionChanged += new SelectionChangedEventHandler(selectChannel); trackRow.Children.Add(channelSelect); for (int i = 0; i < colNum; i++) { string celldata; if (i > _track.events.Count - 1) { celldata = "0"; } else { celldata = _track.events[i].ToString(); } trackRow.Children.Add(new TextBox { Name = "cell" + i.ToString(), Height = 30, Width = 30, VerticalContentAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Stretch, Text = celldata }); } }