home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cset21v5.zip
/
TOOLKT21
/
CPLUS
/
SAMPLES
/
WPCAR
/
HORN.CPP
< prev
next >
Wrap
C/C++ Source or Header
|
1993-04-30
|
5KB
|
195 lines
/******************************************************************************
*
* Module Name: HORN.CPP
*
* OS/2 Work Place Shell Sample Program
*
* Copyright (C) 1992 IBM Corporation
*
* DISCLAIMER OF WARRANTIES. The following [enclosed] code is
* sample code created by IBM Corporation. This sample code is not
* part of any standard or IBM product and is provided to you solely
* for the purpose of assisting you in the development of your
* applications. The code is provided "AS IS", without
* warranty of any kind. IBM shall not be liable for any damages
* arising out of your use of the sample code, even if they have been
* advised of the possibility of such damages. *
*
* Entry Points:
*
* Class Methods:
*
* QueryDuration
* SetDuration
* QueryHighTone
* SetHighTone
* QueryLowTone
* SetLowTone
* SetToDefault
* Beep
* SaveState
* RestoreState
*
* Description:
*
* This file contains the member functions of class Horn.
******************************************************************************/
#include "carpp.xih"
/*
* Method: Horn::Horn
*
* Description:
*
* This is the constructor for class Horn which initializes
* the state data for an object of type Horn.
*/
Horn::Horn(VOID)
{
lowTone = DEFAULT_LOTONE;
highTone = DEFAULT_HITONE;
duration = DEFAULT_DURATION;
}
/*
* Method: Horn::QueryDuration
*
* Description:
*
* Returns a ULONG value indicating the duration of the horn in
* milliseconds.
*/
ULONG Horn::QueryDuration(VOID)
{
return duration;
}
/*
* Method: Horn::SetDuration
*
* Description:
*
* Sets the duration of the horn. An argument of type ULONG is passed to
* the function indicating the horn duration in milliseconds.
*/
VOID Horn::SetDuration(ULONG ulDuration)
{
duration = ulDuration;
}
/*
* Method: Horn::QueryHighTone
*
* Description:
*
* Returns a ULONG value indicating the current beep frequency of the
* horn's high tone.
*/
ULONG Horn::QueryHighTone(VOID)
{
return highTone;
}
/*
* Method: Horn::SetHighTone
*
* Description:
*
* Sets the frequency of the horn's high tone. An argument of type ULONG
* is passed to the function indicating the new frequency of the horn's
* high tone.
*/
VOID Horn::SetHighTone(ULONG ulTone)
{
highTone = ulTone;
}
/*
* Method: Horn::QueryLowTone
*
* Description:
*
* Returns a ULONG value indicating the current beep frequency of the
* horn's low tone.
*/
ULONG Horn::QueryLowTone(VOID)
{
return lowTone;
}
/*
* Method: Horn::SetLowTone
*
* Description:
*
* Sets the frequency of the horn's low tone. An argument of type ULONG is
* passed to the function indicating the new frequency of the horn's
* low tone.
*/
VOID Horn::SetLowTone(ULONG ulTone)
{
lowTone = ulTone;
}
/*
* Method: Horn::SetToDefault
*
* Description:
*
* Sets the default state of the object.
*/
VOID Horn::SetToDefault(VOID)
{
lowTone = DEFAULT_LOTONE;
highTone = DEFAULT_HITONE;
duration = DEFAULT_DURATION;
}
/*
* Method: Horn::Beep
*
* Description:
*
* Beeps the horn using the data stored in the object.
*/
VOID Horn::Beep(VOID)
{
DosBeep(QueryHighTone(), QueryDuration());
DosSleep(100);
DosBeep(QueryLowTone(), QueryDuration());
}
/*
* Method: Horn::SaveState
*
* Description:
*
* Saves the state of the current object in the OS2.INI file. The input
* arguments consist of a pointer to a Carpp object as well as a pointer
* to a string. These two items are required so that the data associated
* with the object being saved can be stored in the OS2.INI file.
*/
VOID Horn::SaveState(Carpp *clientObject, PSZ szCarClassTitle)
{
clientObject->wpSaveLong(szCarClassTitle, IDKEY_LOTONE, lowTone);
clientObject->wpSaveLong(szCarClassTitle, IDKEY_HITONE, highTone);
clientObject->wpSaveLong(szCarClassTitle, IDKEY_DURATION, duration);
}
/*
* Method: Horn::RestoreState
*
* Description:
*
* Restores the object's saved state from the OS2.INI file. The input
* arguments consist of a pointer to a Carpp object as well as a pointer
* to a string. These two items are required so that the data associated
* with the object being restored can be retrieved from the OS2.INI file.
*/
VOID Horn::RestoreState(Carpp *clientObject, PSZ szCarClassTitle)
{
clientObject->wpRestoreLong(szCarClassTitle, IDKEY_LOTONE, &lowTone);
clientObject->wpRestoreLong(szCarClassTitle, IDKEY_HITONE, &highTone);
clientObject->wpRestoreLong(szCarClassTitle, IDKEY_DURATION, &duration);
}