..:: BİLGİ VADİSİ ::.. BİLGİ VADİSİ RSS   TWİTTER   BİLGİ VADİSİ FORUM FACE GRUBU  

Anasayfa Kimler Çevrimiçi Bugünkü Mesajlar Forumları Okundu Kabul Et
Geri git   ..:: BİLGİ VADİSİ ::.. > DREAMBOX UYDU ALICILARI > DREAMBOX DESTEK > Dreambox Plugins
Google

   

 
Konu Bilgileri
Konu Başlığı
Dreambox Plugin nasil yapilir
Konudaki Cevap Sayısı
5
Şuan Bu Konuyu Görüntüleyenler
 
Görüntülenme Sayısı
1751

Yeni Konu aç Cevapla
 
Seçenekler Stil
Eski 29.10.10, 05:37   #1
yergun_002
 
yergun_002 - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 3
Üyelik tarihi: 16.07.2008
Nereden: adıyaman
Mesajlar: 5.706
Konular: 2447
Rep Bilgisi
Rep Gücü : 10
Rep Puanı : 862
Rep Seviyesi : yergun_002 is a splendid one to beholdyergun_002 is a splendid one to beholdyergun_002 is a splendid one to beholdyergun_002 is a splendid one to beholdyergun_002 is a splendid one to beholdyergun_002 is a splendid one to beholdyergun_002 is a splendid one to behold
Aktivite
Level: 54 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 132 / 1325
Güç: 1902 / 63624
Tecrübe: 0%

İletişim
Standart Dreambox Plugin nasil yapilir

Dreambox Plugin nasil yapilir
Bu tarif Bacicciosat aka Luponero'dan alıntıdır

-Enigma eklentileri C++ programlama dilini kullanır
-Enigma eklentileri Dreambox'da plugin ismi ile çalışırlar.

Her plugin iki kısımdan oluşur:

1- .cfg dosyası (text dosyasıdır)
2- .so dosyası (Bu derlenmiş çalıştırılabilir gerçek uygulama dosyasıdır)

DİKKAT: : Bu iki dosyanın aynı isimde olması ŞARTTIR. Örneğin: demo.so demo.cfg

1) .cfg dosyası hakkında:

.cfg dosyası uygulama hakkındaki genel bilgilerin tutulduğu dosyadır.
Örneğimizde bizde bu standart .cfg dosyasını kullanacağız.
Sizinde değiştirmeniz gereken tek şey .cfg dosyasının "ismi" olmalıdır.
Bu isim sarı tuşa bastığınızda gelen Dreambox Pluginleri listesinde görünen isimdir.

İçeriği şöyledir:


Kod:
name=Demo Enigma Bibledesc=depend=type=2needfb=0needrc=0needlcd=0en igmaplugin=1
2) so. dosyası hakkında:

.so dosyası gerçek uygulama olup kaynak kodun derlenmiş şeklidir.
Kaynak kod C++ lisanında yazılmış olup .cpp uzantısı vardır.
Bu kod daha önce kurduğumuz ortamda derlendiğinde .so uzantılı bir dosya oluşturacak ve biz bunu Dreamboxumuza yükleyebileceğiz.
Neticede yeni bir enigma plugini oluşturabilmemiz için:
-bir .cfg dosyası
-bir .cpp kaynak dosyası
-ve birde .cpp dosyamızı derlemek için gerekli makefile dosyasına ihtiyacımız olacaktır.

Bu 3 dosyada bu tarifede verilmiştir. Dilediğiniz gibi inceleyebilir, değiştirebilir ve derleyebilirsiniz.

3)Kaynak koda genel bir bakış

.so uzantılı dosyamızı elde edebilmemiz için gereken kaynak kodumuz .cpp uzantılı bir dosyada bulunmaktadır.
Bu kaynak kodu olağan bir C++ kaynak kodu olup:
-C ve C++ kütüphaneleri
-Enigma kütüphaneleri
-API (Advanced Graphics Interface)
içermelidir.
Enigma kaynak kodunu gösterebilmek için bunu 4 ana kısma ayırabiliriz:

a)Include dosyaları Bunlar kodumuzun ihtiyaç duyduğu kütüphanelerdir. C, C++ ve Enigma kütüphaneleri olabilir.

b)Klaslar ve Fonksiyon Önermeleri Kaynak kodumuzda kullanacağımız klaslar ve Fonksiyonların önerildiği kısımdır

c)Uygulamanın giriş adresi Enigmanın kodu başlatmak için ihtiyaç duyduğu fonksiyon.

d)Kod Grafik nesnelerin işlenmesi için kullanacağımız normal C++ koduna Enigma API ve fonksiyonları adını veriyoruz.

Buraya kadarki kısmı anladıysak ilk Enigma uygulamamızı yapabiliriz.






Pencere oluşturma ve içine yazma
Ekte:
- .cfg dosyası (Bibledemo.cfg)
- Derlenmiş ve çalışan plugin (Bibledemo.so)
- Kaynak kodu (bibledemo.cpp)
- makefile dosyası (kaynak kodu değiştirirseniz tekrar derleme için ihtiyacınız olacak dosya)

Şimdi çalıştığında Dreambox'un ekrana "Hello World" yazdığı bir plugin yapalım:

Anlatacağımız Enigma API'nin pencere yaratma işlemidir:

Kod:
// pencereyi yarateWindow(int takefocus=0);// pencereyi kapat~eWindow();// pencere başlığını düzenlesetText(eString string);// konumlandırcmove(ePoint(x, y));// ölçeklendircresize(eSize(x, y));

Hangi kodun ne işe yaradığı üstünde yazıyor. Bu kodu yazacağımız ana API nin listesi.

bibledemo.cpp

Herşeyden önce uygulamamızın ihtiyaç duyduğu kütüphaneleri eklememiz gerek. (Örneğimizde Enigma Plugin, Standard C, Enigma Window, Enigma elabel kütüphaneleri gerek)

Kod:
#include <plugin.h>#include <stdio.h>#include <lib/gui/ewindow.h>#include <lib/gui/elabel.h>
Şimdide sınıfların deklare edilmesi gerek:

Kod:
// The Class declaration of our Main Windowclass eBibleMainWindow: public eWindow{ // metni gösterecek etiket eLabel *label;public: // yapıcı eBibleMainWindow(); // yıkıcı ~eBibleMainWindow();};
Sıra giriş noktasının belirtilmesine geldi:

Kod:
// Uygulama giriş noktası.Kod burdan çalışmaya başlıyorextern "C" int plugin_exec( PluginParam *par ){ // demo dialog kısmımız. eBibleMainWindow dlg; //dialogu göster... dlg.show(); // dialoga kontrolu geçir.. (the dialog is modal!) int result=dlg.exec(); // ve gizle. dlg.hide(); return result;}
Burdan itibaren kodumuz çalışmaya başladı. Artık penceremizi yaratabilir ve içinde "Hello Word" yazısını yazdırabiliriz.

Kodumuzda:

1)Ana penceremizi yaratacak,
2)Bu pencereye ekrada bir yer ayarlayacak
3)En ve Boyunu tespit edecek
4)Pencerenin adını koyacak
5)Mesajı göstermek için bir etiket yaratacak
6)Bu etikete bir yer boyut verecek
7)mesajımızıda bu etiketin içine koyacağız

Kod:
eBibleMainWindow::eBibleMainWindow(): eWindow(1){ // dialogumuzu 100.100 poziyonuna ***ürelim cmove(ePoint(100, 100)); // ... x ve y boyutlarını verelim. cresize(eSize(520, 376)); // başlık koyalım. setText("Enigma Bible Lesson 1: Window"); // metni göstermek için bir etiket yaratalım. label=new eLabel(this); // konumlandıralım label->move(ePoint(50, 50)); // boyutlandıralım label->resize(eSize(200, 100)); // metni verelim label->setText("Hello World !!");}
ww.uydulife.tv
Eklenmiş Dosya Eklentiyi Görebilmek için Konuya Teşekkürler Yazıp Sayfayı F5 İle Yenileyiniz...
__________________

La İlahe İllallah kalbimizi karartma.
La İlahe İllallah rızkımızı daraltma.
La İlahe İllallah bizi imansız bırakma.

La İlahe İllallah kabirde bizi bunaltma.
La İlahe İllallah kendi kapından başka kapı aratma.
La İlahe İllallah kendine kul habibine ümmet olmaktan bizi biran bile ayırma.
La İlahe İllallah hesapsız sabır ver.
La İlahe İllallah azapsız kabir ver bizlere Allah'ım…
AMİN AMİN AMİN


ASALET BOYDA DEĞİL, SOYDA OLMALI
İNCELİK BELDE DEĞİL, DİLDE OLMALI
DOĞRULUK SÖZDE DEĞİL, ÖZDE OLMALI
GÜZELLİK YÜZDE DEĞİL, YÜREKTE OLMALI..

yergun_002 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 19.11.10, 18:42   #2
hates35
YENİ ÜYE
 
hates35 - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 7708
Üyelik tarihi: 19.11.2010
Mesajlar: 1
Konular: 0
Rep Bilgisi
Rep Gücü : 0
Rep Puanı : 10
Rep Seviyesi : hates35 is on a distinguished road
Aktivite
Level: 1 [♥ Bé-Yêu ♥]
Paylaşım: 0 / 0
Güç: 0 / 0
Tecrübe: 0%

İletişim
Standart tşk

paylaşım için teşekkürler.
ww.uydulife.tv
hates35 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 18.05.11, 17:19   #3
yenıkan
YENİ ÜYE
 
yenıkan - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 760
Üyelik tarihi: 11.04.2009
Nereden: 2
Yaşım: 56
Mesajlar: 40
Konular: 0
Rep Bilgisi
Rep Gücü : 0
Rep Puanı : 10
Rep Seviyesi : yenıkan is on a distinguished road
Aktivite
Level: 5 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 0 / 102
Güç: 13 / 4714
Tecrübe: 11%

İletişim
Standart

teşekürler
ww.uydulife.tv
yenıkan isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 01.06.11, 17:15   #4
albayceyhun
KIDEMLİ ÜYE
 
albayceyhun - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 3679
Üyelik tarihi: 18.02.2010
Nereden: tekirdağ
Mesajlar: 152
Konular: 0
Rep Bilgisi
Rep Gücü : 15
Rep Puanı : 20
Rep Seviyesi : albayceyhun is on a distinguished road
Aktivite
Level: 11 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 0 / 259
Güç: 50 / 11259
Tecrübe: 38%

İletişim
Standart

teşekürler
ww.uydulife.tv
albayceyhun isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 26.12.11, 22:41   #5
ifa888
YENİ ÜYE
 
ifa888 - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 9298
Üyelik tarihi: 26.01.2011
Mesajlar: 20
Konular: 0
Rep Bilgisi
Rep Gücü : 0
Rep Puanı : 10
Rep Seviyesi : ifa888 is on a distinguished road
Aktivite
Level: 3 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 0 / 55
Güç: 6 / 2236
Tecrübe: 20%

İletişim
Standart

teşekürler
ww.uydulife.tv
ifa888 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Eski 13.08.12, 14:58   #6
Eniqma27
YENİ ÜYE
 
Eniqma27 - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 2055
Üyelik tarihi: 24.11.2009
Mesajlar: 1
Konular: 0
Rep Bilgisi
Rep Gücü : 0
Rep Puanı : 10
Rep Seviyesi : Eniqma27 is on a distinguished road
Aktivite
Level: 1 [♥ Bé-Yêu ♥]
Paylaşım: 0 / 0
Güç: 0 / 0
Tecrübe: 0%

İletişim
Standart

paylaşım için teşekkürler
ww.uydulife.tv
Eniqma27 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
Yeni Konu aç Cevapla

Bookmarks


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Yeni Mesaj yazma yetkiniz Aktif değil dir.
Mesajlara Cevap verme yetkiniz aktif değil dir.
Eklenti ekleme yetkiniz Aktif değil dir.
Kendi Mesajınızı değiştirme yetkiniz Aktif değildir dir.

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı

Gitmek istediğiniz klasörü seçiniz


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Dizayn ve Kurulum : Makinist
Forum SEO by Zoints

E-Marine Education | Vbulletin | Tosfed |
www.bilgivadisi.biz   www.bilgivadisi.biz