TvRockOnTVTestでUHFとCATV混在指定が出来るように改造

後日、本家のTvRockOnTVTest(修正版8)で対応されたのを確認したので、そっちを使用することで改造とかせずに解決。
明石ケーブルテレビでは以下のように地デジの再配信がUHF帯とCATV帯にまたがって行われているので、UHF13〜62とCATV13〜63を意図的に混合して指定できないTvRockでは全てのチャンネルを設定できない。

UHF 13 近畿広域1     021 NHK教育・大阪
UHF 14 近畿5         101 読売テレビ
UHF 15 近畿広域3     061 ABCテレビ
CATV29 ACTV135 111 ACTV135
CATV32 兵庫0         011 NHK総合・神戸
CATV33 兵庫0         031 サンテレビ
CATV43 大阪6         071 テレビ大阪
CATV62 近畿4         081 関西テレビ
CATV63 近畿2         041 MBS毎日放送

そこで、TvRockからTVTestを呼び出す際に利用するプラグインTvRockOnTVTest (修正版)を改造して、地デジでチャンネル番号が63〜113だった場合、CATV13〜63として扱うようにしてみた。以下、その手順。
でも、何かうまく動作してないっぽいので以下削除。
TvRockOnTVTest (修正版)に含まれるSources.zipを解凍してTvRockOnTVTest.cppの「if (m_TerrestrialIndex>=0 && dwChannel<=63) {」行(SetChannel関数内)の手前に以下を追加。

DWORD dwOffset;

dwOffset=0;
if(m_TerrestrialIndex>=0) {
    if(dwChannel>=63) {
        m_TerrestrialIndex=1;
        dwOffset=50;
    }
    else {
        m_TerrestrialIndex=0;
    }
}

あとは以下のように「dwChannel」を「(dwChannel-dwOffset)」に書き換え。(すべてSetChannel関数内)

if (m_TerrestrialIndex>=0 && dwChannel<=63) {
                ↓
if (m_TerrestrialIndex>=0 && (dwChannel-dwOffset)<=63) {

if (ChannelInfo.Channel==dwChannel-13
                ↓
if (ChannelInfo.Channel==(dwChannel-dwOffset)-13

if (ChannelInfo.Channel==dwChannel-13) {
                ↓
if (ChannelInfo.Channel==(dwChannel-dwOffset)-13) {

Visual C++ 2008 Express Editionをインストール。TvRockOnTVTest.vcprojを開いて、ビルド→構成マネージャでアクティブソリューション構成をDebugからReleaseに変更して閉じる、ビルド→TvRockOnTVTest のビルド。オリジナルはVisual C++ 2005でビルドされているとのことだったが、特に設定変更やソースを書き換えることもなくビルドできた模様。
肝心のTvRockOnTVTest.tvtpはReleaseフォルダに出来上がっている。ちなみに当然ながらTvRockOnTVTest.iniで意図的にTerrestrialIndexを指定しても意味は無い(チャンネル番号でTerrestrialIndexの値が変わるので)。
ドキュメントに改変・再配布など特に制限は設けませんとあったので、出来上がったバイナリのTvRockOnTVTest.tvtpと改変したソースのTvRockOnTVTest.cppだけをzip圧縮したものを置いておく。

かなりいいかげんな方法でソースを書き換えたみたけど、ちゃんと動いてるっぽいのでまあいいだろう。さてと、今晩帰ったら自宅で本番環境組んで動作確認してみるか。
参考:窓の杜 - 【NEWS】MS、「Visual Studio 2008 Express Edition」の日本語正式版を無償公開