コード例 #1
0
ファイル: musicCmd.cs プロジェクト: paulhemels/MceController
        private OpResult do_basic_list(OpResult or, WMPLib.IWMPStringCollection list, string list_type, string template, string default_template)
        {
            int result_count = list.count;
            or.AppendFormat("{0}", basic_replacer(getTemplate(template + ".H", ""), "", "", result_count, -1)); // Header
            string c_last = " ";
            for (int j = 0; j < list.count; j++)
            {
                string list_item = list.Item(j);
                if (list_item.Length > 0)
                {
                    string s_out = "";
                    if (first_letter(list_item) != c_last)
                    {
                        if (j > 0)
                        {
                            s_out = getTemplate(template + ".Alpha-", "");
                            s_out = basic_replacer(s_out, list_type, list.Item(j - 1), result_count, j);
                            s_out = basic_replacer(s_out, "letter", c_last, result_count, j);
                            if (s_out.Length > 0) or.AppendFormat("{0}", s_out); // Alpha-
                        }
                        c_last = first_letter(list_item);
                        s_out = getTemplate(template + ".Alpha+", "");
                        s_out = basic_replacer(s_out, list_type, list_item, result_count, j);
                        s_out = basic_replacer(s_out, "letter", c_last, result_count, j);
                        if (s_out.Length > 0) or.AppendFormat("{0}", s_out); // Alpha +
                    }
                    s_out = getTemplate(template + ".Entry", default_template);
                    s_out = basic_replacer(s_out, list_type, list_item, result_count, j);
                    s_out = basic_replacer(s_out, "letter", c_last, result_count, j);
                    s_out = do_conditional_replace(s_out, "all_filters", request_params);
                    s_out = do_conditional_replace(s_out, "genreFilter", genre_filter);
                    s_out = do_conditional_replace(s_out, "artistFilter", artist_filter);
                    s_out = do_conditional_replace(s_out, "albumFilter", album_filter);

                    //opResult.AppendFormat("artist={0}", artists.Item(j));
                    if (s_out.Length > 0) or.AppendFormat("{0}", s_out); // Entry
                }
            }
            if (result_count > 0) // Close the final alpha grouping
            {
                string s_out = getTemplate(template + ".Alpha-", "");
                s_out = basic_replacer(s_out, list_type, list.Item(result_count - 1), result_count, result_count);
                s_out = basic_replacer(s_out, "letter", c_last, result_count, result_count);
                if (s_out.Length > 0) or.AppendFormat("{0}", s_out); // Alpha-
            }
            return or;
        }