namespace Holo.Managers { using Holo; using Ion.Storage; using System; using System.Data; using System.Text; public static class soundMachineManager { public static int calculateSongLength(string Data) { int num = 0; try { string[] strArray = Data.Split(new char[] { ':' }); for (int i = 1; i < 8; i += 3) { int num3 = 0; string[] strArray2 = strArray[i].Split(new char[] { ';' }); for (int j = 0; j < strArray2.Length; j++) { num3 += int.Parse(strArray2[j].Substring(strArray2[j].IndexOf(",") + 1)); } if (num3 > num) { num = num3; } } return num; } catch { return -1; } } public static string getHandSoundsets(int userID) { DataColumn column; using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { column = client.getColumn("SELECT soundmachine_soundset FROM furniture WHERE ownerid = '" + userID + "' AND roomid = '0' AND soundmachine_soundset > 0"); } StringBuilder builder = new StringBuilder(Holo.Encoding.encodeVL64(column.Table.Rows.Count)); foreach (DataRow row in column.Table.Rows) { builder.Append(Holo.Encoding.encodeVL64(Convert.ToInt32(row["soundmachine_soundset"]))); } return builder.ToString(); } public static string getMachinePlaylist(int machineID) { DataColumn column; using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { column = client.getColumn("SELECT songid FROM soundmachine_playlists WHERE machineid = '" + machineID + "' ORDER BY pos ASC"); } StringBuilder builder = new StringBuilder("H" + Holo.Encoding.encodeVL64(column.Table.Rows.Count)); foreach (DataRow row in column.Table.Rows) { string str; string str2; using (DatabaseClient client2 = Eucalypt.dbManager.GetClient()) { str = client2.getString("SELECT title FROM soundmachine_songs WHERE id = '" + row[0].ToString() + "'"); str2 = client2.getString("SELECT name FROM users WHERE id = '" + client2.getString("SELECT userid FROM soundmachine_songs WHERE id = '" + row[0].ToString() + "'") + "'"); } builder.Append(string.Concat(new object[] { Holo.Encoding.encodeVL64(Convert.ToInt32(row[0])), Holo.Encoding.encodeVL64(Convert.ToInt32(row[0]) + 1), str, Convert.ToChar(2), str2, Convert.ToChar(2) })); } return builder.ToString(); } public static string getMachineSongList(int machineID) { DataTable table; using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { table = client.getTable("SELECT id,length,title,burnt FROM soundmachine_songs WHERE machineid = '" + machineID + "' ORDER BY id ASC"); } StringBuilder builder = new StringBuilder(Holo.Encoding.encodeVL64(table.Rows.Count)); foreach (DataRow row in table.Rows) { builder.Append(string.Concat(new object[] { Holo.Encoding.encodeVL64(Convert.ToInt32(row["id"])), Holo.Encoding.encodeVL64(Convert.ToInt32(row["length"])), Convert.ToString(row["title"]), Convert.ToChar(2) })); if (Convert.ToString(row["burnt"]) == "1") { builder.Append("I"); } else { builder.Append("H"); } } return builder.ToString(); } public static string getSong(int songID) { DataRow row; using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { row = client.getRow("SELECT title,data FROM soundmachine_songs WHERE id = '" + songID + "'"); } object[] itemArray = row.ItemArray; string[] strArray = new string[itemArray.Length]; for (int i = 0; i < itemArray.Length; i++) { strArray[i] = itemArray[i].ToString(); } if (strArray.Length > 0) { return string.Concat(new object[] { Holo.Encoding.encodeVL64(songID), strArray[0], Convert.ToChar(2), strArray[1], Convert.ToChar(2) }); } return "holo.cast.soundmachine.song.unknown"; } } }