summaryrefslogtreecommitdiff log msg author committer range
blob: 7f10b9705cc3795808c660c227e11af100b778ac (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 73 74 75 76 77 78 79 80 81 82  #ifndef RESOURCE_H #define RESOURCE_H #include namespace ResourcePolicy { /** * This enumeration represents the resources which can be reserved. * \see ResourcePolicy::ResourceSet::AddResource() for info on how to reserve * resources. */ enum ResourceType { AudioPlaybackType = 0, ///< For audio playback VideoPlaybackType, ///< For video playback AudioRecorderType, ///< For audio recording (using of the microphone) VideoRecorderType, ///< For video recording (using the camera) VibraType, ///< For Vibra LedsType, ///< For LEDs BacklightType, ///< For the backlight (of the display) SystemButtonType, ///< For the system (power) button LockButtonType, ///< For the lock button ScaleButtonType, ///< The scale (zoom) button SnapButtonType, ///< Use this if you are a camera application LensCoverType, HeadsetButtonsType, ///< Use this to reserve the headset buttons 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 { friend class ResourceSet; public: /** * 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; /** * Use this method to check for the type of Resource * \return The ResourceType associated to this resource */ virtual ResourceType type() const = 0; virtual ~Resource(); protected: Resource(); Resource(const Resource &other); ResourceType resourceType; bool optional; quint32 identifier; private: void setGranted(); void unsetGranted(); bool granted; }; } #endif