f53df7da64
Code submissions have continually suffered from formatting inconsistencies that constantly have to be addressed. Using clang-format simplifies this by making code formatting more consistent, and allows automation of the code formatting so that maintainers can focus more on the code itself instead of code formatting.
48 lines
984 B
C++
48 lines
984 B
C++
#pragma once
|
|
|
|
#include "captions-handler.hpp"
|
|
#include "captions-mssapi-stream.hpp"
|
|
#include <util/windows/HRError.hpp>
|
|
#include <util/windows/ComPtr.hpp>
|
|
#include <util/windows/WinHandle.hpp>
|
|
#include <util/windows/CoTaskMemPtr.hpp>
|
|
#include <util/threading.h>
|
|
#include <util/platform.h>
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma warning(push)
|
|
#pragma warning(disable : 4996)
|
|
#endif
|
|
|
|
#include <sphelper.h>
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma warning(pop)
|
|
#endif
|
|
|
|
#include <obs.hpp>
|
|
|
|
#include <thread>
|
|
|
|
class mssapi_captions : public captions_handler {
|
|
friend class CaptionStream;
|
|
|
|
ComPtr<CaptionStream> audio;
|
|
ComPtr<ISpObjectToken> token;
|
|
ComPtr<ISpRecoGrammar> grammar;
|
|
ComPtr<ISpRecognizer> recognizer;
|
|
ComPtr<ISpRecoContext> context;
|
|
|
|
HANDLE notify;
|
|
WinHandle stop;
|
|
std::thread t;
|
|
bool started = false;
|
|
|
|
void main_thread();
|
|
|
|
public:
|
|
mssapi_captions(captions_cb callback, const std::string &lang);
|
|
virtual ~mssapi_captions();
|
|
virtual void pcm_data(const void *data, size_t frames) override;
|
|
};
|