[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