summaryrefslogtreecommitdiff
path: root/xpp/utils/zconf/Zaptel/Hardware.pm
blob: 39305fb3e76ed0ac7e5301d5f41487755abdad78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package Zaptel::Hardware;
#
# Written by Oron Peled <oron@actcom.co.il>
# Copyright (C) 2007, Xorcom
# This program is free software; you can redistribute and/or
# modify it under the same terms as Perl itself.
#
# $Id$
#
use strict;
use Zaptel::Hardware::USB;
use Zaptel::Hardware::PCI;

my @zaptel_devices;

sub device_detected($$) {
	my $dev = shift || die;
	my $name =  shift || die;
	warn "Device '$name' already known\n"
		if grep { $_->hardware_name eq $name } @zaptel_devices;
	push(@zaptel_devices, $dev);
}

sub device_removed($) {
	my $dev = shift || die;
	my $name = $dev->hardware_name;
	die "Missing zaptel device hardware name" unless $name;
	@zaptel_devices = grep { $_->hardware_name ne $name } @zaptel_devices;
}

sub devices($) {
	my $pack = shift || die;

	return @zaptel_devices;
}

sub scan_hardware($) {
	my $pack = shift || die;

	Zaptel::Hardware::USB->scan_devices;
	Zaptel::Hardware::PCI->scan_devices;
}

1;