Revision 45:0033259c6772 common/Objects.h

View differences:

common/Objects.h
580 580
    static QMutex m_mutex;
581 581
};
582 582

  
583
class TrackFile : public QObject
583
// Separate AudioFile and Signal, to correspond with 
584

  
585
class AudioFile : public QObject
584 586
{
585 587
    Q_OBJECT
586 588

  
587 589
    Q_PROPERTY(QString hash READ hash WRITE setHash NOTIFY hashChanged STORED true)
588 590
    Q_PROPERTY(Dataquay::Uri uri READ uri WRITE setUri NOTIFY uriChanged STORED true)
589
    Q_PROPERTY(QString ofaFingerprint READ ofaFingerprint WRITE setOfaFingerprint NOTIFY ofaFingerprintChanged STORED true)
590
    Q_PROPERTY(QString puid READ puid WRITE setPuid NOTIFY puidChanged STORED true)
591
    Q_PROPERTY(ClassicalData::Composer *composer READ composer WRITE setComposer NOTIFY composerChanged STORED true)
592
    Q_PROPERTY(ClassicalData::Work *work READ work WRITE setWork NOTIFY workChanged STORED true)
593
    Q_PROPERTY(ClassicalData::Movement *movement READ movement WRITE setMovement NOTIFY movementChanged STORED true)
594
    Q_PROPERTY(QSet<Dataquay::Uri> otherURIs READ otherURIs WRITE setOtherURIs NOTIFY otherURIsChanged STORED true)
595 591

  
596 592
public:
597
    TrackFile(QObject *parent = 0);
598
    TrackFile(FileSource file, QObject *parent = 0);
599
    
593
    AudioFile(QObject *parent = 0);
594
    AudioFile(FileSource file, QObject *parent = 0);
595

  
596
    /// The URI is set automatically from the FileSource at construction
597
    Dataquay::Uri uri() const { return m_uri; }
598
    void setUri(Dataquay::Uri u) { m_uri = u; emit uriChanged(u); }
599

  
600 600
    /// The hash is set automatically from the FileSource at construction
601 601
    QString hash() const { return m_hash; }
602 602
    void setHash(QString hash) { m_hash = hash; emit hashChanged(hash); }
603 603

  
604
    /// The URI is set automatically from the FileSource at construction
605
    Dataquay::Uri uri() const { return m_uri; }
606
    void setUri(Dataquay::Uri u) { m_uri = u; emit uriChanged(u); }
604
signals:
605
    void uriChanged(Dataquay::Uri);
606
    void hashChanged(QString);
607

  
608
private:
609
    Dataquay::Uri m_uri;
610
    QString m_hash;
611
};
612

  
613
class Signal : public QObject
614
{
615
    Q_OBJECT
616

  
617
    Q_PROPERTY(QString ofaFingerprint READ ofaFingerprint WRITE setOfaFingerprint NOTIFY ofaFingerprintChanged STORED true)
618
    Q_PROPERTY(QString puid READ puid WRITE setPuid NOTIFY puidChanged STORED true)
619
    Q_PROPERTY(QSet<ClassicalData::AudioFile *> availableAs READ availableAs WRITE setAvailableAs NOTIFY availableAsChanged STORED true)
620
    Q_PROPERTY(ClassicalData::Composer *composer READ composer WRITE setComposer NOTIFY composerChanged STORED true)
621
    Q_PROPERTY(ClassicalData::Work *work READ work WRITE setWork NOTIFY workChanged STORED true)
622
    Q_PROPERTY(ClassicalData::Movement *movement READ movement WRITE setMovement NOTIFY movementChanged STORED true)
623

  
624
public:
625
    Signal() : m_composer(0), m_work(0), m_movement(0) { }
607 626

  
608 627
    QString ofaFingerprint() const { return m_ofaFingerprint; }
609 628
    void setOfaFingerprint(QString fprint) { m_ofaFingerprint = fprint; emit ofaFingerprintChanged(fprint); }
......
611 630
    QString puid() const { return m_puid; }
612 631
    void setPuid(QString puid) { m_puid = puid; emit puidChanged(puid); }
613 632

  
633
    QSet<AudioFile *> availableAs() const { return m_availableAs; }
634
    void setAvailableAs(QSet<AudioFile *> aa) { m_availableAs = aa; emit availableAsChanged(m_availableAs); }
635
    void addAvailableAs(AudioFile *aa) { m_availableAs.insert(aa); emit availableAsChanged(m_availableAs); }
636

  
614 637
    Composer *composer() const { return m_composer; }
615 638
    void setComposer(Composer *c) { m_composer = c; emit composerChanged(c); }
616 639

  
......
620 643
    Movement *movement() const { return m_movement; }
621 644
    void setMovement(Movement *m) { m_movement = m; emit movementChanged(m); }
622 645

  
623
    QSet<Dataquay::Uri> otherURIs() const { return m_otherURIs; }
624
    void addOtherURI(Dataquay::Uri u) { m_otherURIs.insert(u); emit otherURIsChanged(m_otherURIs); }
625
    void setOtherURIs(QSet<Dataquay::Uri> u) { m_otherURIs = u; emit otherURIsChanged(u); }
626

  
627 646
signals:
628
    void uriChanged(Dataquay::Uri);
629
    void hashChanged(QString);
630 647
    void ofaFingerprintChanged(QString);
631 648
    void puidChanged(QString);
632 649
    void composerChanged(Composer *);
633 650
    void workChanged(Work *);
634 651
    void movementChanged(Movement *);
635
    void otherURIsChanged(QSet<Dataquay::Uri>);
652
    void availableAsChanged(QSet<AudioFile *>);
636 653

  
637 654
private:
638
    Dataquay::Uri m_uri;
639
    QString m_hash;
640 655
    QString m_ofaFingerprint;
641 656
    QString m_puid;
642 657
    Composer *m_composer;
643 658
    Work *m_work;
644 659
    Movement *m_movement;
645
    QSet<Dataquay::Uri> m_otherURIs;
660
    QSet<AudioFile *> m_availableAs;
646 661
};
647 662

  
648 663
}
......
655 670
Q_DECLARE_METATYPE(ClassicalData::Work*);
656 671
Q_DECLARE_METATYPE(ClassicalData::Movement*);
657 672
Q_DECLARE_METATYPE(ClassicalData::Document*);
673
Q_DECLARE_METATYPE(ClassicalData::AudioFile*);
674
Q_DECLARE_METATYPE(ClassicalData::Signal*);
658 675
Q_DECLARE_METATYPE(QSet<QString>);
659 676
Q_DECLARE_METATYPE(QSet<Dataquay::Uri>);
660 677
Q_DECLARE_METATYPE(QSet<ClassicalData::Work*>);
661 678
Q_DECLARE_METATYPE(QSet<ClassicalData::Movement*>);
662 679
Q_DECLARE_METATYPE(QSet<ClassicalData::Document*>);
680
Q_DECLARE_METATYPE(QSet<ClassicalData::AudioFile*>);
681
Q_DECLARE_METATYPE(QSet<ClassicalData::Signal*>);
663 682
Q_DECLARE_METATYPE(ClassicalData::Composer*);
664 683
Q_DECLARE_METATYPE(ClassicalData::Form*);
665 684
Q_DECLARE_METATYPE(QSet<ClassicalData::Form*>);

Also available in: Unified diff