+############################################################# error2.h
+AC_DEFUN([define_safe_error_enums],
+[
+ exe=""
+ for i in $all_executables; do
+# eval echo checking if $1 is linked into $i
+ for j in $(eval echo \$${i}_errlist_objs); do
+ if test $j = $1; then
+ exe="$exe $i"
+ break;
+ fi
+ done
+ done
+ #echo "$1 gets linked into $exe"
+ safe_errlists=""
+ for i in $all_errlist_objs; do
+ for j in $exe; do
+ found=0
+ for k in $(eval echo \$${j}_errlist_objs); do
+ if test $k = $i; then
+ found=1
+ break;
+ fi
+ done
+ if test $found -eq 0; then
+ break;
+ fi
+ done
+ if test $found -eq 1; then
+ safe_errlists="$safe_errlists $i"
+ fi
+ done
+ #echo "safe errlists for $1: $safe_errlists"
+ ss_defs=""
+ for i in $safe_errlists; do
+ echo "SS_ENUM($(echo $i | tr 'a-z' 'A-Z'));"
+ done
+]
+)
+
+
+AC_MSG_NOTICE(creating error2.h)
+for obj in $all_errlist_objs; do
+ SS="$SS SS_$(echo $obj | tr 'a-z' 'A-Z'),"
+ echo "#ifdef MAIN_INPUT_FILE_IS_$obj"
+ define_safe_error_enums($obj)
+ echo "#endif"
+done > error2.h
+AC_DEFINE_UNQUOTED(DEFINE_ERRLIST_OBJECT_ENUM,
+ [enum {$SS NUM_SS}],
+ [list of all objects that use paraslash's error facility]
+)
+
+################################################################## status items
+
+status_items="basename status num_played mtime bitrate frequency file_size
+status_flags format score audio_file_info taginfo1 taginfo2 afs_mode
+attributes_txt decoder_flags audiod_status play_time attributes_bitmap
+offset seconds_total stream_start current_time audiod_uptime image_id
+lyrics_id duration directory lyrics_name image_name path hash channels
+last_played num_chunks chunk_time"
+
+# $1: prefix, $2: items
+AC_DEFUN([make_enum_items], [$(
+ for i in $2; do
+ printf "$1_$(echo $i | tr 'a-z' 'A-Z'), "
+ done
+)])
+
+# $1: prefix, $2: items
+AC_DEFUN([make_enum_array], [$(
+ for i in $2; do
+ printf "\"$i\", "
+ done
+)])
+
+AC_DEFINE_UNQUOTED(STATUS_ITEM_ENUM,
+ make_enum_items(SI, $status_items),
+ [enum of all status items]
+)
+AC_DEFINE_UNQUOTED(STATUS_ITEM_ARRAY,
+ make_enum_array(SI, $status_items),
+ [char * array of all status items]
+)
+
+