Confidential Information
Copyright (C) 1996 - WinSoft Development Corporation
All Rights Reserved
========================================================================
Function: CadetVxd(HWND hWnd, long lFlags)
Description: Class constructor, called automatically on invocation of
the class.
Parameters:
HWND hWnd Window handle of calling application that will handle
incoming messages from the VxD.
long lFlags Bit flags notifying the VxD of what type of messages to
send to this application's message handler. One or more
of the following message types: (OR'd together):
MSGS_RBDS (messages from RBDS system, including sync/nosync)
MSGS_TUNER (messages from tuner functions)
MSGS_CUEPAGE (cue paging messages)
MSGS_CRNNEWS (CRN news data feed)
MSGS_MBSEWS (MBS EWS messages)
Returns:
None
Comments:
Since a class constructor returns no values, it will not be known at
the time of invocation whether the VxD loaded and initialized
successfully. It will be up to the calling application to call the
IsVxdOpen member function after invocation to ensure that the VxD is
available and initialized correctly.
========================================================================
Function: ~CadetVxd()
Description: Class destructor, called automatically on delete of class
instance.
Parameters:
None
Returns:
None
Comments:
When the class is destroyed, the communication with the VxD will end.
========================================================================
Function: StartSelfTest (long lMsgs)
Description: Tells the VxD to do a message passing self-test.
Parameters:
long lMsgs Number of messages that the VxD should send to the caller.
Returns:
Long value of 0.
Comments:
The VxD will start sending the TUNER_TEST_MSG to the calling app
at the rate of approximately 25 messages per second. After the
specified number of TUNER_TEST_MSG's are sent, an ending message
of type TUNER_TEST_END will be sent.
========================================================================
Function: IsVxdOpen(void)
Description: Indicates whether the VxD initialized successfully.
Parameters:
None
Returns:
BOOL result code of TRUE (1) if VxD is active or FALSE (0) if not.
Comments:
All functions in the class will return a VxD failure error code if
the VxD did not initialize properly. Call this member soon after
constructing an instance of the class.
========================================================================
Function: GetLastError(void)
Description: Returns the last error code received from the VxD.
Parameters:
None
Returns:
Error code which may be one of the following:
V_NOT_OPEN The VxD is not open or couldn't initialize.
V_GENERAL_ERROR A general failure type error returned from the VxD.
V_TUNER_BUSY A function that depends on the tuner being idle was
called while the tuner was busy tuning or searching.
V_ARG_COUNT Insufficient sized arguments passed to VxD for the
data to be returned. Use a larger buffer.
Comments:
Check this function whenever a -1 is returned from any of the other
functions in the class.
========================================================================
Function: SetTunerFrequency (long lFreq)
Description: Tunes the radio card to the desired frequency, in KHz.
Parameters:
long lFreq The frequency to tune to, in KHz. (FM range is
87700 to 107900, AM range is 530 to 1650).
Returns:
Long value of -1 on error or 0 on success.
Comments:
========================================================================
Function: GetTunerFrequency (void)
Description: Returns the currently tuned frequency.
Parameters:
None
Returns:
long value of the frequency in KHz on success, -1 on error.
Comments:
========================================================================
Function: GetFmFrequencies (long *lList, long lElements)
Description: Retrieves the list of FM frequencies found in the last
band search.
Parameters:
long *lList Pointer to an array of long's which will hold the
frequencies returned from the board (up to 102)
long lElements Number of elements in the list passed to the function.
Returns:
long value of the number of frequencies returned or -1 on error.
Comments:
Make sure that there is room in the passed array for the potential
number of frequencies that could be found (up to 102) and that the
second parameter accurately specifies the number of elements in the
array.
========================================================================
Function: GetFmFlags (long *lList, long lElements)
Description: Retrieves the list of FM flags which indicate the type
of station found (Normal, RBDS, MBS).
Parameters:
long *lList Pointer to an array of long's which will hold the
flags returned from the board (up to 102)
long lElements Number of elements in the list passed to the function.
Returns:
long value of the number of flags returned or -1 on error.
Comments:
Make sure that there is room in the passed array for the potential
number of frequencies that could be found (up to 102) and that the
second parameter accurately specifies the number of elements in the
array.
Flag values are 0 for normal station, STATION_TYPE_RBDS for RBDS
stations and STATION_TYPE_MBS for MBS/CUE/CRN stations.
========================================================================
Function: GetFmCallLetters (char *lList, long lElements)
Description: Retrieves the list of FM Call Letters for the stations.
Parameters:
char *lList Pointer to a character buffer of the form lList[x][5],
where x should be on the order of 102.
long lElements Number of elements (x * 5) in the list passed to the function.
Returns:
long value of the number of call letter sets returned or -1 on error.
Comments:
Make sure that there is room in the passed array for the potential
number of frequencies that could be found (up to 102) times 5
characters per station and that the second parameter accurately
specifies the number of elements (x * 5) in the array.
Stations that are not RBDS will return a buffer of four spaces,
null terminated. Otherwise, if PI was found during search for the
station, the call letters will be returned (4 characters + null).
========================================================================
Function: GetFmPtyLetters (char *lList, long lElements)
Description: Retrieves the list of FM Pty Types for the stations.
Parameters:
char *lList Pointer to a character buffer of the form lList[x][9],
where x should be on the order of 102.
long lElements Number of elements (x * 9) in the list passed to the function.
Returns:
long value of the number of call letter sets returned or -1 on error.
Comments:
Make sure that there is room in the passed array for the potential
number of frequencies that could be found (up to 102) times 9
characters per station and that the second parameter accurately
specifies the number of elements (x * 9) in the array.
Stations that are not RBDS will return a buffer of eight spaces,
null terminated. Otherwise, if PTY was found during search for the
station, the text will be returned (8 characters + null).
========================================================================
Function: GetAmFrequencies (long *lList, long lElements)
Description: Retrieves the list of AM frequencies found in the last
band search.
Parameters:
long *lList Pointer to an array of long's which will hold the
frequencies returned from the board (up to 50)
long lElements Number of elements in the list passed to the function.
Returns:
long value of the number of frequencies returned or -1 on error.
Comments:
Make sure that there is room in the passed array for the potential
number of frequencies that could be found (up to 50) and that the
second parameter accurately specifies the number of elements in the
array.
========================================================================
Function: GetAmFlags (long *lList, long lElements)
Description: Retrieves the list of AM flags which indicate the type
of station found (Normal, RBDS, MBS).
Parameters:
long *lList Pointer to an array of long's which will hold the
flags returned from the board (up to 102)
long lElements Number of elements in the list passed to the function.
Returns:
long value of the number of flags returned or -1 on error.
Comments:
Make sure that there is room in the passed array for the potential
number of frequencies that could be found (up to 102) and that the
second parameter accurately specifies the number of elements in the
array.
Flag values are 0 for normal station, STATION_TYPE_RBDS for RBDS
stations and STATION_TYPE_MBS for MBS/CUE/CRN stations.
========================================================================
Function: GetAmCallLetters (char *lList, long lElements)
Description: Retrieves the list of AM Call Letters for the stations.
Parameters:
char *lList Pointer to a character buffer of the form lList[x][5],
where x should be on the order of 50.
long lElements Number of elements (x * 5) in the list passed to the function.
Returns:
long value of the number of call letter sets returned or -1 on error.
Comments:
Make sure that there is room in the passed array for the potential
number of frequencies that could be found (up to 50) times 5
characters per station and that the second parameter accurately
specifies the number of elements (x * 5) in the array.
Stations that are not RBDS will return a buffer of four spaces,
null terminated. Otherwise, if PI was found during search for the
station, the call letters will be returned (4 characters + null).
========================================================================
Function: GetAmPtyLetters (char *lList, long lElements)
Description: Retrieves the list of AM Pty Types for the stations.
Parameters:
char *lList Pointer to a character buffer of the form lList[x][9],
where x should be on the order of 50.
long lElements Number of elements (x * 9) in the list passed to the function.
Returns:
long value of the number of call letter sets returned or -1 on error.
Comments:
Make sure that there is room in the passed array for the potential
number of frequencies that could be found (up to 50) times 9
characters per station and that the second parameter accurately
specifies the number of elements (x * 9) in the array.
Stations that are not RBDS will return a buffer of eight spaces,
null terminated. Otherwise, if PTY was found during search for the
station, the text will be returned (8 characters + null).
========================================================================
Function: GetFmFrequencyCount(void)
Description: Returns the number of frequencies found in the last band
search.
Parameters:
None
Returns:
long number of frequencies or -1 on error.
========================================================================
Function: GetAmFrequencyCount(void)
Description: Returns the number of frequencies found in the last band
search.
Parameters:
None
Returns:
long number of frequencies or -1 on error.
========================================================================
Function: SetAmSensitivity (unsigned uSens)
Description: Sets the sensitivity level for subsequent band searches
for the AM band, or direct tuning calls.
Parameters:
unsigned uSens One of the following defined constants:
TUNER_SENS_MAX - Maximum sensitivity (weak stations)
TUNER_SENS_HI - High sensitivity
TUNER_SENS_MED - Medium sensitivity
TUNER_SENS_LOW - Low sensitivity (strong stations)
Returns:
long value of 0 for success, -1 on error.
Comments:
Changing the sensitivity takes effect on the next direct tuning or
band search call.
========================================================================
Function: SetFmSensitivity (unsigned uSens)
Description: Sets the sensitivity level for subsequent band searches
for the FM band, or direct tuning calls.
Parameters:
unsigned uSens One of the following defined constants:
TUNER_SENS_MAX - Maximum sensitivity (weak stations)
TUNER_SENS_HI - High sensitivity
TUNER_SENS_MED - Medium sensitivity
TUNER_SENS_LOW - Low sensitivity (strong stations)
Returns:
long value of 0 for success, -1 on error.
Comments:
Changing the sensitivity takes effect on the next direct tuning or
band search call.
========================================================================
Function: GetAmSensitivity (void)
Description: Returns the current sensitivity setting for AM as stored
in the VxD.
Parameters:
None
Returns:
-1 on error, or one of the following values:
TUNER_SENS_MAX - Maximum sensitivity (weak stations)
TUNER_SENS_HI - High sensitivity
TUNER_SENS_MED - Medium sensitivity
TUNER_SENS_LOW - Low sensitivity (strong stations)
========================================================================
Function: GetFmSensitivity (void)
Description: Returns the current sensitivity setting for FM as stored
in the VxD.
Parameters:
None
Returns:
-1 on error, or one of the following values:
TUNER_SENS_MAX - Maximum sensitivity (weak stations)
TUNER_SENS_HI - High sensitivity
TUNER_SENS_MED - Medium sensitivity
TUNER_SENS_LOW - Low sensitivity (strong stations)
========================================================================
Function: IsTuned (void)
Description: Returns whether the last station set was tuned or not.
Parameters:
None
Returns:
-1 on error, 1 if tuned or 0 if not tuned.
========================================================================
Function: IsMuted (void)
Description: Returns whether the tuner portion is muted or not.
Parameters:
None
Returns:
-1 on error, 1 if muted or 0 if not.
========================================================================
Function: IsStereo (void)
Description: Returns the Stereo/Mono status of the currently tuned
frequency.
Parameters:
None
Returns:
-1 on error, 1 if stereo or 0 if mono.
========================================================================
Function: SetMono (void)
Description: Forces subsequent tuned frequencies to be received in mono.
Parameters:
None
Returns:
0 on success, -1 on error.
Comments:
This setting takes effect on the next direct tuning call.
========================================================================
Function: SetStereo (void)
Description: Allows subsequent tuned frequencies to be received in stereo.
Parameters:
None
Returns:
0 on success, -1 on error.
Comments:
This setting takes effect on the next direct tuning call.
========================================================================
Function: TuneUp(void)
Description: Tells the tuner to tune to the next higher scanned
frequency in it's list.
Parameters:
None
Returns:
-1 on error, tuned frequency on success.
Comments:
If the highest frequency (last entry) in the list is currently tuned,
the tuner will wrap to the bottom entry in the list as the next
frequency.
========================================================================
Function: TuneDown(void)
Description: Tells the tuner to tune to the next lower scanned
frequency in it's list.
Parameters:
None
Returns:
-1 on error, tuned frequency on success.
Comments:
If the lowest frequency (first entry) in the list is currently tuned,
the tuner will wrap to the top entry in the list as the next
frequency.
========================================================================
Function: Mute(void)
Description: Tells the tuner sound output to mute.
Parameters:
None
Returns:
0 on success, -1 on error.
========================================================================
Function: UnMute(void)
Description: Tells the tuner sound output to resume.
Parameters:
None
Returns:
0 on success, -1 on error.
========================================================================
Function: Scan(void)
Description: Forces a rescan for valid frequencies in the current band.
Parameters:
None
Returns:
0 on success, -1 on error.
Comments:
VxD will notify the window message handler with a message when scan
is complete. Also, the last tuned station will be restored after the scan.
========================================================================
Function: AmBand(void)
Description: Switches the tuner to the AM band.
Parameters:
None
Returns:
0 on success, -1 on error.
Comments:
This settings takes effect on the next direct tuning or search call.
========================================================================
Function: FmBand(void)
Description: Switches the tuner to the FM band.
Parameters:
None
Returns:
0 on success, -1 on error.
Comments:
This settings takes effect on the next direct tuning or search call.
========================================================================
Function: GetRbdsRadioText (char *lBuff, unsigned uLeng)
Description: Get the latest radio text buffer contents.
Parameters:
char *lBuff Caller supplied buffer to receive the text into.
unsigned uLeng Length of buffer in bytes.
Returns:
0 on success, -1 on error.
On success, buffer will contain latest radio text, or all spaces
if no text has come in or the current station is not an RD(B)S
station.
Comments:
The VxD maintains the current radio text at all times in a 65 byte
buffer (64 bytes of text plus null terminator). Therefore, it is
suggested to always pass a buffer of at least that size. Smaller
buffers will return data, but it will be truncated (and always
null terminated).
========================================================================
Function: GetRbdsCityText (char *lBuff, unsigned uLeng)
Description: Get the latest city text buffer contents.
Parameters:
char *lBuff Caller supplied buffer to receive the text into.
unsigned uLeng Length of buffer in bytes.
Returns:
0 on success, -1 on error.
On success, buffer will contain latest city location text, or all
spaces if no text has come in or the current station is not an RD(B)S
station, or it doesn't transmit location information.
Comments:
The VxD maintains the current city text at all times in a 9 byte
buffer (8 bytes of text plus null terminator). Therefore, it is
suggested to always pass a buffer of at least that size. Smaller
buffers will return data, but it will be truncated (and always
null terminated).
========================================================================
Function: GetRbdsStateText (char *lBuff, unsigned uLeng)
Description: Get the latest state text buffer contents.
Parameters:
char *lBuff Caller supplied buffer to receive the text into.
unsigned uLeng Length of buffer in bytes.
Returns:
0 on success, -1 on error.
On success, buffer will contain latest state location text, or all
spaces if no text has come in or the current station is not an
RD(B)S station, or the station does not transmit location info.
Comments:
The VxD maintains the current state text at all times in a 9 byte
buffer (8 bytes of text plus null terminator). Therefore, it is
suggested to always pass a buffer of at least that size. Smaller
buffers will return data, but it will be truncated (and always
null terminated).
========================================================================
Function: GetRbdsPtyText (char *lBuff, unsigned uLeng)
Description: Get the latest PTY text buffer contents.
Parameters:
char *lBuff Caller supplied buffer to receive the text into.
unsigned uLeng Length of buffer in bytes.
Returns:
0 on success, -1 on error.
On success, buffer will contain latest PTY text, or all spaces
if no text has come in or the current station is not an RD(B)S
station.
Comments:
The VxD maintains the current PTY text at all times in a 9 byte
buffer (8 bytes of text plus null terminator). Therefore, it is
suggested to always pass a buffer of at least that size. Smaller
buffers will return data, but it will be truncated (and always
null terminated).
========================================================================
Function: GetRbdsPtynText (char *lBuff, unsigned uLeng)
Description: Get the latest PTY Name text buffer contents.
Parameters:
char *lBuff Caller supplied buffer to receive the text into.
unsigned uLeng Length of buffer in bytes.
Returns:
0 on success, -1 on error.
On success, buffer will contain latest PTY Name text, or all spaces
if no text has come in or the current station is not an RD(B)S
station.
Comments:
The VxD maintains the current PTY Name text at all times in a 9 byte
buffer (8 bytes of text plus null terminator). Therefore, it is
suggested to always pass a buffer of at least that size. Smaller
buffers will return data, but it will be truncated (and always
null terminated).
========================================================================
Function: GetRbdsPsnText (char *lBuff, unsigned uLeng)
Description: Get the latest PSN text buffer contents.
Parameters:
char *lBuff Caller supplied buffer to receive the text into.
unsigned uLeng Length of buffer in bytes.
Returns:
0 on success, -1 on error.
On success, buffer will contain latest PSN text, or all spaces
if no text has come in or the current station is not an RD(B)S
station.
Comments:
The VxD maintains the current PSN text at all times in a 9 byte
buffer (8 bytes of text plus null terminator). Therefore, it is
suggested to always pass a buffer of at least that size. Smaller
buffers will return data, but it will be truncated (and always
null terminated).
========================================================================
Function: GetRbdsPiText (char *lBuff, unsigned uLeng)
Description: Get the latest PI text buffer contents.
Parameters:
char *lBuff Caller supplied buffer to receive the text into.
unsigned uLeng Length of buffer in bytes.
Returns:
0 on success, -1 on error.
On success, buffer will contain latest PI text, or all spaces
if no text has come in or the current station is not an RD(B)S
station.
Comments:
The VxD maintains the current radio text at all times in a 5 byte
buffer (4 bytes of text plus null terminator). Therefore, it is
suggested to always pass a buffer of at least that size. Smaller
buffers will return data, but it will be truncated (and always
null terminated).
========================================================================
Function: GetCueRadioPage (char *lBuff, unsigned uLeng)
Description: Get the last radio page received, if any.
Parameters:
char *lBuff Caller supplied buffer to receive the page into.
unsigned uLeng Length of buffer in bytes.
Returns:
1 on success, 0 if no page to retrieve.
On success, buffer will contain the page in the following form:
CCCCCC PPPPPPPPPPPP
where CCCCCC is the user's capcode and PPPPPPPPPPPP is the page
numeric text (0-9 and space possible).
Comments:
Buffer supplied must be at least 20 bytes long, with the appropriate
value indicated in the uLeng parameter. Otherwise, an error is
returned. Check to see if there are radio pages available, using the
GetCuePageCount function.
========================================================================
Function: GetTrafficStatus (void)
Description: Check if station supports traffic announcements.
Parameters:
None
Returns:
1 if station supports Traffic announcements (transmits TP flag),
0 if station does not support Traffic Announcements, or is not
an RDS station. -1 on error.
========================================================================
Function: GetCuePageCount (void)
Description: Returns the number of CUE pages ready for the app.
Parameters:
None
Returns:
Number of pages available for the application, or 0 if none or error.
Comments:
This number is unique for each application registered with the VxD as
a CUE paging application. If two apps are running and one retrieves
all of the messages, the other app will still see the pages as available
until it retrieves them, also.
========================================================================
Function: CueUpdatedCapcode (void)
Description: Signals the VxD that a new CUE Capcode is available.
Parameters:
None
Returns:
0
Comments:
After placing the CUE Capcode in the Registry, the host application
should notify the VxD via this function. The VxD will then go out
to the registry and pick up the new capcode.
========================================================================
***************** Incoming Message Notifications *******************
========================================================================
Message: TUNER_TUNED
Description: The tuner has tuned to a frequency.
Parameters:
UINT wParam - Least significant bit (0x01) set to 1 for Stereo, 0 for Mono
Next significant bit (0x02) set to 1 for FM, 0 for AM
long lParam - Frequency in kHz
Comments: Notifies all registered programs that the tuner has been
tuned to a new frequency.
========================================================================
Message: TUNER_SEARCHDONE
Description: The tuner has completed a band search.
Parameters:
UINT wParam - The least significant bit (0x01) will be set to 1 for FM, 0 for AM.
long lParam - 0
Comments: This message is sent after the last station is found in a search.
Important note at this point: The tuner attempts to tune back to
the last tuned station immediately after a search. If an attempt
is made to retrieve the list of frequencies immediately after
obtaining this message, a "Tuner Busy" error will be returned, as
the tuner is in the middle of a tuning function. This will be
fixed in the next version.
========================================================================
Message: RBDS_SYNC
Description: RBDS sync detected.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Notification that an RBDS station has been tuned to or
sync has been regained when previously lost.
========================================================================
Message: RBDS_LOSTSYNC
Description: The RBDS station sync has been lost.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent whenever the current RBDS reception
encounters enough errors to signify that sync has been
effectively lost.
========================================================================
Message: TUNER_STEREO
Description: Current station being received in stereo.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Notifies the application that the currently tuned station
is now being received in stereo. This status is updated
approximately twice a second, although no message is sent
unless the status changes from mono to stereo or vice versa.
========================================================================
Message: TUNER_MONO
Description: Current station being received in mono.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Notifies the application that the currently tuned station
is now being received in mono. This status is updated
approximately twice a second, although no message is sent
unless the status changes from mono to stereo or vice versa.
========================================================================
Message: RBDS_HAVEPI
Description: PI code obtained for RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent only once after an RBDS station has
been tuned the first time that the PI code is received
and decoded. If the PI code changes, the RBDS_CHANGEDPI
message will be sent subsequently. It is up to the host
application to retrieve the PI text upon receiving this
message.
========================================================================
Message: RBDS_HAVEPTY
Description: PTY code obtained for RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent only once after an RBDS station has
been tuned the first time that the PTY code is received
and decoded. If the PTY code changes, the RBDS_CHANGEDPTY
message will be sent subsequently. It is up to the host
application to retrieve the PTY text upon receiving this
message.
========================================================================
Message: RBDS_HAVEPTYN
Description: PTY Name obtained for RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent only once after an RBDS station has
been tuned the first time that the PTY Name is received
and decoded. If the PTY Name changes, the RBDS_CHANGEDPTYN
message will be sent subsequently. It is up to the host
application to retrieve the PTY Name upon receiving this
message.
========================================================================
Message: RBDS_HAVEPSN
Description: PSN text obtained for RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent only once after an RBDS station has
been tuned the first time that the PSN Text is received
and decoded. If the PSN Text changes, the RBDS_CHANGEDPSN
message will be sent subsequently. It is up to the host
application to retrieve the PSN Text upon receiving this
message.
========================================================================
Message: RBDS_HAVETIME
Description: Time of Day message received from RBDS station.
Parameters:
UINT wParam - Hour (00 to 23)
long lParam - Minute (00 to 59)
Comments: This message is sent as soon as a Time/Date message is
received and decoded from an RBDS station. It is
corrected to the local time based on the offset provided
by the station from Coordinated Universal Time. The
time is provided in military (24 hour) format.
========================================================================
Message: RBDS_HAVETEXT
Description: Full Radio Text obtained for RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent only once after an RBDS station has
been tuned the first time that the entire Radio Text buffer
is received and decoded. If the Radio Text changes, the
RBDS_CHANGEDTEXT message will be sent subsequently. It is
up to the host application to retrieve the Radio Text upon
receiving this message.
========================================================================
Message: RBDS_HAVECITY
Description: City Location has been obtained for an RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent only once after an RBDS station has
been tuned the first time that the City Location is received
and decoded. If the City Location changes, the RBDS_CHANGEDCITY
message will be sent subsequently. It is up to the host
application to retrieve the City Location text upon receiving this
message.
========================================================================
Message: RBDS_HAVESTATE
Description: State Location has been obtained for an RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent only once after an RBDS station has
been tuned the first time that the State Location is received
and decoded. If the State Location changes, the RBDS_CHANGEDSTATE
message will be sent subsequently. It is up to the host
application to retrieve the State Location text upon receiving this
message.
========================================================================
Message: RBDS_CLEARTEXT
Description: The Radio Text display should be cleared.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent when an RBDS station changes the Radio
Text flag to indicate a new message is being transmitted.
Also, as a convenience, this message is sent whenever the
tuner is tuned to another station or starts scanning. The
host application should clear the Radio Text display on
receiving this message. (Note that the VxD buffer will be
cleared when sending this message, too, so the same logic
used to retrieve text can also be used to clear the text).
========================================================================
Message: RBDS_CLEARRBDS
Description: All RBDS Displays (other than Radio Text) should be cleared.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: As a convenience, this message is sent whenever the
tuner is tuned to another station or starts scanning. The
host application should clear the PI, PTY, PTYN, City and
State displays (as applicable) on receiving this message.
(Note that the VxD buffers will be cleared when sending
this message, too, so the same logic used to retrieve
the various items can also be used to clear each item).
========================================================================
Message: RBDS_CHANGEDPI
Description: The RBDS PI Code has changed.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Once the PI code has been received, this message will
be sent whenever a change in PI code is detected. It can
be assumed that not receiving this message after receiving a
RBDS_HAVEPI message means that the PI code has been static.
It is up to the host application to retrieve the latest PI Code
Text upon receiving this message.
========================================================================
Message: RBDS_CHANGEDPTY
Description: The RBDS PTY Code has changed.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Once the PTY code has been received, this message will
be sent whenever a change in PTY code is detected. It can
be assumed that not receiving this message after receiving a
RBDS_HAVEPTY message means that the PTY code has been static.
It is up to the host application to retrieve the latest PTY Code
Text upon receiving this message.
========================================================================
Message: RBDS_CHANGEDPTYN
Description: The RBDS PTY Name Text has changed.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Once the PTY Name text has been received, this message will
be sent whenever a change in PTY Name text is detected. It can
be assumed that not receiving this message after receiving a
RBDS_HAVEPTYN message means that the PTY Name text has been static.
It is up to the host application to retrieve the latest PTY Name
Text upon receiving this message.
========================================================================
Message: RBDS_CHANGEDPSN
Description: The RBDS PSN Text has changed.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Once the PSN text has been received, this message will
be sent whenever a change in PSN text is detected. It can
be assumed that not receiving this message after receiving a
RBDS_HAVEPSN message means that the PSN text has been static.
It is up to the host application to retrieve the latest PSN
Text upon receiving this message.
========================================================================
Message: RBDS_CHANGEDTEXT
Description: The RBDS Radio Text has changed.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Once the full RBDS buffer has been received, this message will
be sent whenever new data is detected and placed in the Radio
Text buffer that differs from what is already there. It can
be assumed that not receiving this message after receiving a
RBDS_HAVETEXT message means that the text has been static.
It is up to the host application to retrieve the latest Radio
Text upon receiving this message.
========================================================================
Message: RBDS_CHANGEDCITY
Description: The RBDS City Location Text has changed.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Once the City Location text has been received, this message will
be sent whenever a change in City Location text is detected. It can
be assumed that not receiving this message after receiving a
RBDS_HAVECITY message means that the City Location Text has been static.
It is up to the host application to retrieve the latest City Location
Text upon receiving this message.
========================================================================
Message: RBDS_CHANGEDSTATE
Description: The RBDS State Location Text has changed.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: Once the State Location text has been received, this message will
be sent whenever a change in State Location text is detected. It can
be assumed that not receiving this message after receiving a
RBDS_HAVESTATE message means that the State Location Text has been static.
It is up to the host application to retrieve the latest State Location
Text upon receiving this message.
========================================================================
Message: CUE_HAVEPAGE
Description: A CUE Radio Page has been received.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: If the application is registered with the VxD as a Cue
paging receiver, then this message will be posted to the
app each time a new page is received. Some pages may
already be in the VxD buffer at app start time. Check
the page count upon starting the application, as no message
will be posted to the application on startup, only when
it is already running and a new page comes in.
========================================================================
Message: RBDS_NOTRAFFIC
Description: Traffic announcement has ended on an RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent when a tuned RBDS station turns off
the Traffic Announcement (TA) flag, but only if the
station transmits the Traffic Program (TP) flag.
========================================================================
Message: RBDS_TRAFFIC
Description: Traffic announcement has started on an RBDS station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent when a tuned RBDS station turns on
the Traffic Announcement (TA) flag, but only if the
station transmits the Traffic Program (TP) flag. This
means that this particular station is transmitting a
traffic announcement at this time. If the station was
just tuned, then a traffic announcement may have already
been in progress as RBDS sync was established.
========================================================================
Message: TUNER_TEST_MSG
Description: Test message sent to the calling app at it's request.
Parameters:
UINT wParam - 0
long lParam - Message counter.
Comments: Once a VxD Self-Test is invoked by a calling application,
the VxD will send this message for the specified number
of times. Each subsequent message will carry the message
number (starting with 1) in the lParam. Once the last
message of this type is sent, a TUNER_TEST_END message
will be sent.
========================================================================
Message: TUNER_TEST_END
Description: End of VxD Message Test sequence.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: After sending the required number of test messages to the
calling application for a self-test, this message is sent
last to indicate the self-test is completed.
========================================================================
New messages (v 0.20)
========================================================================
Message: TUNER_STATE
Description: Informational message to new TUNER_MSGS registered client.
Parameters:
UINT wParam - Least significant bit (0x01) set to 1 for Stereo, 0 for Mono
Next significant bit (0x02) set to 1 for FM, 0 for AM
long lParam - Frequency in kHz
Comments: Notifies all registered programs of the current tuner state.
Message sent to all registered tuner applications when a
new tuner application registers with the VxD. Note
similarity to the TUNER_TUNED message.
========================================================================
New functions (v 0.20)
========================================================================
Function: SetTunerMultiple (long lFreq, unsigned uBand,
unsigned uMute, unsigned uSens, unsigned uStereo,
unsigned uFlags)
Description: Sends a combination of commands to the tuner at once.
Parameters:
long lFreq Frequency to tune to, if SETMULT_FREQ flag is set.
unsigned uBand Value of either TUNER_BAND_FM or TUNER_BAND_AM,
if SETMULT_BAND flag is set.
unsigned uMute Value of either 1 (Mute) or 0 (Unmute), if
SETMULT_MUTE flag is set.
unsigned uSens Value of either TUNER_SENS_MAX, TUNER_SENS_HI,
TUNER_SENS_MED or TUNER_SENS_LOW, if SETMULT_SENS
flag is set.
unsigned uStereo Value of either TUNER_MST_STEREO or TUNER_MST_MONO,
if SETMULT_MONO flag is set.
unsigned uFlags OR'd value of the different flags, indicating which
functions to carry out. All other functions are
ignored. List:
SETMULT_FREQ Tune to the indicated frequency.
SETMULT_BAND Switch to the indicated band.
SETMULT_MUTE Set mute status as indicated.
SETMULT_SENS Set the band's sensitivity as indicated.
SETMULT_MONO Set the Stereo/Mono setting as indicated.
Returns:
0 on success, -1 on error (typically, tuner is already busy tuning).
Comments:
The VxD will ignore any values not indicated by the corresponding
flag being set in the uFlags variable. The sensitivity setting,
if indicated, will be set on the current band if the band is not
being set with this function, or it will apply to the band being set
by this function if the SETMULT_BAND flag is set.
========================================================================
New Functions (v 0.22)
========================================================================
Function: NewAmList (void)
Description: Instructs the VxD to reload AM station list from registry.
Parameters:
None
Returns:
Long value of 1.
Comments:
The calling application is responsible for setting the "Flag" value
in the AMSettings Registry key to a 0 for the primary AM list of
stations or to a 1 for the alternate AM list of stations. Once the
VxD has read in the new list, the message TUNER_AMLIST_DONE will be
sent to all TUNER_MSGS registered applications.
========================================================================
Function: NewFmList (void)
Description: Instructs the VxD to reload FM station list from registry.
Parameters:
None
Returns:
Long value of 1.
Comments:
The calling application is responsible for setting the "Flag" value
in the FMSettings Registry key to a 0 for the primary FM list of
stations or to a 1 for the alternate FM list of stations. Once the
VxD has read in the new list, the message TUNER_FMLIST_DONE will be
sent to all TUNER_MSGS registered applications.
========================================================================
Function: NewBothList (void)
Description: Instructs the VxD to reload AM and FM station lists from
the registry.
Parameters:
None
Returns:
Long value of 1.
Comments:
The calling application is responsible for setting the "Flag" value
in the AMSettings and FMSettings Registry key to a 0 for the primary
list of stations or to a 1 for the alternate list of stations for
each band. Once the VxD has read in both new lists, the message
TUNER_BOTHLIST_DONE will be sent to all TUNER_MSGS registered
applications.
========================================================================
New messages (v 0.22)
========================================================================
Message: TUNER_AMLIST_DONE
Description: The VxD just got done reading in a new list of AM stations.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: Notifies all registered tuning programs that the VxD is
working with a new list of stations, which may have
been changed. Apps should request the list from the
VxD to update internal arrays of stations.
========================================================================
Message: TUNER_FMLIST_DONE
Description: The VxD just got done reading in a new list of FM stations.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: Notifies all registered tuning programs that the VxD is
working with a new list of stations, which may have
been changed. Apps should request the list from the
VxD to update internal arrays of stations.
========================================================================
Message: TUNER_BOTHLIST_DONE
Description: The VxD just got done reading in a new list of AM and FM
stations.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: Notifies all registered tuning programs that the VxD is
working with a new list of stations, which may have
been changed. Apps should request the list from the
VxD to update internal arrays of stations.
========================================================================
New Functions (v 0.23)
========================================================================
Function: DebugModeOn (void)
Description: Instructs the VxD to enter tuner debug mode.
Parameters:
None
Returns:
Long value of 1.
Comments:
The VxD will send the calling application a message
(TUNER_DEBUG_MESSAGE) each time the state of the tuning section
changes. Note that an application can easily be overwhelmed with
messages during a tuning or search operation. Provisions should
be made for a large message queue. As many as 100 messages or
more can be expected in the period of approximately a quarter of
a second (0.25 sec) for a tuning operation, and as many as 200
messages or more within a second in scan mode.
Note that if more than one application is registered with the VxD,
only the application(s) that call this function will receive the
debug messages. This is to avoid overloading other applications
with unexpected debug messages.
========================================================================
Function: DebugModeOff (void)
Description: Instructs the VxD to exit tuner debug mode.
Parameters:
None
Returns:
Long value of 1.
Comments:
The VxD will cease sending debug messages to the calling application.
========================================================================
New messages (v 0.23)
========================================================================
Message: TUNER_DEBUG_MESSAGE
Description: Indicates the state of the tuner section has changed.
Parameters:
UINT wParam - Tuner operation in progress.
long lParam - 0L
Comments: Sent only when the tuner is in debug mode, and only to
the application(s) which placed the tuner in debug mode.
========================================================================
New Functions (v 0.23)
========================================================================
Function: AbortScan (void)
Description: Instructs the VxD to abort the current band scan.
Parameters:
None
Returns:
Long value of 1.
Comments:
After the current scan cycle, the band scan should quit after this
message is sent. A message will still be broadcast indicating that
the scan is complete.
========================================================================
Function: RdsResetAll (void)
Description: Instructs the VxD to reset and restart all RDS data.
Parameters:
None
Returns:
Long value of 1.
Comments:
After this function is called, the VxD will have reset all internal
buffers and variables regarding received RDS data. This is the state
that is present just after sync is obtained on a new RDS station.
Use this function to force the VxD to reload all data anew, sending
new data messages as it goes.
========================================================================
New Functions (v 0.33)
========================================================================
Function: BoardAddress (void)
Description: Return the current base address for the Cadet board
Parameters:
None
Returns:
Long board address, or 0 if not initialized properly.
========================================================================
New Functions (v 0.34)
========================================================================
Function: ExpectedAltFrequencies (void)
Description: Return the number of expected Alternate Frequencies
Parameters:
None
Returns:
Long number of alternate frequencies as indicated by the current
RDS station. May be zero or up to 25.
Comments:
If the RDS station currently tuned transmits a list of alternate
frequencies, this number will eventually change to the number of
frequencies that the station is providing. This number may be
zero, or it may be up to 25. If the number is zero, then the
possibility exists that the message containing the number of
alternate frequencies has not been received yet. By the same
token, some alternate frequencies may have already been received
so that a call to AltFrequenciesCount could return a number greater
than zero.
========================================================================
Function: AltFrequenciesCount (void)
Description: Return the number of Alternate Frequencies received
Parameters:
None
Returns:
Long number of alternate frequencies received from the current
RDS station. May be zero or up to 25.
Comments:
If the RDS station currently tuned transmits a list of alternate
frequencies, this number will eventually change to reflect the
number of frequencies received thusfar. Note that this number
may not always match the number of expected frequencies returned
by a call to ExpectedAltFrequencies.
========================================================================
Function: AltFrequenciesList (long *lList, long lNum)
Description: Returns a list of alternate frequencies
Parameters:
None
Returns:
Long number of alternate frequencies returned by the function
or -1 for error.
Comments:
Up to 25 frequencies may be returned, so sufficient space should
be allocated and indicated for the buffer passed. Note that the
frequencies could be either AM (510-1610) or FM (87600-107900).
To ensure that you are getting the entire list, call this function
only after calls to both AltFrequenciesCount and ExpectedAltFrequencies
both return the same non-zero number.
========================================================================
New Messages (v 0.36)
========================================================================
Message: RBDS_GOT_ALTFREQS
Description: Indicates all alternate frequencies are present.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: Sent when the expected number of alternate frequencies
have been received for the current RBDS station. If
this message is received, the application should call
AltFrequenciesCount to see how many stations are in the
alternate frequency list, and AltFrequenciesList to
retrieve the alternate frequency list.
========================================================================
Message: RBDS_GOT_PIN
Description: Indicates a new program item number was transmitted.
Parameters:
UINT wParam - Program item number (PIN). See comments.
long lParam - 0L
Comments: When an RBDS station transmits a Program Item Number
that has changed from the last PIN sent, this message
will be generated with the PIN sent as the wParam. The
PIN is defined as having the day of the month (1 - 31)
encoded in the top 5 bits, the hour of the program (0-23)
in the next 5 bits and the minute of the program (0-59)
in the bottom 6 bits of the number.
Retrieve the various components using the following:
ProgDay = (wParam & (unsigned)0xf800) >> 11;
ProgHour = (wParam & (unsigned)0x07c0) >> 6;
ProgMin = (wParam & (unsigned)0x003f);
========================================================================
Message: RBDS_HAVEPSON
Description: PSN text obtained for EON other station.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent only once after an RBDS station has
been tuned the first time that the PSN Text for other network
station under EON is received and decoded. If the PSN Text
for the other network changes, the RBDS_CHANGEDPSON
message will be sent subsequently. It is up to the host
application to retrieve the PSN Text, if desired, for the
other network station upon receiving this message.
========================================================================
Message: RBDS_CHANGEDPSON
Description: PSN text obtained for EON other station has changed.
Parameters:
UINT wParam - 0
long lParam - 0
Comments: This message is sent each time that the PSN text of other
network station changes once it is initially received.
It is up to the host application to retrieve the PSN Text,
if desired, for the other network station upon receiving
this message.
========================================================================
New Messages (v 0.37)
========================================================================
Message: RBDS_EON_ALTFREQA
Description: Indicates all EON alternate frequencies type A are present.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: Sent when one or more alternate frequencies for EON type A
have been received for the current RBDS station. If
this message is received, the application should call
AltFrequenciesCount to see how many stations are in the
alternate frequency list, and AltFrequenciesList to
retrieve the alternate frequency list.
========================================================================
Message: RBDS_EON_ALTFREQB
Description: Indicates one or more EON alternate frequencies type B are present.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: Sent when one or more alternate frequencies for EON type B
have been received for the current RBDS station. If
this message is received, the application should call
AltFrequenciesCount to see how many stations are in the
alternate frequency list, and AltFrequenciesList to
retrieve the alternate frequency list. This message may
be received multiple times as a list of more than one
frequency is built.
========================================================================
Message: RBDS_EON_TRAFFIC
Description: Indicates an EON alternate station is broadcasting traffic announcement.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: When this message is received, a station in the EON
alternate frequency list is transmitting Traffic Announcements
and the controlling tuner application should tune to the
first frequency found in the alternate frequencies list
that is not the same as the current frequency.
If tuned to another frequency, the RBDS_NOTRAFFIC message
will be sent when the message is complete. The application
will be responsible for keeping track of the last station
to return to in this instance.
========================================================================
Function: GetRbdsPsonText (char *lBuff, unsigned uLeng)
Description: Get the latest PSN text (other network) buffer contents.
Parameters:
char *lBuff Caller supplied buffer to receive the text into.
unsigned uLeng Length of buffer in bytes.
Returns:
0 on success, -1 on error.
On success, buffer will contain latest PSN text for the EON other
network, or all spaces if no text has come in or the current station
is not an RD(B)S station broadcasting EON information.
Comments:
The VxD maintains the current other network PSN text at all times
in a 9 byte buffer (8 bytes of text plus null terminator). Therefore,
it is suggested to always pass a buffer of at least that size. Smaller
buffers will return data, but it will be truncated (and always
null terminated).
========================================================================
Function: GetRbdsPin (void)
Description: Get the current Program Item Number (PIN).
Parameters:
none
Returns:
0 if no program item number being transmitted.
-1 on error.
Otherwise, the long value of the program item number.
Comments:
Retrieve the various components using the following:
ProgDay = (wParam & (unsigned)0xf800) >> 11;
ProgHour = (wParam & (unsigned)0x07c0) >> 6;
ProgMin = (wParam & (unsigned)0x003f);
========================================================================
New Messages (v 0.49)
========================================================================
Message: CRN_HAVEALERT
Description: Indicates an alert has just been received via CRN
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: When an alert as broadcast via CRN is received, and the
capcode on the incoming alert matches the user's capcode
as specified in setup, the counter for the particular
type of alert is incremented and this message is sent to
all programs registered to receive messages of type
MSGS_CRNALERT.
========================================================================
New functions (v 0.49)
========================================================================
Function: ClearCrnBuffer (long bufnum)
Description: Clears the CRN data buffer and counters in VxD.
Parameters:
long bufnum Indicates buffer 0 or buffer 1.
Returns:
-1 on error or 1 otherwise.
Comments: Tells the VxD to clear the appropriate CRN data buffer
and zero out any counters, etc. to prepare it for a
subsequent message.
========================================================================
Function: GetTotalCrnAlertCount ()
Description: Gets the total number of CRN page alerts buffered.
Parameters:
none
Returns:
long number of total alerts of all types the VxD has received and
buffered.
Comments: If 0 is returned, then there are no alerts of any type.
Calling this function does not clear any counts.
If a number > 0 is returned, then the function
GetCrnAlertCount should be called for each of the 16
alert types to get a count for each type of alert.
========================================================================
Function: GetCrnAlertCount (long alertnum)
Description: Gets the number of CRN page alerts by type.
Parameters:
long alertnum - Indicates which alert type (0 to 15) to retrieve
the count for.
Returns:
long number of alerts for this alert type.
Comments: If 0 is returned, then there are no alerts of this type.
If a number > 0 is returned, then that is the count of
how many alerts of this type have been sent. Calling
this function clears the count for the alert type.
========================================================================
EWS Functions and messages
========================================================================
Function: GetEwsAlertText (char *buff, unsigned leng)
Description: Gets the current EWS text.
Parameters:
char *buff Character buffer to pass to function, receives EWS text.
unsigned leng Length of buffer passed to function.
Returns:
long error code. -1 is error, 0 is no messages active, otherwise,
returns length of message returned.
Comments: EWS messages can be as large as 635 bytes. Therefore,
it is best to send a buffer at least that large to cover
any particular message that may be sent. Call this
function in response to reception of an EWS_ALERT_DATA
message.
========================================================================
Message: EWS_ALERT_DATA
Description: Indicates EWS text data has been received.
Parameters:
UINT wParam - 1
long lParam - 0L
Comments: When this message is received, textual data has been
captured regarding an Emergency Weather Alert. Application
should call GetEwsAlertText to retrieve the text associated
with the alert.
========================================================================
Message: EWS_WAKE_ACTIVATE
Description: Indicates that an EWS audio alert will be sent soon.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: Applications are put on alert that an EWS audio alert
will be soon forthcoming. One possible use for this
message is to sound some type of alarm to get the user's
attention.
========================================================================
Message: EWS_AUDIO_FREQ
Description: Indicates that an EWS audio alert is starting.
Parameters:
UINT wParam - 0
long lParam - Frequency of audio alert.
Comments: The EWS audio alert is starting in the next few seconds.
Applications should tune to the frequency indicated in
the lParam parameter to enable reception of the audio
portion of the alert.
========================================================================
Message: EWS_AUDIO_END
Description: Indicates that an EWS audio alert is complete.
Parameters:
UINT wParam - 0
long lParam - 0L
Comments: The EWS audio alert is finished. Application can retune
and/or mute the audio, as necessary, to return to the
previous state. Note that if the audio alert was not
transmitted on an MBS station, you may not receive this
message.
========================================================================
Registry values stored by VxD:
(Items preceded by -- are keys, remaining items are values)
--HKEY_LOCAL_MACHINE
--SOFTWARE
--WinSoft
--Cadet VxD
--AMSettings
LastFreq (binary - frequency value last tuned to)
Sens (binary - Sensitivity setting last set)
Flag (binary - Which list of AM stations to use)
--AMStations (If AMSettings/Flag = 0 or is not set)
--0000 (one key per station found in last scan)
CallLetters (text - PI Call Letters, if any)
Flags (binary - flags indicating RDS/MBS/Normal station)
Freq (binary - Frequency value for station)
Pty (text - Pty Text for station, if any)
--AltAMStations (If AMSettings/Flag = 1)
--0000 (one key per station found in last scan)
CallLetters (text - PI Call Letters, if any)
Flags (binary - flags indicating RDS/MBS/Normal station)
Freq (binary - Frequency value for station)
Pty (text - Pty Text for station, if any)
--FMSettings
LastFreq (binary - frequency value last tuned to)
Sens (binary - Sensitivity setting last set)
Flag (binary - Which list of FM stations to use)
--FMStations (If FMSettings/Flag = 0 or is not set)
--0000 (one key per station found in last scan)
CallLetters (text - PI Call Letters, if any)
Flags (binary - flags indicating RDS/MBS/Normal station)
Freq (binary - Frequency value for station)
Pty (text - Pty Text for station, if any)
--AltFMStations (If FMSettings/Flag = 1)
--0000 (one key per station found in last scan)
CallLetters (text - PI Call Letters, if any)
Flags (binary - flags indicating RDS/MBS/Normal station)
Freq (binary - Frequency value for station)
Pty (text - Pty Text for station, if any)
--Tuner
Band (binary - AM/FM selection last set)
Loc (binary - European/US version in use. Euro=1, US=0)
Stereo (binary - Stereo/Mono forced setting last set)
Capcode (text - Encrypted CUE Pager Capcode)
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.