00001 #ifndef __NOTE_H_INCLUDED__
00002 #define __NOTE_H_INCLUDED__
00003
00004 // $Id$
00005
00006 //**********************************************************************
00007 // *
00008 // Description: Abstract interface for hardware to produce sound *
00009 // for a single note. *
00010 // *
00011 // Author: Chris White (whitecf@bcs.org.uk) *
00012 // *
00013 // Copyright (C) 2003 Monitor Computing Services Ltd. *
00014 // *
00015 // This program is free software; you can redistribute it and/or *
00016 // modify it under the terms of the GNU General Public License *
00017 // as published by the Free Software Foundation; either version 2 *
00018 // of the License, or any later version. *
00019 // *
00020 // This program is distributed in the hope that it will be useful, *
00021 // but WITHOUT ANY WARRANTY; without even the implied warranty of *
00022 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
00023 // GNU General Public License for more details. *
00024 // *
00025 // You should have received a copy of the GNU General Public *
00026 // License (http://www.gnu.org/copyleft/gpl.html) along with this *
00027 // program; if not, write to: *
00028 // The Free Software Foundation Inc., *
00029 // 59 Temple Place - Suite 330, *
00030 // Boston, MA 02111-1307, *
00031 // USA. *
00032 // *
00033 //**********************************************************************
00034 // *
00035 // Notes: *
00036 // *
00037 //**********************************************************************
00038
00039
00040
00041 namespace Monitor {
00042 namespace Utility {
00043
00047 class Note
00048 {
00049 public:
00053 struct Busy {};
00054
00055
00059 Note() {;}
00060
00064 virtual ~Note() {;}
00065
00071 virtual void
00072 sound() const
00073 throw (Busy) = 0;
00074 };
00075
00076 }; // namespace Utility
00077 }; // namespace Monitor
00078
00079 #endif // __NOTE_H_INCLUDED__
1.2.14 written by Dimitri van Heesch,
© 1997-2002