On Tue, 24 Jun 2003, Joern Nettingsmeier wrote:
> Jaroslav Kysela wrote:
> >>
> >>other people might propose XML. then it becomes to a question whether
> >>alsa-lib should rely on other libs...
> >
> >
> > I think that XML is too overkill for our purposes.
>
> true if you only consider alsa. but on most systems, libxml2 is there
> anyway. <underwear type="asbestos">and imvho xml is less a matter of
> taste than lisp.</underwear> and xml is way easier to handle in other
> contexts (i'm thinking of auto.configuration stuff etc.)
> otoh, the embedded guys will probably not like it, but then memory is
> becoming cheaper by the minute, and its additional size will be a moot
> point in the very near future.
Note that I do not want to squash the current configuration syntax at all.
I only want to extend the parsing and runtime evaluation of given
configuration, because we need to describe complex things. I really think
that XML is not a good choice at the moment for this job and if we use
XML, we must define some language as well.
I am trying to rewrite some runtime evaluation parts of alsa.conf:
Original code:
# pre-load the configuration files
@hooks [
{
func load
files [
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]
New code:
# pre-load the configuration files
@elisp "
(load-conf \"/etc/asound.conf\" 0)
(load-conf \"~/.asoundrc\" 0)
"
I think that it is much readable, is not?
More complicated example (original code as first):
# load card-specific configuration files (on request)
[EMAIL PROTECTED] [
{
func load
files [
{
@func concat
strings [
{ @func datadir }
"/cards/aliases.conf"
]
}
]
}
{
func load_for_all_cards
files [
{
@func concat
strings [
{ @func datadir }
"/cards/"
{ @func private_string }
".conf"
]
}
]
errors false
}
]
New code:
# load card-specific configuration files (on request)
[EMAIL PROTECTED] "
(load-conf (concat (data-dir) \"/cards/aliases.conf\") 0)
(defun load-conf-all (card)
(when (> card -1)
((load-conf (concat (data-dir) "/cards/\" (driver card)
\".conf\") 0)
(setq card (next-card card)))
)
)
(load_conf_all (next-card -1))
"
There is much better view, what we need:
1) loops
2) conditions
Also, in this way, we can define only primitives and describe the main
loops in lisp which is more universal.
Note: There may be a syntax error, because I am using lisp for the
first time.
Jaroslav
-----
Jaroslav Kysela <[EMAIL PROTECTED]>
Linux Kernel Sound Maintainer
ALSA Project, SuSE Labs
-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel