summaryrefslogtreecommitdiff log msg author committer range
blob: 74b3e9b89b887ca6016d208467eb68a0a0911982 (plain)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72  #ifndef RESOURCE_H #define RESOURCE_H #include namespace ResourcePolicy { enum ResourceType { AudioPlaybackType = 0, VideoPlaybackType, AudioRecorderType, VideoRecorderType, VibraType, LedsType, BacklightType, SystemButtonType, LockButtonType, ScaleButtonType, SnapButtonType, LensCoverType, NumberOfTypes }; class ResourceSet; /** * This class is the super class for all resources. It represents a generic * \ref Resource. The type specific resource classes should be used. */ class Resource { public: friend class ResourceSet; /** * Whether or not this resource is optional, in that it doesn't need to * be available for the set to be acquired. * \return true when this resource is optional. */ bool isOptional() const; /** * Set the resource to be optional or mandatory. * \param resourceIsOptional This optional parameter defaults to true. * The default, true, results in the resource becoming optional. When it * is set to false the resource becomes mandatory. */ void setOptional(bool resourceIsOptional=true); /** * Whether or not the resource to be shared. If it is shared then other * programs are allowed to share this resource. * \return true when this resource is shared. */ bool isGranted() const; virtual ResourceType type() const = 0; virtual Resource * clone() const = 0; virtual ~Resource(); protected: Resource(); Resource(const Resource &other); ResourceType resourceType; bool optional; quint32 identifier; private: void setGranted(); void unsetGranted(); bool granted; }; } #endif