View Javadoc
1   /*
2    * Copyright 2018-2022 The OSHI Project Contributors
3    * SPDX-License-Identifier: MIT
4    */
5   package oshi.hardware.common;
6   
7   import oshi.annotation.concurrent.Immutable;
8   import oshi.hardware.SoundCard;
9   
10  /**
11   * An abstract Sound Card
12   */
13  @Immutable
14  public abstract class AbstractSoundCard implements SoundCard {
15  
16      private String kernelVersion;
17      private String name;
18      private String codec;
19  
20      /**
21       * Abstract Sound Card Constructor
22       *
23       * @param kernelVersion The version
24       * @param name          The name
25       * @param codec         The codec
26       */
27      protected AbstractSoundCard(String kernelVersion, String name, String codec) {
28          this.kernelVersion = kernelVersion;
29          this.name = name;
30          this.codec = codec;
31      }
32  
33      @Override
34      public String getDriverVersion() {
35          return this.kernelVersion;
36      }
37  
38      @Override
39      public String getName() {
40          return this.name;
41      }
42  
43      @Override
44      public String getCodec() {
45          return this.codec;
46      }
47  
48      @Override
49      public String toString() {
50          StringBuilder builder = new StringBuilder();
51          builder.append("SoundCard@");
52          builder.append(Integer.toHexString(hashCode()));
53          builder.append(" [name=");
54          builder.append(this.name);
55          builder.append(", kernelVersion=");
56          builder.append(this.kernelVersion);
57          builder.append(", codec=");
58          builder.append(this.codec);
59          builder.append(']');
60          return builder.toString();
61      }
62  
63  }