summaryrefslogtreecommitdiff
path: root/muse2/muse/wave.h
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2012-05-28 14:15:52 +0000
committerFlorian Jung <flo@windfisch.org>2012-05-28 14:15:52 +0000
commitd2a88cfaad5ac385fc3c6212c09ad7fbc38e9454 (patch)
tree387da0b38255003e1a971629ea0de32273ac3d3c /muse2/muse/wave.h
parent716f5a5b56a3b7ff59004ef0a1af5f98cb2a691c (diff)
merged with release_2_0
Diffstat (limited to 'muse2/muse/wave.h')
-rw-r--r--muse2/muse/wave.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/muse2/muse/wave.h b/muse2/muse/wave.h
index 133c0dfd..c9c7061d 100644
--- a/muse2/muse/wave.h
+++ b/muse2/muse/wave.h
@@ -124,9 +124,13 @@ class SndFileR {
SndFileR() { sf = 0; }
SndFileR(SndFile* _sf);
SndFileR(const SndFileR& ed);
+ SndFileR& operator=(SndFile* ptr);
SndFileR& operator=(const SndFileR& ed);
bool operator==(const SndFileR& c) const { return sf == c.sf; }
bool operator==(SndFile* c) const { return sf == c; }
+ SndFile* operator->() { return sf; }
+ const SndFile* operator->() const { return sf; }
+ operator bool() { return sf!=NULL; }
~SndFileR();
int getRefCount() const { return sf->refCount; }
bool isNull() const { return sf == 0; }
@@ -181,7 +185,8 @@ class SndFileR {
class SndFileList : public std::list<SndFile*> {
public:
SndFile* search(const QString& name);
- void clearDelete();
+ // void clearDelete(); // clearDelete MUST NOT exist! deleting is handled by the refcounting SndFileRs!
+ // this SndFileList is just for information, consider it as "weak pointers"
};
typedef SndFileList::iterator iSndFile;
@@ -278,7 +283,7 @@ typedef ClipList::const_iterator ciClip;
extern ClipBase* readClip(Xml& xml);
#endif
-extern SndFile* getWave(const QString& name, bool readOnlyFlag);
+extern SndFileR getWave(const QString& name, bool readOnlyFlag);
} // namespace MusECore