kradio4 r778

alarm.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           alarm.h  -  description
00003                              -------------------
00004     begin                : Mon Feb 4 2002
00005     copyright            : (C) 2002 by Martin Witte / Frank Schwanz
00006     email                : emw-kradio@nocabal.de / schwanz@fh-brandenburg.de
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef KRADIO_ALARM_H
00019 #define KRADIO_ALARM_H
00020 
00021 #ifdef HAVE_CONFIG_H
00022 #include <config.h>
00023 #endif
00024 
00025 #include <QtCore/QDateTime>
00026 #include <QtCore/QVector>
00027 #include <kdemacros.h>
00028 
00033 class KDE_EXPORT Alarm
00034 {
00035 public:
00036 
00037     enum AlarmType { StartPlaying, StopPlaying, StartRecording, StopRecording };
00038 
00039 protected:
00040     QDateTime     m_time;
00041 
00042     bool          m_daily;
00043     int           m_weekdayMask;
00044 
00045     bool          m_enabled;
00046     QString       m_stationID;
00047     float         m_volumePreset;  // < 0: disabled
00048 
00049     AlarmType     m_type;
00050     QString       m_recordingTemplate;
00051 
00052     int           m_ID;
00053 
00054     static int    m_LastID;
00055 
00056 public:
00057     Alarm();
00058     Alarm(const QDateTime &time, bool daily, bool enabled);
00059     Alarm(const Alarm &);
00060     ~Alarm();
00061 
00062     bool           isEnabled() const                       { return m_enabled;             }
00063     bool           isDaily() const                         { return m_daily;               }
00064     int            weekdayMask() const                     { return m_weekdayMask;         }
00065     QDateTime      alarmTime () const                      { return m_time;                }
00066     QDateTime      nextAlarm (bool ignoreEnable = false) const;
00067     const QString &stationID () const                      { return m_stationID;           }
00068     float          volumePreset () const                   { return m_volumePreset;        }
00069     AlarmType      alarmType() const                       { return m_type;                }
00070     const QString &recordingTemplate() const               { return m_recordingTemplate;   }
00071 
00072     int            ID() const                              { return m_ID;                  }
00073 
00074     void           setEnabled (bool enable = true)         { m_enabled           = enable; }
00075     void           setDaily (bool d = true)                { m_daily             = d;      }
00076     void           setWeekdayMask(int m = 0x7F)            { m_weekdayMask       = m;      }
00077     void           setDate (const QDate &d)                { m_time.setDate(d);            }
00078     void           setTime (const QTime &d)                { m_time.setTime(d);            }
00079     void           setVolumePreset(float v)                { m_volumePreset      = v;      }
00080     void           setStationID(const QString &id)         { m_stationID         = id;     }
00081     void           setAlarmType(AlarmType t)               { m_type              = t;      }
00082     void           setRecordingTemplate(const QString & t) { m_recordingTemplate = t;      }
00083 
00084 
00085     bool  operator == (const Alarm &x) const {
00086         return
00087             m_time              == x.m_time &&
00088             m_daily             == x.m_daily &&
00089             m_weekdayMask       == x.m_weekdayMask &&
00090             m_enabled           == x.m_enabled &&
00091             m_stationID         == x.m_stationID &&
00092             m_volumePreset      == x.m_volumePreset &&
00093             m_type              == x.m_type &&
00094             m_recordingTemplate == x.m_recordingTemplate &&
00095             m_ID                == x.m_ID;
00096     }
00097     bool  operator != (const Alarm &x) const { return ! operator == (x); }
00098 
00099 };
00100 
00101 //using namespace std;
00102 
00103 typedef QVector<Alarm>                 AlarmVector;
00104 typedef AlarmVector::iterator          iAlarmVector;
00105 typedef AlarmVector::const_iterator    ciAlarmVector;
00106 
00107 
00108 
00109 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines