Adding ViroKit. Needs AWSCore :(

This commit is contained in:
John Lyon-Smith
2018-03-27 17:46:15 -07:00
parent 2ab15e7dc1
commit 02e06dface
844 changed files with 86921 additions and 21 deletions

View File

@@ -0,0 +1,79 @@
//
// VROSound.h
// ViroRenderer
//
// Created by Raj Advani on 3/23/16.
// Copyright © 2016 Viro Media. All rights reserved.
//
#ifndef VROSound_h
#define VROSound_h
#include <memory>
#include <stdio.h>
#include <string>
#include "VROSoundDelegateInternal.h"
#include "VROQuaternion.h"
#include "VROModelIOUtil.h"
enum class VROSoundType {
Normal,
Spatial,
SoundField,
};
enum class VROSoundRolloffModel {
Linear,
Logarithmic,
None,
};
class VROSound {
public:
VROSound() : _volume(1), _muted(false), _loop(false) {};
virtual ~VROSound() {}
virtual void play() = 0;
virtual void pause() = 0;
virtual void setVolume(float volume) = 0;
virtual void setMuted(bool muted) = 0;
virtual void setLoop(bool loop) = 0;
virtual void seekToTime(float seconds) = 0;
virtual void setDelegate(std::shared_ptr<VROSoundDelegateInternal> delegate) {
_delegate = delegate;
}
virtual VROSoundType getType() {
return _type;
}
// Used by SoundField
virtual void setRotation(VROQuaternion rotation) = 0;
// Used by SpatialSound
virtual void setPosition(VROVector3f position) = 0;
virtual VROVector3f getPosition() = 0;
virtual void setTransformedPosition(VROVector3f transformedPosition) = 0;
// Used by SpatialSound
virtual void setDistanceRolloffModel(VROSoundRolloffModel model, float minDistance,
float maxDistance) = 0;
protected:
std::shared_ptr<VROSoundDelegateInternal> _delegate;
float _volume;
bool _muted;
bool _loop;
VROSoundType _type;
VROQuaternion _rotation;
VROVector3f _position;
VROVector3f _transformedPosition;
VROSoundRolloffModel _rolloffModel;
float _rolloffMinDistance;
float _rolloffMaxDistance;
};
#endif /* VROSound_h */