Hardware/HDD/HarddriveGroup.cs
author moel.mich
Tue, 30 Dec 2014 22:47:39 +0000
changeset 431 0e46e3ca812a
parent 324 c6ee430d6995
permissions -rw-r--r--
Fixed the following issue (present only on 32-bit systems):

Version: 0.7.0.0

System.NullReferenceException: Object reference not set to an instance of an object.
at OpenHardwareMonitor.GUI.MainForm.timer_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.OnTick(EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Common Language Runtime: 4.0.30319.18444
Operating System: Microsoft Windows NT 6.1.7601 Service Pack 1
Process Type: 32-Bit
moel@324
     1
/*
moel@344
     2
 
moel@344
     3
  This Source Code Form is subject to the terms of the Mozilla Public
moel@344
     4
  License, v. 2.0. If a copy of the MPL was not distributed with this
moel@344
     5
  file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@344
     6
 
moel@344
     7
  Copyright (C) 2009-2011 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@344
     8
	Copyright (C) 2010 Paul Werelds
moel@344
     9
  Copyright (C) 2011 Roland Reinl <roland-reinl@gmx.de>
moel@324
    10
moel@324
    11
*/
moel@324
    12
moel@324
    13
using System;
moel@324
    14
using System.Collections.Generic;
moel@324
    15
using System.Globalization;
moel@324
    16
using System.Text;
moel@324
    17
moel@324
    18
namespace OpenHardwareMonitor.Hardware.HDD {
moel@324
    19
  internal class HarddriveGroup : IGroup {
moel@324
    20
moel@324
    21
    private const int MAX_DRIVES = 32;
moel@324
    22
moel@324
    23
    private readonly List<AbstractHarddrive> hardware = 
moel@324
    24
      new List<AbstractHarddrive>();
moel@324
    25
moel@324
    26
    public HarddriveGroup(ISettings settings) {
moel@324
    27
      int p = (int)Environment.OSVersion.Platform;
moel@324
    28
      if (p == 4 || p == 128) return;
moel@324
    29
moel@324
    30
      ISmart smart = new WindowsSmart();
moel@324
    31
moel@324
    32
      for (int drive = 0; drive < MAX_DRIVES; drive++) {
moel@324
    33
        AbstractHarddrive instance =
moel@324
    34
          AbstractHarddrive.CreateInstance(smart, drive, settings);
moel@324
    35
        if (instance != null) {
moel@324
    36
          this.hardware.Add(instance);
moel@324
    37
        }
moel@324
    38
      }
moel@324
    39
    }
moel@324
    40
moel@324
    41
    public IHardware[] Hardware {
moel@324
    42
      get {
moel@324
    43
        return hardware.ToArray();
moel@324
    44
      }
moel@324
    45
    }
moel@324
    46
moel@324
    47
    public string GetReport() {
moel@324
    48
      return null;
moel@324
    49
    }
moel@324
    50
moel@324
    51
    public void Close() {
moel@324
    52
      foreach (AbstractHarddrive hdd in hardware) 
moel@324
    53
        hdd.Close();
moel@324
    54
    }
moel@324
    55
  }
moel@324
    56
}