[svn-commits] russell: branch group/addons-merge r204391 - in /team/group/addons-merge: ./ ...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Tue Jun 30 08:31:11 CDT 2009


Author: russell
Date: Tue Jun 30 08:31:08 2009
New Revision: 204391

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=204391
Log:
add addons dir and a module

Added:
    team/group/addons-merge/README-addons.txt   (with props)
    team/group/addons-merge/addons/
    team/group/addons-merge/addons/Makefile   (with props)
    team/group/addons-merge/addons/app_saycountpl.c   (with props)
Modified:
    team/group/addons-merge/Makefile

Modified: team/group/addons-merge/Makefile
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/addons-merge/Makefile?view=diff&rev=204391&r1=204390&r2=204391
==============================================================================
--- team/group/addons-merge/Makefile (original)
+++ team/group/addons-merge/Makefile Tue Jun 30 08:31:08 2009
@@ -293,7 +293,7 @@
 #	value directly to ASTCFLAGS
 ASTCFLAGS+=$(MALLOC_DEBUG)$(OPTIONS)
 
-MOD_SUBDIRS:=channels pbx apps codecs formats cdr cel bridges funcs tests main res $(LOCAL_MOD_SUBDIRS)
+MOD_SUBDIRS:=addons channels pbx apps codecs formats cdr cel bridges funcs tests main res $(LOCAL_MOD_SUBDIRS)
 OTHER_SUBDIRS:=utils agi
 SUBDIRS:=$(OTHER_SUBDIRS) $(MOD_SUBDIRS)
 SUBDIRS_INSTALL:=$(SUBDIRS:%=%-install)

Added: team/group/addons-merge/README-addons.txt
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/addons-merge/README-addons.txt?view=auto&rev=204391
==============================================================================
--- team/group/addons-merge/README-addons.txt (added)
+++ team/group/addons-merge/README-addons.txt Tue Jun 30 08:31:08 2009
@@ -1,0 +1,1 @@
+TODO: explain addons licensing issues...

Propchange: team/group/addons-merge/README-addons.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: team/group/addons-merge/README-addons.txt
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: team/group/addons-merge/README-addons.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: team/group/addons-merge/addons/Makefile
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/addons-merge/addons/Makefile?view=auto&rev=204391
==============================================================================
--- team/group/addons-merge/addons/Makefile (added)
+++ team/group/addons-merge/addons/Makefile Tue Jun 30 08:31:08 2009
@@ -1,0 +1,20 @@
+#
+# Asterisk -- A telephony toolkit for Linux.
+#
+# Makefile for Add-on Modules
+#
+# Copyright (C) 2009, Digium, Inc.
+#
+# This program is free software, distributed under the terms of
+# the GNU General Public License
+#
+
+-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
+
+MODULE_PREFIX=app bridge cdr cel chan codec format func pbx res test
+MENUSELECT_CATEGORY=Addons
+MENUSELECT_DESCRIPTION=Add-ons (README-addons.txt)
+
+all: _all
+
+include $(ASTTOPDIR)/Makefile.moddir_rules

Propchange: team/group/addons-merge/addons/Makefile
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: team/group/addons-merge/addons/Makefile
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: team/group/addons-merge/addons/Makefile
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: team/group/addons-merge/addons/app_saycountpl.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/addons-merge/addons/app_saycountpl.c?view=auto&rev=204391
==============================================================================
--- team/group/addons-merge/addons/app_saycountpl.c (added)
+++ team/group/addons-merge/addons/app_saycountpl.c Tue Jun 30 08:31:08 2009
@@ -1,0 +1,136 @@
+/*
+ * Asterisk -- An open source telephony toolkit.
+ *
+ * Copyright (C) 2004, Andy Powell & TAAN Softworks Corp. 
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/*!
+ * \file
+ * \brief Say Polish counting words
+ * \author Andy Powell
+ */
+
+/*** MODULEINFO
+	<defaultenabled>no</defaultenabled>
+ ***/
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
+#include "asterisk/file.h"
+#include "asterisk/logger.h"
+#include "asterisk/channel.h"
+#include "asterisk/pbx.h"
+#include "asterisk/module.h"
+#include "asterisk/lock.h"
+#include "asterisk/app.h"
+
+/*** DOCUMENTATION
+	<application name="SayCountPL" language="en_US">
+		<synopsis>
+			Say Polish counting words.
+		</synopsis>
+		<syntax>
+			<parameter name="word1" required="true" />
+			<parameter name="word2" required="true" />
+			<parameter name="word5" required="true" />
+			<parameter name="number" required="true" />
+		</syntax>
+		<description>
+			<para>Polish grammar has some funny rules for counting words. for example 1 zloty,
+			2 zlote, 5 zlotych. This application will take the words for 1, 2-4 and 5 and
+			decide based on grammar rules which one to use with the number you pass to it.</para>
+			<para>Example: SayCountPL(zloty,zlote,zlotych,122) will give: zlote</para>
+		</description>
+	</application>
+
+ ***/
+static const char app[] = "SayCountPL";
+
+static int saywords(struct ast_channel *chan, char *word1, char *word2, char *word5, int num)
+{
+	/* Put this in a separate proc because it's bound to change */
+	int d = 0;
+
+	if (num > 0) {
+		if (num % 1000 == 1) {
+			ast_streamfile(chan, word1, chan->language);
+			d = ast_waitstream(chan,"");
+		} else if (((num % 10) >= 2) && ((num % 10) <= 4 ) && ((num % 100) < 10 || (num % 100) > 20)) {
+			ast_streamfile(chan, word2, chan->language);
+			d = ast_waitstream(chan, "");
+		} else {
+			ast_streamfile(chan, word5, chan->language);
+			d = ast_waitstream(chan, "");
+		}
+	}
+
+	return d;
+}
+
+
+static int sayword_exec(struct ast_channel *chan, const char *data)
+{
+	int res = 0;
+	char *s;
+	int inum;
+	AST_DECLARE_APP_ARGS(args,
+		AST_APP_ARG(word1);
+		AST_APP_ARG(word2);
+		AST_APP_ARG(word5);
+		AST_APP_ARG(num);
+	);
+
+	if (!data) {
+		ast_log(LOG_WARNING, "SayCountPL requires 4 arguments: word-1,word-2,word-5,number\n");
+		return -1;
+	}
+
+	s = ast_strdupa(data);
+
+	AST_STANDARD_APP_ARGS(args, s);
+
+	/* Check to see if params passed */
+	if (!args.word1 || !args.word2 || !args.word5 || !args.num) {
+		ast_log(LOG_WARNING, "SayCountPL requires 4 arguments: word-1,word-2,word-3,number\n");
+		return -1;
+	}
+
+	if (sscanf(args.num, "%d", &inum) != 1) {
+		ast_log(LOG_WARNING, "'%s' is not a valid number\n", args.num);
+		return -1;
+	}
+
+	/* do the saying part (after a bit of maths) */
+
+	res = saywords(chan, args.word1, args.word2, args.word5, inum);
+
+	return res;
+}
+
+static int unload_module(void)
+{
+	return ast_unregister_application(app);
+}
+
+static int load_module(void)
+{
+	int res;
+
+	res = ast_register_application_xml(app, sayword_exec);
+
+	return res ? AST_MODULE_LOAD_DECLINE : AST_MODULE_LOAD_SUCCESS;
+}
+
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Say polish counting words");

Propchange: team/group/addons-merge/addons/app_saycountpl.c
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: team/group/addons-merge/addons/app_saycountpl.c
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: team/group/addons-merge/addons/app_saycountpl.c
------------------------------------------------------------------------------
    svn:mime-type = text/plain




More information about the svn-commits mailing list