diff --git a/interface/src/AvatarBookmarks.h b/interface/src/AvatarBookmarks.h index 228d78333a..177e6e493e 100644 --- a/interface/src/AvatarBookmarks.h +++ b/interface/src/AvatarBookmarks.h @@ -16,7 +16,8 @@ #include "Bookmarks.h" /**jsdoc - * This API helps manage adding and deleting Avatar bookmarks + * This API helps manage adding and deleting avatar bookmarks. + * @namespace AvatarBookmarks */ class AvatarBookmarks: public Bookmarks, public Dependency { @@ -27,16 +28,12 @@ public: AvatarBookmarks(); void setupMenus(Menu* menubar, MenuWrapper* menu) override; -/**jsdoc - * Add the current Avatar to your Avatar Bookmarks - * @function AvatarBookmarks.addBookMark - */ - -/**jsdoc - * @function AvatarBookmarks.deleteBookMark - */ public slots: + /**jsdoc + * Add the current Avatar to your avatar bookmarks. + * @function AvatarBookmarks.addBookMark + */ void addBookmark(); protected: diff --git a/interface/src/Bookmarks.h b/interface/src/Bookmarks.h index 99e5911591..7bd32ce7f1 100644 --- a/interface/src/Bookmarks.h +++ b/interface/src/Bookmarks.h @@ -49,7 +49,6 @@ protected: protected slots: /**jsdoc - * Delete * @function AvatarBookmarks.deleteBookmark */ void deleteBookmark(); diff --git a/interface/src/LODManager.h b/interface/src/LODManager.h index fa87a6c61b..e8737d92ae 100644 --- a/interface/src/LODManager.h +++ b/interface/src/LODManager.h @@ -49,21 +49,18 @@ public: * @function LODManager.setAutomaticLODAdjust * @param {boolean} value */ - Q_INVOKABLE void setAutomaticLODAdjust(bool value) { _automaticLODAdjust = value; } /**jsdoc * @function LODManager.getAutomaticLODAdjust * @returns {boolean} */ - Q_INVOKABLE bool getAutomaticLODAdjust() const { return _automaticLODAdjust; } /**jsdoc * @function LODManager.setDesktopLODDecreaseFPS - * @param {float} value + * @param {number} value */ - Q_INVOKABLE void setDesktopLODDecreaseFPS(float value); /**jsdoc @@ -77,28 +74,25 @@ public: * @function LODManager.getDesktopLODIncreaseFPS * @returns {number} */ - Q_INVOKABLE float getDesktopLODIncreaseFPS() const; /**jsdoc * @function LODManager.setHMDLODDecreaseFPS * @param {number} value */ - + Q_INVOKABLE void setHMDLODDecreaseFPS(float value); /**jsdoc * @function LODManager.getHMDLODDecreaseFPS * @returns {number} */ - Q_INVOKABLE float getHMDLODDecreaseFPS() const; /**jsdoc * @function LODManager.getHMDLODIncreaseFPS * @returns {number} */ - Q_INVOKABLE float getHMDLODIncreaseFPS() const; // User Tweakable LOD Items @@ -106,61 +100,54 @@ public: * @function LODManager.getLODFeedbackText * @returns {string} */ - Q_INVOKABLE QString getLODFeedbackText(); /**jsdoc * @function LODManager.setOctreeSizeScale * @param {number} sizeScale */ - Q_INVOKABLE void setOctreeSizeScale(float sizeScale); /**jsdoc * @function LODManager.getOctreeSizeScale * @returns {number} */ - Q_INVOKABLE float getOctreeSizeScale() const { return _octreeSizeScale; } /**jsdoc * @function LODManager.setBoundaryLevelAdjust * @param {number} boundaryLevelAdjust */ - Q_INVOKABLE void setBoundaryLevelAdjust(int boundaryLevelAdjust); /**jsdoc * @function LODManager.getBoundaryLevelAdjust * @returns {number} */ - Q_INVOKABLE int getBoundaryLevelAdjust() const { return _boundaryLevelAdjust; } /**jsdoc * @function LODManager.getLODDecreaseFPS * @returns {number} */ - Q_INVOKABLE float getLODDecreaseFPS() const; /**jsdoc * @function LODManager.getLODIncreaseFPS * @returns {number} */ - Q_INVOKABLE float getLODIncreaseFPS() const; /**jsdoc * @namespace LODManager - * @property presentTime {number} - * @property engineRunTime {number} - * @property gpuTime {number} - * @property avgRenderTime {number} - * @property fps {number} - * @property lodLevel {number} - * @property lodDecreaseFPS {number} - * @property lodIncreaseFPS {number} + * @property {number} presentTime Read-only. + * @property {number} engineRunTime Read-only. + * @property {number} gpuTime Read-only. + * @property {number} avgRenderTime Read-only. + * @property {number} fps Read-only. + * @property {number} lodLevel Read-only. + * @property {number} lodDecreaseFPS Read-only. + * @property {number} lodIncreaseFPS Read-only. */ Q_PROPERTY(float presentTime READ getPresentTime) @@ -195,14 +182,12 @@ signals: * @function LODManager.LODIncreased * @returns {Signal} */ - void LODIncreased(); /**jsdoc * @function LODManager.LODDecreased * @returns {Signal} */ - void LODDecreased(); private: diff --git a/interface/src/audio/AudioScope.h b/interface/src/audio/AudioScope.h index 4fde25ecb8..ff8bfda6dd 100644 --- a/interface/src/audio/AudioScope.h +++ b/interface/src/audio/AudioScope.h @@ -28,12 +28,12 @@ class AudioScope : public QObject, public Dependency { /**jsdoc * The AudioScope API helps control the Audio Scope features in Interface * @namespace AudioScope - * @property {int} scopeInput - * @property {int} scopeOutputLeft - * @property {int} scopeOutputRight - * @property {int} triggerInput - * @property {int} triggerOutputLeft - * @property {int} triggerOutputRight + * @property {number} scopeInput Read-only. + * @property {number} scopeOutputLeft Read-only. + * @property {number} scopeOutputRight Read-only. + * @property {number} triggerInput Read-only. + * @property {number} triggerOutputLeft Read-only. + * @property {number} triggerOutputRight Read-only. */ Q_PROPERTY(QVector scopeInput READ getScopeInput) @@ -55,62 +55,52 @@ public slots: /**jsdoc * @function AudioScope.toggle */ - void toggle() { setVisible(!_isEnabled); } /**jsdoc * @function AudioScope.setVisible * @param {boolean} visible */ - void setVisible(bool visible); /**jsdoc * @function AudioScope.getVisible - * @param {boolean} visible * @returns {boolean} */ - bool getVisible() const { return _isEnabled; } /**jsdoc * @function AudioScope.togglePause */ - void togglePause() { setPause(!_isPaused); } /**jsdoc * @function AudioScope.setPause - * @param {boolean} + * @param {boolean} paused */ - void setPause(bool paused) { _isPaused = paused; emit pauseChanged(); } /**jsdoc * @function AudioScope.getPause * @returns {boolean} */ - bool getPause() { return _isPaused; } /**jsdoc * @function AudioScope.toggleTrigger */ - void toggleTrigger() { _autoTrigger = !_autoTrigger; } /**jsdoc * @function AudioScope.getAutoTrigger * @returns {boolean} */ - bool getAutoTrigger() { return _autoTrigger; } /**jsdoc * @function AudioScope.setAutoTrigger * @param {boolean} autoTrigger */ - void setAutoTrigger(bool autoTrigger) { _isTriggered = false; _autoTrigger = autoTrigger; } /**jsdoc @@ -118,109 +108,93 @@ public slots: * @param {number} x * @param {number} y */ - void setTriggerValues(int x, int y) { _triggerValues.x = x; _triggerValues.y = y; } /**jsdoc * @function AudioScope.setTriggered * @param {boolean} triggered */ - void setTriggered(bool triggered) { _isTriggered = triggered; } /**jsdoc * @function AudioScope.getTriggered * @returns {boolean} */ - bool getTriggered() { return _isTriggered; } /**jsdoc * @function AudioScope.getFramesPerSecond * @returns {number} */ - float getFramesPerSecond(); /**jsdoc * @function AudioScope.getFramesPerScope * @returns {number} */ - int getFramesPerScope() { return _framesPerScope; } /**jsdoc * @function AudioScope.selectAudioScopeFiveFrames */ - void selectAudioScopeFiveFrames(); /**jsdoc * @function AudioScope.selectAudioScopeTwentyFrames */ - void selectAudioScopeTwentyFrames(); /**jsdoc * @function AudioScope.selectAudioScopeFiftyFrames */ - void selectAudioScopeFiftyFrames(); /**jsdoc * @function AudioScope.getScopeInput - * @returns {number} + * @returns {number[]} */ - QVector getScopeInput() { return _scopeInputData; }; /**jsdoc * @function AudioScope.getScopeOutputLeft - * @returns {number} + * @returns {number[]} */ - QVector getScopeOutputLeft() { return _scopeOutputLeftData; }; /**jsdoc * @function AudioScope.getScopeOutputRight - * @returns {number} + * @returns {number[]} */ - QVector getScopeOutputRight() { return _scopeOutputRightData; }; /**jsdoc * @function AudioScope.getTriggerInput - * @returns {number} + * @returns {number[]} */ - QVector getTriggerInput() { return _triggerInputData; }; /**jsdoc * @function AudioScope.getTriggerOutputLeft - * @returns {number} + * @returns {number[]} */ - QVector getTriggerOutputLeft() { return _triggerOutputLeftData; }; /**jsdoc * @function AudioScope.getTriggerOutputRight - * @returns {number} + * @returns {number[]} */ - QVector getTriggerOutputRight() { return _triggerOutputRightData; }; /**jsdoc * @function AudioScope.setLocalEcho - * @parm {boolean} serverEcho + * @parm {boolean} localEcho */ - - void setLocalEcho(bool serverEcho); + void setLocalEcho(bool localEcho); /**jsdoc * @function AudioScope.setServerEcho * @parm {boolean} serverEcho */ - void setServerEcho(bool serverEcho); signals: @@ -229,14 +203,12 @@ signals: * @function AudioScope.pauseChanged * @returns {Signal} */ - void pauseChanged(); /**jsdoc * @function AudioScope.triggered * @returns {Signal} */ - void triggered(); protected: diff --git a/interface/src/avatar/AvatarManager.h b/interface/src/avatar/AvatarManager.h index 192f183f30..d2655914d2 100644 --- a/interface/src/avatar/AvatarManager.h +++ b/interface/src/avatar/AvatarManager.h @@ -38,75 +38,6 @@ class AvatarManager : public AvatarHashMap { public: - // JSDOCS Copied over from AvatarHashMap (see AvatarHashMap.h for reason) - - /**jsdoc - * @function AvatarManager.getAvatarIdentifiers - */ - - /**jsdoc - * @function AvatarManager.getAvatarsInRange - * @param {Vec3} position - * @param {float} rangeMeters - * @returns {string[]} - */ - - /**jsdoc - * @function AvatarManager.getAvatar - * @param {string} avatarID - * @returns {ScriptAvatarData} - */ - - /**jsdoc - * @function AvatarManager.avatarAddedEvent - * @param {string} sessionUUID - * @returns {Signal} - */ - - /**jsdoc - * @function AvatarManager.avatarRemovedEvent - * @param {string} sessionUUID - * @returns {Signal} - */ - - /**jsdoc - * @function AvatarManager.avatarSessionChangedEvent - * @param {string} sessionUUID - * @param {string} oldUUID - * @returns {Signal} - */ - - /**jsdoc - * @function AvatarManager.isAvatarInRange - * @param {string} position - * @param {string} range - * @returns {boolean} - */ - - /**jsdoc - * @function AvatarManager.sessionUUIDChanged - * @param {string} sessionUUID - * @param {string} oldUUID - */ - - /**jsdoc - * @function AvatarManager.processAvatarDataPacket - * @param {} message - * @param {} sendingNode - */ - - /**jsdoc - * @function AvatarManager.processAvatarIdentityPacket - * @param {} message - * @param {} sendingNode - */ - - /**jsdoc - * @function AvatarManager.processKillAvatar - * @param {} message - * @param {} sendingNode - */ - /// Registers the script types associated with the avatar manager. static void registerMetaTypes(QScriptEngine* engine); @@ -119,10 +50,9 @@ public: /**jsdoc * @function AvatarManager.getAvatar - * @param {string} avatarID - * @returns {} + * @param {Uuid} avatarID + * @returns {AvatarData} */ - // Null/Default-constructed QUuids will return MyAvatar Q_INVOKABLE virtual ScriptAvatarData* getAvatar(QUuid avatarID) override { return new ScriptAvatar(getAvatarBySessionID(avatarID)); } @@ -148,16 +78,15 @@ public: /**jsdoc * @function AvatarManager.getAvatarDataRate - * @param {string} sessionID + * @param {Uuid} sessionID * @param {string} [rateName=""] * @returns {number} */ - Q_INVOKABLE float getAvatarDataRate(const QUuid& sessionID, const QString& rateName = QString("")) const; /**jsdoc * @function AvatarManager.getAvatarUpdateRate - * @param {string} sessionID + * @param {Uuid} sessionID * @param {string} [rateName=""] * @returns {number} */ @@ -166,51 +95,47 @@ public: /**jsdoc * @function AvatarManager.getAvatarSimulationRate - * @param {string} sessionID + * @param {Uuid} sessionID * @param {string} [rateName=""] * @returns {number} */ - + Q_INVOKABLE float getAvatarSimulationRate(const QUuid& sessionID, const QString& rateName = QString("")) const; /**jsdoc * @function AvatarManager.findRayIntersection * @param {PickRay} ray - * @param {} avatarIdsToInclude - * @param {} avatarIdsToDiscard + * @param {Uuid[]} [avatarsToInclude=[]] + * @param {Uuid[]} [avatarsToDiscard=[]] * @returns {RayToAvatarIntersectionResult} */ - Q_INVOKABLE RayToAvatarIntersectionResult findRayIntersection(const PickRay& ray, const QScriptValue& avatarIdsToInclude = QScriptValue(), const QScriptValue& avatarIdsToDiscard = QScriptValue()); /**jsdoc * @function AvatarManager.findRayIntersectionVector * @param {PickRay} ray - * @param {} avatarsToInclude - * @param {} avatarIdsToDiscard + * @param {Uuid[]} avatarsToInclude + * @param {Uuid[]} avatarsToDiscard * @returns {RayToAvatarIntersectionResult} */ - Q_INVOKABLE RayToAvatarIntersectionResult findRayIntersectionVector(const PickRay& ray, const QVector& avatarsToInclude, const QVector& avatarsToDiscard); - // TODO: remove this HACK once we settle on optimal default sort coefficients /**jsdoc * @function AvatarManager.getAvatarSortCoefficient * @param {string} name * @returns {number} */ - + // TODO: remove this HACK once we settle on optimal default sort coefficients Q_INVOKABLE float getAvatarSortCoefficient(const QString& name); /**jsdoc * @function AvatarManager.setAvatarSortCoefficient * @param {string} name - * @param {string} value + * @param {number} value */ - Q_INVOKABLE void setAvatarSortCoefficient(const QString& name, const QScriptValue& value); float getMyAvatarSendRate() const { return _myAvatarSendRate.rate(); } @@ -221,7 +146,6 @@ public slots: * @function AvatarManager.updateAvatarRenderStatus * @param {boolean} shouldRenderAvatars */ - void updateAvatarRenderStatus(bool shouldRenderAvatars); private: diff --git a/interface/src/devices/DdeFaceTracker.h b/interface/src/devices/DdeFaceTracker.h index 37ebf9159d..d4af0bbd37 100644 --- a/interface/src/devices/DdeFaceTracker.h +++ b/interface/src/devices/DdeFaceTracker.h @@ -67,13 +67,11 @@ public slots: * @function FaceTracker.setEnabled * @param {boolean} enabled */ - void setEnabled(bool enabled) override; /**jsdoc * @function FaceTracker.calibrate */ - void calibrate(); private slots: diff --git a/interface/src/scripting/AccountServicesScriptingInterface.h b/interface/src/scripting/AccountServicesScriptingInterface.h index 65c083b8e4..d38a84d8fa 100644 --- a/interface/src/scripting/AccountServicesScriptingInterface.h +++ b/interface/src/scripting/AccountServicesScriptingInterface.h @@ -39,10 +39,10 @@ class AccountServicesScriptingInterface : public QObject { * The AccountServices API contains helper functions related to user connectivity * * @namespace AccountServices - * @property {string} username - * @property {boolean} loggedIn + * @property {string} username Read-only. + * @property {boolean} loggedIn Read-only. * @property {string} findableBy - * @property {string} metaverseServerURL + * @property {string} metaverseServerURL Read-only. */ Q_PROPERTY(QString username READ getUsername NOTIFY myUsernameChanged) @@ -63,33 +63,28 @@ public slots: * @function AccountServices.getDownloadInfo * @returns {DownloadInfoResult} */ - DownloadInfoResult getDownloadInfo(); /**jsdoc * @function AccountServices.updateDownloadInfo */ - void updateDownloadInfo(); /**jsdoc * @function AccountServices.isLoggedIn * @returns {boolean} */ - bool isLoggedIn(); /**jsdoc * @function AccountServices.checkAndSignalForAccessToken * @returns {boolean} */ - bool checkAndSignalForAccessToken(); /**jsdoc * @function AccountServices.logOut */ - void logOut(); private slots: @@ -108,47 +103,41 @@ signals: * @function AccountServices.connected * @returns {Signal} */ - void connected(); /**jsdoc * @function AccountServices.disconnected - * @params {string} reason + * @param {string} reason * @returns {Signal} */ - void disconnected(const QString& reason); /**jsdoc * @function AccountServices.myUsernameChanged - * @params {string} username + * @param {string} username * @returns {Signal} */ - void myUsernameChanged(const QString& username); /**jsdoc * @function AccountServices.downloadInfoChanged - * @params {} info + * @param {} info * @returns {Signal} */ - void downloadInfoChanged(DownloadInfoResult info); /**jsdoc * @function AccountServices.findableByChanged - * @params {string} discoverabilityMode + * @param {string} discoverabilityMode * @returns {Signal} */ - void findableByChanged(const QString& discoverabilityMode); /**jsdoc * @function AccountServices.loggedInChanged - * @params {boolean} loggedIn + * @param {boolean} loggedIn * @returns {Signal} */ - void loggedInChanged(bool loggedIn); private: diff --git a/interface/src/scripting/Audio.h b/interface/src/scripting/Audio.h index b7cd3067be..c77d1522b5 100644 --- a/interface/src/scripting/Audio.h +++ b/interface/src/scripting/Audio.h @@ -31,10 +31,10 @@ class Audio : public AudioScriptingInterface, protected ReadWriteLockable { * @namespace Audio * @property {boolean} muted * @property {boolean} noiseReduction - * @property {boolean} inputVolume - * @property {boolean} inputLevel - * @property {string} context - * @property {} devices + * @property {number} inputVolume + * @property {number} inputLevel Read-only. + * @property {string} context Read-only. + * @property {} devices Read-only. */ Q_PROPERTY(bool muted READ isMuted WRITE setMuted NOTIFY mutedChanged) @@ -66,7 +66,6 @@ public: * @param {} device * @param {boolean} isHMD */ - Q_INVOKABLE void setInputDevice(const QAudioDeviceInfo& device, bool isHMD); /**jsdoc @@ -74,40 +73,36 @@ public: * @param {} device * @param {boolean} isHMD */ - Q_INVOKABLE void setOutputDevice(const QAudioDeviceInfo& device, bool isHMD); /**jsdoc * @function Audio.setReverb * @param {boolean} enable */ - Q_INVOKABLE void setReverb(bool enable); /**jsdoc * @function Audio.setReverbOptions * @param {} options */ - Q_INVOKABLE void setReverbOptions(const AudioEffectOptions* options); /**jsdoc - * @function Audio.setReverbOptions + * @function Audio.startRecording * @param {string} filename + * @returns {boolean} */ - Q_INVOKABLE bool startRecording(const QString& filename); /**jsdoc * @function Audio.stopRecording */ - Q_INVOKABLE void stopRecording(); /**jsdoc * @function Audio.getRecording + * @returns {boolean} */ - Q_INVOKABLE bool getRecording(); signals: @@ -116,39 +111,34 @@ signals: * @function Audio.nop * @returns {Signal} */ - void nop(); /**jsdoc - * @function Audio.nop - * @param {bool} isMuted + * @function Audio.mutedChanged + * @param {boolean} isMuted * @returns {Signal} */ - void mutedChanged(bool isMuted); /**jsdoc * @function Audio.noiseReductionChanged - * @param {bool} isEnabled + * @param {boolean} isEnabled * @returns {Signal} */ - void noiseReductionChanged(bool isEnabled); /**jsdoc * @function Audio.inputVolumeChanged - * @param {float} volume + * @param {number} volume * @returns {Signal} */ - void inputVolumeChanged(float volume); /**jsdoc * @function Audio.inputLevelChanged - * @param {float} level + * @param {number} level * @returns {Signal} */ - void inputLevelChanged(float level); /**jsdoc @@ -156,7 +146,6 @@ signals: * @param {string} context * @returns {Signal} */ - void contextChanged(const QString& context); public slots: @@ -165,7 +154,6 @@ public slots: * @function Audio.onContextChanged * @returns {Signal} */ - void onContextChanged(); private slots: diff --git a/interface/src/scripting/GooglePolyScriptingInterface.h b/interface/src/scripting/GooglePolyScriptingInterface.h index 55d2236ec1..5c37b394fa 100644 --- a/interface/src/scripting/GooglePolyScriptingInterface.h +++ b/interface/src/scripting/GooglePolyScriptingInterface.h @@ -32,7 +32,6 @@ public slots: * @function GooglePoly.setAPIKey * @param {string} key */ - void setAPIKey(const QString& key); /**jsdoc @@ -42,7 +41,6 @@ public slots: * @param {string} format * @returns {string} */ - QString getAssetList(const QString& keyword, const QString& category, const QString& format); /**jsdoc @@ -51,7 +49,6 @@ public slots: * @param {string} category * @returns {string} */ - QString getFBX(const QString& keyword, const QString& category); /**jsdoc @@ -60,7 +57,6 @@ public slots: * @param {string} category * @returns {string} */ - QString getOBJ(const QString& keyword, const QString& category); /**jsdoc @@ -69,7 +65,6 @@ public slots: * @param {string} category * @returns {string} */ - QString getBlocks(const QString& keyword, const QString& category); /**jsdoc @@ -78,7 +73,6 @@ public slots: * @param {string} category * @returns {string} */ - QString getGLTF(const QString& keyword, const QString& category); /**jsdoc @@ -87,7 +81,6 @@ public slots: * @param {string} category * @returns {string} */ - QString getGLTF2(const QString& keyword, const QString& category); /**jsdoc @@ -96,7 +89,6 @@ public slots: * @param {string} category * @returns {string} */ - QString getTilt(const QString& keyword, const QString& category); /**jsdoc @@ -104,7 +96,6 @@ public slots: * @param {string} input * @returns {string} */ - QString getModelInfo(const QString& input); private: diff --git a/interface/src/ui/AvatarInputs.h b/interface/src/ui/AvatarInputs.h index c34542735e..a9d1509770 100644 --- a/interface/src/ui/AvatarInputs.h +++ b/interface/src/ui/AvatarInputs.h @@ -26,10 +26,10 @@ class AvatarInputs : public QObject { /**jsdoc * API to help manage your Avatar's input * @namespace AvatarInputs - * @param {boolean} cameraEnabled - * @param {boolean} cameraMuted - * @param {boolean} isHMD - * @param {boolean} showAudioTools + * @property {boolean} cameraEnabled Read-only. + * @property {boolean} cameraMuted Read-only. + * @property {boolean} isHMD Read-only. + * @property {boolean} showAudioTools */ AI_PROPERTY(bool, cameraEnabled, false) @@ -46,8 +46,8 @@ public: * @param {number} loudness * @returns {number} */ - Q_INVOKABLE float loudnessToAudioLevel(float loudness); + AvatarInputs(QObject* parent = nullptr); void update(); bool showAudioTools() const { return _showAudioTools; } @@ -58,7 +58,6 @@ public slots: * @function AvatarInputs.setShowAudioTools * @param {boolean} showAudioTools */ - void setShowAudioTools(bool showAudioTools); signals: @@ -67,14 +66,12 @@ signals: * @function AvatarInputs.cameraEnabledChanged * @returns {Signal} */ - void cameraEnabledChanged(); /**jsdoc * @function AvatarInputs.cameraMutedChanged * @returns {Signal} */ - void cameraMutedChanged(); /**jsdoc @@ -89,7 +86,6 @@ signals: * @param {boolean} show * @returns {Signal} */ - void showAudioToolsChanged(bool show); protected: @@ -97,13 +93,11 @@ protected: /**jsdoc * @function AvatarInputs.resetSensors */ - Q_INVOKABLE void resetSensors(); /**jsdoc * @function AvatarInputs.toggleCameraMute */ - Q_INVOKABLE void toggleCameraMute(); private: diff --git a/libraries/animation/src/AnimationCache.h b/libraries/animation/src/AnimationCache.h index d93c69e6fb..03b37aef2f 100644 --- a/libraries/animation/src/AnimationCache.h +++ b/libraries/animation/src/AnimationCache.h @@ -20,11 +20,6 @@ #include #include -/**jsdoc - * API to manage Animation Cache resources - * @namespace AnimationCache - */ - class Animation; typedef QSharedPointer AnimationPointer; @@ -35,79 +30,67 @@ class AnimationCache : public ResourceCache, public Dependency { SINGLETON_DEPENDENCY public: - // Copied over from ResourceCache (see ResourceCache.h for reason) + + // Properties are copied over from ResourceCache (see ResourceCache.h for reason). /**jsdoc + * API to manage animation cache resources. * @namespace AnimationCache - * @property numTotal {number} total number of total resources - * @property numCached {number} total number of cached resource - * @property sizeTotal {number} size in bytes of all resources - * @property sizeCached {number} size in bytes of all cached resources + * + * @property {number} numTotal - Total number of total resources. Read-only. + * @property {number} numCached - Total number of cached resource. Read-only. + * @property {number} sizeTotal - Size in bytes of all resources. Read-only. + * @property {number} sizeCached - Size in bytes of all cached resources. Read-only. */ - /**jsdoc - * Returns the total number of resources - * @function AnimationCache.getNumTotalResources - * @returns {number} - */ + // Functions are copied over from ResourceCache (see ResourceCache.h for reason). - /**jsdoc - * Returns the total size in bytes of all resources - * @function AnimationCache.getSizeTotalResources - * @returns {number} - */ - - /**jsdoc - * Returns the total number of cached resources - * @function AnimationCache.getNumCachedResources - * @returns {number} - */ - - /**jsdoc - * Returns the total size in bytes of cached resources - * @function AnimationCache.getSizeCachedResources - * @returns {number} - */ - - /**jsdoc - * Returns list of all resource urls + /**jsdoc + * Get the list of all resource URLs. * @function AnimationCache.getResourceList - * @returns {string[]} + * @return {string[]} */ - /**jsdoc - * Asynchronously loads a resource from the spedified URL and returns it. - * @param url {string} url of resource to load - * @param fallback {string} fallback URL if load of the desired url fails - * @function AnimationCache.getResource - * @returns {Resource} - */ - - /**jsdoc - * Prefetches a resource. - * @param url {string} url of resource to load - * @function AnimationCache.prefetch - * @returns {Resource} - */ - - /**jsdoc - * @param {number} deltaSize - * @function AnimationCache.updateTotalSize - * @returns {Resource} - */ - - /**jsdoc + /**jsdoc * @function AnimationCache.dirty - * @returns {Signal} + * @returns {Signal} */ + /**jsdoc + * @function AnimationCache.updateTotalSize + * @param {number} deltaSize + */ + + /**jsdoc + * @function AnimationCache.prefetch + * @param {string} url + * @param {object} extra + * @returns {object} + */ + + /**jsdoc + * Asynchronously loads a resource from the specified URL and returns it. + * @function AnimationCache.getResource + * @param {string} url - URL of the resource to load. + * @param {string} [fallback=""] - Fallback URL if load of the desired URL fails. + * @param {} [extra=null] + * @return {Resource} + */ + + /**jsdoc + * Prefetches a resource. + * @function AnimationCache.prefetch + * @param {string} url - URL of the resource to prefetch. + * @return {Resource} + */ + + /**jsdoc - * Returns animation resource for particular animation + * Returns animation resource for particular animation. * @function AnimationCache.getAnimation - * @param url {string} url to load + * @param {string} url - URL to load. * @returns {Resource} animation */ - Q_INVOKABLE AnimationPointer getAnimation(const QString& url) { return getAnimation(QUrl(url)); } Q_INVOKABLE AnimationPointer getAnimation(const QUrl& url); diff --git a/libraries/audio-client/src/AudioIOStats.h b/libraries/audio-client/src/AudioIOStats.h index dd97f1fe9e..89db4942ec 100644 --- a/libraries/audio-client/src/AudioIOStats.h +++ b/libraries/audio-client/src/AudioIOStats.h @@ -40,65 +40,135 @@ class AudioStreamStatsInterface : public QObject { Q_OBJECT /**jsdoc - * Audio stats from the Audio Mixer - * @namespace AudioStats.mixerStream - * @param {number} lossRate - * @param {number} lossCount - * @param {number} lossRateWindow - * @param {number} lossCountWindow - * @param {number} framesDesired - * @param {number} framesAvailable - * @param {number} framesAvailableAvg - * @param {number} unplayedMsMax - * @param {number} starveCount - * @param {number} lastStarveDurationCount - * @param {number} dropCount - * @param {number} overflowCount - * @param {number} timegapMsMax - * @param {number} timegapMsAvg - * @param {number} timegapMsMaxWindow - * @param {number} timegapMsAvgWindow + * @class AudioStats.AudioStreamStats + * @property {number} lossRate Read-only. + * @property {number} lossCount Read-only. + * @property {number} lossRateWindow Read-only. + * @property {number} lossCountWindow Read-only. + * @property {number} framesDesired Read-only. + * @property {number} framesAvailable Read-only. + * @property {number} framesAvailableAvg Read-only. + * @property {number} unplayedMsMax Read-only. + * @property {number} starveCount Read-only. + * @property {number} lastStarveDurationCount Read-only. + * @property {number} dropCount Read-only. + * @property {number} overflowCount Read-only. + * @property {number} timegapMsMax Read-only. + * @property {number} timegapMsAvg Read-only. + * @property {number} timegapMsMaxWindow Read-only. + * @property {number} timegapMsAvgWindow Read-only. */ /**jsdoc - * Audio stats from the Client Mixer - * @namespace AudioStats.clientMixer + * @function AudioStats.AudioStreamStats.lossRateChanged * @param {number} lossRate - * @param {number} lossCount - * @param {number} lossRateWindow - * @param {number} lossCountWindow - * @param {number} framesDesired - * @param {number} framesAvailable - * @param {number} framesAvailableAvg - * @param {number} unplayedMsMax - * @param {number} starveCount - * @param {number} lastStarveDurationCount - * @param {number} dropCount - * @param {number} overflowCount - * @param {number} timegapMsMax - * @param {number} timegapMsAvg - * @param {number} timegapMsMaxWindow - * @param {number} timegapMsAvgWindow + * @returns {Signal} */ - AUDIO_PROPERTY(float, lossRate) + + /**jsdoc + * @function AudioStats.AudioStreamStats.lossCountChanged + * @param {number} lossCount + * @returns {Signal} + */ AUDIO_PROPERTY(float, lossCount) + + /**jsdoc + * @function AudioStats.AudioStreamStats.lossRateWindowChanged + * @param {number} lossRateWindow + * @returns {Signal} + */ AUDIO_PROPERTY(float, lossRateWindow) + + /**jsdoc + * @function AudioStats.AudioStreamStats.lossCountWindowChanged + * @param {number} lossCountWindow + * @returns {Signal} + */ AUDIO_PROPERTY(float, lossCountWindow) + /**jsdoc + * @function AudioStats.AudioStreamStats.framesDesiredChanged + * @param {number} framesDesired + * @returns {Signal} + */ AUDIO_PROPERTY(int, framesDesired) + + /**jsdoc + * @function AudioStats.AudioStreamStats.framesAvailableChanged + * @param {number} framesAvailable + * @returns {Signal} + */ AUDIO_PROPERTY(int, framesAvailable) + + /**jsdoc + * @function AudioStats.AudioStreamStats.framesAvailableAvgChanged + * @param {number} framesAvailableAvg + * @returns {Signal} + */ AUDIO_PROPERTY(int, framesAvailableAvg) + + /**jsdoc + * @function AudioStats.AudioStreamStats.unplayedMsMaxChanged + * @param {number} unplayedMsMax + * @returns {Signal} + */ AUDIO_PROPERTY(float, unplayedMsMax) + /**jsdoc + * @function AudioStats.AudioStreamStats.starveCountChanged + * @param {number} starveCount + * @returns {Signal} + */ AUDIO_PROPERTY(int, starveCount) + + /**jsdoc + * @function AudioStats.AudioStreamStats.lastStarveDurationCountChanged + * @param {number} lastStarveDurationCount + * @returns {Signal} + */ AUDIO_PROPERTY(int, lastStarveDurationCount) + + /**jsdoc + * @function AudioStats.AudioStreamStats.dropCountChanged + * @param {number} dropCount + * @returns {Signal} + */ AUDIO_PROPERTY(int, dropCount) + + /**jsdoc + * @function AudioStats.AudioStreamStats.overflowCountChanged + * @param {number} overflowCount + * @returns {Signal} + */ AUDIO_PROPERTY(int, overflowCount) + /**jsdoc + * @function AudioStats.AudioStreamStats.timegapMsMaxChanged + * @param {number} timegapMsMax + * @returns {Signal} + */ AUDIO_PROPERTY(quint64, timegapMsMax) + + /**jsdoc + * @function AudioStats.AudioStreamStats.timegapMsAvgChanged + * @param {number} timegapMsAvg + * @returns {Signal} + */ AUDIO_PROPERTY(quint64, timegapMsAvg) + + /**jsdoc + * @function AudioStats.AudioStreamStats.timegapMsMaxWindowChanged + * @param {number} timegapMsMaxWindow + * @returns {Signal} + */ AUDIO_PROPERTY(quint64, timegapMsMaxWindow) + + /**jsdoc + * @function AudioStats.AudioStreamStats.timegapMsAvgWindowChanged + * @param {number} timegapMsAvgWindow + * @returns {Signal} + */ AUDIO_PROPERTY(quint64, timegapMsAvgWindow) public: @@ -113,31 +183,82 @@ class AudioStatsInterface : public QObject { Q_OBJECT /**jsdoc - * Audio stats from the client + * Audio stats from the client. * @namespace AudioStats - * @param {number} pingMs - * @param {number} inputReadMsMax - * @param {number} inputUnplayedMsMax - * @param {number} outputUnplayedMsMax - * @param {number} sentTimegapMsMax - * @param {number} sentTimegapMsAvg - * @param {number} sentTimegapMsMaxWindow - * @param {number} sentTimegapMsAvgWindow + * @property {number} pingMs Read-only. + * @property {number} inputReadMsMax Read-only. + * @property {number} inputUnplayedMsMax Read-only. + * @property {number} outputUnplayedMsMax Read-only. + * @property {number} sentTimegapMsMax Read-only. + * @property {number} sentTimegapMsAvg Read-only. + * @property {number} sentTimegapMsMaxWindow Read-only. + * @property {number} sentTimegapMsAvgWindow Read-only. + * @property {AudioStats.AudioStreamStats} clientStream Read-only. + * @property {AudioStats.AudioStreamStats} mixerStream Read-only. */ + /**jsdoc + * @function AudioStats.pingMsChanged + * @param {number} pingMs + * @returns {Signal} + */ AUDIO_PROPERTY(float, pingMs); + + /**jsdoc + * @function AudioStats.inputReadMsMaxChanged + * @param {number} inputReadMsMax + * @returns {Signal} + */ AUDIO_PROPERTY(float, inputReadMsMax); + + /**jsdoc + * @function AudioStats.inputUnplayedMsMaxChanged + * @param {number} inputUnplayedMsMax + * @returns {Signal} + */ AUDIO_PROPERTY(float, inputUnplayedMsMax); + + /**jsdoc + * @function AudioStats.outputUnplayedMsMaxChanged + * @param {number} outputUnplayedMsMax + * @returns {Signal} + */ AUDIO_PROPERTY(float, outputUnplayedMsMax); + + /**jsdoc + * @function AudioStats.sentTimegapMsMaxChanged + * @param {number} sentTimegapMsMax + * @returns {Signal} + */ AUDIO_PROPERTY(quint64, sentTimegapMsMax); + + /**jsdoc + * @function AudioStats.sentTimegapMsAvgChanged + * @param {number} sentTimegapMsAvg + * @returns {Signal} + */ AUDIO_PROPERTY(quint64, sentTimegapMsAvg); + + /**jsdoc + * @function AudioStats.sentTimegapMsMaxWindowChanged + * @param {number} sentTimegapMsMaxWindow + * @returns {Signal} + */ AUDIO_PROPERTY(quint64, sentTimegapMsMaxWindow); + + /**jsdoc + * @function AudioStats.sentTimegapMsAvgWindowChanged + * @param {number} sentTimegapMsAvgWindow + * @returns {Signal} + */ AUDIO_PROPERTY(quint64, sentTimegapMsAvgWindow); Q_PROPERTY(AudioStreamStatsInterface* mixerStream READ getMixerStream NOTIFY mixerStreamChanged); Q_PROPERTY(AudioStreamStatsInterface* clientStream READ getClientStream NOTIFY clientStreamChanged); + + // FIXME: The injectorStreams property isn't available in JavaScript but the notification signal is. Q_PROPERTY(QObject* injectorStreams READ getInjectorStreams NOTIFY injectorStreamsChanged); public: @@ -159,21 +280,18 @@ signals: * @function AudioStats.mixerStreamChanged * @returns {Signal} */ - void mixerStreamChanged(); /**jsdoc * @function AudioStats.clientStreamChanged * @returns {Signal} */ - void clientStreamChanged(); /**jsdoc * @function AudioStats.injectorStreamsChanged * @returns {Signal} */ - void injectorStreamsChanged(); private: diff --git a/libraries/audio/src/SoundCache.h b/libraries/audio/src/SoundCache.h index bdb9e106d0..d8c52635e0 100644 --- a/libraries/audio/src/SoundCache.h +++ b/libraries/audio/src/SoundCache.h @@ -16,84 +16,32 @@ #include "Sound.h" -/**jsdoc - * API to manage Sound Cache resources - * @namespace SoundCache - */ - - /// Scriptable interface for sound loading. class SoundCache : public ResourceCache, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY public: - // Copied over from ResourceCache (see ResourceCache.h for reason) + + // Properties are copied over from ResourceCache (see ResourceCache.h for reason). /**jsdoc + * API to manage sound cache resources. * @namespace SoundCache - * @property numTotal {number} total number of total resources - * @property numCached {number} total number of cached resource - * @property sizeTotal {number} size in bytes of all resources - * @property sizeCached {number} size in bytes of all cached resources + * + * @property {number} numTotal - Total number of total resources. Read-only. + * @property {number} numCached - Total number of cached resource. Read-only. + * @property {number} sizeTotal - Size in bytes of all resources. Read-only. + * @property {number} sizeCached - Size in bytes of all cached resources. Read-only. */ - /**jsdoc - * Returns the total number of resources - * @function SoundCache.getNumTotalResources - * @returns {number} - */ + + // Functions are copied over from ResourceCache (see ResourceCache.h for reason). /**jsdoc - * Returns the total size in bytes of all resources - * @function SoundCache.getSizeTotalResources - * @returns {number} - */ - - /**jsdoc - * Returns the total number of cached resources - * @function SoundCache.getNumCachedResources - * @returns {number} - */ - - /**jsdoc - * Returns the total size in bytes of cached resources - * @function SoundCache.getSizeCachedResources - * @returns {number} - */ - - /**jsdoc - * Returns list of all resource urls + * Get the list of all resource URLs. * @function SoundCache.getResourceList - * @returns {string[]} - */ - - /**jsdoc - * Returns animation resource for particular animation - * @function SoundCache.getAnimation - * @param url {string} url to load - * @returns {Resource} animation - */ - - /**jsdoc - * Asynchronously loads a resource from the spedified URL and returns it. - * @param url {string} url of resource to load - * @param fallback {string} fallback URL if load of the desired url fails - * @function SoundCache.getResource - * @returns {Resource} - */ - - /**jsdoc - * Prefetches a resource. - * @param url {string} url of resource to load - * @function SoundCache.prefetch - * @returns {Resource} - */ - - /**jsdoc - * @param {number} deltaSize - * @function SoundCache.updateTotalSize - * @returns {Resource} + * @return {string[]} */ /**jsdoc @@ -101,12 +49,40 @@ public: * @returns {Signal} */ + /**jsdoc + * @function SoundCache.updateTotalSize + * @param {number} deltaSize + */ + + /**jsdoc + * @function SoundCache.prefetch + * @param {string} url + * @param {object} extra + * @returns {object} + */ + + /**jsdoc + * Asynchronously loads a resource from the specified URL and returns it. + * @function SoundCache.getResource + * @param {string} url - URL of the resource to load. + * @param {string} [fallback=""] - Fallback URL if load of the desired URL fails. + * @param {} [extra=null] + * @return {Resource} + */ + + /**jsdoc + * Prefetches a resource. + * @function SoundCache.prefetch + * @param {string} url - URL of the resource to prefetch. + * @return {Resource} + */ + + /**jsdoc * @function SoundCache.getSound * @param {string} url - * @returns {} + * @returns {object} */ - Q_INVOKABLE SharedSoundPointer getSound(const QUrl& url); protected: virtual QSharedPointer createResource(const QUrl& url, const QSharedPointer& fallback, diff --git a/libraries/avatars/src/AvatarHashMap.h b/libraries/avatars/src/AvatarHashMap.h index 77e0b1e5c7..dc3f40c5d3 100644 --- a/libraries/avatars/src/AvatarHashMap.h +++ b/libraries/avatars/src/AvatarHashMap.h @@ -30,15 +30,6 @@ #include "AvatarData.h" -/**jsdoc - * The AvatarHashMap API deals with functionality related to Avatar information and connectivity - * @namespace AvatarHashMap - */ - -// JSDoc 3.5.5 doesn't augment @property definitions. -// These functions are being copied into Avatar classes which inherit the AvatarHashMap - - class AvatarHashMap : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY @@ -51,26 +42,20 @@ public: // Currently, your own avatar will be included as the null avatar id. /**jsdoc - * @function AvatarHashMap.getAvatarIdentifiers + * @function AvatarManager.getAvatarIdentifiers + * @returns {Uuid[]} */ - Q_INVOKABLE QVector getAvatarIdentifiers(); /**jsdoc - * @function AvatarHashMap.getAvatarsInRange + * @function AvatarManager.getAvatarsInRange * @param {Vec3} position - * @param {float} rangeMeters - * @returns {string[]} + * @param {number} range + * @returns {Uuid[]} */ - Q_INVOKABLE QVector getAvatarsInRange(const glm::vec3& position, float rangeMeters) const; - /**jsdoc - * @function AvatarHashMap.getAvatar - * @param {string} avatarID - * @returns {ScriptAvatarData} - */ - + // No JSDod because it's documwented in AvatarManager. // Null/Default-constructed QUuids will return MyAvatar Q_INVOKABLE virtual ScriptAvatarData* getAvatar(QUuid avatarID) { return new ScriptAvatarData(getAvatarBySessionID(avatarID)); } @@ -80,73 +65,65 @@ public: signals: /**jsdoc - * @function AvatarHashMap.avatarAddedEvent - * @param {string} sessionUUID + * @function AvatarManager.avatarAddedEvent + * @param {Uuid} sessionUUID * @returns {Signal} */ - void avatarAddedEvent(const QUuid& sessionUUID); /**jsdoc - * @function AvatarHashMap.avatarRemovedEvent - * @param {string} sessionUUID + * @function AvatarManager.avatarRemovedEvent + * @param {Uuid} sessionUUID * @returns {Signal} */ - void avatarRemovedEvent(const QUuid& sessionUUID); /**jsdoc - * @function AvatarHashMap.avatarSessionChangedEvent - * @param {string} sessionUUID - * @param {string} oldUUID + * @function AvatarManager.avatarSessionChangedEvent + * @param {Uuid} sessionUUID + * @param {Uuid} oldSessionUUID * @returns {Signal} */ - void avatarSessionChangedEvent(const QUuid& sessionUUID,const QUuid& oldUUID); public slots: /**jsdoc - * @function AvatarHashMap.isAvatarInRange + * @function AvatarManager.isAvatarInRange * @param {string} position * @param {string} range * @returns {boolean} */ - bool isAvatarInRange(const glm::vec3 & position, const float range); protected slots: /**jsdoc - * @function AvatarHashMap.sessionUUIDChanged - * @param {string} sessionUUID - * @param {string} oldUUID + * @function AvatarManager.sessionUUIDChanged + * @param {Uuid} sessionUUID + * @param {Uuid} oldSessionUUID */ - void sessionUUIDChanged(const QUuid& sessionUUID, const QUuid& oldUUID); /**jsdoc - * @function AvatarHashMap.processAvatarDataPacket + * @function AvatarManager.processAvatarDataPacket * @param {} message * @param {} sendingNode */ - void processAvatarDataPacket(QSharedPointer message, SharedNodePointer sendingNode); /**jsdoc - * @function AvatarHashMap.processAvatarIdentityPacket + * @function AvatarManager.processAvatarIdentityPacket * @param {} message * @param {} sendingNode */ - void processAvatarIdentityPacket(QSharedPointer message, SharedNodePointer sendingNode); /**jsdoc - * @function AvatarHashMap.processKillAvatar + * @function AvatarManager.processKillAvatar * @param {} message * @param {} sendingNode */ - void processKillAvatar(QSharedPointer message, SharedNodePointer sendingNode); protected: diff --git a/libraries/entities/src/EntityScriptingInterface.h b/libraries/entities/src/EntityScriptingInterface.h index c9fa50932a..d4a8b11453 100644 --- a/libraries/entities/src/EntityScriptingInterface.h +++ b/libraries/entities/src/EntityScriptingInterface.h @@ -393,7 +393,7 @@ public slots: * @param {Entities.EntityType} entityName - The name of the entity to search for. * @param {Vec3} center - The point about which to search. * @param {number} radius - The radius within which to search. - * @param {bool} caseSensitiveSearch - Choose whether to to return case sensitive results back. + * @param {boolean} caseSensitiveSearch - Choose whether to to return case sensitive results back. * @returns {Uuid[]} An array of entity IDs of the specified type that intersect the search sphere. The array is empty if * no entities could be found. * @example Get back a list of entities diff --git a/libraries/model-networking/src/model-networking/ModelCache.h b/libraries/model-networking/src/model-networking/ModelCache.h index 369d972a7d..9532f39ce0 100644 --- a/libraries/model-networking/src/model-networking/ModelCache.h +++ b/libraries/model-networking/src/model-networking/ModelCache.h @@ -21,11 +21,6 @@ #include "FBXReader.h" #include "TextureCache.h" -/**jsdoc -* API to manage Model Cache resources -* @namespace ModelCache -*/ - // Alias instead of derive to avoid copying class NetworkTexture; @@ -141,72 +136,62 @@ class ModelCache : public ResourceCache, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY - public: - /**jsdoc - * @namespace ModelCache - * @property numTotal {number} total number of total resources - * @property numCached {number} total number of cached resource - * @property sizeTotal {number} size in bytes of all resources - * @property sizeCached {number} size in bytes of all cached resources - */ + // Properties are copied over from ResourceCache (see ResourceCache.h for reason). /**jsdoc - * Returns the total number of resources - * @function ModelCache.getNumTotalResources - * @returns {number} - */ + * API to manage model cache resources. + * @namespace ModelCache + * + * @property {number} numTotal - Total number of total resources. Read-only. + * @property {number} numCached - Total number of cached resource. Read-only. + * @property {number} sizeTotal - Size in bytes of all resources. Read-only. + * @property {number} sizeCached - Size in bytes of all cached resources. Read-only. + */ + + + // Functions are copied over from ResourceCache (see ResourceCache.h for reason). /**jsdoc - * Returns the total size in bytes of all resources - * @function ModelCache.getSizeTotalResources - * @returns {number} - */ + * Get the list of all resource URLs. + * @function ModelCache.getResourceList + * @return {string[]} + */ /**jsdoc - * Returns the total number of cached resources - * @function ModelCache.getNumCachedResources - * @returns {number} - */ + * @function ModelCache.dirty + * @returns {Signal} + */ /**jsdoc - * Returns the total size in bytes of cached resources - * @function ModelCache.getSizeCachedResources - * @returns {number} - */ + * @function ModelCache.updateTotalSize + * @param {number} deltaSize + */ /**jsdoc - * Returns list of all resource urls - * @function ModelCache.getResourceList - * @returns {string[]} - */ + * @function ModelCache.prefetch + * @param {string} url + * @param {object} extra + * @returns {object} + */ /**jsdoc - * Asynchronously loads a resource from the spedified URL and returns it. - * @param url {string} url of resource to load - * @param fallback {string} fallback URL if load of the desired url fails - * @function ModelCache.getResource - * @returns {Resource} - */ + * Asynchronously loads a resource from the specified URL and returns it. + * @function ModelCache.getResource + * @param {string} url - URL of the resource to load. + * @param {string} [fallback=""] - Fallback URL if load of the desired URL fails. + * @param {} [extra=null] + * @return {Resource} + */ /**jsdoc - * Prefetches a resource. - * @param url {string} url of resource to load - * @function ModelCache.prefetch - * @returns {Resource} - */ + * Prefetches a resource. + * @function ModelCache.prefetch + * @param {string} url - URL of the resource to prefetch. + * @return {Resource} + */ - /**jsdoc - * @param {number} deltaSize - * @function ModelCache.updateTotalSize - * @returns {Resource} - */ - - /**jsdoc - * @function ModelCache.dirty - * @returns {Signal} - */ GeometryResource::Pointer getGeometryResource(const QUrl& url, const QVariantHash& mapping = QVariantHash(), diff --git a/libraries/model-networking/src/model-networking/TextureCache.h b/libraries/model-networking/src/model-networking/TextureCache.h index 174a25fee2..3f46dc3074 100644 --- a/libraries/model-networking/src/model-networking/TextureCache.h +++ b/libraries/model-networking/src/model-networking/TextureCache.h @@ -137,10 +137,6 @@ using NetworkTexturePointer = QSharedPointer; Q_DECLARE_METATYPE(QWeakPointer) -/**jsdoc - * API to manage Texture Cache resources - * @namespace TextureCache - */ /// Stores cached textures, including render-to-texture targets. class TextureCache : public ResourceCache, public Dependency { @@ -148,78 +144,61 @@ class TextureCache : public ResourceCache, public Dependency { SINGLETON_DEPENDENCY public: - // Copied over from ResourceCache (see ResourceCache.h for reason) + + // Properties are copied over from ResourceCache (see ResourceCache.h for reason). /**jsdoc - * @namespace TextureCache - * @property numTotal {number} total number of total resources - * @property numCached {number} total number of cached resource - * @property sizeTotal {number} size in bytes of all resources - * @property sizeCached {number} size in bytes of all cached resources - */ + * API to manage texture cache resources. + * @namespace TextureCache + * + * @property {number} numTotal - Total number of total resources. Read-only. + * @property {number} numCached - Total number of cached resource. Read-only. + * @property {number} sizeTotal - Size in bytes of all resources. Read-only. + * @property {number} sizeCached - Size in bytes of all cached resources. Read-only. + */ - /**jsdoc - * Returns the total number of resources - * @function TextureCache.getNumTotalResources - * @returns {number} - */ - /**jsdoc - * Returns the total size in bytes of all resources - * @function TextureCache.getSizeTotalResources - * @returns {number} - */ + // Functions are copied over from ResourceCache (see ResourceCache.h for reason). - /**jsdoc - * Returns the total number of cached resources - * @function TextureCache.getNumCachedResources - * @returns {number} - */ + /**jsdoc + * Get the list of all resource URLs. + * @function TextureCache.getResourceList + * @return {string[]} + */ - /**jsdoc - * Returns the total size in bytes of cached resources - * @function TextureCache.getSizeCachedResources - * @returns {number} - */ + /**jsdoc + * @function TextureCache.dirty + * @returns {Signal} + */ - /**jsdoc - * Returns list of all resource urls - * @function TextureCache.getResourceList - * @returns {string[]} - */ + /**jsdoc + * @function TextureCache.updateTotalSize + * @param {number} deltaSize + */ - /**jsdoc - * Returns animation resource for particular animation - * @function TextureCache.getAnimation - * @param url {string} url to load - * @returns {Resource} animation - */ + /**jsdoc + * @function TextureCache.prefetch + * @param {string} url + * @param {object} extra + * @returns {object} + */ - /**jsdoc - * Asynchronously loads a resource from the spedified URL and returns it. - * @param url {string} url of resource to load - * @param fallback {string} fallback URL if load of the desired url fails - * @function TextureCache.getResource - * @returns {Resource} - */ + /**jsdoc + * Asynchronously loads a resource from the specified URL and returns it. + * @function TextureCache.getResource + * @param {string} url - URL of the resource to load. + * @param {string} [fallback=""] - Fallback URL if load of the desired URL fails. + * @param {} [extra=null] + * @return {Resource} + */ - /**jsdoc - * Prefetches a resource. - * @param url {string} url of resource to load - * @function TextureCache.prefetch - * @returns {Resource} - */ + /**jsdoc + * Prefetches a resource. + * @function TextureCache.prefetch + * @param {string} url - URL of the resource to prefetch. + * @return {Resource} + */ - /**jsdoc - * @param {number} deltaSize - * @function TextureCache.updateTotalSize - * @returns {Resource} - */ - - /**jsdoc - * @function TextureCache.dirty - * @returns {Signal} - */ /// Returns the ID of the permutation/normal texture used for Perlin noise shader programs. This texture /// has two lines: the first, a set of random numbers in [0, 255] to be used as permutation offsets, and @@ -265,6 +244,13 @@ signals: void spectatorCameraFramebufferReset(); protected: + + /**jsdoc + * @function TextureCache.prefect + * @param {string} url + * @param {number} type + * @param {number} [maxNumPixels=67108864] + */ // Overload ResourceCache::prefetch to allow specifying texture type for loads Q_INVOKABLE ScriptableResource* prefetch(const QUrl& url, int type, int maxNumPixels = ABSOLUTE_MAX_TEXTURE_NUM_PIXELS); diff --git a/libraries/networking/src/BaseAssetScriptingInterface.h b/libraries/networking/src/BaseAssetScriptingInterface.h index 336f3f81db..497f627421 100644 --- a/libraries/networking/src/BaseAssetScriptingInterface.h +++ b/libraries/networking/src/BaseAssetScriptingInterface.h @@ -31,12 +31,54 @@ public: BaseAssetScriptingInterface(QObject* parent = nullptr); public slots: + + /**jsdoc + * @function Assets.isValidPath + * @param {string} input + * @returns {boolean} + */ bool isValidPath(QString input) { return AssetUtils::isValidPath(input); } + + /**jsdoc + * @function Assets.isValidFilePath + * @param {string} input + * @returns {boolean} + */ bool isValidFilePath(QString input) { return AssetUtils::isValidFilePath(input); } + + /**jsdoc + * @function Assets.getATPUrl + * @param {string} input + * @returns {string} + */ QUrl getATPUrl(QString input) { return AssetUtils::getATPUrl(input); } + + /**jsdoc + * @function Assets.extractAssetHash + * @param {string} input + * @returns {string} + */ QString extractAssetHash(QString input) { return AssetUtils::extractAssetHash(input); } + + /**jsdoc + * @function Assets.isValidHash + * @param {string} input + * @returns {boolean} + */ bool isValidHash(QString input) { return AssetUtils::isValidHash(input); } + + /**jsdoc + * @function Assets.hashData + * @param {} data + * @returns {object} + */ QByteArray hashData(const QByteArray& data) { return AssetUtils::hashData(data); } + + /**jsdoc + * @function Assets.hashDataHex + * @param {} data + * @returns {string} + */ QString hashDataHex(const QByteArray& data) { return hashData(data).toHex(); } protected: diff --git a/libraries/networking/src/ResourceCache.h b/libraries/networking/src/ResourceCache.h index ddea7c51cf..609483bc56 100644 --- a/libraries/networking/src/ResourceCache.h +++ b/libraries/networking/src/ResourceCache.h @@ -89,14 +89,13 @@ class ScriptableResource : public QObject { /**jsdoc * @constructor Resource - * @property url {string} url of this resource - * @property state {Resource.State} current loading state + * @property {string} url - URL of this resource. + * @property {Resource.State} state - Current loading state. */ Q_OBJECT Q_PROPERTY(QUrl url READ getURL) Q_PROPERTY(int state READ getState NOTIFY stateChanged) - public: @@ -104,11 +103,11 @@ public: /**jsdoc * @name Resource.State * @static - * @property QUEUED {int} The resource is queued up, waiting to be loaded. - * @property LOADING {int} The resource is downloading - * @property LOADED {int} The resource has finished downloaded by is not complete - * @property FINISHED {int} The resource has completly finished loading and is ready. - * @property FAILED {int} Downloading the resource has failed. + * @property {number} QUEUED - The resource is queued up, waiting to be loaded. + * @property {number} LOADING - The resource is downloading. + * @property {number} LOADED - The resource has finished downloaded by is not complete. + * @property {number} FINISHED - The resource has completely finished loading and is ready. + * @property {number} FAILED - Downloading the resource has failed. */ enum State { @@ -124,7 +123,7 @@ public: virtual ~ScriptableResource() = default; /**jsdoc - * Release this resource + * Release this resource. * @function Resource#release */ Q_INVOKABLE void release(); @@ -139,18 +138,18 @@ public: signals: /**jsdoc - * Signaled when download progress for this resource has changed + * Triggered when download progress for this resource has changed. * @function Resource#progressChanged - * @param bytesReceived {int} bytes downloaded so far - * @param bytesTotal {int} total number of bytes in the resource + * @param {number} bytesReceived - Byytes downloaded so far. + * @param {number} bytesTotal - Total number of bytes in the resource. * @returns {Signal} */ void progressChanged(uint64_t bytesReceived, uint64_t bytesTotal); /**jsdoc - * Signaled when resource loading state has changed + * Triggered when resource loading state has changed. * @function Resource#stateChanged - * @param bytesReceived {Resource.State} new state + * @param {Resource.State} state - New state. * @returns {Signal} */ void stateChanged(int state); @@ -185,14 +184,15 @@ Q_DECLARE_METATYPE(ScriptableResource*); /// Base class for resource caches. class ResourceCache : public QObject { Q_OBJECT - // JSDoc 3.5.5 doesn't augment @property definitions. - // These functions are being copied into the different exposed cache classes + + // JSDoc 3.5.5 doesn't augment namespaces with @property or @function definitions. + // The ResourceCache properties and functions are copied to the different exposed cache classes. + /**jsdoc - * @namespace ResourceCache - * @property numTotal {number} total number of total resources - * @property numCached {number} total number of cached resource - * @property sizeTotal {number} size in bytes of all resources - * @property sizeCached {number} size in bytes of all cached resources + * @property {number} numTotal - Total number of total resources. Read-only. + * @property {number} numCached - Total number of cached resource. Read-only. + * @property {number} sizeTotal - Size in bytes of all resources. Read-only. + * @property {number} sizeCached - Size in bytes of all cached resources. Read-only. */ Q_PROPERTY(size_t numTotal READ getNumTotalResources NOTIFY dirty) Q_PROPERTY(size_t numCached READ getNumCachedResources NOTIFY dirty) @@ -200,36 +200,14 @@ class ResourceCache : public QObject { Q_PROPERTY(size_t sizeCached READ getSizeCachedResources NOTIFY dirty) public: - /**jsdoc - * Returns the total number of resources - * @function ResourceCache.getNumTotalResources - * @return {number} - */ + size_t getNumTotalResources() const { return _numTotalResources; } - - /**jsdoc - * Returns the total size in bytes of all resources - * @function ResourceCache.getSizeTotalResources - * @return {number} - */ size_t getSizeTotalResources() const { return _totalResourcesSize; } - - /**jsdoc - * Returns the total number of cached resources - * @function ResourceCache.getNumCachedResources - * @return {number} - */ size_t getNumCachedResources() const { return _numUnusedResources; } - - /**jsdoc - * Returns the total size in bytes of cached resources - * @function ResourceCache.getSizeCachedResources - * @return {number} - */ size_t getSizeCachedResources() const { return _unusedResourcesSize; } /**jsdoc - * Returns list of all resource urls + * Get the list of all resource URLs. * @function ResourceCache.getResourceList * @return {string[]} */ @@ -257,28 +235,45 @@ public: void clearUnusedResources(); signals: + + /**jsdoc + * @function ResourceCache.dirty + * @returns {Signal} + */ void dirty(); protected slots: + + /**jsdoc + * @function ResourceCache.updateTotalSize + * @param {number} deltaSize + */ void updateTotalSize(const qint64& deltaSize); + /**jsdoc + * @function ResourceCache.prefetch + * @param {string} url + * @param {object} extra + * @returns {object} + */ // Prefetches a resource to be held by the QScriptEngine. // Left as a protected member so subclasses can overload prefetch // and delegate to it (see TextureCache::prefetch(const QUrl&, int). ScriptableResource* prefetch(const QUrl& url, void* extra); + /**jsdoc + * Asynchronously loads a resource from the specified URL and returns it. + * @function ResourceCache.getResource + * @param {string} url - URL of the resource to load. + * @param {string} [fallback=""] - Fallback URL if load of the desired URL fails. + * @param {} [extra=null] + * @return {Resource} + */ /// Loads a resource from the specified URL and returns it. /// If the caller is on a different thread than the ResourceCache, /// returns an empty smart pointer and loads its asynchronously. /// \param fallback a fallback URL to load if the desired one is unavailable /// \param extra extra data to pass to the creator, if appropriate - /**jsdoc - * Asynchronously loads a resource from the spedified URL and returns it. - * @param url {string} url of resource to load - * @param fallback {string} fallback URL if load of the desired url fails - * @function ResourceCache.getResource - * @return {Resource} - */ QSharedPointer getResource(const QUrl& url, const QUrl& fallback = QUrl(), void* extra = NULL); @@ -292,8 +287,8 @@ protected: // the QScriptEngine will delete the pointer when it is garbage collected. /**jsdoc * Prefetches a resource. - * @param url {string} url of resource to load * @function ResourceCache.prefetch + * @param {string} url - URL of the resource to prefetch. * @return {Resource} */ Q_INVOKABLE ScriptableResource* prefetch(const QUrl& url) { return prefetch(url, nullptr); } diff --git a/libraries/script-engine/src/AssetScriptingInterface.h b/libraries/script-engine/src/AssetScriptingInterface.h index c01550e1fc..5cb1136b74 100644 --- a/libraries/script-engine/src/AssetScriptingInterface.h +++ b/libraries/script-engine/src/AssetScriptingInterface.h @@ -25,7 +25,7 @@ #include /**jsdoc - * The Assets API allows you to communicate with the Asset Browser + * The Assets API allows you to communicate with the Asset Browser. * @namespace Assets */ class AssetScriptingInterface : public BaseAssetScriptingInterface, QScriptable { @@ -41,14 +41,12 @@ public: * @param data {string} content to upload * @param callback {Assets~uploadDataCallback} called when upload is complete */ - /**jsdoc * Called when uploadData is complete * @callback Assets~uploadDataCallback * @param {string} url * @param {string} hash */ - Q_INVOKABLE void uploadData(QString data, QScriptValue callback); /**jsdoc @@ -57,13 +55,11 @@ public: * @param url {string} URL of asset to download, must be ATP scheme URL. * @param callback {Assets~downloadDataCallback} */ - /**jsdoc * Called when downloadData is complete * @callback Assets~downloadDataCallback * @param data {string} content that was downloaded */ - Q_INVOKABLE void downloadData(QString url, QScriptValue downloadComplete); /**jsdoc @@ -73,13 +69,11 @@ public: * @param hash {string} * @param callback {Assets~setMappingCallback} */ - /**jsdoc * Called when setMapping is complete * @callback Assets~setMappingCallback * @param {string} error */ - Q_INVOKABLE void setMapping(QString path, QString hash, QScriptValue callback); /**jsdoc @@ -88,21 +82,12 @@ public: * @param path {string} * @param callback {Assets~getMappingCallback} */ - /**jsdoc * Called when getMapping is complete. * @callback Assets~getMappingCallback * @param assetID {string} hash value if found, else an empty string * @param error {string} error description if the path could not be resolved; otherwise a null value. */ - - /**jsdoc - * Called when getMapping is complete. - * @callback Assets~getMappingCallback - * @param assetID {string} hash value if found, else an empty string - * @param error {string} error description if the path could not be resolved; otherwise a null value. - */ - Q_INVOKABLE void getMapping(QString path, QScriptValue callback); /**jsdoc @@ -111,7 +96,10 @@ public: * @param enabled {boolean} * @param callback {} */ - + /**jsdoc + * Called when setBakingEnabled is complete. + * @callback Assets~setBakingEnabledCallback + */ Q_INVOKABLE void setBakingEnabled(QString path, bool enabled, QScriptValue callback); #if (PR_BUILD || DEV_BUILD) @@ -122,13 +110,14 @@ public: * Request Asset data from the ATP Server * @function Assets.getAsset * @param {URL|Assets.GetOptions} options An atp: style URL, hash, or relative mapped path; or an {@link Assets.GetOptions} object with request parameters - * @param {Assets~getAssetCallback} scope[callback] A scope callback function to receive (error, results) values + * @param {Assets~getAssetCallback} scope A scope callback function to receive (error, results) values + * @param {function} [callback=undefined] */ /**jsdoc * A set of properties that can be passed to {@link Assets.getAsset}. * @typedef {Object} Assets.GetOptions - * @property {URL} [url] an "atp:" style URL, hash, or relative mapped path to fetch + * @property {string} [url] an "atp:" style URL, hash, or relative mapped path to fetch * @property {string} [responseType=text] the desired reponse type (text | arraybuffer | json) * @property {boolean} [decompress=false] whether to attempt gunzip decompression on the fetched data * See: {@link Assets.putAsset} and its .compress=true option @@ -144,7 +133,7 @@ public: /**jsdoc * Result value returned by {@link Assets.getAsset}. * @typedef {Object} Assets~getAssetResult - * @property {url} [url] the resolved "atp:" style URL for the fetched asset + * @property {string} [url] the resolved "atp:" style URL for the fetched asset * @property {string} [hash] the resolved hash for the fetched asset * @property {string|ArrayBuffer|Object} [response] response data (possibly converted per .responseType value) * @property {string} [responseType] response type (text | arraybuffer | json) @@ -160,6 +149,7 @@ public: * @function Assets.putAsset * @param {Assets.PutOptions} options A PutOptions object with upload parameters * @param {Assets~putAssetCallback} scope[callback] A scoped callback function invoked with (error, results) + * @param {function} [callback=undefined] */ /**jsdoc @@ -180,7 +170,7 @@ public: /**jsdoc * Result value returned by {@link Assets.putAsset}. * @typedef {Object} Assets~putAssetResult - * @property {url} [url] the resolved "atp:" style URL for the uploaded asset (based on .path if specified, otherwise on the resulting ATP hash) + * @property {string} [url] the resolved "atp:" style URL for the uploaded asset (based on .path if specified, otherwise on the resulting ATP hash) * @property {string} [path] the uploaded asset's resulting ATP path (or undefined if no path mapping was assigned) * @property {string} [hash] the uploaded asset's resulting ATP hash * @property {boolean} [compressed] flag indicating whether the data was compressed before upload @@ -243,7 +233,7 @@ public: /**jsdoc * @function Assets.getCacheStatus * @property {} scope - * @property {} [callback = ""] + * @property {} [callback=undefined] */ Q_INVOKABLE void getCacheStatus(QScriptValue scope, QScriptValue callback = QScriptValue()) { @@ -254,7 +244,7 @@ public: * @function Assets.queryCacheMeta * @property {} options * @property {} scope - * @property {} [callback = ""] + * @property {} [callback=undefined] */ Q_INVOKABLE void queryCacheMeta(QScriptValue options, QScriptValue scope, QScriptValue callback = QScriptValue()); @@ -263,7 +253,7 @@ public: * @function Assets.loadFromCache * @property {} options * @property {} scope - * @property {} [callback = ""] + * @property {} [callback=undefined] */ Q_INVOKABLE void loadFromCache(QScriptValue options, QScriptValue scope, QScriptValue callback = QScriptValue()); @@ -272,7 +262,7 @@ public: * @function Assets.saveToCache * @property {} options * @property {} scope - * @property {} [callback = ""] + * @property {} [callback=undefined] */ Q_INVOKABLE void saveToCache(QScriptValue options, QScriptValue scope, QScriptValue callback = QScriptValue()); @@ -283,7 +273,7 @@ public: * @property {} data * @property {} metadata * @property {} scope - * @property {} [callback = ""] + * @property {} [callback=undefined] */ Q_INVOKABLE void saveToCache(const QUrl& url, const QByteArray& data, const QVariantMap& metadata, diff --git a/libraries/script-engine/src/AudioScriptingInterface.h b/libraries/script-engine/src/AudioScriptingInterface.h index be2b4ebc8c..36fe29243d 100644 --- a/libraries/script-engine/src/AudioScriptingInterface.h +++ b/libraries/script-engine/src/AudioScriptingInterface.h @@ -31,21 +31,88 @@ protected: AudioScriptingInterface() {} // these methods are protected to stop C++ callers from calling, but invokable from script + + /**jsdoc + * @function Audio.playSound + * @param {} sound + * @param {} [injectorOptions=null] + * @returns {object} + */ Q_INVOKABLE ScriptAudioInjector* playSound(SharedSoundPointer sound, const AudioInjectorOptions& injectorOptions = AudioInjectorOptions()); + + /**jsdoc + * @function Audio.playSystemSound + * @param {} sound + * @param {} position + * @returns {object} + */ // FIXME: there is no way to play a positionless sound Q_INVOKABLE ScriptAudioInjector* playSystemSound(SharedSoundPointer sound, const QVector3D& position); + /**jsdoc + * @function Audio.setStereoInput + * @param {boolean} stereo + * @returns {boolean} + */ Q_INVOKABLE bool setStereoInput(bool stereo); + + /**jsdoc + * @function Audio.isStereoInput + * @returns {boolean} + */ Q_INVOKABLE bool isStereoInput(); signals: - void mutedByMixer(); /// the client has been muted by the mixer - void environmentMuted(); /// the entire environment has been muted by the mixer - void receivedFirstPacket(); /// the client has received its first packet from the audio mixer - void disconnected(); /// the client has been disconnected from the audio mixer - void noiseGateOpened(); /// the noise gate has opened - void noiseGateClosed(); /// the noise gate has closed - void inputReceived(const QByteArray& inputSamples); /// a frame of mic input audio has been received and processed + + /**jsdoc + * The client has been muted by the mixer. + * @function Audio.mutedByMixer + * @returns {Signal} + */ + void mutedByMixer(); + + /**jsdoc + * The entire environment has been muted by the mixer. + * @function Audio.environmentMuted + * @returns {Signal} + */ + void environmentMuted(); + + /**jsdoc + * The client has received its first packet from the audio mixer. + * @function Audio.receivedFirstPacket + * @returns {Signal} + */ + void receivedFirstPacket(); + + /**jsdoc + * The client has been disconnected from the audio mixer. + * @function Audio.disconnected + * @returns {Signal} + */ + void disconnected(); + + /**jsdoc + * The noise gate has opened. + * @function Audio.noiseGateOpened + * @returns {Signal} + */ + void noiseGateOpened(); + + /**jsdoc + * The noise gate has closed. + * @function Audio.noiseGateClosed + * @returns {Signal} + */ + void noiseGateClosed(); + + /**jsdoc + * A frame of mic input audio has been received and processed. + * @function Audio.inputReceived + * @param {} inputSamples + * @returns {Signal} + */ + void inputReceived(const QByteArray& inputSamples); private: AbstractAudioInterface* _localAudioInterface { nullptr }; diff --git a/libraries/trackers/src/trackers/FaceTracker.h b/libraries/trackers/src/trackers/FaceTracker.h index 4224bb6633..47fbf72616 100644 --- a/libraries/trackers/src/trackers/FaceTracker.h +++ b/libraries/trackers/src/trackers/FaceTracker.h @@ -64,29 +64,22 @@ signals: * @function FaceTracker.muteToggled * @returns {Signal} */ - void muteToggled(); public slots: - /**jsdoc - * @function FaceTracker.setEnabled - * @param {boolean} enabled - */ - + // No JSDoc here because it's overridden in DdeFaceTracker. virtual void setEnabled(bool enabled) = 0; /**jsdoc * @function FaceTracker.toggleMute */ - void toggleMute(); /**jsdoc * @function FaceTracker.getMuted * @returns {boolean} */ - bool getMuted() { return _isMuted; } protected: diff --git a/tools/jsdoc/plugins/hifi.js b/tools/jsdoc/plugins/hifi.js index 07644850ee..5206edb0e2 100644 --- a/tools/jsdoc/plugins/hifi.js +++ b/tools/jsdoc/plugins/hifi.js @@ -47,6 +47,7 @@ exports.handlers = { '../../libraries/script-engine/src', '../../libraries/shared/src', '../../libraries/shared/src/shared', + '../../libraries/trackers/src/trackers', '../../libraries/ui/src/ui', '../../plugins/oculus/src', '../../plugins/openvr/src',