KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/21572/root/usr/share/system-config-soundcard/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/21572/root/usr/share/system-config-soundcard/soundcardBackendKudzu.py
## soundcardBackendKudzu.py - Contains the backend code needed for system-config-soundcard
## Copyright (C) 2002, 2003 Red Hat, Inc.
## Copyright (C) 2002, 2003 Brent Fox <bfox@redhat.com>
## Copyright (C) 2004, 2005 Bastien Nocera <hadess@hadess.net>

## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.

## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.

## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

import string
import kudzu
import os
import sys

import soundcardBackendSoundCard

##
## I18N
##
from rhpl.translate import _, N_
import rhpl.translate as translate
translate.textdomain ("system-config-soundcard")


class soundcardBackendKudzu:
    def __init__(self):
    
        self.doDebug = False
        
    def destroy(self, args):
        return

    # ------------------------------------------------------------------------
    # Probe routines
    # ------------------------------------------------------------------------
    def read_driver_list(self):
        try:
            fd = open('/proc/asound/modules', 'r')
            list = fd.readlines()
            fd.close()
        except:
            return []

        drivers = []
        for line in list:
            tmp = line.split()
            drivers.append([int(tmp[0]), string.replace(tmp[1],'_','-')])
    
        return drivers

    def find_driver(self, list, driver):
        for rec in list:
            if rec[1] == driver:
                return rec[0]

        return None

    def probeCards(self, default_card, default_device, card_list, card_max):
    
        driverList = self.read_driver_list()
        list = kudzu.probe(kudzu.CLASS_AUDIO, kudzu.BUS_PCI | kudzu.BUS_MACIO,
                           kudzu.PROBE_ALL)
                           
        if self.doDebug :
            print "------- kudzu -----------"
            print list
            print "------- ***** -----------"
        
        cardList = []

        for card in list:
            #Let's go through the list of cards.  If the driver is 'unknown',
            #don't put the card in the list.
            if card.driver != "unknown":
                card.position = self.find_driver(driverList,card.driver)
                cardList.append(card)

        # Same thing with ISA cards
        list = kudzu.probe(kudzu.CLASS_AUDIO, kudzu.BUS_ISAPNP, kudzu.PROBE_ALL)
        for card in list:
            if card.driver != "unknown":
                card.position = self.find_driver(driverList,card.driver)
                cardList.append(card)

        # Only add USB audio devices that have snd-usb-audio as the driver
        list = kudzu.probe(kudzu.CLASS_AUDIO, kudzu.BUS_USB, kudzu.PROBE_ALL)
        for card in list:
            if card.driver == "snd-usb-audio":
                card.position = self.find_driver(driverList,card.driver)
                cardList.append(card)

        # Same with Mac sound devices
        list = kudzu.probe(kudzu.CLASS_AUDIO, kudzu.BUS_MACIO, kudzu.PROBE_ALL)
        for card in list:
             if card.driver == "snd_powermac":
                card.position = self.find_driver(driverList,card.driver)
                cardList.append(card)
        
        free_cards = []
        
        for tmp in cardList:
        
            card = soundcardBackendSoundCard.soundCard(tmp.position)
                        
            device, module, description = tmp
            if (string.count(description,"|") == 1):
                maker, model = string.split(description, "|")
            elif (string.count(description," ") > 0):
                maker, model = string.split(description, " ", 1)
            else:
                maker = description
                model = description
                
            if self.doDebug:
                print "------------ Kudzu -------------"
                print card
                print "------------ tmp   -------------"
                print tmp
                print "------------ description -------------"
                print description
                print "------------ ***** -------------"           
            
            card.active = True
            card.driver = module
            card.type = card.maker = maker
            card.model = model
            
            # Card configuration        
            card.device_list = card.loadCardDevices()
                        
            if card.index != None and card.index < card_max :
                card_list[card.index] = card
            else:
                free_cards.append(card)
        
        card_list[default_card].default_device = default_device
        
        for num in range(card_max-1):
        
            if free_cards == []:
                break;
            
            if not card_list[num].active:
                card_list[num] = free_cards[0]
                card_list[num].index = num
                del free_cards[0]                

        return card_list

Anon7 - 2021