AudioTrackPrivateAVFObjC.h [plain text]
#ifndef AudioTrackPrivateAVFObjC_h
#define AudioTrackPrivateAVFObjC_h
#if ENABLE(VIDEO)
#include "AudioTrackPrivateAVF.h"
OBJC_CLASS AVAssetTrack;
OBJC_CLASS AVPlayerItem;
OBJC_CLASS AVPlayerItemTrack;
OBJC_CLASS AVMediaSelectionGroup;
OBJC_CLASS AVMediaSelectionOption;
namespace WebCore {
class AVTrackPrivateAVFObjCImpl;
class MediaSelectionOptionAVFObjC;
class AudioTrackPrivateAVFObjC : public AudioTrackPrivateAVF {
WTF_MAKE_NONCOPYABLE(AudioTrackPrivateAVFObjC)
public:
static RefPtr<AudioTrackPrivateAVFObjC> create(AVPlayerItemTrack* track)
{
return adoptRef(new AudioTrackPrivateAVFObjC(track));
}
static RefPtr<AudioTrackPrivateAVFObjC> create(AVAssetTrack* track)
{
return adoptRef(new AudioTrackPrivateAVFObjC(track));
}
static RefPtr<AudioTrackPrivateAVFObjC> create(MediaSelectionOptionAVFObjC& option)
{
return adoptRef(new AudioTrackPrivateAVFObjC(option));
}
virtual void setEnabled(bool);
void setPlayerItemTrack(AVPlayerItemTrack*);
AVPlayerItemTrack* playerItemTrack();
void setAssetTrack(AVAssetTrack*);
AVAssetTrack* assetTrack();
void setMediaSelectionOption(MediaSelectionOptionAVFObjC&);
MediaSelectionOptionAVFObjC* mediaSelectionOption();
private:
friend class MediaPlayerPrivateAVFoundationObjC;
AudioTrackPrivateAVFObjC(AVPlayerItemTrack*);
AudioTrackPrivateAVFObjC(AVAssetTrack*);
AudioTrackPrivateAVFObjC(MediaSelectionOptionAVFObjC&);
void resetPropertiesFromTrack();
std::unique_ptr<AVTrackPrivateAVFObjCImpl> m_impl;
};
}
#endif // ENABLE(VIDEO)
#endif // AudioTrackPrivateAVFObjC_h