kwave  18.07.70
Selection.h
Go to the documentation of this file.
1 /***************************************************************************
2  Selection.h - Simple class for a selection
3  -------------------
4  begin : Sun May 06 2001
5  copyright : (C) 2000 by Thomas Eschenbacher
6  email : Thomas.Eschenbacher@gmx.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef SELECTION_H
19 #define SELECTION_H
20 
21 #include "config.h"
22 
23 #include <QtGlobal>
24 #include <QObject>
25 
26 #include "libkwave/Sample.h"
27 
28 namespace Kwave
29 {
30 
31  class Q_DECL_EXPORT Selection: public QObject
32  {
33  Q_OBJECT
34  public:
40  Selection(sample_index_t offset, sample_index_t length);
41 
43  Selection(const Selection &other);
44 
46  virtual ~Selection();
47 
53  void select(sample_index_t offset, sample_index_t length);
54 
56  inline void clear() {
57  select(0, 0);
58  }
59 
61  inline sample_index_t offset() const {
62  return m_offset;
63  }
64 
66  inline sample_index_t length() const {
67  return m_length;
68  }
69 
71  inline sample_index_t first() const {
72  return offset();
73  }
74 
76  inline sample_index_t last() const {
77  return m_offset + (m_length ? (m_length-1) : 0);
78  }
79 
81  bool operator == (const Selection &other) const {
82  return ((m_offset == other.offset()) &&
83  (m_length == other.length()));
84  }
85 
87  Selection & operator = (const Selection &source) {
88  m_offset = source.offset();
89  m_length = source.length();
90  return *this;
91  }
92 
93  signals:
94 
100  void changed(sample_index_t offset, sample_index_t length);
101 
102  private:
105 
108  };
109 }
110 
111 #endif /* SELECTION_H */
112 
113 //***************************************************************************
114 //***************************************************************************
sample_index_t first() const
Definition: Selection.h:71
Definition: App.h:33
sample_index_t last() const
Definition: Selection.h:76
sample_index_t m_offset
Definition: Selection.h:104
quint64 sample_index_t
Definition: Sample.h:28
sample_index_t length() const
Definition: Selection.h:66
sample_index_t m_length
Definition: Selection.h:107
sample_index_t offset() const
Definition: Selection.h:61