Eger QT gibi bir ortamin varsa QScriptingEngine'e bakmani tavsiye edebilirim. C++ programlari icinde javascript kullanarak dinamik kod derlenip calistirilabiliyor.
Ornek olarak benim projemdeki
https://github.com/kerdemdemir/sharpEar/blob/master/scriptingConsole.h classina. bakabilirsin.
C++ siniflarinda slot olarak belirletigim methodlari cagirabiliyordum. Ve tezimi bu sayede bitirebildim cunku algoritmam uzun suruyordu ve 1000 kere denemi istemisti hocam, Bin kere bir yerlere tiklayip beklemektendense bende C++ fonksiyonlarimi java script ile cagirilabilir yapmistim. Asagida gordugun tamamen java script kodu "Room.insertSound" gibi cagrilarsa benim C++ da bulunan fonksiyonlarim. Bunu calisma zamaninda bir widgetdan aliyordum.
Room.reset();
radius = 1000
for ( i = 0; i < 1000; i++)
{
angle = 50 - Math.floor(Math.random() * 100);
radiusOffSet = 500 - Math.floor(Math.random() * 1000);
angleOffSet = 40 - Math.floor(Math.random() * 80);
if ( angleOffSet < 30 && angleOffSet > -30 )
angleOffSet = 30;
Room.insertSound ( radius, angle, "D:\speakerWavs\testAndValidation\f1rsenum.wav", "Source");
noiceAng = angle + angleOffSet;
if ( noiceAng <= -90 )
noiceAng = -85;
else if ( angleOffSet >= 90)
noiceAng = 85;
noiceRad = radius + radiusOffSet;
if ( noiceRad <= 0 )
noiceRad = 100;
else if ( noiceRad >= 2000 )
noiceAng = 1900;
Room.insertSound ( noiceRad, noiceAng, "D:\speakerWavs\testAndValidation\m3rsenue.wav", "Noice");
Room.listen(radius, angle);
Dialog.setSpeakerTracking( true );
Dialog.setLookAngle( angle );
Dialog.setForLocationOnly( true );
Room.startBeamforming();
}
Javascript ve QT tek opsiyonun degil bu arada LUA, python gibi dinamik dillere baglanabilir ve elindeki scripti calisma zamaninda bu script dilleri araci ile derleyebilirsin.
Umarim sorunun disina cikmamisimdir
Saygilar
Erdem
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]