LINUX.ORG.RU
ФорумTalks

Регулятор громкости OSS в трей (Python/GTK2)


0

1

Главное: http://al-moscwich.tk/2011/255

AUR: https://aur.archlinux.org/packages.php?ID=52465

Сорец - tar.gz.
PKG.tar.xz - арчепакет.
Debian Package - бунтупакет (на дебиане тоже можно попробовать).
PKGBUILD - арчеконфиг (для сборки в арче):

pkgdesc="OSS volume tray control"
pkgname=oss-traycontrol
pkgver=0.21
pkgrel=1
arch=(i686 x86_64)
url="http://www.al-moscwich.tk/2011/255"
license="Creative Commons Attribution 3.0 Unported"
depends=('pygtk' 'python2' 'oss')
conflicts=('oss-volume-tray-control', 'ossvol', 'oss-traycontrol')
replaces=('oss-volume-tray-control', 'ossvol', 'oss-traycontrol')
source=('http://www.al-moscwich.tk/wp-content/uploads/2011/09/oss-traycontrol-0-21.tar.gz')
md5sums=('5249ef8cb3c49ffed73f62cac30bacc8')
package() {
  cp -r ${srcdir}/usr ${pkgdir}
}

Критикуйте. И подскажите по быдлокоду, пожалуйста.



Последнее исправление: moscwich (всего исправлений: 6)

Поимел бы совесть --- запостил бы скриншот.

Хоть увидеть бы что такое OSS и линаукс.

Ygor ★★★★★
()
Ответ на: комментарий от Raving_Zealot

> Си

ниасилил, да и простые вещи как-раз лучше на скриптах писать

код регулятора громкости страшноват, имхо


А по этому поводу пожалуйста поподробнее.

moscwich
() автор топика
Ответ на: комментарий от Raving_Zealot

>На божественном Си

А то ползунок тормозит, ага.

на Common Lisp.

Тоньше надо, не зачет.

По сабжу:

Раз тебе надо, значит пусть будет. Лицензия странная)

CrossFire ★★★★★
()
Ответ на: комментарий от devl547

> на питоне? да вы, батенька, извращенец.

Поясни.

Ну и если че, я таки быдлокодер и кроме php, бейсика и основ питона ниче не знаю.

moscwich
() автор топика
Ответ на: комментарий от devl547

>>да и простые вещи как-раз лучше на скриптах писать

на питоне? да вы, батенька, извращенец.

а таки на чем?

seed_stil ★★
()
Ответ на: комментарий от CrossFire

> И чем это GPL убогий?

А ты его почитай ))) Бред, просто бред, бред нездорового волосатого старикашки.

moscwich
() автор топика
Ответ на: комментарий от moscwich

>А ты его почитай ))) Бред, просто бред, бред нездорового волосатого старикашки.

За вами уже выехали.

CrossFire ★★★★★
()
Ответ на: комментарий от stevejobs

> Выложи сорец на гитхаб?

Может на сорсфрог таки?

moscwich
() автор топика
Ответ на: комментарий от stevejobs

А сорец то небольшой. Вот все, вобщем-то:

#!/usr/bin/python2.7
# -*- coding: utf-8 -*-

import ConfigParser
import gtk
import re
import os
import commands

mxr = "vmix0-outvol "
cfgadr = os.getenv('HOME')+'/.config/ov.prefs'

def getmxr ():
     global mxr
     if os.access(cfgadr, os.F_OK):
	     config = ConfigParser.ConfigParser()
	     config.read(cfgadr)
	     mxr = config.get('main','channel')+" "
     if re.match('Value of mixer control (.*) is currently set to (.*).. \(dB\)', commands.getoutput('ossmix '+mxr)) != None:
	     vol=int(re.match('Value of mixer control (.*) is currently set to (.*).. \(dB\)', commands.getoutput('ossmix '+mxr)).group(2))
     else:
	     vol=0
     vscale.set_value(25-vol)

def newcfg ():
     config = ConfigParser.RawConfigParser()
     config.add_section('main')
     config.set('main', 'channel', mxr)
     with open(cfgadr, 'w') as configfile: config.write(configfile)

def prefs (itemprefs):
     global cb, prfw
     cb = gtk.combo_box_entry_new_text()
     cb.append_text (mxr)
     cb.append_text ('vmix0-outvol')
     cb.set_border_width(4)
     cb.set_active(0)
     cb.connect('changed', chcb)
     cb.show ()
     
     prfw = gtk.Window()
     prfw.set_border_width(10)
     prfw.add(cb)
     prfw.set_title('Channel:')
     prfw.show ()
     prfw.move(50,50)
     
def ext(item): exit()

def vol(widget):
     vol = str(25-widget.get_value())
     os.system ("ossmix "+mxr+vol)

def swh(icon):
  if not window.get_visible():
	  window.show()
  else:
      window.hide()

def set_pos (w, icon):
      r = gtk.status_icon_position_menu(gtk.Menu(), icon)
      w.move(r[0], r[1])

def oxms (item): os.system('ossxmix &')

def menu(icon, event_button, event_time):
      itemprefs = gtk.MenuItem('Настройки')
      itemprefs.connect('activate', prefs)
      itemprefs.show()

      itemext = gtk.MenuItem('Выход')
      itemext.connect('activate', ext)
      itemext.show()

      itemoxm = gtk.MenuItem('Запустить OSSXMix')
      itemoxm.connect('activate', oxms)
      itemoxm.show()

      menu = gtk.Menu()
      menu.append(itemoxm)
      menu.append(itemprefs)
      menu.append(itemext)
      menu.popup(None, None, gtk.status_icon_position_menu, event_button,event_time, icon)
 
def chcb (cb):
     global mxr
     mxr = cb.get_active_text()
     print "channel = "+mxr
     newcfg()
     getmxr()

vscale = gtk.VScale()
vscale.set_draw_value(False)
vscale.set_range(0, 25)
vscale.connect("value-changed", vol)
vscale.set_size_request(15, 150)
getmxr()
vscale.show()

icon = gtk.status_icon_new_from_file(os.path.dirname(__file__)+"/icon.svg")
icon.connect('activate', swh)

window = gtk.Window(gtk.WINDOW_POPUP)
window.set_default_size (25, 160)
window.connect('show', set_pos, icon)
icon.connect('popup-menu', menu)
window.add(vscale)

gtk.main()

moscwich
() автор топика
Ответ на: комментарий от moscwich

И вместо того чтоб запостить баг и сделать патч, ты изобрёл свой собственный никому ненужный велосипед.

daemonpnz ★★★★★
()
Ответ на: комментарий от daemonpnz

Еще чтобы потренироваться с питном и PyGTK.

moscwich
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.