AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_MPG123],[false])])
PKG_CHECK_MODULES([SHOUT], [shout >= 2.2.2],[
- AM_CONDITIONAL([HAVE_SHOUT],[true])],[
+ AM_CONDITIONAL([HAVE_SHOUT],[true])
+ SHOUT_VERSION="`$PKG_CONFIG --modversion shout`"
+ SHOUT_MAJOR_VERSION="`echo $SHOUT_VERSION | cut -d. -f1`"
+ SHOUT_MINOR_VERSION="`echo $SHOUT_VERSION | cut -d. -f2`"
+ SHOUT_PATCH_VERSION="`echo $SHOUT_VERSION | cut -d. -f3`"
+ test -n "$SHOUT_PATCH_VERSION" || SHOUT_PATCH_VERSION=0
+ AC_MSG_NOTICE([SHOUT version: $SHOUT_VERSION])
+ AC_MSG_NOTICE([SHOUT major version: $SHOUT_MAJOR_VERSION])
+ AC_MSG_NOTICE([SHOUT minor version: $SHOUT_MINOR_VERSION])
+ AC_MSG_NOTICE([SHOUT patch version: $SHOUT_PATCH_VERSION])
+ AC_SUBST([SHOUT_VERSION])
+ AC_SUBST([SHOUT_MAJOR_VERSION])
+ AC_SUBST([SHOUT_MINOR_VERSION])
+ AC_SUBST([SHOUT_PATCH_VERSION])
+ ],[
AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SHOUT],[false])])
mp3lame=false
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_shout_shutdown);
SWITCH_MODULE_DEFINITION(mod_shout, mod_shout_load, mod_shout_shutdown, NULL);
+#define CHECK_SHOUT_MIN_VERSION(major, minor, patch) \
+ (SHOUT_MAJOR_VERSION > major || \
+ (SHOUT_MAJOR_VERSION == major && SHOUT_MINOR_VERSION > minor) || \
+ (SHOUT_MAJOR_VERSION == major && SHOUT_MINOR_VERSION == minor && SHOUT_PATCH_VERSION >= patch))
+
static char *supported_formats[SWITCH_MAX_CODECS] = { 0 };
static struct {
goto error;
}
+#if (CHECK_SHOUT_MIN_VERSION(2, 4, 6))
+ if (shout_set_meta(context->shout, SHOUT_META_URL, "http://www.freeswitch.org") != SHOUTERR_SUCCESS) {
+#else
if (shout_set_url(context->shout, "http://www.freeswitch.org") != SHOUTERR_SUCCESS) {
+#endif
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error setting name: %s\n", shout_get_error(context->shout));
goto error;
}
+#if (CHECK_SHOUT_MIN_VERSION(2, 4, 6))
+ if (shout_set_meta(context->shout, SHOUT_META_DESCRIPTION, "FreeSWITCH mod_shout Broadcasting Module") != SHOUTERR_SUCCESS) {
+#else
if (shout_set_description(context->shout, "FreeSWITCH mod_shout Broadcasting Module") != SHOUTERR_SUCCESS) {
+#endif
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error setting description: %s\n", shout_get_error(context->shout));
goto error;
}
goto error;
}
+#if (CHECK_SHOUT_MIN_VERSION(2, 4, 6))
+ if (shout_set_content_format(context->shout, SHOUT_FORMAT_MP3, SHOUT_USAGE_AUDIO, NULL) != SHOUTERR_SUCCESS) {
+#else
if (shout_set_format(context->shout, SHOUT_FORMAT_MP3) != SHOUTERR_SUCCESS) {
+#endif
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error setting format: %s\n", shout_get_error(context->shout));
goto error;
}
switch (col) {
case SWITCH_AUDIO_COL_STR_TITLE:
+#if (CHECK_SHOUT_MIN_VERSION(2, 4, 6))
+ if (shout_set_meta(context->shout, SHOUT_META_NAME, string) == SHOUTERR_SUCCESS) {
+#else
if (shout_set_name(context->shout, string) == SHOUTERR_SUCCESS) {
+#endif
status = SWITCH_STATUS_SUCCESS;
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error setting name: %s\n", shout_get_error(context->shout));
}
break;
case SWITCH_AUDIO_COL_STR_COMMENT:
+#if (CHECK_SHOUT_MIN_VERSION(2, 4, 6))
+ if (shout_set_meta(context->shout, SHOUT_META_URL, string) == SHOUTERR_SUCCESS) {
+#else
if (shout_set_url(context->shout, string) == SHOUTERR_SUCCESS) {
+#endif
status = SWITCH_STATUS_SUCCESS;
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error setting name: %s\n", shout_get_error(context->shout));
}
break;
case SWITCH_AUDIO_COL_STR_ARTIST:
+#if (CHECK_SHOUT_MIN_VERSION(2, 4, 6))
+ if (shout_set_meta(context->shout, SHOUT_META_DESCRIPTION, string) == SHOUTERR_SUCCESS) {
+#else
if (shout_set_description(context->shout, string) == SHOUTERR_SUCCESS) {
+#endif
status = SWITCH_STATUS_SUCCESS;
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error setting name: %s\n", shout_get_error(context->shout));