94 lines
1.6 KiB
C++
Executable File
94 lines
1.6 KiB
C++
Executable File
|
|
|
|
|
|
#pragma once
|
|
|
|
#include <AudioVideoManagement/ava_types.h>
|
|
#include <QString>
|
|
#include <memory>
|
|
#include <functional>
|
|
|
|
namespace OperatorManagement
|
|
{
|
|
namespace Interface
|
|
{
|
|
class Dtc;
|
|
}
|
|
}
|
|
|
|
|
|
namespace AudioVideoManagement
|
|
{
|
|
|
|
namespace Interface
|
|
{
|
|
class Dtc;
|
|
}
|
|
|
|
class AvaSession;
|
|
class AvaState;
|
|
class StreamNameMapping;
|
|
class AvsMenus;
|
|
class VdSession;
|
|
class AvmExerciseContextHandle;
|
|
class AvsApp;
|
|
class PlaybackApp;
|
|
|
|
|
|
|
|
class AvsSessionContext
|
|
{
|
|
public:
|
|
|
|
|
|
struct Composite;
|
|
|
|
AvsSessionContext();
|
|
~AvsSessionContext();
|
|
|
|
|
|
|
|
bool canAcquire(int exerciseId) const;
|
|
|
|
|
|
|
|
|
|
Composite *acquire(int exerciseId, int operatorId, const QString &langCode, AvaGuiStyle, const AvmExerciseContextHandle &exerciseContextHandle);
|
|
void release(Composite *composite);
|
|
|
|
|
|
private:
|
|
std::unique_ptr<Composite> m_composite;
|
|
int m_refCount{0};
|
|
};
|
|
|
|
|
|
|
|
|
|
class AvsSessionContextHandle
|
|
{
|
|
public:
|
|
AvsSessionContextHandle() = default;
|
|
AvsSessionContextHandle(AvsSessionContext *context, int exerciseId, int operatorId, const QString &langCode, AvaGuiStyle, const AvmExerciseContextHandle &exerciseContextHandle);
|
|
|
|
operator bool() const { return m_composite.get(); }
|
|
|
|
AvaSession *avaSession() const;
|
|
AvaState *avaState() const;
|
|
AvsMenus *menus() const;
|
|
|
|
VdSession *vdSession() const;
|
|
|
|
AvsApp *liveVideoApp() const;
|
|
PlaybackApp *videoPlaybackApp() const;
|
|
PlaybackApp *audioPlaybackApp() const;
|
|
PlaybackApp *videoPresentationApp() const;
|
|
PlaybackApp *audioPresentationApp() const;
|
|
|
|
private:
|
|
using Releaser = std::function<void (AvsSessionContext::Composite *)>;
|
|
std::unique_ptr<AvsSessionContext::Composite, Releaser> m_composite;
|
|
};
|
|
|
|
}
|