/*++

Copyright (c) Microsoft Corporation. All rights reserved.

Module Name:

    RedBook.mof

Abstract:

    This file defines all of the MOF classes supported by the redbook driver


Revision History:

--*/

// #define MOFRESOURCENAME L"Redbook"

[abstract]
class MSRedbook
{
};


[Dynamic,
 Provider("WMIProv"),
 WMI,
 Description("Digital Audio Filter Driver Information (redbook)"),
 GuidName1("GUID_REDBOOK_WMI_STD_DATA"),
 GuidName2("MSRedbook_DriverInformationGuid"),
 HeaderName("REDBOOK_WMI_STD_DATA"),
 guid("{b90550e7-ae0a-11d1-a571-00c04fa34730}"),
 locale("MS\\0x409")
]

class MSRedbook_DriverInformation
{
        [key, read]
        string InstanceName;

        [read]
        boolean Active;

        [WmiDataId(1),
         DefineDataId("REDBOOK_WMI_NUMBER_OF_BUFFERS"),
         read,
         write,
         Description("NumberOfBuffers*SectorsPerRead*2352 is the amount of memory used to reduce skipping." )
        ]
        uint32 NumberOfBuffers;

        [WmiDataId(2),
         DefineDataId("REDBOOK_WMI_SECTORS_PER_READ"),
         read,
         write,
         Description("Sectors (2352 bytes each) per read.")
        ]
        uint32 SectorsPerRead;

        [WmiDataId(3),
         DefineDataId("REDBOOK_WMI_SECTORS_PER_READ_MASK"),
         read,
         write,
         Description("Bitwise mask of supported sectors per read for this drive.  The lowest bit is one sector reads.  If all bits are set, there are no restrictions.")
        ]
        uint32 SectorsPerReadMask;

        [WmiDataId(4),
         DefineDataId("REDBOOK_WMI_MAX_SECTORS_PER_READ"),
         read,
         write,
         Description("Maximum sectors per read (depends on both adapter and drive).")
        ]
        uint32 MaximumSectorsPerRead;

        [WmiDataId(5),
         DefineDataId("REDBOOK_WMI_PLAY_ENABLED"),
         read,
         write,
         Description("PlayEnabled indicates the drive is currently using the RedBook filter.")
        ]
        boolean PlayEnabled;

        [WmiDataId(6),
         DefineDataId("REDBOOK_WMI_CDDA_SUPPORTED"),
         read,
         write,
         Description("CDDASupported indicates the drive supports digital audio for some sector sizes.")
        ]
        boolean CDDASupported;

        [WmiDataId(7),
         DefineDataId("REDBOOK_WMI_CDDA_ACCURATE"),
         read,
         write,
         Description("CDDAAccurate indicates the drive acccurately reads digital audio.  This ensures the highest quality audio")
        ]
        boolean CDDAAccurate;

        [WmiDataId(8),
         read,
         Description("Reserved for future use")
        ]
        boolean Reserved1;

};


[Dynamic,
 Provider("WMIProv"),
 WMI,
 Description("Digital Audio Filter Driver Performance Data (redbook)"),
 GuidName1("GUID_REDBOOK_WMI_PERF_DATA"),
 GuidName2("MSRedbook_PerformanceGuid"),
 HeaderName("REDBOOK_WMI_PERF_DATA"),
 guid("{b90550e8-ae0a-11d1-a571-00c04fa34730}"),
 locale("MS\\0x409")
]

class MSRedbook_Performance
{
        [key, read]
        string InstanceName;

        [read]
        boolean Active;

        [WmiDataId(1),
         DefineDataId("REDBOOK_WMI_PERF_TIME_READING_DELAY"),
         read,
         Description("Seconds spent ready to read, but unused. (*1E-7)" )
        ]
        sint64 TimeReadDelay;

        [WmiDataId(2),
         DefineDataId("REDBOOK_WMI_PERF_TIME_READING"),
         read,
         Description("Seconds spent reading data from source. (*1E-7)")
        ]
        sint64 TimeReading;

        [WmiDataId(3),
         DefineDataId("REDBOOK_WMI_PERF_TIME_STREAMING_DELAY"),
         read,
         Description("Seconds spent ready to stream, but unused. (*1E-7)")
        ]
        sint64 TimeStreamDelay;

        [WmiDataId(4),
         DefineDataId("REDBOOK_WMI_PERF_TIME_STREAMING"),
         read,
         Description("Seconds spent streaming data. (*1E-7)")
        ]
        sint64 TimeStreaming;

        [WmiDataId(5),
         DefineDataId("REDBOOK_WMI_PERF_DATA_PROCESSED"),
         read,
         Description("Number of bytes of data read and streamed.")
        ]
        sint64 DataProcessed;

        [WmiDataId(6),
         DefineDataId("REDBOOK_WMI_PERF_STREAM_PAUSED_COUNT"),
         read,
         Description("Number of times the stream has paused due to insufficient stream buffers.")
        ]
        uint32 StreamPausedCount;

};

