main.cpp 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697
  1. #include <main.h>
  2. #include "WAVDatei.h"
  3. #include <Fenster.h>
  4. #include <Punkt.h>
  5. #include <Bildschirm.h>
  6. #include <RenderThread.h>
  7. #include <DateiSystem.h>
  8. #include <Schrift.h>
  9. #include "Initialisierung.h"
  10. #include <MausEreignis.h>
  11. #include <TastaturEreignis.h>
  12. #include <Liste.h>
  13. #include <AlphaFeld.h>
  14. #include <Rahmen.h>
  15. #include <Scroll.h>
  16. using namespace Framework;
  17. typedef GSL::GSLDateiV *( *GetGSLDatei )( );
  18. struct Variablen
  19. {
  20. GSL::GSLDateiV *gslDatei1;
  21. TextFeld *gslPfad1;
  22. Knopf *gslLaden1;
  23. AuswahlListe *gslSounds1;
  24. Knopf *löschen1;
  25. Knopf *play1;
  26. Knopf *stop1;
  27. GSL::GSLSoundV *sound1;
  28. GSL::GSLDateiV *gslDatei2;
  29. TextFeld *gslPfad2;
  30. Knopf *gslLaden2;
  31. AuswahlListe *gslSounds2;
  32. Knopf *löschen2;
  33. Knopf *play2;
  34. Knopf *stop2;
  35. GSL::GSLSoundV *sound2;
  36. Knopf *nachLinks;
  37. Knopf *nachRechts;
  38. TextFeld *wavPfad;
  39. Knopf *wavLinks;
  40. Knopf *wavRechts;
  41. Schrift *nSchrift;
  42. };
  43. bool GSLLaden1ME( void *p, void *obj, MausEreignis me )
  44. {
  45. if( me.id == ME_RLinks )
  46. {
  47. Variablen *vars = (Variablen*)p;
  48. vars->gslDatei1->setDatei( vars->gslPfad1->getText() );
  49. if( !DateiExistiert( vars->gslPfad1->getText() ) )
  50. DateiPfadErstellen( vars->gslPfad1->getText() );
  51. vars->gslDatei1->leseDaten();
  52. int anz = vars->gslSounds1->getEintragAnzahl();
  53. for( int i = 0; i < anz; i++ )
  54. vars->gslSounds1->removeEintrag( 0 );
  55. anz = vars->gslDatei1->getSoundAnzahl();
  56. for( int i = 0; i < anz; i++ )
  57. {
  58. vars->gslSounds1->addEintrag( vars->gslDatei1->getSoundName( i ) );
  59. vars->gslSounds1->zEintrag( i )->setSchriftZ( vars->nSchrift->getThis() );
  60. vars->gslSounds1->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
  61. vars->gslSounds1->zEintrag( i )->setSize( 0, 20 );
  62. }
  63. vars->gslSounds1->addStyle( AuswahlListe::Style::Erlaubt );
  64. vars->wavPfad->addStyle( TextFeld::Style::Erlaubt );
  65. vars->wavLinks->addStyle( Knopf::Style::Erlaubt );
  66. if( vars->gslSounds2->getAuswahl() >= 0 && vars->gslSounds2->hatStyle( AuswahlListe::Style::Erlaubt ) )
  67. vars->nachLinks->addStyle( Knopf::Style::Erlaubt );
  68. vars->nachRechts->removeStyle( Knopf::Style::Erlaubt );
  69. vars->löschen1->removeStyle( Knopf::Style::Erlaubt );
  70. vars->play1->removeStyle( Knopf::Style::Erlaubt );
  71. vars->stop1->removeStyle( Knopf::Style::Erlaubt );
  72. }
  73. return 1;
  74. }
  75. bool GSLLaden2ME( void *p, void *obj, MausEreignis me )
  76. {
  77. if( me.id == ME_RLinks )
  78. {
  79. Variablen *vars = (Variablen*)p;
  80. vars->gslDatei2->setDatei( vars->gslPfad2->getText() );
  81. if( !DateiExistiert( vars->gslPfad2->getText() ) )
  82. DateiPfadErstellen( vars->gslPfad2->getText() );
  83. vars->gslDatei2->leseDaten();
  84. int anz = vars->gslSounds2->getEintragAnzahl();
  85. for( int i = 0; i < anz; i++ )
  86. vars->gslSounds2->removeEintrag( 0 );
  87. anz = vars->gslDatei2->getSoundAnzahl();
  88. for( int i = 0; i < anz; i++ )
  89. {
  90. vars->gslSounds2->addEintrag( vars->gslDatei2->getSoundName( i ) );
  91. vars->gslSounds2->zEintrag( i )->setSchriftZ( vars->nSchrift->getThis() );
  92. vars->gslSounds2->zEintrag( i )->setSchriftFarbe( 0xFFFFFFFF );
  93. vars->gslSounds2->zEintrag( i )->setSize( 0, 20 );
  94. }
  95. vars->gslSounds2->addStyle( AuswahlListe::Style::Erlaubt );
  96. if( vars->gslSounds1->getAuswahl() >= 0 && vars->gslSounds1->hatStyle( AuswahlListe::Style::Erlaubt ) )
  97. vars->nachRechts->addStyle( Knopf::Style::Erlaubt );
  98. vars->wavPfad->addStyle( TextFeld::Style::Erlaubt );
  99. vars->wavRechts->addStyle( Knopf::Style::Erlaubt );
  100. vars->nachLinks->removeStyle( Knopf::Style::Erlaubt );
  101. vars->löschen2->removeStyle( Knopf::Style::Erlaubt );
  102. vars->play2->removeStyle( Knopf::Style::Erlaubt );
  103. vars->stop2->removeStyle( Knopf::Style::Erlaubt );
  104. }
  105. return 1;
  106. }
  107. bool GSLSounds1ME( void *p, void *obj, MausEreignis me )
  108. {
  109. if( me.id == ME_RLinks )
  110. {
  111. Variablen *vars = (Variablen*)p;
  112. if( vars->gslSounds1->getKlickEintrag( me.my ) >= 0 )
  113. {
  114. if( vars->gslSounds2->hatStyle( AuswahlListe::Style::Erlaubt ) && vars->stop2->hatStyleNicht( Knopf::Style::Erlaubt ) )
  115. vars->nachRechts->addStyle( Knopf::Style::Erlaubt );
  116. vars->löschen1->addStyle( Knopf::Style::Erlaubt );
  117. vars->play1->addStyle( Knopf::Style::Erlaubt );
  118. }
  119. else
  120. {
  121. vars->nachRechts->removeStyle( Knopf::Style::Erlaubt );
  122. vars->löschen1->removeStyle( Knopf::Style::Erlaubt );
  123. vars->play1->removeStyle( Knopf::Style::Erlaubt );
  124. }
  125. }
  126. return 1;
  127. }
  128. bool GSLSounds2ME( void *p, void *obj, MausEreignis me )
  129. {
  130. if( me.id == ME_RLinks )
  131. {
  132. Variablen *vars = (Variablen*)p;
  133. if( vars->gslSounds2->getKlickEintrag( me.my ) >= 0 )
  134. {
  135. if( vars->gslSounds1->hatStyle( AuswahlListe::Style::Erlaubt ) && vars->stop1->hatStyleNicht( Knopf::Style::Erlaubt ) )
  136. vars->nachLinks->addStyle( Knopf::Style::Erlaubt );
  137. vars->löschen2->addStyle( Knopf::Style::Erlaubt );
  138. vars->play2->addStyle( Knopf::Style::Erlaubt );
  139. }
  140. else
  141. {
  142. vars->nachLinks->removeStyle( Knopf::Style::Erlaubt );
  143. vars->löschen2->removeStyle( Knopf::Style::Erlaubt );
  144. vars->play2->removeStyle( Knopf::Style::Erlaubt );
  145. }
  146. }
  147. return 1;
  148. }
  149. bool NachLinksME( void *p, void *obj, MausEreignis me )
  150. {
  151. if( me.id == ME_RLinks )
  152. {
  153. Variablen *vars = (Variablen*)p;
  154. if( vars->gslSounds2->getAuswahl() < 0 || vars->gslSounds2->hatStyleNicht( AuswahlListe::Style::Erlaubt ) )
  155. return 1;
  156. if( vars->stop1->hatStyle( Knopf::Style::Erlaubt ) )
  157. return 1;
  158. GSL::GSLSoundV *tmpSound = vars->gslDatei2->getSound( vars->gslSounds2->zEintrag( vars->gslSounds2->getAuswahl() )->zText()->getText() );
  159. if( !tmpSound )
  160. return 1;
  161. if( !vars->gslDatei1->speicherSound( tmpSound, vars->gslSounds2->zEintrag( vars->gslSounds2->getAuswahl() )->zText()->getText() ) )
  162. {
  163. tmpSound->release();
  164. return 1;
  165. }
  166. tmpSound->release();
  167. vars->gslSounds1->addEintrag( vars->gslSounds2->zEintrag( vars->gslSounds2->getAuswahl() )->zText()->getText() );
  168. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSchriftZ( vars->nSchrift->getThis() );
  169. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSchriftFarbe( 0xFFFFFFFF );
  170. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSize( 0, 20 );
  171. }
  172. return 1;
  173. }
  174. bool NachRechtsME( void *p, void *obj, MausEreignis me )
  175. {
  176. if( me.id == ME_RLinks )
  177. {
  178. Variablen *vars = (Variablen*)p;
  179. if( vars->gslSounds1->getAuswahl() < 0 || vars->gslSounds1->hatStyleNicht( AuswahlListe::Style::Erlaubt ) )
  180. return 1;
  181. if( vars->stop2->hatStyle( Knopf::Style::Erlaubt ) )
  182. return 1;
  183. GSL::GSLSoundV *tmpSound = vars->gslDatei1->getSound( vars->gslSounds1->zEintrag( vars->gslSounds1->getAuswahl() )->zText()->getText() );
  184. if( !tmpSound )
  185. return 1;
  186. if( !vars->gslDatei2->speicherSound( tmpSound, vars->gslSounds1->zEintrag( vars->gslSounds1->getAuswahl() )->zText()->getText() ) )
  187. {
  188. tmpSound->release();
  189. return 1;
  190. }
  191. tmpSound->release();
  192. vars->gslSounds2->addEintrag( vars->gslSounds1->zEintrag( vars->gslSounds1->getAuswahl() )->zText()->getText() );
  193. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSchriftZ( vars->nSchrift->getThis() );
  194. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSchriftFarbe( 0xFFFFFFFF );
  195. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSize( 0, 20 );
  196. }
  197. return 1;
  198. }
  199. bool WavLinksME( void *p, void *obj, MausEreignis me )
  200. {
  201. if( me.id == ME_RLinks )
  202. {
  203. Variablen *vars = (Variablen*)p;
  204. if( vars->gslSounds1->hatStyleNicht( AuswahlListe::Style::Erlaubt ) )
  205. return 1;
  206. if( !DateiExistiert( vars->wavPfad->getText() ) )
  207. return 1;
  208. if( vars->stop1->hatStyle( Knopf::Style::Erlaubt ) )
  209. return 1;
  210. if( DateiIstVerzeichnis( vars->wavPfad->getText() ) )
  211. {
  212. Datei d;
  213. d.setDatei( vars->wavPfad->getText() );
  214. int anz = d.getUnterdateiAnzahl();
  215. RCArray< Text > *files = d.getDateiListe();
  216. for( int i = 0; i < anz && files; i++ )
  217. {
  218. Text txt = vars->wavPfad->zText()->getText();
  219. txt += "/";
  220. txt.append( files->z( i )->getText() );
  221. WAVDatei wav;
  222. if( !wav.lade( txt ) )
  223. continue;
  224. char *n = files->z( i )->getText();
  225. if( !vars->gslDatei1->speicherSound( &wav, n ) )
  226. continue;
  227. vars->gslSounds1->addEintrag( n );
  228. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSchriftZ( vars->nSchrift->getThis() );
  229. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSchriftFarbe( 0xFFFFFFFF );
  230. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSize( 0, 20 );
  231. }
  232. if( files )
  233. files->release();
  234. }
  235. else
  236. {
  237. WAVDatei wav;
  238. if( !wav.lade( vars->wavPfad->zText()->getText() ) )
  239. return 1;
  240. Text *pf = vars->wavPfad->zText();
  241. char *n = pf->getText() + pf->positionVon( '/', pf->anzahlVon( '/' ) - 1 ) + 1;
  242. if( !vars->gslDatei1->speicherSound( &wav, n ) )
  243. return 1;
  244. vars->gslSounds1->addEintrag( n );
  245. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSchriftZ( vars->nSchrift->getThis() );
  246. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSchriftFarbe( 0xFFFFFFFF );
  247. vars->gslSounds1->zEintrag( vars->gslSounds1->getEintragAnzahl() - 1 )->setSize( 0, 20 );
  248. }
  249. }
  250. return 1;
  251. }
  252. bool WavRechtsME( void *p, void *obj, MausEreignis me )
  253. {
  254. if( me.id == ME_RLinks )
  255. {
  256. Variablen *vars = (Variablen*)p;
  257. if( vars->gslSounds2->hatStyleNicht( AuswahlListe::Style::Erlaubt ) )
  258. return 1;
  259. if( !DateiExistiert( vars->wavPfad->getText() ) )
  260. return 1;
  261. if( vars->stop2->hatStyle( Knopf::Style::Erlaubt ) )
  262. return 1;
  263. if( DateiIstVerzeichnis( vars->wavPfad->getText() ) )
  264. {
  265. Datei d;
  266. d.setDatei( vars->wavPfad->getText() );
  267. int anz = d.getUnterdateiAnzahl();
  268. RCArray< Text > *files = d.getDateiListe();
  269. for( int i = 0; i < anz && files; i++ )
  270. {
  271. Text txt = vars->wavPfad->zText()->getText();
  272. txt += "/";
  273. txt.append( files->z( i )->getText() );
  274. WAVDatei wav;
  275. if( !wav.lade( txt ) )
  276. continue;
  277. char *n = files->z( i )->getText();
  278. if( !vars->gslDatei2->speicherSound( &wav, n ) )
  279. continue;
  280. vars->gslSounds2->addEintrag( n );
  281. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSchriftZ( vars->nSchrift->getThis() );
  282. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSchriftFarbe( 0xFFFFFFFF );
  283. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSize( 0, 20 );
  284. }
  285. if( files )
  286. files->release();
  287. }
  288. else
  289. {
  290. WAVDatei wav;
  291. if( !wav.lade( vars->wavPfad->zText()->getText() ) )
  292. return 1;
  293. Text *pf = vars->wavPfad->zText();
  294. char *n = pf->getText() + pf->positionVon( '/', pf->anzahlVon( '/' ) - 1 ) + 1;
  295. if( !vars->gslDatei2->speicherSound( &wav, n ) )
  296. return 1;
  297. vars->gslSounds2->addEintrag( n );
  298. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSchriftZ( vars->nSchrift->getThis() );
  299. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSchriftFarbe( 0xFFFFFFFF );
  300. vars->gslSounds2->zEintrag( vars->gslSounds2->getEintragAnzahl() - 1 )->setSize( 0, 20 );
  301. }
  302. }
  303. return 1;
  304. }
  305. bool Löschen1ME( void *p, void *obj, MausEreignis me )
  306. {
  307. if( me.id == ME_RLinks )
  308. {
  309. Variablen *vars = (Variablen*)p;
  310. if( vars->gslSounds1->hatStyleNicht( AuswahlListe::Style::Erlaubt ) )
  311. return 1;
  312. if( vars->gslSounds1->getAuswahl() < 0 )
  313. return 1;
  314. if( vars->stop1->hatStyle( Knopf::Style::Erlaubt ) )
  315. return 1;
  316. if( !vars->gslDatei1->removeSound( vars->gslSounds1->zEintrag( vars->gslSounds1->getAuswahl() )->zText()->getText() ) )
  317. return 1;
  318. vars->gslSounds1->removeEintrag( vars->gslSounds1->getAuswahl() );
  319. vars->gslSounds1->deSelect();
  320. vars->nachRechts->removeStyle( Knopf::Style::Erlaubt );
  321. vars->löschen1->removeStyle( Knopf::Style::Erlaubt );
  322. vars->play1->removeStyle( Knopf::Style::Erlaubt );
  323. }
  324. return 1;
  325. }
  326. bool Löschen2ME( void *p, void *obj, MausEreignis me )
  327. {
  328. if( me.id == ME_RLinks )
  329. {
  330. Variablen *vars = (Variablen*)p;
  331. if( vars->gslSounds2->hatStyleNicht( AuswahlListe::Style::Erlaubt ) )
  332. return 1;
  333. if( vars->gslSounds2->getAuswahl() < 0 )
  334. return 1;
  335. if( vars->stop2->hatStyle( Knopf::Style::Erlaubt ) )
  336. return 1;
  337. if( !vars->gslDatei2->removeSound( vars->gslSounds2->zEintrag( vars->gslSounds2->getAuswahl() )->zText()->getText() ) )
  338. return 1;
  339. vars->gslSounds2->removeEintrag( vars->gslSounds2->getAuswahl() );
  340. vars->gslSounds2->deSelect();
  341. vars->nachLinks->removeStyle( Knopf::Style::Erlaubt );
  342. vars->löschen2->removeStyle( Knopf::Style::Erlaubt );
  343. vars->play2->removeStyle( Knopf::Style::Erlaubt );
  344. }
  345. return 1;
  346. }
  347. bool Play1ME( void *p, void *obj, MausEreignis me )
  348. {
  349. if( me.id == ME_RLinks )
  350. {
  351. Variablen *vars = (Variablen*)p;
  352. if( vars->gslSounds1->hatStyleNicht( AuswahlListe::Style::Erlaubt ) || vars->gslSounds1->getAuswahl() < 0 )
  353. return 1;
  354. if( vars->sound1 )
  355. return 1;
  356. vars->sound1 = vars->gslDatei1->getSound( vars->gslSounds1->zEintrag( vars->gslSounds1->getAuswahl() )->getText() );
  357. if( !vars->sound1 )
  358. return 1;
  359. vars->sound1->setVolume( 0xFFFF, 0xFFFF );
  360. vars->sound1->playSound();
  361. vars->gslSounds1->removeStyle( AuswahlListe::Style::Erlaubt );
  362. vars->nachLinks->removeStyle( Knopf::Style::Erlaubt );
  363. vars->wavLinks->removeStyle( Knopf::Style::Erlaubt );
  364. vars->löschen1->removeStyle( Knopf::Style::Erlaubt );
  365. vars->play1->removeStyle( Knopf::Style::Erlaubt );
  366. vars->gslLaden1->removeStyle( Knopf::Style::Erlaubt );
  367. vars->stop1->addStyle( Knopf::Style::Erlaubt );
  368. }
  369. return 1;
  370. }
  371. bool Play2ME( void *p, void *obj, MausEreignis me )
  372. {
  373. if( me.id == ME_RLinks )
  374. {
  375. Variablen *vars = (Variablen*)p;
  376. if( vars->gslSounds2->hatStyleNicht( AuswahlListe::Style::Erlaubt ) || vars->gslSounds2->getAuswahl() < 0 )
  377. return 1;
  378. if( vars->sound2 )
  379. return 1;
  380. vars->sound2 = vars->gslDatei2->getSound( vars->gslSounds2->zEintrag( vars->gslSounds2->getAuswahl() )->getText() );
  381. if( !vars->sound2 )
  382. return 1;
  383. vars->sound2->setVolume( 0xFFFF, 0xFFFF );
  384. vars->sound2->playSound();
  385. vars->gslSounds2->removeStyle( AuswahlListe::Style::Erlaubt );
  386. vars->nachRechts->removeStyle( Knopf::Style::Erlaubt );
  387. vars->wavRechts->removeStyle( Knopf::Style::Erlaubt );
  388. vars->löschen2->removeStyle( Knopf::Style::Erlaubt );
  389. vars->play2->removeStyle( Knopf::Style::Erlaubt );
  390. vars->gslLaden2->removeStyle( Knopf::Style::Erlaubt );
  391. vars->stop2->addStyle( Knopf::Style::Erlaubt );
  392. }
  393. return 1;
  394. }
  395. bool Stop1ME( void *p, void *obj, MausEreignis me )
  396. {
  397. if( me.id == ME_RLinks )
  398. {
  399. Variablen *vars = (Variablen*)p;
  400. if( vars->sound1 )
  401. {
  402. vars->sound1->stopSound();
  403. vars->sound1 = vars->sound1->release();
  404. }
  405. vars->gslLaden1->addStyle( Knopf::Style::Erlaubt );
  406. vars->gslSounds1->addStyle( AuswahlListe::Style::Erlaubt );
  407. if( vars->gslSounds2->hatStyle( AuswahlListe::Style::Erlaubt ) && vars->gslSounds2->getAuswahl() >= 0 )
  408. vars->nachLinks->addStyle( Knopf::Style::Erlaubt );
  409. vars->löschen1->addStyle( Knopf::Style::Erlaubt );
  410. vars->play1->addStyle( Knopf::Style::Erlaubt );
  411. vars->wavLinks->addStyle( Knopf::Style::Erlaubt );
  412. vars->stop1->removeStyle( Knopf::Style::Erlaubt );
  413. }
  414. return 1;
  415. }
  416. bool Stop2ME( void *p, void *obj, MausEreignis me )
  417. {
  418. if( me.id == ME_RLinks )
  419. {
  420. Variablen *vars = (Variablen*)p;
  421. if( vars->sound2 )
  422. {
  423. vars->sound2->stopSound();
  424. vars->sound2 = vars->sound2->release();
  425. }
  426. vars->gslLaden2->addStyle( Knopf::Style::Erlaubt );
  427. vars->gslSounds2->addStyle( AuswahlListe::Style::Erlaubt );
  428. if( vars->gslSounds1->hatStyle( AuswahlListe::Style::Erlaubt ) && vars->gslSounds1->getAuswahl() >= 0 )
  429. vars->nachRechts->addStyle( Knopf::Style::Erlaubt );
  430. vars->löschen2->addStyle( Knopf::Style::Erlaubt );
  431. vars->play2->addStyle( Knopf::Style::Erlaubt );
  432. vars->wavRechts->addStyle( Knopf::Style::Erlaubt );
  433. vars->stop2->removeStyle( Knopf::Style::Erlaubt );
  434. }
  435. return 1;
  436. }
  437. void beenden( void *p, void *f )
  438. {
  439. StopNachrichtenSchleife( ( (WFenster*)f )->getFensterHandle() );
  440. }
  441. int KSGStart Framework::Start( Startparam p )
  442. {
  443. Variablen vars;
  444. vars.sound1 = 0;
  445. vars.sound2 = 0;
  446. // Fenster erstellen
  447. WNDCLASS wc = F_Normal( p.hinst );
  448. wc.lpszClassName = "GSL Konverter";
  449. WFenster *f = new WFenster();
  450. f->erstellen( WS_OVERLAPPEDWINDOW, wc );
  451. f->setSize( 700, 290 );
  452. f->setPosition( Bildschirmmitte( f->getThis() ) );
  453. f->setVSchließAktion( beenden );
  454. f->setMausAktion( _ret1ME );
  455. f->setTastaturAktion( _ret1TE );
  456. f->setVerschiebbar( 1 );
  457. f->setAnzeigeModus( 1 );
  458. Bildschirm *b = new Bildschirm3D( f->getThis() );
  459. f->setBildschirm( b->getThis() );
  460. b->update();
  461. RenderTh *render = new RenderTh();
  462. render->setBildschirm( b->getThis() );
  463. render->beginn();
  464. // GSL.dll laden
  465. #ifdef _WIN64
  466. HMODULE gslDLL = LoadLibrary( "../data/GSLx64.dll" );
  467. #else
  468. HMODULE gslDLL = LoadLibrary( "../data/GSLx32.dll" );
  469. #endif
  470. if( !gslDLL )
  471. {
  472. render->beenden();
  473. render->release();
  474. f->setBildschirm( 0 );
  475. b->release();
  476. f->release();
  477. return 0;
  478. }
  479. GetGSLDatei getGSLDatei = (GetGSLDatei)GetProcAddress( gslDLL, "getGSLDatei" );
  480. if( !getGSLDatei )
  481. {
  482. render->beenden();
  483. render->release();
  484. f->setBildschirm( 0 );
  485. b->release();
  486. f->release();
  487. return 0;
  488. }
  489. vars.gslDatei1 = getGSLDatei();
  490. vars.gslDatei2 = getGSLDatei();
  491. // Schrift laden
  492. LTDSDatei *sLib = new LTDSDatei();
  493. sLib->setPfad( new Text( "../data/normal.ltds" ) );
  494. sLib->leseDaten();
  495. vars.nSchrift = sLib->ladeSchrift();
  496. sLib->release();
  497. vars.gslPfad1 = initTextFeld( 10, 10, 200, 20, vars.nSchrift, TextFeld::Style::TextFeld | TextFeld::Style::VCenter, "GSL Dateipfad eingeben" );
  498. b->addMember( vars.gslPfad1 );
  499. Sleep( 30 );
  500. vars.gslPfad2 = initTextFeld( 490, 10, 200, 20, vars.nSchrift, TextFeld::Style::TextFeld | TextFeld::Style::VCenter, "GSL Dateipfad eingeben" );
  501. b->addMember( vars.gslPfad2 );
  502. Sleep( 30 );
  503. vars.gslLaden1 = initKnopf( 220, 10, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "GSL Laden" );
  504. vars.gslLaden1->setMausEreignis( GSLLaden1ME );
  505. vars.gslLaden1->setMausEreignisParameter( &vars );
  506. b->addMember( vars.gslLaden1 );
  507. Sleep( 30 );
  508. vars.gslLaden2 = initKnopf( 380, 10, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "GSL Laden" );
  509. vars.gslLaden2->setMausEreignis( GSLLaden2ME );
  510. vars.gslLaden2->setMausEreignisParameter( &vars );
  511. b->addMember( vars.gslLaden2 );
  512. Sleep( 30 );
  513. vars.gslSounds1 = new AuswahlListe();
  514. vars.gslSounds1->setStyle( AuswahlListe::Style::Sichtbar | AuswahlListe::Style::Rahmen | AuswahlListe::Style::AuswahlBuffer | AuswahlListe::Style::AuswahlRahmen | AuswahlListe::Style::VScroll );
  515. vars.gslSounds1->setPosition( 10, 40 );
  516. vars.gslSounds1->setSize( 200, 240 );
  517. vars.gslSounds1->setAAFZ( new AlphaFeld() );
  518. vars.gslSounds1->zABuffer()->setFarbe( 0x7500FF00 );
  519. vars.gslSounds1->zABuffer()->setStrength( 8 );
  520. vars.gslSounds1->setLinienRahmenZ( new LRahmen() );
  521. vars.gslSounds1->setLinienRahmenFarbe( 0xFFFFFFFF );
  522. vars.gslSounds1->setLinienRahmenBreite( 2 );
  523. vars.gslSounds1->setALRZ( new LRahmen() );
  524. vars.gslSounds1->zARahmen()->setFarbe( 0xFF00FF00 );
  525. vars.gslSounds1->setVertikalKlickScroll( 5 );
  526. vars.gslSounds1->setMausEreignis( GSLSounds1ME );
  527. vars.gslSounds1->setMausEreignisParameter( &vars );
  528. vars.gslSounds1->update();
  529. b->addMember( vars.gslSounds1 );
  530. Sleep( 30 );
  531. vars.gslSounds2 = new AuswahlListe();
  532. vars.gslSounds2->setStyle( AuswahlListe::Style::Sichtbar | AuswahlListe::Style::Rahmen | AuswahlListe::Style::AuswahlBuffer | AuswahlListe::Style::AuswahlRahmen | AuswahlListe::Style::VScroll );
  533. vars.gslSounds2->setPosition( 490, 40 );
  534. vars.gslSounds2->setSize( 200, 240 );
  535. vars.gslSounds2->setAAFZ( new AlphaFeld() );
  536. vars.gslSounds2->zABuffer()->setFarbe( 0x7500FF00 );
  537. vars.gslSounds2->zABuffer()->setStrength( 8 );
  538. vars.gslSounds2->setLinienRahmenFarbe( 0xFFFFFFFF );
  539. vars.gslSounds2->setLinienRahmenBreite( 2 );
  540. vars.gslSounds2->setALRZ( new LRahmen() );
  541. vars.gslSounds2->zARahmen()->setFarbe( 0xFF00FF00 );
  542. vars.gslSounds2->setVertikalKlickScroll( 5 );
  543. vars.gslSounds2->setMausEreignis( GSLSounds2ME );
  544. vars.gslSounds2->setMausEreignisParameter( &vars );
  545. vars.gslSounds2->update();
  546. b->addMember( vars.gslSounds2 );
  547. Sleep( 30 );
  548. vars.nachLinks = initKnopf( 300, 50, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "<<-----" );
  549. vars.nachLinks->removeStyle( Knopf::Style::Erlaubt );
  550. vars.nachLinks->setMausEreignis( NachLinksME );
  551. vars.nachLinks->setMausEreignisParameter( &vars );
  552. b->addMember( vars.nachLinks );
  553. Sleep( 30 );
  554. vars.nachRechts = initKnopf( 300, 80, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "----->>" );
  555. vars.nachRechts->removeStyle( Knopf::Style::Erlaubt );
  556. vars.nachRechts->setMausEreignis( NachRechtsME );
  557. vars.nachRechts->setMausEreignisParameter( &vars );
  558. b->addMember( vars.nachRechts );
  559. Sleep( 30 );
  560. vars.wavPfad = initTextFeld( 225, 120, 250, 20, vars.nSchrift, TextFeld::Style::TextFeld | TextFeld::Style::VCenter, "WAV Import Pfad" );
  561. vars.wavPfad->removeStyle( TextFeld::Style::Erlaubt );
  562. b->addMember( vars.wavPfad );
  563. Sleep( 30 );
  564. vars.wavLinks = initKnopf( 220, 150, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "<--" );
  565. vars.wavLinks->removeStyle( Knopf::Style::Erlaubt );
  566. vars.wavLinks->setMausEreignis( WavLinksME );
  567. vars.wavLinks->setMausEreignisParameter( &vars );
  568. b->addMember( vars.wavLinks );
  569. Sleep( 30 );
  570. vars.wavRechts = initKnopf( 380, 150, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "-->" );
  571. vars.wavRechts->removeStyle( Knopf::Style::Erlaubt );
  572. vars.wavRechts->setMausEreignis( WavRechtsME );
  573. vars.wavRechts->setMausEreignisParameter( &vars );
  574. b->addMember( vars.wavRechts );
  575. Sleep( 30 );
  576. vars.löschen1 = initKnopf( 220, 190, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "Löschen" );
  577. vars.löschen1->removeStyle( Knopf::Style::Erlaubt );
  578. vars.löschen1->setMausEreignis( Löschen1ME );
  579. vars.löschen1->setMausEreignisParameter( &vars );
  580. b->addMember( vars.löschen1 );
  581. Sleep( 30 );
  582. vars.löschen2 = initKnopf( 380, 190, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "Löschen" );
  583. vars.löschen2->removeStyle( Knopf::Style::Erlaubt );
  584. vars.löschen2->setMausEreignis( Löschen2ME );
  585. vars.löschen2->setMausEreignisParameter( &vars );
  586. b->addMember( vars.löschen2 );
  587. Sleep( 30 );
  588. vars.play1 = initKnopf( 220, 230, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "Play" );
  589. vars.play1->removeStyle( Knopf::Style::Erlaubt );
  590. vars.play1->setMausEreignis( Play1ME );
  591. vars.play1->setMausEreignisParameter( &vars );
  592. b->addMember( vars.play1 );
  593. Sleep( 30 );
  594. vars.stop1 = initKnopf( 220, 260, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "Stop" );
  595. vars.stop1->removeStyle( Knopf::Style::Erlaubt );
  596. vars.stop1->setMausEreignis( Stop1ME );
  597. vars.stop1->setMausEreignisParameter( &vars );
  598. b->addMember( vars.stop1 );
  599. Sleep( 30 );
  600. vars.play2 = initKnopf( 380, 230, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "Play" );
  601. vars.play2->removeStyle( Knopf::Style::Erlaubt );
  602. vars.play2->setMausEreignis( Play2ME );
  603. vars.play2->setMausEreignisParameter( &vars );
  604. b->addMember( vars.play2 );
  605. Sleep( 30 );
  606. vars.stop2 = initKnopf( 380, 260, 100, 20, vars.nSchrift, Knopf::Style::Sichtbar, "Stop" );
  607. vars.stop2->removeStyle( Knopf::Style::Erlaubt );
  608. vars.stop2->setMausEreignis( Stop2ME );
  609. vars.stop2->setMausEreignisParameter( &vars );
  610. b->addMember( vars.stop2 );
  611. Sleep( 30 );
  612. StartNachrichtenSchleife();
  613. render->beenden();
  614. render->release();
  615. vars.gslPfad1->release();
  616. vars.gslLaden1->release();
  617. vars.gslSounds1->release();
  618. vars.löschen1->release();
  619. vars.play1->release();
  620. vars.stop1->release();
  621. if( vars.sound1 )
  622. {
  623. vars.sound1->stopSound();
  624. vars.sound1->release();
  625. }
  626. vars.gslPfad2->release();
  627. vars.gslLaden2->release();
  628. vars.gslSounds2->release();
  629. vars.löschen2->release();
  630. vars.play2->release();
  631. vars.stop2->release();
  632. if( vars.sound2 )
  633. {
  634. vars.sound2->stopSound();
  635. vars.sound2->release();
  636. }
  637. vars.nachLinks->release();
  638. vars.nachRechts->release();
  639. vars.wavPfad->release();
  640. vars.wavLinks->release();
  641. vars.wavRechts->release();
  642. vars.gslDatei1->release();
  643. vars.gslDatei2->release();
  644. FreeLibrary( gslDLL );
  645. vars.nSchrift->release();
  646. f->setBildschirm( 0 );
  647. b->release();
  648. f->release();
  649. return 0;
  650. }