[Gelistirici] [Uludag-commits] r14504 - trunk/staj-projeleri/zorg/zorg

Fatih Aşıcı fatih.asici at gmail.com
23 Haz 2007 Cmt 22:45:05 EEST


23 Haz 2007 Cts tarihinde, S.Çağlar Onur şunları yazmıştı: 
> 23 Haz 2007 Cts tarihinde, uludag-commits at pardus.org.tr şunları yazmıştı:
> > Author: fatih
> > Date: Sat Jun 23 19:13:39 2007
> > New Revision: 14504
> >
> > Modified:
> >    trunk/staj-projeleri/zorg/zorg/ddc.c
> > Log:
> > DDC module is ready
>
> Ne yaptığını/nasıl yapacağını v.s kısaca anlatsana geliştirici listesine,
> herkesin haberi olsun :)

zorg işlevlerini yeni parser ile çalışabilecek hale getirmeye çalışıyorum. 
Bunu yaparken zorg'un çok kalabalık bir hale döndüğünü görünce modüllere 
ayırmaya karar verdim. Gerekirse bu modülleri yapılandırma arayüzlerini 
yazarken kullanabiliriz.

zorg bildiğiniz gibi şu an monitör bilgisini edinebilmek için algılama 
sırasında ddcxinfos uygulamasını çağırıp çıktısını okuyor. Ama bu uygulama 
tüm edid bilgisini yansıtmıyor. Hem edid'den daha fazla bilgi koparabilmek 
hem de bir programı çalıştırıp çıktısını parse etmeye çalışmak yerine temiz 
bir şekilde edid bilgisine ulaşmak için python modülü yazmaya karar verdim. 
Yukarda gördüğünüz commit ile modül tamamlandı sayılır. Modül real-mode 
çağrılarını libx86 kitaplığı ile yapıyor (Bu paket de 2007 deposuna alınırsa 
iyi olur. Şu an develde kendisi). Ayrıca bu modülde adapter numarası 
verilebildiği için hangi monitörün probe edileceği belirtilebiliyor. 
Aşağıdaki gibi basit bir kullanımı var.

In [1]: from zorg import ddc

In [2]: ddc.query(1)
Out[2]:
{'detailed_timing': {'ascii_string': '',
                     'horizontal_active': 256,
                     'horizontal_blanking': 1432,
                     'horizontal_image_size': 338,
                     'hsync_offset': 48,
                     'hsync_pulse_width': 112,
                     'hsync_range': (30, 83),
                     'name': 'Philips 170C',
                     'pixel_clock': 108000000,
                     'serial_number': 'BZ2064232908',
                     'vertical_active': 0,
                     'vertical_blanking': 1066,
                     'vertical_image_size': 270,
                     'vref_range': (56, 76),
                     'vsync_offset': 3,
                     'vsync_pulse_width': 1},
 'dpms_active_off': True,
 'dpms_rgb': True,
 'dpms_standby': False,
 'dpms_suspend': False,
 'eisa_id': 'PHL0848',
 'established_timings': ((720, 400, 70),
                         (720, 400, 88),
                         (640, 480, 60),
                         (640, 480, 67),
                         (640, 480, 72),
                         (640, 480, 75),
                         (800, 600, 60),
                         (800, 600, 72),
                         (800, 600, 75),
                         (832, 624, 75),
                         (1024, 768, 70),
                         (1024, 768, 75),
                         (1280, 1024, 75)),
 'gamma': 2.2000000000000002,
 'input_composite_sync': False,
 'input_digital': True,
 'input_separate_sync': False,
 'input_sync_on_green': False,
 'max_size_horizontal': 34,
 'max_size_vertical': 27,
 'revision': 3,
 'serial_number': 329089,
 'standard_timings': ((1280, 1024, 60), (1152, 864, 75)),
 'version': 1,
 'week': 42,
 'year': 2006}

Bu arada bu modülü deneyimli biri incelerse iyi olur :) Bu refcount ile ilgili 
atladığım birşey olabilir.

Depoda xman.py adıyla bulunan betik şu an zorga çok benziyor. İlerde bu betik 
Çomar metodlarını taşıyacak ve yine zorg adında olan komut satırı aracı da 
Çomar üzerinden çalışacak. Tabi yapmayı düşündüğümüz diğer arayüzler de 
(grafik arayüz ve ncurses benzeri (muhtemelen urwid) altyapıyı kullanan 
arayüz) aynı şekilde.

Çomar betiği, çok kartlı ve çok monitörlü sistemlerle ilgili desteği de 
bulunduracak şekilde olmasını düşündüğüm için hazır hale gelmesi biraz zaman 
alabilir. Betiğin yapısı bu aralar köklü değişiklikler geçirebilir. Henüz 
karar kıldığım net bir altyapı yok. Her sürücünün yoğurt yiyişi farklı olduğu 
için biraz daha inceleme yapmam ve her bir sürücü için istenen yapılandırmayı 
sağlayacak temiz bir model bulmam gerekiyor.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi