CLASS.TXT Driver File Contents (vxdsource.zip)

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

How To Update Drivers Manually

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.

server: web2, load: 0.76