yum-archive/TaSTT-Whisper
High-performance GPGPU inference of OpenAI's Whisper automatic speech recognition (ASR) model
git clone https://git.yummers.dev/yum-archive/TaSTT-Whisper
670f889
master
1#pragma once 2#include "AppState.h" 3#include "Utils/WTL/atlddx.h" 4#include "Utils/miscUtils.h" 5 6class LoadModelDlg : 7public CDialogImpl < LoadModelDlg > , 8public CWinDataExchange < LoadModelDlg > , 9public iThreadPoolCallback 10{ 11AppState & appState ; 12public : 13static constexpr UINT IDD = IDD_OPEN_MODEL ; 14static constexpr UINT WM_CALLBACK_STATUS = WM_APP + 1 ; 15 16LoadModelDlg ( AppState & app ) : appState ( app ) { } 17 18HRESULT show (); 19 20BEGIN_MSG_MAP ( LoadModelDlg ) 21MESSAGE_HANDLER ( WM_INITDIALOG , OnInitDialog ) 22ON_BUTTON_CLICK ( IDC_CONSOLE , cbConsole . click ) 23COMMAND_ID_HANDLER ( IDCANCEL , OnCommand ) 24COMMAND_ID_HANDLER ( IDOK , OnOk ) 25COMMAND_ID_HANDLER ( IDC_BROWSE , OnBrowse ) 26MESSAGE_HANDLER ( WM_CALLBACK_STATUS , OnCallbackStatus ) 27NOTIFY_ID_HANDLER ( IDC_HYPERLINKS , OnHyperlink ) 28ON_BUTTON_CLICK ( IDC_MODEL_ADV , onModelAdvanced ) 29END_MSG_MAP () 30 31BEGIN_DDX_MAP ( LoadModelDlg ) 32DDX_CONTROL_HANDLE ( IDC_PATH , modelPath ) 33DDX_CONTROL_HANDLE ( IDC_MODEL_TYPE , cbModelType ) 34DDX_CONTROL_HANDLE ( IDC_PROGRESS , progressBar ); 35END_DDX_MAP () 3637 private : 38std :: vector < HWND > editorsWindows ; 39std :: vector < HWND > pendingWindows ; 40void setPending ( bool nowPending ); 41 42LRESULT OnInitDialog ( UINT nMessage , WPARAM wParam , LPARAM lParam , BOOL & bHandled ); 43LRESULT OnCallbackStatus ( UINT , WPARAM wParam , LPARAM , BOOL & bHandled ); 44 45LRESULT OnCommand ( UINT , INT nIdentifier , HWND , BOOL & bHandled ) 46{ 47ATLVERIFY ( EndDialog ( nIdentifier ) ); 48return 0 ; 49} 50LRESULT OnBrowse ( UINT , INT , HWND , BOOL & bHandled ); 51LRESULT OnOk ( UINT , INT , HWND , BOOL & bHandled ); 52 53ConsoleCheckbox cbConsole ; 54CComboBox cbModelType ; 55CEdit modelPath ; 56CProgressBarCtrl progressBar ; 57 58LRESULT validationError ( LPCTSTR message ); 59LRESULT validationError ( LPCTSTR message , HRESULT hr ); 60 61ThreadPoolWork work ; 62CString path ; 63Whisper :: eModelImplementation impl ; 64CString loadError ; 65void __stdcall poolCallback () noexcept override final ; 66 67LRESULT OnHyperlink ( int idCtrl , LPNMHDR pnmh , BOOL & bHandled ); 68 69static HRESULT __stdcall progressCallback ( double val , void * pv ) noexcept ; 70 71void onModelAdvanced (); 72};