..:: BİLGİ VADİSİ ::.. BİLGİ VADİSİ RSS   YOUTUBE   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 ALICISI BÖLÜMÜ > DREAMBOX DESTEK > Dreambox Plugins
Google

 

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

Yeni Konu aç Cevapla
 
Seçenekler Stil
Eski 29.10.10, 05:37   #1
yergun_002
Photobucket
 
yergun_002 - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
 
Üye Numarası: 3
Üyelik tarihi: 16.07.2008
Nereden: adıyaman
Mesajlar: 3.458
Konular: 1545
Ettiği Teşekkür: 1.363
Aldığı Teşekkür: 2.578
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: 45 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 221 / 1107
Güç: 1152 / 12493
Tecrübe: 31%

İ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 !!");}
Eklenmiş Dosya
Dosya tipi: zip lesson1.zip (7,3 KB (Kilobyte), 3x kez indirilmiştir)
__________________


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 şu anda  online konumundadır   Paylaş Alıntı ile Cevapla
yergun_002 Adlı üyeye bu mesajı için Teşekkür Eden 4 Kişi:
albayceyhun (01.06.11), cango (29.01.11), dursun55 (18.05.11), makinist (18.05.11)
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
Ettiği Teşekkür: 3
Aldığı Teşekkür: 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.
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: 44
Mesajlar: 38
Konular: 0
Ettiği Teşekkür: 1
1 Mesaja Teşekkür Edildi
Rep Bilgisi
Rep Gücü : 0
Rep Puanı : 10
Rep Seviyesi : yenıkan is on a distinguished road
Aktivite
Level: 4 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 0 / 98
Güç: 12 / 899
Tecrübe: 94%

İletişim
Standart

teşekürler
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: 154
Konular: 0
Ettiği Teşekkür: 428
Aldığı Teşekkür: 8
Rep Bilgisi
Rep Gücü : 3
Rep Puanı : 20
Rep Seviyesi : albayceyhun is on a distinguished road
Aktivite
Level: 11 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
Paylaşım: 0 / 261
Güç: 51 / 1733
Tecrübe: 46%

İletişim
Standart

teşekürler
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: 25
Konular: 0
Ettiği Teşekkür: 2
Aldığı Teşekkür: 6
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 / 68
Güç: 8 / 265
Tecrübe: 73%

İletişim
Standart

teşekürler
ifa888 isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla
ifa888 Kullanıcısına Bu Mesajı İçin Teşekkür Edenler:
albayceyhun (27.12.11)
Yeni Konu aç Cevapla


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

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.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Dizayn ve Kurulum : Makinist
Forum SEO by Zoints

Türk Denizcilik Portalı | UyduLife | Vbulletin | Tosfed | Alexa
www.bilgivadisi.biz   www.bilgivadisi.biz