Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/CVideoMode.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Sun Aug 15 01:53:13 2010 UTC (13 years, 9 months ago) by okadu
File MIME type: text/x-c++src
File size: 5674 byte(s)


1 #include "stdafx.h"
2 #include "Capture.h"
3 #include "CSkinPlugin.h"
4 #include "CVideoMode.h"
5 #include "CConfigMode.h"
6
7 // 内部定数
8 const int WW = 512, WH = 384; // 窓サイズ
9
10 // 内部グローバル
11 char *g_VideoStateString[2] = {lang(Paused), lang(Recording)};
12
13 /*
14 * コンストラクタ
15 */
16 CVideoMode::CVideoMode(){
17 int wide = WW-TILE_UNIT*2, win = wide-TILE_UNIT*2;
18 m_VideoWindow.Init((g_DispWidth-WW)/2-TILE_UNIT, (g_DispHeight-WH)/2,
19 WW, WH, lang(Video), &m_Interface, true);
20
21 m_PictureGroup.Init(TILE_UNIT, TILE_UNIT*2,
22 wide, TILE_UNIT*5, lang(CaptureScreenShot), &m_VideoWindow);
23 m_PictureExpr.Init(TILE_UNIT, TILE_UNIT+TILE_QUAD, wide-TILE_UNIT*2, TILE_UNIT,
24 FlashIn("%s F11: %s / F12: %s", lang(Kome), lang(ChangeCapMode),
25 lang(CaptureScreenShot)), &m_PictureGroup, 0, 1);
26 m_PictureInfo.Init(TILE_UNIT, TILE_UNIT*2+TILE_QUAD,
27 wide-TILE_UNIT*2, TILE_UNIT, "", &m_PictureGroup, 0, 1);
28 int i, trw = WW-TILE_UNIT*12;
29 m_QualityLabel.Init(TILE_UNIT, TILE_UNIT*3+TILE_QUAD, TILE_UNIT*8, TILE_UNIT,
30 lang(PictureQuality), &m_PictureGroup, 0, 1);
31 string qtystr[4] = {lang(Quality1), lang(Quality2), lang(Quality4), lang(Quality8)};
32 for(i = 0; i<4; i++) m_Quality[i].Init(
33 TILE_UNIT*9+trw*i/4, TILE_UNIT*3+TILE_QUAD,
34 trw*(i+1)/4-trw*i/4-TILE_HALF, TILE_UNIT,
35 (char *)qtystr[i].c_str(), &m_PictureGroup, i ? &m_Quality[i-1] : NULL);
36
37 m_VideoGroup.Init(TILE_UNIT, TILE_UNIT*8,
38 wide, TILE_UNIT*9, lang(RecordVideo), &m_VideoWindow);
39 m_VideoExpr.Init(TILE_UNIT, TILE_UNIT+TILE_QUAD, wide-TILE_UNIT*2, TILE_UNIT,
40 FlashIn("%s Ctrl + F12: %s / Ctrl + Shift + F12: %s", lang(Kome),
41 lang(BeginRecording), lang(StopRecording)), &m_VideoGroup, 0, 1);
42 m_VideoInfo.Init(TILE_UNIT, TILE_UNIT*2+TILE_QUAD,
43 wide-TILE_UNIT*2, TILE_UNIT, "", &m_VideoGroup, 0, 1);
44 m_StartButton.Init(TILE_UNIT, TILE_UNIT*3+TILE_HALF+TILE_QUAD,
45 TILE_UNIT*5, TILE_UNIT, lang(BeginRecording), &m_VideoGroup);
46 m_StartButton.SetSound(false);
47 m_StopButton.Init(TILE_UNIT*6+TILE_HALF, TILE_UNIT*3+TILE_HALF+TILE_QUAD,
48 TILE_UNIT*5, TILE_UNIT, lang(StopRecording), &m_VideoGroup);
49 m_StopButton.SetSound(false);
50 m_RewindButton.Init(TILE_UNIT*11+TILE_HALF*2, TILE_UNIT*3+TILE_HALF+TILE_QUAD,
51 TILE_UNIT*5, TILE_UNIT, lang(Rewind), &m_VideoGroup);
52 m_ForwardButton.Init(TILE_UNIT*16+TILE_HALF*3, TILE_UNIT*3+TILE_HALF+TILE_QUAD,
53 TILE_UNIT*5, TILE_UNIT, lang(Forward), &m_VideoGroup);
54 int tw = wide-TILE_UNIT*2+TILE_HALF;
55 m_ExceptPause.Init(TILE_UNIT, TILE_UNIT*5+TILE_QUAD,
56 tw/2-TILE_HALF, TILE_UNIT, lang(DontRecordWhilePaused), &m_VideoGroup);
57 m_OnlyPhotoMode.Init(TILE_UNIT+tw/2, TILE_UNIT*5+TILE_QUAD,
58 tw-tw/2-TILE_HALF, TILE_UNIT, lang(RecordOnlyInRecordingMode), &m_VideoGroup);
59 m_ExceptPause.SetCheck(1);
60 m_OnlyPhotoMode.SetCheck(1);
61 m_DownsampleLabel.Init(TILE_UNIT, TILE_UNIT*6+TILE_QUAD, TILE_UNIT*8, TILE_UNIT,
62 "Downsample", &m_VideoGroup, 0, 1);
63 string dnsplstr[3] = {"None", "1/2", "1/4"};
64 for(i = 0; i<3; i++) m_Downsample[i].Init(
65 TILE_UNIT*9+trw*i/3, TILE_UNIT*6+TILE_QUAD,
66 trw*(i+1)/3-trw*i/3-TILE_HALF, TILE_UNIT,
67 (char *)dnsplstr[i].c_str(), &m_VideoGroup, i ? &m_Downsample[i-1] : NULL);
68 m_FormatLabel.Init(TILE_UNIT, TILE_UNIT*7+TILE_QUAD, TILE_UNIT*8, TILE_UNIT,
69 "VideoFormat", &m_VideoGroup, 0, 1);
70 string vfmtstr[3] = {"BMP", "AVI"};
71 for(i = 0; i<2; i++) m_Format[i].Init(
72 TILE_UNIT*9+trw*i/2, TILE_UNIT*7+TILE_QUAD,
73 trw*(i+1)/2-trw*i/2-TILE_HALF, TILE_UNIT,
74 (char *)vfmtstr[i].c_str(), &m_VideoGroup, i ? &m_Format[i-1] : NULL);
75 // m_VideoSound.Init(TILE_UNIT, TILE_UNIT*8+TILE_QUAD,
76 // tw/2-TILE_HALF, TILE_UNIT, "VideoSound (AVI only)", &m_VideoGroup);
77 // m_VideoSound.SetCheck(1);
78 }
79
80 /*
81 * 設定読込
82 */
83 char *CVideoMode::LoadInterfaceSetting(
84 char *str // 対象文字列
85 ){
86 char *eee;
87 int picturequality = 2;
88 bool exceptpause = true, onlyphotomode = true;
89 if(str && g_ConfigVersion>=2.03f){
90 if(!(str = BeginBlock(eee = str, "VideoMode"))) throw CSynErr(eee);
91 if(!(str = AsgnInteger(eee = str, "PictureQuality", &picturequality))) throw CSynErr(eee);
92 if(!(str = AsgnYesNo(eee = str, "ExceptPause", &exceptpause))) throw CSynErr(eee);
93 if(!(str = AsgnYesNo(eee = str, "OnlyPhotoMode", &onlyphotomode))) throw CSynErr(eee);
94 if(!(str = EndBlock(eee = str))) throw CSynErr(eee, ERR_ENDBLOCK);
95 }
96 m_Quality[picturequality].SetCheck();
97 m_ExceptPause.SetCheck(exceptpause);
98 m_OnlyPhotoMode.SetCheck(onlyphotomode);
99 return str;
100 }
101
102 /*
103 * 設定保存
104 */
105 void CVideoMode::SaveInterfaceSetting(
106 FILE *file // ファイル
107 ){
108 fprintf(file, "VideoMode{\n");
109 fprintf(file, "\tPictureQuality = %d;\n", m_Quality->GetNumber());
110 fprintf(file, "\tExceptPause = %s;\n", YESNO[m_ExceptPause.GetCheck()]);
111 fprintf(file, "\tOnlyPhotoMode = %s;\n", YESNO[m_OnlyPhotoMode.GetCheck()]);
112 fprintf(file, "}\n\n");
113 }
114
115 /*
116 * モードを有効化
117 */
118 void CVideoMode::EnterInterface(){
119 ms_ModeLabel = lang(Video);
120 m_PictureInfo.SetText("");
121 m_VideoInfo.SetText("");
122 }
123
124 /*
125 * 入力チェック
126 */
127 void CVideoMode::ScanInputInterface(){
128 m_Interface.ScanInput();
129 if(m_VideoWindow.CheckClose()){
130 SetNeutral();
131 return;
132 }
133 if(m_StartButton.IsPushed()) StartVideoCapture();
134 if(m_StopButton.IsPushed()) StopVideoCapture();
135 if(m_RewindButton.IsPushed()) g_VideoFrame = 0;
136 if(m_ForwardButton.IsPushed()) CountVideoBMP();
137 m_PictureInfo.SetText(FlashIn("%s: %d", lang(Count), g_PictureCount));
138 m_VideoInfo.SetText(FlashIn("%s: %d / %s", lang(Frame),
139 g_VideoFrame, g_VideoStateString[g_VideoState]));
140 }
141
142 /*
143 * 撮影画質取得
144 */
145 int CVideoMode::GetPictureQuality(){
146 return 1<<m_Quality->GetNumber();
147 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26