[Pre-release] xtne6f氏 / TvtPlay-work-190619 をVisualStudio2019(vs2019)でビルドするの巻

TvtPlay

—-
類似の新しい投稿があります

[2020.03.05] (1/2)TvtPlay/TvtAudioStretchFilter/BonDriver_Pipeを/MD/MTビルドしてみる。VisualStudio2019(vs2019)を使ってx64びるどだ!オー!(ソースの取得編)
お外が荒れてれているのでビルドしてメモする。確定申告の依頼してきたらどうも熱っぽくてくらくらする。 おにゅーのコロナウィルススさん地雷踏んだだろうか。 それならそれでうちのサイトらしいネタになるのだが また不謹慎だって怒られそう、「また」か...

—-

work-190619 が Releaseってことで、TvtPlayのビルドなんて久しぶりなんであたふたしてみる
正式対応待ちましょう!
TvtPlay」は修正が必要な感じ。「BonDriver_Pipe」 はそのままビルドできるけど、「TvtAudioStretchFilter」は、事前に「BaseClasses」と「SoundTouch(要パッチ)」を再ビルドしておきましょ!
※ 最近 Windows10 May2019 にして VisualStusio2019 にした人は全部ビルドしなおした方がすんなり通ることもあると思います!( ゚o゚)

xtne6f氏 / TvtPlay-work-190619

GitHub - xtne6f/TvtPlay: TVTest plugin
TVTest plugin. Contribute to xtne6f/TvtPlay development by creating an account on GitHub.

ColorScheme.h の include に”string” を追加。これでvs2019でもビルドできる。

#ifndef COLOR_SCHEME_H
#define COLOR_SCHEME_H

#include "string"
#include "Theme.h"


class CColorScheme


スクリーンショットはこんな感じ?「<>」でも「””」でも行けますので、ビルドが通る方で。
※ソースコードコピペできるように「””」に修正しました


前にも書いた、省エネスリープ移行への居眠り対策(^◇^;

[TVTest + TvtPlay] 朝?起きるとモニタが輝いていた。TvtPlay 再生の終了時はサスペンド(モニターオフ・スリープ)させたい。

おっさんには重要。TvtPlay.cpp の2431行付近 WM_QUERY_CLOSE_NEXT に 前回のソースで修正する。
・ファイル再生終了後、フルスクリーンをやめて、デスクトップにフォーカスを移すだけの処理を追加

    case WM_QUERY_CLOSE_NEXT:
		/*
		pThis->Close();
		if (pThis->m_playlist.Next(pThis->IsAllRepeat())) pThis->OpenCurrent();
		return 0;
		*/
		pThis->Close();
		if (pThis->m_playlist.Next(pThis->IsAllRepeat())) {
			pThis->OpenCurrent();
		}
		else {
			// 再生終了時の処理
			/* フルスクリーンをやめてみる→サスペンド無効のままでモニターオフにもならない */
			if (pThis->m_pApp->GetFullscreen()) {
				pThis->m_pApp->SetFullscreen(false);
			}
			/* アクティブウィンドウのフォーカスをデスクトップに移す(アクティブ時のみサスペンド抑制にチェックを入れるとこで、終了時に省電力設定が有効になる) */
			HWND dHwnd = GetDesktopWindow(); // デスクトップのハンドル取得
			SetForegroundWindow(dHwnd); // デスクトップにフォーカスを移す
		}
		/*
		MESSAGE_GETFULLSCREEN, // 全画面表示の状態を取得
		MESSAGE_SETFULLSCREEN, // 全画面表示の状態を設定
		MESSAGE_GETSTANDBY, // 待機状態であるか取得
		MESSAGE_SETSTANDBY, // 待機状態を設定
		bool GetFullscreen()
		bool SetFullscreen(bool fFullscreen)
		bool GetStandby()
		bool SetStandby(bool fStandby)
		// 常に最前面表示の状態を設定する
		bool SetAlwaysOnTop(bool fAlwaysOnTop)
		*/
        return 0;
    case WM_QUERY_SEEK_BGN:

—-上のコードブロックが選択できないときに追加メモ・・・(._.) φ メモメモ

case WM_QUERY_CLOSE_NEXT:
/*
pThis->Close();
if (pThis->m_playlist.Next(pThis->IsAllRepeat())) pThis->OpenCurrent();
return 0;
*/
pThis->Close();
if (pThis->m_playlist.Next(pThis->IsAllRepeat())) {
pThis->OpenCurrent();
}
else {
// 再生終了時の処理
/* フルスクリーンをやめてみる→サスペンド無効のままでモニターオフにもならない */
if (pThis->m_pApp->GetFullscreen()) {
pThis->m_pApp->SetFullscreen(false);
}
/* アクティブウィンドウのフォーカスをデスクトップに移す(アクティブ時のみサスペンド抑制にチェックを入れるとこで、終了時に省電力設定が有効になる) */
HWND dHwnd = GetDesktopWindow(); // デスクトップのハンドル取得
SetForegroundWindow(dHwnd); // デスクトップにフォーカスを移す
}
/*
MESSAGE_GETFULLSCREEN, // 全画面表示の状態を取得
MESSAGE_SETFULLSCREEN, // 全画面表示の状態を設定
MESSAGE_GETSTANDBY, // 待機状態であるか取得
MESSAGE_SETSTANDBY, // 待機状態を設定
bool GetFullscreen()
bool SetFullscreen(bool fFullscreen)
bool GetStandby()
bool SetStandby(bool fStandby)
// 常に最前面表示の状態を設定する
bool SetAlwaysOnTop(bool fAlwaysOnTop)
*/
return 0;
case WM_QUERY_SEEK_BGN:
pThis->SeekToBegin();
return 0;

ソースのスクショはこんな感じ。

変更前


変更後
コメントアウトしている部分は個人的なメモでゴミなのでいらないと思います。



修正した2ファイルはこれです。スクショは後で撮ったりしているのでタイムスタンプは気にしないで(^◇^;


最適化はここ三日くらいデバッグしてますけど、コンパイルに影響はなさそう。
先月(2019.05)のVS2017/VS2019コンパイラのアップデートで影響なくなっているといいかなとおもいつつ。不安が残りますな。


うちのマルチスレッドの設定は /MT なんで、変更する。忘れると大変。
個人でSpectre対策は必要ないと思いますが、、、回避コードで処理重くなりますし・・・まぁAVXと合わせて体感できる影響もないので、うちはお試しテストしてます。
エラー出た時のデバッグの手間が2倍3倍と大変なだけなんで…

なるべくオリジナルソースでいきませう<m(__)m>