]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decode/annotation.cpp
Implement annotation export for all rows
[pulseview.git] / pv / data / decode / annotation.cpp
index 9b07efbc5f2844724fb91cbcd1dc18149e8dce60..e983b0df1c3e971ba7942c9ccadb86ed10e09bbb 100644 (file)
@@ -14,8 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
 extern "C" {
@@ -25,25 +24,28 @@ extern "C" {
 #include <cassert>
 #include <vector>
 
-#include "annotation.h"
+#include "annotation.hpp"
+
+using std::vector;
 
 namespace pv {
 namespace data {
 namespace decode {
 
-Annotation::Annotation(const srd_proto_data *const pdata) :
+Annotation::Annotation(const srd_proto_data *const pdata, const Row *row) :
        start_sample_(pdata->start_sample),
-       end_sample_(pdata->end_sample)
+       end_sample_(pdata->end_sample),
+       row_(row)
 {
        assert(pdata);
        const srd_proto_data_annotation *const pda =
                (const srd_proto_data_annotation*)pdata->data;
        assert(pda);
 
-       format_ = pda->ann_class;
+       ann_class_ = (Class)(pda->ann_class);
 
        const char *const *annotations = (char**)pda->ann_text;
-       while(*annotations) {
+       while (*annotations) {
                annotations_.push_back(QString::fromUtf8(*annotations));
                annotations++;
        }
@@ -59,16 +61,26 @@ uint64_t Annotation::end_sample() const
        return end_sample_;
 }
 
-int Annotation::format() const
+Annotation::Class Annotation::ann_class() const
 {
-       return format_;
+       return ann_class_;
 }
 
-const std::vector<QString>& Annotation::annotations() const
+const vector<QString>& Annotation::annotations() const
 {
        return annotations_;
 }
 
+const Row* Annotation::row() const
+{
+       return row_;
+}
+
+bool Annotation::operator<(const Annotation &other) const
+{
+       return (start_sample_ < other.start_sample_);
+}
+
 } // namespace decode
 } // namespace data
 } // namespace pv