1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370
|
2008-06-30 19:11 dev
* coherence/backends/dvbd_storage.py: fixing Vala capitalizing
issue
2008-06-30 18:47 dev
* coherence/backends/dvbd_storage.py, coherence/ui/av_widgets.py:
corrections re the DVB-Daemon DBus connection
2008-06-30 17:04 dev
* coherence/backends/dvbd_storage.py: missed one import correction
2008-06-29 17:08 dev
* misc/org.Coherence.service: a DBus activation file for Coherence,
copy that into /usr/share/dbus-1/services
2008-06-29 16:23 dev
* bin/coherence, coherence/upnp/core/msearch.py,
coherence/upnp/core/ssdp.py: remove devices and services on the
SSDP level if they haven't send a new notification message within
their ''max-age'' time (plus a 30 seconds extra)
2008-06-29 12:36 dev
* coherence/backend.py, coherence/backends/ampache_storage.py,
coherence/backends/axiscam_storage.py,
coherence/backends/buzztard_control.py,
coherence/backends/elisa_renderer.py,
coherence/backends/elisa_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/backends/iradio_storage.py,
coherence/backends/lastfm_storage.py,
coherence/backends/light.py,
coherence/backends/mediadb_storage.py,
coherence/backends/tracker_storage.py, coherence/base.py,
coherence/dbus_service.py, coherence/test/test_base.py,
coherence/test/test_dbus.py, coherence/upnp/core/device.py,
coherence/upnp/core/event.py, coherence/upnp/core/msearch.py,
coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py, coherence/upnp/core/ssdp.py,
coherence/upnp/core/variable.py,
coherence/upnp/devices/binary_light.py,
coherence/upnp/devices/binary_light_client.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/dimmable_light.py,
coherence/upnp/devices/dimmable_light_client.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/devices/media_server_client.py,
coherence/upnp/services/clients/test/test_switch_power_client.py,
coherence/upnp/services/servers/test/test_content_directory_server.py,
coherence/web/ui.py: next time start thinking before checking in
2008-06-29 11:36 dev
* Coherence.egg-info/requires.txt, coherence/backend.py,
coherence/backends/ampache_storage.py,
coherence/backends/axiscam_storage.py,
coherence/backends/buzztard_control.py,
coherence/backends/dvbd_storage.py,
coherence/backends/elisa_renderer.py,
coherence/backends/elisa_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/backends/iradio_storage.py,
coherence/backends/lastfm_storage.py,
coherence/backends/light.py,
coherence/backends/mediadb_storage.py,
coherence/backends/tracker_storage.py, coherence/base.py,
coherence/dbus_service.py, coherence/extern/louie,
coherence/extern/louie/PKG-INFO,
coherence/extern/louie/__init__.py,
coherence/extern/louie/dispatcher.py,
coherence/extern/louie/error.py,
coherence/extern/louie/plugin.py,
coherence/extern/louie/robustapply.py,
coherence/extern/louie/saferef.py,
coherence/extern/louie/sender.py,
coherence/extern/louie/signal.py,
coherence/extern/louie/version.py, coherence/test/test_base.py,
coherence/test/test_dbus.py, coherence/upnp/core/device.py,
coherence/upnp/core/event.py, coherence/upnp/core/msearch.py,
coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py, coherence/upnp/core/ssdp.py,
coherence/upnp/core/variable.py,
coherence/upnp/devices/binary_light.py,
coherence/upnp/devices/binary_light_client.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/dimmable_light.py,
coherence/upnp/devices/dimmable_light_client.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/devices/media_server_client.py,
coherence/upnp/services/clients/test/test_switch_power_client.py,
coherence/upnp/services/servers/test/test_content_directory_server.py,
coherence/web/ui.py, setup.py: the only reasonable solution to
get around that setuptools 'after-install' dependency check for
''Nose'' seems to include our own copy of Louie in
coherence.extern - which I'm doing herewith.
#closes 146 hopefully now final
2008-06-29 10:02 dev
* coherence/base.py: pass a 'well-hidden' option to pkg_resources
EntryPoint.load to not check for any requirements when we load
our backends, #closes #146
We expect to have all our dependencies resolved at install time,
or that the backend shouts out if there is something missing.
2008-06-29 08:55 dev
* coherence/dbus_service.py, coherence/ui/av_widgets.py: * make
device icons accessible via DBus
* use the device icon in the TreeWidget
* add a 'dummy' child to every container so the row-expander
triangle shows up (thx aTc@mediatomb)
2008-06-25 16:27 dev
* coherence/backends/dvbd_storage.py: fix wrong dbus callback in
DestroyObject and relay the signal we get when a recording
'changes' - new one, gets deleted or the file(s) are updated
2008-06-25 12:53 dev
* misc/Totem Plugin/upnp-coherence.py: now the right version :-/
2008-06-25 09:07 dev
* coherence/dbus_service.py, coherence/ui/av_widgets.py, misc/Totem
Plugin/upnp-coherence.py: * introduce a generic action method in
the DBus interface and a way to retrieve all available actions,
to get around the limitation of not having 'dynamic' DBus object
interfaces
* use these new methods in the TreeWidget
* react on ''ContainerUpdateIDs'' changes in the TreeWidget and
rebrowse that container
* add a ''DestroyObject'' method to the TreeWidget and make that
accessible from the Totem plugin
2008-06-25 09:03 dev
* coherence/upnp/core/variable.py: don't notify about changes in
'used-as-an-argument-only' StateVariables
2008-06-25 09:01 dev
* coherence/backends/dvbd_storage.py,
coherence/backends/fs_storage.py: * add new UPnP ContentDirectory
action ''DestroyObject''
* disabled by default, can be enabled with the backend-option
''enable_destroy:yes''
2008-06-24 13:51 dev
* coherence/backends/dvbd_storage.py: missing import
2008-06-24 13:39 dev
* coherence/backends/dvbd_storage.py: * add a internal: resource to
a recording item
* first version of a DeleteObject action
2008-06-24 13:35 dev
* coherence/upnp/core/service.py,
coherence/upnp/core/xml-service-descriptions/ContentDirectory2.xml,
coherence/upnp/services/clients/content_directory_client.py:
handle optional actions that really need '''backend support'''
2008-06-23 20:02 dev
* coherence/ui/av_widgets.py, coherence/upnp/core/soap_service.py:
try to support internal: resource detection
2008-06-23 19:26 dev
* coherence/ui/av_widgets.py, misc/Totem Plugin/upnp-coherence.py:
added a right-click context menu to the Totem UPnP client to
allow to 'play' or just 'enqueue' the selected media files. If
more than one file is selected and 'play' is choosen, the first
one starts playing, the others are enqueued.
Closes #145
2008-06-23 19:23 dev
* coherence/backends/dvbd_storage.py: fixes needed to let the
backend talk to the DVB-Daemon - thx Sebastian
it is working now, displaying all the recordings in the client -
just Totem refuses to play the MPEG-TS via http
2008-06-22 12:23 dev
* misc/Totem Plugin/upnp-coherence.py: change the way a file in
Totem is 'loaded' and 'played', closes #144
2008-06-22 10:49 dev
* coherence/backends/dvbd_storage.py: import cleanups and date
object correction
2008-06-22 10:28 dev
* bin/coherence, coherence/backends/dvbd_storage.py: first working
version of the DVB-Daemon backend
2008-06-21 17:12 dev
* coherence/dbus_service.py, coherence/ui/av_widgets.py: fixing
bugs re the louie/DBus signal relaying
2008-06-21 17:10 dev
* Coherence.egg-info/entry_points.txt, bin/coherence: allow options
passed to coherence on the commandline, primary ''controlpoint''
and ''use_dbus''
usage:
{{{
coherence -o controlpoint:yes --option=use_dbus:yes
}}}
2008-06-21 11:08 dev
* coherence/backends/dvbd_storage.py, setup.py: experimental, not
yet functional, backend for the Gnome DVB Daemon
2008-06-18 09:08 dev
* coherence/test/test_base.py: unit test missing in [921]
2008-06-18 09:06 dev
* coherence/base.py,
coherence/upnp/services/clients/test/test_switch_power_client.py:
changes to properly handle several Coherence base class shutdown
calls
2008-06-18 09:05 dev
* coherence/upnp/services/servers/test/test_content_directory_server.py:
adjusting test to the change in return parameters for Browse
action
2008-06-17 10:45 dev
* ., coherence/backend.py, coherence/backends/ampache_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/mediadb_storage.py, coherence/dbus_service.py,
coherence/extern/et.py, coherence/test, coherence/upnp/core/test,
coherence/upnp/core/utils.py,
coherence/upnp/devices/binary_light.py,
coherence/upnp/devices/dimmable_light.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/clients/test,
coherence/upnp/services/servers/test: * rework of the DBus API,
hopefully more reasonable now, still needs some cross-language
check
* modifications in the MediaServer http part to allow child
lookups returning a Deferred
* housekeeping
2008-06-17 10:38 dev
* setup.py: include the ui icons in the setup process
2008-06-17 10:37 dev
* coherence/ui, coherence/ui/__init__.py,
coherence/ui/av_widgets.py, coherence/ui/icons,
coherence/ui/icons/audio-x-generic.png,
coherence/ui/icons/folder.png,
coherence/ui/icons/image-x-generic.png,
coherence/ui/icons/network-server.png,
coherence/ui/icons/video-x-generic.png: the beginning of a set of
reusable widgets for UPnP related PyGTK apps
* a ContentDirectoryService client TreeWidget
2008-06-17 09:05 dev
* misc/Totem Plugin, misc/Totem Plugin/upnp-coherence.py,
misc/Totem Plugin/upnp-coherence.totem-plugin: glue code for the
Totem UPnP plugin
2008-05-30 18:10 dev
* coherence/backends/ampache_storage.py,
coherence/upnp/core/utils.py,
coherence/upnp/devices/media_server.py: a proxy feature for the
Ampache backend, the necessary modifications in the MediaServer
Resource and a small overlay for twisted.web.server.Request to
handle Deferreds returned by getChild
2008-05-30 18:05 dev
* coherence/backends/fs_storage.py: use urllib instead of urllib2,
fixes #141
2008-05-29 18:29 dev
* coherence/upnp/services/servers/content_directory_server.py: fix?
2008-05-28 21:31 dev
* coherence/base.py, coherence/upnp/core/device.py,
coherence/upnp/core/event.py, coherence/upnp/core/service.py:
move the service clients event subscription renewal into the
Service class, with a dedicated callLater(timeout-30sec)
* no more unnecessary checks in a loop in the Coherence class
* no more "blocking" iteration over all devices and their
sub-devices
closes #135
2008-05-28 09:41 dev
* coherence/backends/ampache_storage.py,
coherence/upnp/services/servers/content_directory_server.py: move
the complex 'items are Deferreds' and their 'childs are Deferreds
too' handling methods into the generic CDS Browse and Search
actions
2008-05-27 22:18 dev
* coherence/upnp/devices/basics.py,
coherence/upnp/devices/media_server.py: clean the mess up when a
device instantiation failed
2008-05-27 14:01 dev
* coherence/test/test_dbus.py,
coherence/upnp/services/servers/test/test_content_directory_server.py:
* skip DBus related tests when no Glib2Reactor is active
* one more test for the CDS
2008-05-27 14:00 dev
* coherence/upnp/devices/binary_light_client.py,
coherence/upnp/devices/dimmable_light_client.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server_client.py: just some
precautions against race-conditions
2008-05-27 13:16 dev
* coherence/upnp/services/servers/content_directory_server.py,
coherence/upnp/services/servers/test/test_content_directory_server.py:
XBox related fixes in the CDS's Browse and Search methods, and
first unit tests for that
2008-05-26 18:23 dev
* coherence/base.py, coherence/test/test_dbus.py,
coherence/upnp/core/msearch.py, coherence/upnp/core/ssdp.py,
coherence/upnp/services/clients/test/test_switch_power_client.py,
coherence/upnp/services/servers/test/test_content_directory_server.py:
disable SSDP and MSEARCH activity during unittests, now we are
invisible and hopefully get not disturbed by nosey things on the
network
2008-05-26 18:19 dev
* coherence/upnp/core/event.py, coherence/upnp/core/service.py,
coherence/upnp/devices/basics.py: cancel pending event
notifications on shutdown
2008-05-26 13:52 dev
* coherence/upnp/core/event.py: eliminating some strange characters
from "Outer Space"
2008-05-26 10:25 dev
* coherence/backends/fs_storage.py, coherence/upnp/core/ssdp.py,
coherence/upnp/devices/basics.py,
coherence/upnp/services/servers/connection_manager_server.py,
coherence/upnp/services/servers/test,
coherence/upnp/services/servers/test/__init__.py,
coherence/upnp/services/servers/test/test_content_directory_server.py:
a first test for the ContentDirectoryServer Browse method and the
accompanying fixes to get the test through trial
2008-05-25 15:03 dev
* coherence/upnp/devices/binary_light_client.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/dimmable_light_client.py,
coherence/upnp/services/clients/dimming_client.py,
coherence/upnp/services/clients/switch_power_client.py,
coherence/upnp/services/clients/test,
coherence/upnp/services/clients/test/__init__.py,
coherence/upnp/services/clients/test/test_switch_power_client.py:
client device and service implementations for BinaryLight and
DimmableLight devices
2008-05-25 14:58 dev
* coherence/upnp/core/event.py, coherence/upnp/core/msearch.py,
coherence/upnp/core/service.py, coherence/upnp/core/ssdp.py,
coherence/upnp/devices/basics.py: more changes related to a
proper shutdown
2008-05-25 14:56 dev
* coherence/upnp/core/soap_proxy.py, coherence/upnp/core/utils.py:
some minor cleanups
2008-05-25 14:25 dev
* coherence/base.py, coherence/dbus_service.py, coherence/test,
coherence/test/__init__.py, coherence/test/test_dbus.py: two new
DBUS methods:
* add_plugin(backend,arguments) --> uuid
this isn't a feedback whether the device is actually
instantiated,
as that will happen asynchronous and signalled later
* remove_plugin(uuid) -> returns same uuid on success or an empty
string on failure
and the accompanying tests
2008-05-25 13:35 dev
* coherence/base.py: * keep a list of activated backends for their
potential removal
* proper cleanups on shutdown, mostly needed when called from
within trial tests
2008-05-25 12:59 dev
* NEWS: for the sake of completeness
2008-05-08 07:35 dev
* coherence/upnp/services/servers/media_receiver_registrar_server.py:
retrieve arguments from kwargs dict like anywhere else, as we
might get something added on the way
2008-05-08 07:33 dev
* coherence/upnp/core/soap_service.py,
coherence/upnp/devices/media_server.py: some more adjustments for
WMP 11
2008-05-05 16:33 dev
* coherence/upnp/core/soap_service.py,
coherence/upnp/devices/media_server.py: some attempt to deal with
WMP11
2008-05-05 16:32 dev
* coherence/backends/tracker_storage.py: send the right error
message string
2008-05-05 12:38 dev
* coherence/backends/tracker_storage.py: allow specification which
Meta Tracker service(s) to use via config
* service:Music,Videos,Images is the default
2008-05-04 21:43 dev
* coherence/backends/gstreamer_audio_player.py,
coherence/backends/tracker_storage.py: extend the
SinkProtocolInfo and SourceProtocolInfo lists
2008-05-04 19:42 dev
* coherence/backends/tracker_storage.py: first attempt to integrate
Videos and Images returned from Tracker
2008-05-04 11:53 dev
* coherence/upnp/core/test/test_didl.py: corrected class name
2008-05-04 11:44 dev
* coherence/upnp/core/test, coherence/upnp/core/test/__init__.py,
coherence/upnp/core/test/test_didl.py,
coherence/upnp/core/test/test_utils.py: first unit tests
addresses #20
2008-05-03 19:16 dev
* docs/coherence.conf.example: updated with examples for the new
MediaServers
2008-05-03 14:14 dev
* coherence/upnp/core/DIDLLite.py: fix wrong log output when
accessed by an XBox, thx again netmask!
closes #138
2008-05-03 13:46 dev
* coherence/backends/mediadb_storage.py: fix missing variable
definition - thx netmask for spotting this
closes #137
2008-05-03 13:45 dev
* Coherence.egg-info/PKG-INFO, coherence/__init__.py: increase
version number for next development cycle
2008-04-30 20:56 dev
* ChangeLog: updated ChangeLog
2008-04-30 20:54 dev
* ChangeLog, NEWS, coherence/__init__.py, setup.py: New in this
0.5.6 - Walpurgisnacht - release
* a MediaServer backend for Meta Tracker
(http://www.gnome.org/projects/tracker)
* simplify the IP-address detection on Windows with the help of
the optional Python package netifaces
(http://alastairs-place.net/netifaces)
* proper handling of filename encoding issues in the filesystem
based MediaServer
* and a lot of community driven fixes and enhancements,
kudos given representatively to Lawrence and veerz
2008-04-30 14:23 dev
* coherence/upnp/core/DIDLLite.py: remove 'refID' from the response
if we see an XBox client, seems there is a problem with that
there
2008-04-30 12:28 dev
* coherence/backends/axiscam_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/iradio_storage.py,
coherence/backends/lastfm_storage.py: add missing ID-separation,
which will be needed when an XBox tries to browse the WMC mapped
containers
2008-04-30 09:12 dev
* coherence/extern/et.py: make the dumping of 'invalid xml data' an
option and raise Exceptions instead of returning 'None'
closes #105
2008-04-30 09:10 dev
* coherence/backends/mediadb_storage.py: add some more details to
the Album and the Artist object
2008-04-30 09:09 dev
* coherence/dbus_service.py: remove for the moment some invalid
signal mapping
2008-04-29 21:58 dev
* coherence/upnp/core/utils.py: handle chunked encoded responses -
thx Lawrence!
readline and strip should do the trick on all platforms, if not
let's reopen this ticket.
closes #132.
2008-04-29 12:03 dev
* coherence/upnp/core/utils.py: move on Windows not-available
modules and methods out of the way
2008-04-29 10:49 dev
* coherence/upnp/core/utils.py: tries to determine on Windows the
interface to use and its IP-address.
Uses the [http://alastairs-place.net/netifaces/ netifaces] modul
for this.
Addresses #107, #117, #129. pls cross-check
2008-04-28 22:03 dev
* Coherence.egg-info/entry_points.txt,
coherence/backends/tracker_storage.py, setup.py: a shiny new
backend - ''TrackerStore''
* connects via DBus to
[http://www.gnome.org/projects/tracker/index.html Meta Tracker]
and retrieves from the 'Music' service the there stored
information about audio files (images and video will be next)
* needs a Twisted glib2/gtk2 reactor and therefore the config
option ''use_dbus'' set to 'yes'
* the only config option for this backend so far is ''name''
* the querying of Tracker is pretty lame atm, there is much room
for optimization
* notifications by Tracker about new files or modifications of
the indexed files are not yet catched
2008-04-28 21:46 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: print a backend
instantiation error message in log level 'warning', not only the
failure object in 'debug'
2008-04-28 21:44 dev
* coherence/base.py, coherence/dbus_service.py: rearrange
activation of the DBus service, and rework that to follow the
last changes
2008-04-25 19:23 dev
* coherence/upnp/services/clients/av_transport_client.py,
coherence/upnp/services/clients/connection_manager_client.py:
take optional actions in the AVTransport and ConnectionManager
service clients into account - thx Lawrence!
Closes #130
2008-04-25 14:13 dev
* coherence/upnp/services/servers/content_directory_server.py:
rearrange local functions in the Browse method
2008-04-24 18:55 dev
* coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server_client.py: follow-up on the
changes we did @ device creation and removal
2008-04-24 18:53 dev
* coherence/upnp/core/DIDLLite.py: try to fallback when some other
UPnP devices sends us a DIDLLite fragment with an non-standard
UPnP-class, addresses #125
2008-04-24 13:10 dev
* coherence/upnp/services/servers/content_directory_server.py:
again Xbox mappings, cleanup
2008-04-23 21:48 dev
* coherence/upnp/services/servers/content_directory_server.py:
again a fix for the XBox mapping
2008-04-23 19:17 dev
* coherence/upnp/core/device.py: remove nested embedded devices and
their services
2008-04-23 18:58 dev
* coherence/upnp/core/device.py, misc/upnp-tester.py: more
adjustments to support nested embedded devices and a new version
of the upnp-tester script supporting this
2008-04-23 18:02 dev
* coherence/backends/fs_storage.py: add missing WMC mapping for the
folder objects
2008-04-23 15:43 dev
* coherence/upnp/services/servers/content_directory_server.py: fix
wrong handling of 'non-callable' WMC mappings
2008-04-22 22:10 dev
* coherence/backends/mediadb_storage.py: fix access via mapped WMC
containers
2008-04-22 22:06 dev
* coherence/upnp/core/device.py,
coherence/upnp/devices/control_point.py: more work on supporting
embedded devices
2008-04-22 20:27 dev
* coherence/upnp/core/device.py: and one more
2008-04-22 20:24 dev
* coherence/upnp/core/device.py: one more adjustment
2008-04-22 20:06 dev
* coherence/base.py, coherence/upnp/core/device.py: rework the
handling of embedded devices a bit
2008-04-19 20:28 dev
* bin/coherence: allow multiple --plugin commandline options
2008-04-19 18:08 dev
* coherence/upnp/core/device.py: adding support for embedded
devices, thx Lawrence for this patch - closes #123
2008-04-19 10:07 dev
* coherence/upnp/core/DIDLLite.py: someday I'll probably have to
pay for this :-(, but at the moment it solves issues with
MediaRenderers sending back incomplete DIDLLite fragments
2008-04-19 09:57 dev
* Coherence.egg-info/PKG-INFO, coherence/__init__.py,
coherence/backends/ampache_storage.py,
coherence/backends/fs_storage.py, coherence/extern/inotify.py,
coherence/extern/xdg.py, coherence/upnp/devices/media_server.py:
merged all fsstore-ng changes 844:848 back into trunk
2008-04-02 11:09 dev
* misc/Desktop Applet/tango-system-file-manager-32x32.png:
additional 32x32 sized icon for the DesktopApplet
2008-04-02 08:35 dev
* misc/Desktop Applet/applet-coherence: write 1000 times on the
wall: Don't do things in parallel!
2008-04-02 07:59 dev
* setup.py: fix broken setup :-(
2008-04-02 07:56 dev
* misc/Desktop Applet/applet-coherence: fall back for the icon
retrieval
2008-04-01 21:45 dev
* ChangeLog: checking in updated Changelog
2008-04-01 21:43 dev
* ChangeLog, Coherence.egg-info/PKG-INFO, coherence/__init__.py,
coherence/backend.py, coherence/backends/ampache_storage.py,
coherence/backends/fs_storage.py, coherence/dbus_service.py,
coherence/upnp/core/action.py, coherence/upnp/core/soap_proxy.py,
setup.py: New in this 0.5.4 - Fools Garden - release
* a DesktopApplet to easily start a Coherence instance from your
desktops panel
Thx to Erwan Velu, Helio Chissini de Castro and Nicolas
Lecureuil!
* more efforts to simplify the ordinary user experience
* allow now the backend definition via commandline, to just start
up
a MediaServer or anything else, without bothering oneself with
the config file
* specify logfile location and daemonization on the commandline
too
* a bit more usable --help output
Thx again Erwan Velu!
* a MediaServer backend for Ampache - a Web-based Audio file
manager (http://ampache.org)
Thx to the awesome help of Karl Vollmer!
* device implementations for BinaryLight and DimmableLight
* a little helper to extract device and service xml files and
send them to us - a beginning of our UPnP device fingerprint
program
* and the usual bugfixes and enhancements
2008-04-01 21:17 dev
* misc/Desktop Applet/applet-coherence, misc/Desktop
Applet/applet-coherence.py: * rename the DesktopApplet for its
move to /usr/bin
* add a probably terrible kludge to still have access to its icon
2008-03-31 17:45 dev
* misc/coherence-initscript.sh: a shell script, should be copy into
init.d and linked from the desired runlevel to start coherence on
system boot - thx erwan!
2008-03-29 13:17 dev
* misc/Desktop Applet/applet-coherence.py: remove noise
2008-03-29 13:12 dev
* setup.py: proper package data definition
2008-03-29 13:10 dev
* Coherence.egg-info/top_level.txt, MANIFEST.in, misc/Desktop
Applet, misc/Desktop Applet/applet-coherence.py, misc/Desktop
Applet/tango-system-file-manager.png, setup.py: include the new
DesktopApplet into the setup process
2008-03-28 13:06 dev
* misc, misc/upnp-tester.py: little helper program, will be our
future upnp-fingerprinter
2008-03-28 09:11 dev
* bin/coherence: print an error message when having a plugin
defined on the commandline and having a configfile in the old
format
2008-03-25 22:10 dev
* coherence/upnp/devices/basics.py: adds missing imports, thx again
yukaro for spotting this! Fixes #124
2008-03-22 22:50 dev
* coherence/backend.py, coherence/backends/fs_storage.py: quick
fix, but let's rethink some of the changes today
2008-03-22 19:11 dev
* coherence/base.py: fix the accidentally disabled pkg_resources
plugin support
2008-03-22 19:04 dev
* bin/coherence, coherence/base.py: * rework the way the Coherence
plugins are collected, this allows us to print the available ones
in the usage message
* changed the usage message too
2008-03-22 19:02 dev
* coherence/backends/elisa_renderer.py: remove obsolete imports
2008-03-22 18:00 dev
* coherence/backend.py: one adjustment re the BackendItem name
property to be in unicode
2008-03-22 17:29 dev
* coherence/backend.py: added the lost info for an Items name
2008-03-22 16:55 dev
* coherence/backend.py: more details
2008-03-22 16:34 dev
* coherence/backend.py: typo fixes
2008-03-22 16:32 dev
* coherence/backend.py: some documentation updates
2008-03-22 15:58 dev
* coherence/backend.py: a bit more documantation regarding the
Backend/BackendStore and BackendItem classes
2008-03-20 21:49 dev
* coherence/upnp/devices/media_renderer.py: missing import, causing
the MediaRenderer device to fail when an icon for it was passed
as an argument.
Thx yukaro for spotting this!
2008-03-18 16:41 dev
* bin/coherence: added logfile path as a commandline option, closes
#122
2008-03-17 20:50 dev
* coherence/backends/ampache_storage.py: stupid bug
2008-03-17 19:48 dev
* coherence/backends/ampache_storage.py: approaching playlists
2008-03-16 14:52 dev
* bin/coherence: fixing a small bug causing plugin options with an
':' within to fail
2008-03-16 11:25 dev
* coherence/upnp/services/servers/dimming_server.py,
coherence/upnp/services/servers/switch_power_server.py: and now
the missing files :-(
2008-03-15 16:30 dev
* Coherence.egg-info/entry_points.txt, coherence/backend.py,
coherence/backends/light.py, coherence/base.py,
coherence/upnp/core/service.py, coherence/upnp/core/soap_lite.py,
coherence/upnp/core/xml-service-descriptions/Dimming1.xml,
coherence/upnp/core/xml-service-descriptions/SwitchPower1.xml,
coherence/upnp/devices/basics.py,
coherence/upnp/devices/binary_light.py,
coherence/upnp/devices/dimmable_light.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/content_directory_server.py,
setup.py: * a Binary- and DimmableLight server implementation and
a corresponding backend to test
* moving some of the basic device methods into a class of its own
* moving some of the basic backend methods into a class of its
own
* ignore generously upnp_ACTIONS without return values, that do
not return an empty dict
2008-03-15 16:09 dev
* coherence/extern/simple_plugin.py: quick fix to let the
SimplePlugin handle non-immediate subclasses
2008-03-15 16:04 dev
* coherence/upnp/core/event.py: one more fix to catch malformed
event notifications - this time caused by a Noxon MR, sending
back an unescaped url in the CurrentTrackURI
2008-03-15 15:31 dev
* coherence/backends/ampache_storage.py: correcting the way to
limit the load upon ampache, and moved the prints into proper log
messages
2008-03-15 10:30 dev
* coherence/backends/ampache_storage.py: Ampache backend
MediaServer - nearly complete
* album art not yet available in the track information returned
from the XML-API
* album art ulr needs the extension at the end to make Nokias
Media Streamer happy
* number of albums per artist currently every time, will be
returned in the artist xml data
2008-03-13 21:52 dev
* coherence/backends/ampache_storage.py: try to play save
2008-03-13 20:57 dev
* coherence/backends/ampache_storage.py: rapprochement
2008-03-08 21:01 dev
* coherence/backends/ampache_storage.py: ready for the skin
2008-03-08 20:40 dev
* coherence/backends/ampache_storage.py: some blood
2008-03-08 20:09 dev
* coherence/backends/ampache_storage.py: some flesh to the bones
2008-03-08 15:12 dev
* coherence/backends/ampache_storage.py: getting closer, more
testing
2008-03-08 12:54 dev
* coherence/backends/ampache_storage.py: next step
2008-03-08 12:35 dev
* coherence/backends/ampache_storage.py: more of them
2008-03-08 12:13 dev
* coherence/backends/ampache_storage.py,
coherence/upnp/devices/media_server.py,
docs/coherence.conf.example: first adjustments
2008-03-08 10:32 dev
* Coherence.egg-info/PKG-INFO, Coherence.egg-info/entry_points.txt,
coherence/__init__.py, coherence/backends/ampache_storage.py,
setup.py: first version of an ampache backend, just the basic
functionality for testing
2008-03-06 20:27 dev
* bin/coherence: add support to daemonize Coherence and print out
our version upon request, closes #122
2008-03-01 16:02 micxer
* coherence/upnp/core/msearch.py,
coherence/upnp/core/soap_service.py: MAke M-SEARCH and event
mesages available through a signal
2008-02-29 21:03 dev
* ChangeLog: updating ChangeLog
2008-02-29 21:02 dev
* setup.py: New in this 0.5.2 release
* rework of the XBox 360 support
* refinements and improvements on the client side API,
incorporating things we learned on extending the Rhythmbox UPnP
plugin
* some efforts on smoothing the "just use it as
a MediaServer/-Renderer" user experience
* rearrangement in the way multiple res elements are ordered,
fixes issues which we had with some UPnP stacks
and their 'wayward' interpretation of the specs
* and a lot more of the usual bugfixes and enhancements
2008-02-28 13:13 dev
* coherence/backends/fs_storage.py, coherence/extern/xdg.py: some
adjustments re utf-8 file/directory names, addresses #121
2008-02-28 11:59 dev
* coherence/backends/fs_storage.py: on the walk of the content
directories, catch any OSErrors and report them, so that a not
accessible file or directory doesn't prevent the whole device
from starting - fixes #120
2008-02-25 19:47 dev
* bin/coherence: adding quick 'n dirty support for activating a
backend via the commandline
* syntax is bin/coherence
--plugin=backend:FSStore,name=Coherence,content=/home/media
name and content can be omitted
2008-02-25 19:45 dev
* coherence/backends/fs_storage.py: a fix regarding a bug
introduced in [777]
2008-02-21 17:50 dev
* coherence/backends/fs_storage.py, coherence/extern/xdg.py: adding
support for XDG audio, pictures and video directories to the
FSStore, addresses #119
* to enable it, remove the content keyword for that backend in
the configuration file
* needs probably some testing with path names in different
languages
2008-02-16 16:40 dev
* coherence/backends/mediadb_storage.py,
coherence/upnp/core/DIDLLite.py,
coherence/upnp/services/servers/content_directory_server.py: add
''auto'' RefID and ParentID support for MediaServer backends with
virtual containers like 'artists' and 'albums'
2008-02-16 16:39 dev
* coherence/upnp/core/variable.py: being a little more flexible
2008-02-16 16:28 dev
* coherence/backends/gstreamer_audio_player.py: declare 'ABS_TIME'
and 'REL_TIME' as only valid values for the Seek action Unit
parameter
2008-02-16 10:22 dev
* coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py: rearrange the logging levels
to reduce the output a bit
2008-02-16 10:20 dev
* coherence/backends/gstreamer_audio_player.py: announce the
ability to Seek to the ControlPoint (in the hope it honours it)
2008-02-16 10:16 dev
* coherence/backends/gstreamer_audio_player.py: added the long
missing Seek action to the GStreamer MediaRenderer, only ABS_TIME
and REL_TIME seeks are supported so far
2008-02-16 10:11 dev
* coherence/upnp/core/event.py: catch malformed notify messages
2008-02-16 10:09 dev
* coherence/upnp/devices/basics.py: set the proper description file
version for the downward compatibility services which have a
therefore reduced version number
2008-02-11 12:58 dev
* coherence/upnp/core/xml-service-descriptions/AVTransport2.xml:
typo fix in the AVTransport service description file, thx zeenix!
2008-02-09 19:50 dev
* coherence/backends/mediadb_storage.py: reworked tag support again
2008-02-08 10:58 philn
* coherence/backends/mediadb_storage.py: support for python-tagpy
2008-02-07 11:30 dev
* coherence/backend.py, coherence/backends/fs_storage.py,
coherence/backends/mediadb_storage.py,
coherence/upnp/services/servers/content_directory_server.py: move
the Xbox specific parts out of the ContentDirectoryService and
into the generic backend base class
2008-02-06 10:58 dev
* coherence/base.py: use only '127.' as the pattern to detect a
loopback address, to circumvent these '127.0.1.1' entries in
/etc/hosts on Ubuntu >= edgy.
See this thread: http://ubuntuforums.org/showthread.php?t=388765
2008-02-04 18:55 dev
* coherence/backend.py, coherence/backends/fs_storage.py,
coherence/backends/mediadb_storage.py: move towards factoring out
basic BackendStore and BackendItem classes
2008-02-04 18:53 dev
* coherence/upnp/core/DIDLLite.py,
coherence/upnp/services/servers/content_directory_server.py: some
steps towards supporting the XBox again
2008-02-04 16:22 dev
* coherence/upnp/core/device.py: check faulty subscription the
right way
2008-02-03 20:04 dev
* coherence/upnp/devices/basics.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: * move redundant parts of
the device classes into a BasicAVMixin
* rework once more the initial registration and notification
method
2008-02-03 20:03 dev
* coherence/backends/fs_storage.py: * don't try to find cover art
in other things than FilePath/directory objects
* fix content directory list
2008-02-03 19:57 dev
* Coherence.egg-info/requires.txt, docs/coherence.conf.example: a
new egg-info file and fixing a typo in the example configuration
file
2008-02-02 19:35 dev
* coherence/backends/fs_storage.py,
coherence/upnp/devices/media_server.py: build the foundations to
send out thumbnails for images in multiple <res> elements
2008-02-02 19:34 dev
* coherence/upnp/core/variable.py,
coherence/upnp/services/servers/media_receiver_registrar_server.py:
solve an issue when a client actually sends a RegisterDevice
action to our fake MediaReceiverRegistrar service
2008-02-02 19:31 dev
* docs/coherence.conf.example: fix type
2008-02-02 14:20 dev
* coherence/upnp/core/DIDLLite.py: have Resources only in Items and
below
2008-02-02 14:17 dev
* coherence/extern/et.py: one more fix to handle differences in the
various ElementTree APIs
2008-02-02 14:16 dev
* Coherence.egg-info/PKG-INFO: following the version increase
2008-01-29 17:43 dev
* coherence/__init__.py: increase the version number in preparation
for a intermediate release
2008-01-29 13:18 dev
* coherence/upnp/core/DIDLLite.py: get rid of these prints
2008-01-29 11:56 dev
* coherence/backends/elisa_renderer.py: applying changes from [742]
to the Elisa MediaRenderer too
2008-01-29 11:23 dev
* coherence/backends/gstreamer_audio_player.py,
coherence/upnp/core/DIDLLite.py: move the
"find-the-matching-pair" for the local and remote protocolInfo
into the Resources class and adjust the GStreamer MediaRenderer
accordingly
2008-01-28 22:40 dev
* coherence/backends/axiscam_storage.py,
coherence/backends/buzztard_control.py,
coherence/backends/elisa_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/backends/iradio_storage.py,
coherence/backends/lastfm_storage.py,
coherence/backends/mediadb_storage.py,
coherence/upnp/core/DIDLLite.py: * use a "sorted" list for an
items resources, to assure the 'http-get' resources are aways the
first ones, followed by the 'rtsp-rtp-udp' ones
* adapt the GStreamer MediaRenderer to that, it looks now for any
fitting 'internal' resources first
2008-01-28 22:37 dev
* coherence/upnp/core/utils.py: remove for the moment our test
classes for the RadioStreams
2008-01-28 11:29 dev
* coherence/backends/fs_storage.py,
coherence/backends/mediadb_storage.py: * starting work on
CreateObject again
* export more details in the MediaStore
2008-01-28 11:15 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: * allow a global
'version' parameter in the configuration
* set the ''transferMode.dlna.org'' and
''contentFeatures.dlna.org'' headers in the MediaServer responses
2008-01-28 11:13 philn
* .: updated svn:externals to point to new Flumotion SVN
2008-01-28 11:06 dev
* coherence/upnp/core/DIDLLite.py: added more Object details
2008-01-28 11:05 dev
* coherence/upnp/core/event.py, coherence/upnp/core/utils.py:
handle HTTP responses without body and a missing success/error
code
2008-01-28 11:03 dev
* coherence/upnp/core/ssdp.py: CAPS consistency
2008-01-28 10:56 dev
* coherence/upnp/core/variable.py: an additional detail in the log
output
2008-01-28 10:55 dev
* coherence/upnp/services/clients/av_transport_client.py,
coherence/upnp/services/clients/content_directory_client.py:
fixes and adjustments to the client api
* we'll return DIDLLite objects from a 'Browse' in the future
too, the client need to have a bit more knowledge about the UPnP
stuff with that, but it is much more flexible than trying to
convert the whole object into a dict
2008-01-28 10:51 dev
* setup.py: include Louie and ConfigObj as dependencies in the
python/easy_install setup configuration
2008-01-27 12:39 dev
* Coherence.egg-info/PKG-INFO, coherence/__init__.py,
coherence/backends/gstreamer_audio_player.py, setup.py: let the
GStreamer MediaRenderer behave a bit more spec compliant on a
SetAVTransportURI action, addresses #116
2007-12-31 16:04 dev
* ChangeLog: checking in modified ChangeLog
2007-12-31 16:02 dev
* ChangeLog, setup.py: This 0.5 release brings
* better DLNA support, in particular for the Sony Playstation 3
* a MediaServer backend for Shoutcast internet radio streams
* an experimental last.fm MediaServer backend for the last.fm
service
* provide methods to remove local devices from a Coherence
instance
* slow move to an XML based configuration file
* support for BSD systems - thx kraft!
* an emerging D-Bus interface
* more platform independency for our Twisted inotify module,
using libc when possible
* and a lot more of the usual bugfixes and enhancements
2007-12-31 11:05 dev
* coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: a step towards persistent
device UUIDs
2007-12-31 11:03 dev
* Coherence.egg-info/PKG-INFO, Coherence.egg-info/entry_points.txt,
coherence/__init__.py, coherence/backends/lastfm_storage.py,
setup.py: last.fm backend (not functional due to the current
unsatisfactory UPnP stack implementation of quite a lot available
UPnP clients)
2007-12-31 10:52 dev
* coherence/backends/iradio_storage.py,
coherence/upnp/core/utils.py: close proxy connection when clients
are finished or quit, closes #111
2007-12-31 10:50 dev
* coherence/extern/inotify.py: minor fix to not break tracebacks on
displaying a utf-8 encoded string
2007-12-30 16:54 dev
* coherence/upnp/core/ssdp.py: move the
'UPnP.SSDP.datagram_received' signal to a place __after__ we had
a change to register the device with the SSDP server
2007-12-29 20:34 dev
* coherence/extern/simple_plugin.py: add a little bit more
flexibility to the SimplePlugin Reception class, enable it to
return only selected plugin classes
2007-12-29 15:32 micxer
* coherence/upnp/core/event.py, coherence/upnp/core/ssdp.py: Fixed
missing SSDP signal
Changed signalnames to more generic names
2007-12-24 09:10 dev
* coherence/upnp/core/event.py: missing import, fixes #114
2007-12-21 14:38 micxer
* coherence/base.py, coherence/upnp/core/event.py,
coherence/upnp/core/soap_proxy.py: Merge changes made in the
upnp-test branch back to Coherence trunk
2007-12-18 11:56 dev
* coherence/__init__.py, coherence/backends/fs_storage.py,
coherence/upnp/core/DIDLLite.py,
coherence/upnp/core/soap_service.py: some adjustments for the
divx support in the PS3
2007-12-15 14:45 dev
* coherence/upnp/core/event.py: Adding some more specs compliance
to the eventing implementation.
Closes #113
2007-12-13 16:05 dev
* coherence/upnp/core/xml-service-descriptions/ContentDirectory1.xml:
removal of white-space that shouldn't have been in that xml-file
2007-12-12 19:06 dev
* coherence/upnp/core/service.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/media_receiver_registrar_server.py:
fixing an embarrassing bug regarding the namespace of the UPnP
serviceID in our device description xml-files.
Thanks morty for spotting this!
2007-12-12 19:02 dev
* coherence/upnp/core/event.py: handle URLs send from other devices
with not trailing root '''/''' more gracefully
2007-12-08 22:05 dev
* coherence/upnp/services/servers/content_directory_server.py: be a
bit more lenient toward the XBox
2007-12-08 21:41 dev
* coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/iradio_storage.py,
coherence/backends/mediadb_storage.py,
coherence/upnp/core/DIDLLite.py,
coherence/upnp/services/servers/content_directory_server.py:
cleaning up some of the XBox related stuff
2007-12-08 14:00 dev
* coherence/base.py: handle fallback from XMLConfig to old config
file the ''right'' way
2007-12-08 12:33 dev
* bin/coherence: correct a missing import
2007-12-08 12:10 dev
* bin/coherence, coherence/backends/fs_storage.py,
coherence/base.py, coherence/extern/config.py,
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/device.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/content_directory_server.py: *
some more preparations for the XMLConfig
* convert icon attributes to strings
* some experiments to create device client specific DIDLElements
2007-12-01 13:16 dev
* coherence/extern/config.py: correct the last checkin, now with
all needed methods
2007-12-01 12:47 dev
* bin/coherence, coherence/base.py, coherence/extern/config.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: support for the new
[wiki:XMLConfig XML based config file format]
2007-11-28 21:49 dev
* Coherence.egg-info/PKG-INFO, Coherence.egg-info/entry_points.txt,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/iradio_storage.py,
coherence/upnp/core/utils.py,
coherence/upnp/services/servers/content_directory_server.py,
docs/coherence.conf.example, setup.py: a new backend that maps
shoutcast radio stations to 'normal' UPnP media data, far from
perfect, and with some bugs to fix
some changes to the ContentDirectoryClient Browse method, to
enable store objects to return deferreds when queried for their
items and children
2007-11-27 13:57 dev
* coherence/__init__.py, coherence/base.py,
coherence/upnp/core/ssdp.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: added the option to
remove a backend from Coherence:
* requirement: backend must be added via `backend
=coherence.add_plugin(...)`
* removal is done by `coherence.remove_plugin(backend)`
This closes #99
2007-11-23 16:34 dev
* coherence/upnp/core/device.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server_client.py: enable access to
device icons from within the device clients, they have now a list
attribute named 'icons'.
This is a followup to [455].
2007-11-22 15:09 dev
* coherence/extern/inotify.py: new versions of libc have wrapper
calls for the kernel inotify methods, let's use them if they are
available and maybe some day in the future we can get rid of that
_inotify_syscalls list.
2007-11-21 10:10 dev
* Coherence.egg-info/PKG-INFO, coherence/__init__.py,
coherence/base.py, coherence/upnp/core/device.py,
coherence/upnp/core/msearch.py, coherence/upnp/core/ssdp.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: flexibilized the way the
ControlPoint reacts on new device detections and added a method
to query for a particular device and get informed if it shows up
later
2007-11-21 10:01 dev
* coherence/extern/covers_by_amazon.py: a bit of cleanup and a way
to specify the file to store the downloaded cover
2007-11-21 09:59 dev
* coherence/backends/fs_storage.py,
coherence/upnp/core/DIDLLite.py: added support to serve mp4 files
to the filesystem store
2007-11-13 19:13 dev
* coherence/extern/inotify.py: set the unpack string to use native
byte order, but follow the Python standard size and alignment
definitions instead of using the native ones there too.
http://docs.python.org/lib/module-struct.html
Closes #104, thx for spotting this.
2007-11-13 09:25 dev
* coherence/upnp/core/utils.py: support for IP detection on BSD
systems. Thx for the patch, kraft!
Closes #103
2007-10-17 10:39 dev
* coherence/upnp/core/ssdp.py: a bit more of the helpful debug
output
2007-10-14 19:42 dev
* coherence/__init__.py, coherence/base.py,
coherence/upnp/core/device.py, coherence/upnp/core/ssdp.py,
coherence/upnp/devices/media_renderer.py: first steps towards the
removal off an once activated local device
2007-10-14 15:25 dev
* coherence/upnp/core/DIDLLite.py, coherence/upnp/core/service.py,
coherence/upnp/core/variable.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/services/clients/av_transport_client.py,
coherence/upnp/services/clients/connection_manager_client.py,
coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/clients/rendering_control_client.py: * a
DIDLLite fragment transformed from string into objects uses now
the proper UPnP classes
* variable subscriptions can now be callback and signal based
* variables send out signals on modification
* 'Coherence.UPnP.StateVariable.changed' - for notification on
changes of every variable
* 'Coherence.UPnP.StateVariable.<VariableName>.changed' - a
dedicated signal per variable
* removed usn from the callback/signal arguments
2007-10-14 15:10 dev
* coherence/upnp/core/ssdp.py: catch Attribute exceptions too, in
the case we are trying to send out something during shutdown
2007-10-14 15:07 dev
* coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/backends/mediadb_storage.py: added childCount
attributes at the proper level again and some minor
rearrangements
2007-10-14 15:05 dev
* coherence/extern/covers_by_amazon.py: added a way to use the
cover getter it as a simple command-line tool and removed some
debugging output
2007-10-14 15:02 dev
* coherence/base.py: no "warning" log message if there are no
plugins to activate
2007-10-03 18:45 dev
* coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/servers/content_directory_server.py: *
handle migration to the new browse call more gracefully
* and be a bit more forgiving with uncompleted backends
2007-10-03 08:04 philn
* coherence/base.py: s/error/warning
2007-10-02 11:35 dev
* coherence/backends/mediadb_storage.py,
coherence/upnp/devices/media_server.py,
docs/coherence.conf.example: some updates to sort out the
Rhythmbox vs. PS3 issues
2007-09-30 21:23 dev
* bin/coherence, coherence/__init__.py, coherence/dbus_service.py,
docs/coherence.conf.example: * moved import of Coherence - is it
the logging framework that installs the reactor early?
* some cleanup in the DBusPontoon and a bit more logging output
* increase version number
2007-09-30 18:41 dev
* coherence/dbus_service.py, coherence/upnp/core/service.py,
coherence/upnp/core/variable.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server_client.py: updates on the
D-Bus integration, now we have a D-Bus method per service named
'subscribe' to get an initial set of StateVariable values and
D-Bus signals are now created when a StateVariable gets updated
2007-09-28 21:38 philn
* Coherence.egg-info/SOURCES.txt: remove unuseful file
2007-09-28 21:36 philn
* ., Coherence.egg-info, Coherence.egg-info/PKG-INFO,
Coherence.egg-info/SOURCES.txt,
Coherence.egg-info/dependency_links.txt,
Coherence.egg-info/entry_points.txt,
Coherence.egg-info/top_level.txt: put Coherence.egg-info under
source control, for a safer world
2007-09-26 21:52 dev
* coherence/base.py, coherence/dbus_service.py: more work on the
D-Bus interface, now split into UPnP device and UPnP service
D-Bus objects
2007-09-26 21:51 dev
* coherence/upnp/core/service.py,
coherence/upnp/services/clients/av_transport_client.py,
coherence/upnp/services/clients/connection_manager_client.py,
coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/clients/rendering_control_client.py: have
a reference in the service class to the client class, to make
things in the D-Bus (and others) gateway easier, but maybe
refactoring and subclassing the client from the service class is
a much better idea
2007-09-23 19:05 dev
* bin/coherence, coherence/__init__.py, coherence/base.py,
coherence/dbus_service.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/services/clients/content_directory_client.py:
first experiment of some Coherence/DBus coupling
2007-09-23 13:12 dev
* coherence/backends/mediadb_storage.py: better default path for
media db
2007-09-23 13:10 dev
* coherence/backends/gstreamer_audio_player.py: minor log output
change
2007-09-23 13:08 dev
* coherence/backends/flickr_storage.py: added a timeout of 60
seconds to the flickr request method
2007-09-22 22:14 dev
* coherence/extern/inotify.py: added syscall ids for x86_64, closes
#98.
Thx!
2007-09-19 12:50 dev
* coherence/upnp/core/msearch.py, coherence/upnp/core/ssdp.py: add
the missing ''import''
2007-09-19 12:49 dev
* coherence/base.py: * change a message from loglevel ''error'' to
''warning'', as an ''error'' message leads to the raise off a
SystemExit exception in the logging framework
* replace ''installed_plugins'' with ''available_plugins'', as we
are talking about the usable backends, not the ones we have
activated
* return in add_plugin the class of the activated device, to
support local accessing of local activated devices in some near
future
2007-09-13 10:49 dev
* coherence/upnp/core/msearch.py, coherence/upnp/core/ssdp.py:
wrapped multicast and unicast messages in try/except to catch and
log socket errors caused by gone network connections
2007-09-06 13:23 dev
* coherence/extern/et.py: change from a sys.exit and therefore a
program abort to a more application friendly ImportError
exception when no suitable ElementTree implementation can be
found
2007-09-03 11:40 philn
* coherence/log.py, docs/coherence.conf.example: redirect only
stderr, refs #95 ... Depends on patch at
https://core.fluendo.com/flumotion/trac/ticket/748
2007-08-16 17:17 dev
* coherence/base.py, coherence/upnp/core/service.py: * use
os.path.join to get the system specific path-separator
* minor log output fixes
2007-08-16 17:08 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: * fix for a potential
race condition where the backend signals to be ready and the
signal collector not yet being in place
2007-08-14 15:01 dev
* coherence/backends/gstreamer_audio_player.py: revert wrong
checkin
2007-08-14 14:54 dev
* coherence/backends/gstreamer_audio_player.py, coherence/base.py,
coherence/log.py, coherence/upnp/core/service.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/connection_manager_server.py,
docs/coherence.conf.example: * move to lowercase log category
names
* categories in the config(-file) will be converted to lower
2007-08-14 13:01 dev
* coherence/base.py, coherence/extern/simple_plugin.py,
coherence/upnp/devices/media_server.py: add a callable for log
output to the simple-plugin, so errors there fit nicely into the
overall look
2007-08-14 09:22 dev
* coherence/backends/gstreamer_audio_player.py, setup.py: use the
same name for class _and_ entrypoint, if not the fallback plugin
handling will fail
2007-08-14 09:07 dev
* coherence/base.py, coherence/log.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: more adjustments to work
with the new logging framework
2007-08-13 16:32 dev
* coherence/__init__.py, coherence/backends/axiscam_storage.py,
coherence/backends/buzztard_control.py,
coherence/backends/elisa_renderer.py,
coherence/backends/elisa_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/backends/mediadb_storage.py, coherence/base.py: added
our little simple_plugin as a fallback if we can't use
pkg_resources from setuptools
2007-08-13 16:25 dev
* coherence/upnp/core/soap_proxy.py: added some log output
2007-08-13 16:23 dev
* coherence/extern/simple_plugin.py: little helper module
implementing a real simple plugin system, just enough to fulfill
our needs when we are on a system with no
setuptools/pkg_resources available
2007-07-31 16:15 dev
* ChangeLog: ChangeLog update
2007-07-31 16:08 dev
* ChangeLog, coherence/__init__.py,
coherence/backends/flickr_storage.py, coherence/base.py,
coherence/upnp/core/event.py, coherence/upnp/core/service.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/connection_manager_server.py,
coherence/web/ui.py, docs/coherence.conf.example, setup.py:
Preparations for the 0.4.0 release.
This release brings
* integration of a new logging module
logging can now be configured via the config file or through an
environment variable COHERENCE_DEBUG, which overrides the config
values.
Usage is like
COHERENCE_DEBUG=*:3 emit INFO level messages from all modules
COHERENCE_DEBUG=*:2,ssdp:4 WARNING level messages from all
modules,
plus debug level for the ssdp module
* removed the dependency for SOAPpy, now using own methods and
ElementTree only
* start reworking the client API, to make things there easier
too,
see as an example
https://coherence.beebits.net/wiki/CoherenceMediaRenderer
* serving cover art now to DLNA MediaRenderers
* refinements on the object creation and the import into the
MediaServers
* an installable package for the Nokia Maemo platform on the
N800,
complete with all dependecies, thanks to Rob Tylor of
http://codethink.co.uk
* and a lot more of the usual bugfixes and enhancements
2007-07-31 08:51 philn
* coherence/extern/inotify.py: don't set _instance_ too early
2007-07-30 17:13 dev
* coherence/upnp/core/device.py, coherence/upnp/core/service.py:
more log level rearrangements
2007-07-30 16:42 philn
* coherence/extern/inotify.py: check self._fd existence before
release
2007-07-30 14:34 dev
* coherence/backends/flickr_storage.py, coherence/base.py,
coherence/log.py, coherence/upnp/core/service.py: * added
disabling of any log output again, with 'none' as logmode in the
configuration
* rearranging the levels of some log messages
2007-07-27 10:07 dev
* coherence/upnp/core/soap_proxy.py: return the failure from the
errback of a soap call, so the upstream errback is called too
2007-07-27 10:06 dev
* coherence/upnp/core/service.py: removed some debug noise
2007-07-27 10:05 dev
* coherence/upnp/core/event.py: catch errors when sending
UNSUBSCRIBE messages after the socket is gone
2007-07-26 18:49 dev
* coherence/upnp/services/servers/connection_manager_server.py:
fixed a wrong indentation
2007-07-26 16:10 philn
* coherence/log.py: woo colored log output
2007-07-26 15:45 dev
* coherence/__init__.py, coherence/base.py,
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
coherence/upnp/core/service.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server_client.py,
coherence/upnp/services/clients/av_transport_client.py,
coherence/upnp/services/clients/connection_manager_client.py,
coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/clients/rendering_control_client.py:
event UNSUBSCRIBE messages haven't been send out on device
shutdown.
Using the proper write method to send out the request and
rearrangement of the deferred cascade during the shutdown of
Coherence solves that issue.
2007-07-25 18:29 dev
* coherence/upnp/services/servers/connection_manager_server.py:
react upon a malformed RemoteProtocolInfo with an error
2007-07-25 16:41 dev
* coherence/upnp/core/DIDLLite.py: remove the '''optional'''
preamble from the DIDLLite fragment, as some older
ContentDirectory clients - notably the NOXON-2 software - can't
handle it
2007-07-25 16:39 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: follow-up to [585], do
not suppress a lower-version number service announcement
2007-07-25 16:33 dev
* coherence/upnp/core/msearch.py, coherence/upnp/core/ssdp.py: * do
not send out ssdp notifications for ''silent'' devices and
services on a '''ssdp:all''' request, only answer when exactly
irthe type is queried
* some log level adjustments
2007-07-25 16:26 dev
* coherence/backends/mediadb_storage.py, coherence/log.py: * handle
already existing cover art in the MediaDB store
* forgotten argument passing at the log.critical convenience
method
2007-07-25 10:43 dev
* coherence/upnp/core/ssdp.py: do not append ''SILENT'' to the
MSEARCH responses
2007-07-24 21:45 dev
* coherence/upnp/core/service.py: added a namespace identifier to
the event notification xml elements, closes #93
2007-07-24 21:35 dev
* coherence/upnp/core/event.py, coherence/upnp/core/ssdp.py: a
follow-up to [586], this time with the right files checked in :-(
2007-07-24 21:27 dev
* coherence/upnp/core/event.py: have a proper event notification
sequence number rollover - finally, after all these years ;-)
2007-07-24 21:11 dev
* coherence/upnp/core/event.py, coherence/upnp/core/ssdp.py: added
Date header to MSEARCH responses and event subscription messages
to make the test-tool (and micxer) happy
2007-07-24 21:05 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/media_receiver_registrar_server.py:
do not just register services in relation to the devices version
number, react appropriate to version 1 only services like the
MediaReceiverRegistrar and the ScheduledRecording one - this
closes #92
2007-07-24 12:33 dev
* coherence/upnp/core/DIDLLite.py: added ''originalTrackNumber'' to
DIDLLite and be bit more tolerant to attributes with integer
values
2007-07-24 08:06 dev
* coherence/base.py: rearrange log-system initialization - a
COHERENCE_DEBUG environment variable has always precedence over
the log-level definitions in the config file
2007-07-23 20:28 dev
* coherence/base.py, coherence/log.py: enable logging and level
definition per subsystem via configuration file again
2007-07-23 17:46 dev
* coherence/base.py, coherence/log.py: enable logging into a file
via configuration again
2007-07-23 09:06 dev
* coherence/base.py: be a bit more informative why a plugin import
failed
2007-07-22 12:45 dev
* coherence/backends/fs_storage.py, coherence/extern/inotify.py:
append content of a directory if that directory was '''moved'''
in, fixes #90
2007-07-15 15:19 dev
* coherence/upnp/core/DIDLLite.py,
coherence/upnp/services/clients/content_directory_client.py: *
moved upnp:artist into the root class
* return more info from the browse request
2007-07-11 23:42 dev
* coherence/backends/fs_storage.py, coherence/upnp/core/service.py,
coherence/upnp/core/utils.py,
coherence/upnp/services/clients/content_directory_client.py:
refinements of the CreateObject and ImportResource methods in the
FSStore MediaServer, works fine now with our MediaRenderer
2007-07-11 23:39 dev
* coherence/upnp/core/action.py, coherence/upnp/core/soap_proxy.py:
adapt the handling of a single value result to the changes from
the move from SOAPpy to our own ElementTree based parser
2007-07-11 23:36 dev
* coherence/__init__.py, coherence/base.py: one more step in the
''we get the interface detection right'' direction
2007-07-09 21:05 dev
* coherence/upnp/services/servers/av_transport_server.py: removed
some lingering import of twisted.web.soap
2007-07-06 10:33 dev
* coherence/upnp/core/utils.py: a lame fix to get the interface
name on OSX, closes #88
2007-07-05 14:41 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: fix the wrong if clause
of [548]
2007-07-05 12:57 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: added a keyword argument
''no_thread_needed'' (defaults to False) to initiate backends
that are Twisted-friendly or need to run in a non-thread
environment
2007-07-04 17:03 philn
* coherence/extern/inotify.py: call reactor.removeReader when
instance release is requested
2007-07-03 20:37 dev
* coherence/__init__.py, coherence/base.py: some rearrangement of
the eggs plugin handling
* entrypoints are looked up only if there is at least one plugin
to load defined
2007-07-03 19:07 dev
* coherence/extern/covers_by_amazon.py: now the proper doc string
adjustment
2007-07-03 18:57 dev
* coherence/extern/covers_by_amazon.py: doc string adjustment
2007-07-03 18:48 dev
* coherence/extern/covers_by_amazon.py: some cosmetic changes re
[541]
2007-07-03 15:29 philn
* coherence/extern/covers_by_amazon.py: applied patch from
lightyear
2007-07-03 15:03 philn
* coherence/backends/mediadb_storage.py,
coherence/extern/covers_by_amazon.py: API key is now a parameter
of the coverGetter
2007-07-03 14:53 dev
* MANIFEST.in, coherence/extern/covers_by_amazon.py,
coherence/extern/et.py, coherence/upnp/core/utils.py: * added
MANIFEST.in to be prepared for the exclusion of the debion
directory
* moved parse_xml out of upnp.core.utils.py into
coherence.extern.et.py, to remove the dependency from
covers_by_amazon.py
2007-07-03 12:05 dev
* coherence/backends/elisa_renderer.py: changed the check for a
fitting protocolInfo
2007-07-02 17:06 philn
* coherence/backends/elisa_renderer.py,
coherence/upnp/core/ssdp.py: various fixes
2007-06-30 12:10 dev
* coherence/base.py: do not '''print''' the tracebacks, return them
as string for the log system to handle them
2007-06-30 11:05 dev
* coherence/extern/et.py: we need that specific module import path
for the ElementTree module on the Python 2.5 version on the Maemo
platform
2007-06-29 17:17 philn
* coherence/upnp/core/device.py, coherence/upnp/core/ssdp.py: don't
attempt to write on None transport
2007-06-27 19:17 philn
* coherence/backends/elisa_storage.py: ObjectIDs are not integers
anymore
2007-06-27 18:43 dev
* coherence/backends/fs_storage.py,
coherence/upnp/core/DIDLLite.py: small change to see if we can
support album art on the container level
2007-06-27 18:11 dev
* coherence/upnp/core/DIDLLite.py: DLNA attributes for
upnp:albumArtURI (testing)
2007-06-27 17:11 dev
* coherence/upnp/core/DIDLLite.py: disable DLNA decorator due to
immanent stupidity
2007-06-27 16:58 dev
* coherence/extern/et.py, coherence/upnp/core/utils.py: set proper
default encoding and handle data that is unicode already
2007-06-27 16:53 dev
* coherence/upnp/devices/media_server.py: reduce noise
2007-06-27 12:16 dev
* coherence/extern/et.py, coherence/upnp/core/DIDLLite.py,
coherence/upnp/core/soap_lite.py: changed some of the ElementTree
action to really send out utf-8 data (experimental and untested
with Python2.4), re #89
2007-06-26 17:44 dev
* coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server_client.py: follow up to
[510], adjusting some debug helper methods
2007-06-26 10:47 dev
* coherence/upnp/core/DIDLLite.py, coherence/upnp/core/dlna.py: * a
beginning of a DLNA decorator module
* added xml preamble to the DIDLLite string
2007-06-26 10:45 dev
* coherence/upnp/core/variable.py: add the device usn as a
parameter to the StateVariable updated notification
2007-06-26 10:43 dev
* coherence/base.py, coherence/upnp/core/device.py,
coherence/upnp/core/ssdp.py: some modifications on the reaction
upon a SSDP device bye-bye message
2007-06-26 10:41 dev
* coherence/upnp/devices/media_server_client.py: adjusting to the
new ContentDirectoryService ''browse'' action
2007-06-26 10:39 dev
* coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/upnp/devices/media_server.py: some more fixed regarding
the unicode filenames
2007-06-25 19:18 dev
* coherence/upnp/services/clients/content_directory_client.py:
preserve backward compatibility, call new version of the UPnP
ContentDirectoryService client Browse action only if requested
explicitly
2007-06-25 18:40 dev
* coherence/extern/inotify.py: some solution to handle unicode
pathnames, again this might work only on utf-8 encoded
filesystems
2007-06-25 15:06 dev
* coherence/upnp/services/clients/content_directory_client.py: new
version of the UPnP ContentDirectoryService client Browse action,
returns a dict with the results of the query as another dict with
the key ''items'' included. Might maybe change once more.
2007-06-25 14:51 dev
* coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py: * add mp4 files to
the list of supported protocolType - closes #87, thx!
* store filenames within the FSStore MediaServer as unicode
strings - re #63.
This will probably still have issues with filesystems that don't
use utf-8 encoding.
2007-06-22 15:00 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: get around a missing
method in the new logging framework
2007-06-22 14:53 dev
* coherence/backends/flickr_storage.py: added missing Loggable
inheritance
2007-06-22 14:47 philn
* coherence/upnp/core/service.py: ServiceServer should be a
Loggable
2007-06-22 11:58 dev
* coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py: some protocolType
additions for a simple test of the video handling capabilities of
the MediaServer and the MediaRenderer
2007-06-22 08:04 dev
* coherence/upnp/devices/media_renderer.py: fixed missing import
that broke the MediaRenderer
2007-06-22 07:59 dev
* coherence/extern/covers_by_amazon.py: added usage restrictions
(by the Amazon Webservices license) to the doc string
2007-06-20 09:27 philn
* coherence/base.py, coherence/upnp/core/event.py,
coherence/upnp/devices/control_point.py: changed some warnings to
info()
2007-06-20 09:01 philn
* ., coherence/log.py: forgot a file
2007-06-20 08:58 philn
* ChangeLog, coherence/backends/axiscam_storage.py,
coherence/backends/buzztard_control.py,
coherence/backends/elisa_renderer.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/backends/mediadb_storage.py, coherence/base.py,
coherence/upnp/core/action.py, coherence/upnp/core/device.py,
coherence/upnp/core/event.py, coherence/upnp/core/msearch.py,
coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py, coherence/upnp/core/ssdp.py,
coherence/upnp/core/variable.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/devices/media_server_client.py,
coherence/upnp/services/servers/connection_manager_server.py,
coherence/web/ui.py: * coherence/backends/axiscam_storage.py:
* coherence/backends/buzztard_control.py:
* coherence/backends/elisa_renderer.py:
* coherence/backends/flickr_storage.py:
* coherence/backends/fs_storage.py:
* coherence/backends/gstreamer_audio_player.py:
* coherence/backends/mediadb_storage.py:
* coherence/base.py:
* coherence/upnp/core/action.py:
* coherence/upnp/core/device.py:
* coherence/upnp/core/event.py:
* coherence/upnp/core/msearch.py:
* coherence/upnp/core/service.py:
* coherence/upnp/core/soap_service.py:
* coherence/upnp/core/ssdp.py:
* coherence/upnp/core/variable.py:
* coherence/upnp/devices/control_point.py:
* coherence/upnp/devices/media_renderer.py:
* coherence/upnp/devices/media_renderer_client.py:
* coherence/upnp/devices/media_server.py:
* coherence/upnp/devices/media_server_client.py:
* coherence/upnp/services/servers/connection_manager_server.py:
* coherence/web/ui.py:
Slighly changed the way we do logging :-) There's now a
COHERENCE_DEBUG env variable you can use to debug Coherence.
2007-06-20 08:30 dev
* coherence/upnp/core/soap_lite.py,
coherence/upnp/core/soap_service.py: more rework on the creation
of an UPnP SOAP error
2007-06-20 08:19 dev
* coherence/upnp/core/service.py: changed a log level
2007-06-20 08:19 dev
* coherence/upnp/core/ssdp.py: send bye-bye notifications for
"silent" (not-actively) announced devices/services
2007-06-19 20:22 dev
* coherence/upnp/core/soap_service.py: bug fix for wrong UPnPError
creation
2007-06-19 19:26 dev
* coherence/extern/elementsoap, coherence/upnp/core/action.py,
coherence/upnp/core/soap_lite.py,
coherence/upnp/core/soap_proxy.py,
coherence/upnp/core/soap_service.py: * rewrite of the SOAP
classes, now relying solely on the ElementTree api.
* this allows us to remove the SOAPpy dependency
2007-06-18 13:40 dev
* coherence/extern/logger.py: bug fix
2007-06-18 13:33 dev
* coherence/__init__.py, coherence/base.py,
coherence/upnp/core/device.py, coherence/upnp/core/service.py,
coherence/upnp/core/utils.py: * add a new device only to the
internal list of devices after the detection of its services and
its own one has completed successfully, re #82
* maybe keep a reference of that unsuccessful attempt and ignore
this device after three,... failed attempts?
* be more informative about errors during plugin setup
* increase svn version number to 0.3.1
2007-06-18 13:22 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: create better looking
(more readable) xml when in debug mode
2007-06-18 13:21 dev
* coherence/extern/logger.py: helper methods to find out on which
log level we are
2007-06-18 13:20 dev
* coherence/extern/et.py: a little helper method to generate
human-readable xml
2007-06-12 09:32 dev
* coherence/extern/covers_by_amazon.py: make the WorkQueue a bit
more general
2007-06-11 18:40 dev
* setup.py: added version news into the package description
2007-06-11 18:08 dev
* ChangeLog, coherence/__init__.py,
coherence/backends/fs_storage.py: preparations for the 0.3.0
release
2007-06-10 14:57 dev
* coherence/upnp/core/ssdp.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: make some local device
and service registrations ''silent'', meaning not announcing them
via SSDP alive notification messages, but still answer for
MSEARCH requests.
This should solve an issue causing the PS3 to overbalance when
getting notification messages from the same device for different
device versions.
2007-06-10 14:52 dev
* coherence/backends/fs_storage.py,
coherence/upnp/core/DIDLLite.py: revert some changes made during
the PS3 tests which seem to be unnecessary
2007-06-10 10:46 dev
* coherence/upnp/core/service.py,
coherence/upnp/devices/media_server.py: fixes some wrong
assumption about an int really being one
2007-06-09 15:18 dev
* coherence/__init__.py, coherence/backends/elisa_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/extern/et.py, coherence/extern/inotify.py,
coherence/extern/uuid/uuid.README.txt,
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/event.py,
coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py, coherence/upnp/core/ssdp.py,
coherence/upnp/core/utils.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/connection_manager_server.py,
docs/coherence.conf.example, tests/rpc_client.py: merged all
PS3-test branch changes r456:469 back into trunk.
2007-05-24 19:44 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: enable support for device
icons
configuration isn't yet optimal - in the section of the
MediaServer or MediaRenderer backend in the config file we need
something like this:
{{{
[[[icon]]]
mimetype = image/png
height = 48
width = 48
depth = 24
url = file:///home/dev/elisa/elisa.png
}}}
or in the config dict:
{{{
'icon': { 'url':'http://coherence.beebits.net/image.png',
'mimetype': 'image/png',
'width':120,
'height':120,
'depth':24
}
}}}
According to the
[http://upnp.org/specs/arch/UPnP-DeviceArchitecture-v1.0-20060720.pdf
UPnP Device Architecture p.28] all fields are required. Maybe
later Coherence can autogenerate the values with a PIL call.
Multiple icons are supported to. The config above has to be
wrapped into an '''icons''' section or dictionary, and the
'''icon''' has to be replaced with an unique name.
2007-05-21 12:40 dev
* coherence/backends/elisa_storage.py,
coherence/upnp/core/DIDLLite.py: enable the Elisa MediaServer to
supply cover images too
2007-05-20 19:03 dev
* coherence/backends/mediadb_storage.py: use other id3 tag library
([http://pyid3lib.sourceforge.net pyid3lib]) if available, as
requested by konttori
2007-05-20 19:00 dev
* coherence/upnp/devices/media_server.py: small cleanup
2007-05-20 18:59 dev
* coherence/extern/covers_by_amazon.py: * works now with artist and
title in unicode
* typo fix
2007-05-19 09:53 dev
* coherence/backends/mediadb_storage.py: this is a comment addon
for [449]
* added the image extension to the cover request uri, so clients
like the Nokia Media Streamer - which determine the image type by
extension and ignore the mimetype - can handle it. This closes
#78
* reworked the container structure and added an "All tracks of
<artist>" at the beginning of the Artist container
2007-05-19 09:43 dev
* coherence/backends/mediadb_storage.py,
coherence/upnp/devices/media_server.py: adapt the recognition of
a request for cover art to the new uri with the image extension
added, addresses #78
2007-05-19 09:41 dev
* coherence/upnp/services/servers/content_directory_server.py:
remove the wrong conversion of the ObjectID to an integer
2007-05-18 12:26 dev
* coherence/upnp/devices/media_server.py: adjustments to proper
display unicode names and titles in the web-interface
2007-05-18 12:25 dev
* coherence/backends/mediadb_storage.py: Look Ma - now with 'All'
and 'Artists' containers
2007-05-18 12:23 dev
* coherence/upnp/core/utils.py: some minor cleanup
2007-05-17 19:55 dev
* coherence/backends/mediadb_storage.py: * made the MediaStore a
working MediaServer backend
* added album art/cover image support
2007-05-17 19:52 dev
* coherence/upnp/devices/media_server.py: adjustments to work with
the MediaStore backend and to support album art/cover retrieval
2007-05-17 19:46 dev
* coherence/upnp/core/DIDLLite.py: extend MusicTrack with
'upnp:albumArtURI' attribute, which could move up to Item anyway
2007-05-17 19:41 dev
* coherence/extern/covers_by_amazon.py: allow keeping the received
image in memory or converting it into a different format with
[http://www.pythonware.com/products/pil/index.htm PIL]
2007-05-17 12:18 dev
* coherence/backends/buzztard_control.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/upnp/services/servers/content_directory_server.py: use
methods to access the MediaServer item attributes, allowing the
item to create them on the fly
2007-05-17 12:16 dev
* setup.py: add the new MediaStore backend to the MediaServer
entrypoints
2007-05-17 11:55 dev
* coherence/extern/logger.py: got it right this time? :-/
2007-05-17 11:40 dev
* coherence/extern/logger.py: handle unicode log msg arguments
2007-05-13 20:17 dev
* coherence/backends/mediadb_storage.py: first version of a
MediaStore with a database backend, provides some basic internal
functionality, but far from complete
2007-05-13 19:37 dev
* coherence/extern/covers_by_amazon.py: deal a bit better with the
filename extension
2007-05-12 20:30 dev
* coherence/extern/covers_by_amazon.py: now callback handling with
parameter passing
2007-05-12 11:23 dev
* coherence/extern/covers_by_amazon.py: added a callback parameter,
so the initiator will get informed when an image retrieval has
succeeded
2007-05-12 10:57 dev
* coherence/extern/covers_by_amazon.py: a small helper module to
retrieve covers/album-art via the Amazon ECommerce Webservice
with Twisted
* works for ASIN and ARTIST/TITLE
* saves the retrieved image in a file
* includes a small Queue module to reduce the number of parallel
requests
2007-05-10 16:30 dev
* coherence/extern/inotify.py: added system call ids for ARM/Maemo
platform
2007-05-10 16:29 dev
* coherence/upnp/core/event.py: reduce the amount of log output
2007-05-07 20:21 dev
* coherence/backends/gstreamer_audio_player.py, setup.py: rework of
the GStreamer MediaRenderer
supports ogg now and works way better on the N800 (still a few
issues open, e.g. seems to stop sending UPnP events)
re #74
2007-05-07 08:28 dev
* coherence/upnp/core/service.py: store the information about
vendor defines in the ''allowed value range'' too
2007-05-07 08:26 dev
* coherence/backends/fs_storage.py,
coherence/upnp/core/DIDLLite.py: adaption for ogg-files
2007-05-05 13:31 dev
* coherence/__init__.py, coherence/base.py,
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
coherence/upnp/core/service.py, coherence/upnp/core/ssdp.py: Fix
the shutdown method of Coherence, the
''reactor.addSystemEventTrigger( 'before', 'shutdown',
self.shutdown)'' expects self.shutdown to return a deferred and
waits until that has finished.
Now we return a
[http://twistedmatrix.com/projects/core/documentation/howto/defer.html#auto7
deferredList] in which we collect and wait for all cleanups that
have to be done.
In addition the way the event unsubscription had to be changed. A
new EventProtocol instance seems not to be created by the
ClientCreater when the reactor is going down. Which makes some
sense anyway. :-)
So we keep the protocol instance after our first event
subscription request for reuse around and are now able to send
out the unsubscribe request.
This fixes #75 - at least it is supposed to. If not pls reopen
this ticket.
2007-05-04 10:51 dev
* coherence/backends/flickr_storage.py: Flickr seems to have
changed the way original photos can be retrieved.
[http://flickr.com/services/api/misc.urls.html Flickr Photo
Source URLs]
To access the original photos, we need to construct the url with
an ''originalsecret'', which isn't returned in the response to
our current request.
So for now we just take the default image (medium resolution?)
that Flickr offers and try to sort out later what's needed to
retrieve that ''originalsecret'' value.
This closes #73.
2007-04-26 10:54 micxer
* coherence/extern/uuid/uuid.py: fixed typo in uuid.py
2007-04-16 19:03 dev
* coherence/backends/gstreamer_audio_player.py: added id3lib to the
GStreamer pipeline on the N800, to avoid crashes of dspmp3sink
with files containing tags it cant handle
2007-04-15 18:40 dev
* coherence/backends/fs_storage.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_server.py, tests/rpc_client.py:
added the missing http-put content import method, needs probably
a bit more error checking
{{{
tests/rpc_client.py -c put_resource
"url=http://host:port/uuid/id?import" "path=file.mp3"
}}}
2007-04-11 20:38 dev
* coherence/backends/gstreamer_audio_player.py: more work on the
GStreamer MediaRenderer for the Nokia N800,
fixed some wrong assumptions on how GStreamer ticks,
addresses [74]
2007-04-11 15:42 dev
* coherence/backends/gstreamer_audio_player.py: volume control on
the Nokia N800 dspm3sink
2007-04-11 13:06 dev
* coherence/backends/gstreamer_audio_player.py: some changes in the
GStreamer MediaRenderer to work on the Nokia N800, addresses #74
2007-04-11 13:04 dev
* coherence/upnp/services/clients/av_transport_client.py: added
necessary parameter for AVTransport Play (we do check this now)
2007-04-05 16:36 dev
* tests/rpc_client.py: cut 'n paste error
2007-04-04 21:21 dev
* coherence/upnp/devices/control_point.py, tests/rpc_client.py:
more work on the ContentDirectory action ImportResource? in the
file-system MediaServer
an upload should now be possible with
{{{
test/rpc_client.py -c import_resource -d <uuid of MediaServer>
source_uri=http://host/file
destination_uri=http://mediaserver/location?import
}}}
2007-04-04 16:17 dev
* coherence/backends/fs_storage.py: handle non-existent inotify
support graciously
2007-04-04 10:09 dev
* setup.py: generate download url from __version__
2007-04-03 19:38 dev
* coherence/__init__.py, coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/utils.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/servers/content_directory_server.py,
tests/rpc_client.py: initial work to support the ContentDirectory
actions CreateObject and ImportResource in the file-system
MediaServer
for testing there is at the moment only the rpc_client
{{{
test/rpc_client.py -c list_devices
test/rpc_client.py -c create_object -d <uuid of MediaServer> -i
1000 title=abc upnp_class=object.container.storageFolder
parentID=1000
}}}
2007-04-03 18:53 dev
* coherence/__init__.py, coherence/base.py: fix plugin load for
plugins with missing dependencies
2007-04-01 10:19 dev
* setup.py: update setup.py to allow registering with pypi
2007-04-01 09:38 dev
* coherence/__init__.py: update version to 0.2.0
2007-03-26 12:52 dev
* coherence/backends/axiscam_storage.py: put the signal somethere
where it makes sense
2007-03-26 11:58 dev
* coherence/backends/elisa_renderer.py: some more fixes for the
Elisa MediaRenderer
2007-03-26 11:57 dev
* coherence/backends/axiscam_storage.py: add forgotten louie signal
to the axiscam_store
2007-03-23 10:52 dev
* coherence/backends/elisa_renderer.py,
coherence/backends/elisa_storage.py, coherence/base.py,
coherence/upnp/core/utils.py: remove twisted internal
log-messages from the Coherence log
2007-03-22 22:01 dev
* coherence/__init__.py, coherence/backends/elisa_renderer.py,
coherence/backends/elisa_storage.py: incooperated patch from
philn with some minor adjustments
re #72
2007-03-21 09:50 philn
* coherence/backends/elisa_renderer.py,
coherence/backends/elisa_storage.py: Some progress on internal
elisa renderer
2007-03-20 19:51 dev
* coherence/plugins: removed not needed plugins directory
2007-03-20 19:50 dev
* coherence/__init__.py, coherence/base.py, setup.py: switched to
an entry points/setuptools based plugin system as
[http://base-art.net/Articles/64/ described by Philippe Normand]
current entry points are:
* coherence.plugins.backend.media_server
* coherence.plugins.backend.media_renderer
Now external backends can much easier integrated and even
installed separately.
This addresses #22 and closes #42.
2007-03-20 19:38 dev
* coherence/backends/gstreamer_audio_player.py,
docs/coherence.conf.example: renamend GStreamer MediaRenderer
class from Player to GStreamerPlayer to be a bit more descriptive
in the plugin definition
2007-03-20 19:27 dev
* coherence/upnp/core/device.py, coherence/upnp/core/service.py:
more fixes following [384]
2007-03-18 13:49 dev
* coherence/upnp/core/device.py, coherence/upnp/core/service.py,
coherence/upnp/core/soap_proxy.py: proper handle of deferred
result, that's now a tuple
error introduced in [384]
2007-03-18 11:56 philn
* coherence/upnp/core/utils.py: twisted.web.getPage returns a list
for me
2007-03-15 22:23 dev
* coherence/upnp/core/device.py, coherence/upnp/core/service.py,
coherence/upnp/core/soap_proxy.py, coherence/upnp/core/utils.py:
disable log messages from the twisted.web.client in switching to
our own subclass
2007-03-15 10:13 dev
* coherence/backends/buzztard_control.py: more work in the Buzztard
ContentDirectory update
2007-03-14 21:57 dev
* coherence/backends/buzztard_control.py: attempt to fix missing
ContentDirectory change event propagation
2007-03-14 16:20 dev
* coherence/backends/buzztard_control.py: some update on the repeat
handling
2007-03-14 16:16 dev
* coherence/backends/buzztard_control.py: fix for missing stream
position update
2007-03-14 16:04 dev
* coherence/backends/buzztard_control.py: added playmode handling -
NORMAL|REPEAT_ONE|REPEAT_ALL
2007-03-14 15:42 dev
* coherence/backends/gstreamer_audio_player.py: small fix regarding
upnp_SetAVTransportURI, do not return an error when no
CurrentURIMetaData is present
2007-03-14 15:40 dev
* coherence/__init__.py, docs/coherence.conf.example: version up to
0.1.2 and proper config example again
2007-03-14 15:40 dev
* coherence/backends/buzztard_control.py,
coherence/upnp/core/service.py: change print to log.msg
2007-03-14 15:39 dev
* coherence/base.py, coherence/extern/logger.py: switch in
logger.py to the twisted.python.log module and activated the
config 'logfile'
re #15
2007-03-13 22:03 dev
* coherence/backends/buzztard_control.py: next fix
2007-03-13 21:48 dev
* coherence/backends/buzztard_control.py: use label:<index> as uri
2007-03-13 21:38 dev
* coherence/backends/buzztard_control.py: proper host setting for
internal:
2007-03-13 21:24 dev
* coherence/backends/buzztard_control.py: fix for now unused
parameter
2007-03-13 21:17 dev
* coherence/backends/buzztard_control.py: more debug output
2007-03-13 21:01 dev
* coherence/backends/buzztard_control.py,
coherence/upnp/core/DIDLLite.py: a not so smart attempt to
outsmart Nokias Media Streamer
2007-03-13 20:34 dev
* coherence/backends/buzztard_control.py: bind the matching methods
to their signals
2007-03-13 20:30 dev
* coherence/backends/buzztard_control.py: some update on the play
command
2007-03-13 20:15 dev
* coherence/backends/buzztard_control.py: some changes on how
volume and mute values are retrieved
2007-03-13 14:28 dev
* coherence/backends/buzztard_control.py: add Volume and Mute
handling to the Buzztard control
2007-03-13 13:52 dev
* coherence/backends/buzztard_control.py,
coherence/backends/buzztard_renderer.py,
coherence/backends/buzztard_storage.py, coherence/base.py: merge
Buzzard MediaServer and MediaRenderer in one file
2007-03-13 10:18 dev
* coherence/upnp/core/variable.py: proper handling of allowed
values in StateVariables with vendor defines
2007-03-13 09:43 dev
* coherence/upnp/devices/media_renderer_client.py: stupid
copy&paste left over
2007-03-12 22:02 dev
* coherence/backends/buzztard_storage.py: one more fix
2007-03-12 21:56 dev
* coherence/backends/buzztard_storage.py: add playlist prefix to
Buzztard browse response
2007-03-12 21:52 dev
* coherence/backends/buzztard_storage.py: next fix on event
handling
2007-03-12 21:48 dev
* coherence/backends/buzztard_storage.py: fix on event signal
2007-03-12 21:43 dev
* coherence/backends/buzztard_storage.py: connect Buzztard flush
signal
2007-03-12 21:38 dev
* coherence/backends/buzztard_storage.py: signal a Buzztad event to
the MediaRenderer
2007-03-12 21:33 dev
* coherence/backends/buzztard_renderer.py,
coherence/backends/buzztard_storage.py, coherence/base.py,
docs/coherence.conf.example: combine Buzztard MediaServer and
MediaRenderer
2007-03-12 19:52 dev
* coherence/backends/buzztard_renderer.py: minor fix for Buzztard
MediaRenderer
2007-03-12 19:46 dev
* coherence/backends/buzztard_storage.py: forgot to tupleize
2007-03-12 18:40 dev
* coherence/upnp/core/service.py: one more correction on how the
StateVariable 'LastChange' is evented.
This is a follow up to [334] and addresses #70
2007-03-12 18:34 dev
* coherence/upnp/core/event.py: be a bit more verbose on the log
messages
2007-03-12 17:09 dev
* coherence/backends/elisa_renderer.py: fixes for the Elisa
MediaRenderer
2007-03-11 20:41 dev
* coherence/backends/buzztard_renderer.py,
coherence/backends/buzztard_storage.py,
docs/coherence.conf.example: append index number to the buzztard
playlist items
2007-03-11 20:27 dev
* coherence/backends/buzztard_renderer.py: further updates on the
Buzztard MediaRenderer
2007-03-11 10:49 dev
* coherence/backends/buzztard_renderer.py,
docs/coherence.conf.example: update on the Buzztard MediaRenderer
2007-03-10 14:55 dev
* coherence/backends/buzztard_storage.py: fix missing import
2007-03-10 14:27 dev
* coherence/backends/buzztard_storage.py: wrong name fix
2007-03-10 14:03 dev
* coherence/base.py: activate buzztard_* backends
2007-03-10 13:56 dev
* coherence/backends/buzztard_renderer.py,
coherence/backends/buzztard_storage.py,
docs/coherence.conf.example: more work on the Buzztard
MediaServer
2007-03-10 12:22 dev
* coherence/backends/elisa_renderer.py: removed a noisy print
2007-03-10 10:37 dev
* coherence/backends/buzztard_storage.py,
coherence/backends/elisa_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: use louie signal for
backend<->device communication
2007-03-09 14:31 dev
* coherence/upnp/core/service.py, coherence/upnp/core/variable.py,
coherence/upnp/core/xml-service-descriptions/AVTransport2.xml:
update a StateVariable value only if the value really, really has
changed.
added a new attribute to the xml service description to prevent
certain nonevented variables to not even show up in a LastChange
event.
2007-03-09 14:23 dev
* coherence/upnp/services/servers/connection_manager_server.py:
make StateVariable CurrentConnectionIDs work for the MediaServer
again
2007-03-09 14:20 dev
* coherence/upnp/core/event.py: be more specific in the log message
about the destination of the event notification
2007-03-09 14:19 dev
* coherence/backends/elisa_renderer.py,
coherence/backends/gstreamer_audio_player.py: set the
res@duration attribute on every res item
2007-03-08 16:14 dev
* coherence/backends/gstreamer_audio_player.py: revert small typo
change
2007-03-08 15:39 dev
* coherence/backends/gstreamer_audio_player.py: first shot to
choose a suitable resource from within the MediaRenderer, helps
e.g. with the "internal:" resources and Nokias Media Streamer,
addresses #68
2007-03-08 14:25 dev
* coherence/upnp/core/service.py: on a LastChange event send only
the StateVariables that have been changed
2007-03-07 20:24 dev
* coherence/backends/buzztard_storage.py: initial version of a
MediaStreamer backend for [http://www.buzztard.org Buzztard]
2007-03-07 09:34 dev
* coherence/base.py: catch traceback if hostname resolving fails,
closes #69
2007-03-06 09:44 dev
* coherence/backends/elisa_renderer.py,
coherence/backends/elisa_storage.py: add support for 'internal'
res items to the Elisa backends
2007-03-06 09:16 dev
* coherence/backends/elisa_renderer.py,
coherence/backends/gstreamer_audio_player.py: fix for empty
CurrentURIMetaData
2007-03-06 08:23 dev
* coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py: test for additional
'internal' res items
2007-03-06 08:19 dev
* coherence/upnp/core/variable.py: fix traceback due to a wrong
placed variable
2007-03-05 18:06 dev
* coherence/backends/axiscam_storage.py: better mimetype and
protocol_type handling
2007-03-05 18:02 dev
* coherence/upnp/core/variable.py: allow Set for string
StateVariable update too
2007-03-05 14:56 dev
* coherence/backends/axiscam_storage.py, coherence/base.py: Axis
Cam MediaServer, addresses #67
needs a config entry like this:
{{{
[plugins]
[[AxisCamStore]]
name = Elisa is watching you
[[[Cam 1]]]
url = http://192.168.1.222:554/mpeg4/1/media.amp
protocol = rtsp-rtp-udp:*:video/MP4V-ES:*
[[[Cam 2]]]
url = http://192.168.1.222:554/mpeg4/2/media.amp
protocol = rtsp-rtp-udp:*:video/MP4V-ES:*
}}}
2007-03-05 13:35 dev
* coherence/upnp/devices/media_server.py: fix wrong
ContentDirectory web-listing resource
2007-03-05 09:33 dev
* coherence/upnp/core/variable.py: Allow the update value for a
StateVariable of type string to be
* a string
* a comma-separated string
* a list
* a tuple.
Lists and tuples will be transformed into a comma-separated
string.
2007-03-02 14:57 dev
* coherence/upnp/devices/media_renderer_client.py: del proper
service object when removing MediaRenderer device client
2007-02-20 20:05 dev
* coherence/backends/elisa_renderer.py,
coherence/backends/gstreamer_audio_player.py: some changes to
better follow the specs (maybe), at least we get now a progress
report with the N800 Media Streamer
this addresses #55
2007-02-20 19:27 dev
* coherence/upnp/core/DIDLLite.py: added handling of duration
attribute to Resource
2007-02-20 19:26 dev
* coherence/upnp/core/xml-service-descriptions/AVTransport2.xml:
correct default value
2007-02-20 10:41 dev
* coherence/backends/elisa_renderer.py: now with position and
duration info
2007-02-19 20:48 dev
* coherence/backends/elisa_renderer.py: cleanups and a simple test
to retrieve the state info from the Elisa player
2007-02-19 16:01 dev
* coherence/backends/elisa_renderer.py: now with load, play, pause
and stop support
2007-02-19 15:02 dev
* coherence/backends/elisa_renderer.py,
coherence/backends/gstreamer_audio_player.py,
coherence/upnp/devices/media_renderer.py,
docs/coherence.conf.example: first version of a MediaRenderer
backend for Elisa (needs a patched player.py in Elisa)
using signal 'Coherence.UPnP.Backend.init_completed' to notify
when the backend has finished initialization, as for the Elsia
backend we need to wait for the twisted.pb connection to Elisa
corresponding changes in backends/gstreamer_audio_player.py and
devices/media_renderer.py
2007-02-19 14:53 dev
* coherence/__init__.py, setup.py: move version to 0.1.1 and
retrieve it in setup.py from coherence.__init__.py
2007-02-19 14:52 dev
* coherence/base.py: small fix for better error handling with a
nonexistant backend/device
2007-02-19 14:50 dev
* coherence/upnp/core/service.py: allow passing a deferred to
service.set_variable and update the value with the result that
deferred returns
2007-02-17 09:09 dev
* ., coherence/backends/fs_storage.py,
coherence/upnp/devices/media_server.py,
docs/coherence.conf.example: allow to export from the FSStore
more than one physical directory
closes #51
2007-02-16 14:25 dev
* coherence/upnp/core/DIDLLite.py, coherence/upnp/core/utils.py:
added datefaker function to utils.py and use it for UPnP items
with no own date element.
This closes #60 and addresses #59.
2007-02-16 09:45 dev
* setup.py: version change in setup.py from 0.1 to 0.1.0
2007-02-15 09:56 dev
* docs/coherence.conf.example: add the serverport default value
change to the config file
2007-02-15 09:54 dev
* coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/extern/elementsoap/ElementGoogle.py,
coherence/extern/elementsoap/ElementSOAP.py,
coherence/extern/elementsoap/ElementTree.py,
coherence/extern/elementsoap/HTTPClient.py,
coherence/extern/elementsoap/__init__.py, coherence/extern/et.py,
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/device.py,
coherence/upnp/core/service.py,
coherence/upnp/core/soap_proxy.py,
coherence/upnp/core/soap_service.py,
coherence/upnp/core/utils.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/av_transport_server.py,
coherence/upnp/services/servers/connection_manager_server.py,
coherence/upnp/services/servers/content_directory_server.py,
coherence/upnp/services/servers/media_receiver_registrar_server.py,
coherence/upnp/services/servers/rendering_control_server.py:
merge branch go-4-python-2.5 changes r302:303 into trunk
2007-02-15 09:51 dev
* coherence/web/__init__.py, coherence/web/ui.py: add forgotten UI
file
2007-02-15 08:57 dev
* coherence/base.py: make the port used for all the http related
services by default choosable by the OS, this closes #65
2007-02-12 20:09 dev
* coherence/base.py, coherence/web/Coherence.Base.js,
coherence/web/Coherence.Devices.js,
coherence/web/Coherence.Logging.js, coherence/web/Coherence.js,
coherence/web/MochiKit.js, coherence/web/main.css,
coherence/web/static, coherence/web/static/Coherence.Base.js,
coherence/web/static/Coherence.Devices.js,
coherence/web/static/Coherence.Logging.js,
coherence/web/static/Coherence.js,
coherence/web/static/MochiKit.js, coherence/web/static/main.css,
docs/coherence.conf.example, setup.py: - rework of the web
interface module
- get everything Nevow related in its own package
this closes #44 and in some way #64
2007-02-12 14:25 dev
* coherence/base.py, coherence/web/Coherence.Base.js,
coherence/web/Coherence.Devices.js,
coherence/web/Coherence.Logging.js, coherence/web/main.css: bring
new web-interface up to date with Nevow >= 0.9
2007-02-12 14:22 dev
* coherence/upnp/services/clients/content_directory_client.py: an
attempt to solve the encoding issues re #63
2007-02-12 11:15 dev
* coherence/upnp/core/service.py: check if we aren't removed
already from the subscribers dict
2007-02-11 10:44 dev
* coherence/extern/elementsoap/ElementSOAP.py,
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/action.py,
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
coherence/upnp/core/service.py,
coherence/upnp/core/soap_proxy.py, coherence/upnp/core/ssdp.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/services/clients/av_transport_client.py,
coherence/upnp/services/clients/connection_manager_client.py,
coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/clients/rendering_control_client.py:
removed unnecessary executable bit on python module files, closes
#62
2007-02-11 10:33 dev
* coherence/upnp/core/utils.py: added missing failure class
2007-02-11 10:31 dev
* setup.py: include data files (non-python) in setup too
2007-02-09 13:09 dev
* coherence/upnp/core/variable.py: follow up to [292]
2007-02-09 12:30 philn
* coherence/backends/elisa_storage.py,
coherence/upnp/core/utils.py: Some XML parsing and elisa_storage
fixes
2007-02-09 11:54 philn
* coherence/upnp/core/variable.py: when variable value is unicode,
encode it to utf-8
2007-02-09 10:58 philn
* coherence/upnp/services/clients/content_directory_client.py:
removed some prints and try to deal better with empty browse
results
2007-02-08 19:01 dev
* coherence/base.py, coherence/upnp/core/device.py,
coherence/upnp/core/event.py, coherence/upnp/core/service.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server_client.py,
coherence/upnp/services/clients/av_transport_client.py,
coherence/upnp/services/clients/connection_manager_client.py,
coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/clients/rendering_control_client.py,
docs/coherence.conf.example: ControlPoint now sends proper
signals on detection and removal of a new device
Coherence.UPnP.ControlPoint.MediaServer.detected : client obj,
usn
Coherence.UPnP.ControlPoint.MediaRenderer.detected : client obj,
usn
Coherence.UPnP.ControlPoint.MediaServer.removed : usn
Coherence.UPnP.ControlPoint.MediaRenderer.removed : usn
and a lot of fixes all over the place to get the instantiated
objects deleted.
2007-02-08 18:33 dev
* coherence/extern/logger.py: change level info/debug order
2007-02-08 11:16 dev
* coherence/upnp/core/action.py: bug fix
2007-02-08 10:40 dev
* coherence/upnp/core/action.py, coherence/upnp/core/event.py:
better error handling and logging in client actions and a small
bugfix in event.py
2007-02-07 23:13 dev
* coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/utils.py:
add dc:date element to every upnp item and convert it in
DIDLLite.py from either a datetime object or a string
this solves and closes #54
2007-02-07 17:17 dev
* coherence/base.py, coherence/upnp/core/DIDLLite.py,
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
coherence/upnp/devices/control_point.py,
docs/coherence.conf.example: more work to get the ControlPoint
back into line
2007-02-07 15:41 dev
* setup.py: correct version number
2007-02-07 15:13 dev
* ., setup.py: filled gaps in the setup.py
2007-02-07 14:37 philn
* setup.py: initial setup.py checkin
2007-02-06 19:52 dev
* coherence/base.py: missed one
2007-02-06 19:27 dev
* coherence/base.py: redacting last changeset
2007-02-06 18:01 philn
* coherence/base.py: Coherence class now acts as a singleton
2007-02-06 15:31 dev
* coherence/backends/gstreamer_audio_player.py,
coherence/upnp/services/servers/connection_manager_server.py:
better compliance with the ConnectionManager and the AVTransport
spec, closes #49
2007-02-06 15:29 dev
* coherence/upnp/core/service.py: new get_variable method from the
service class
2007-02-06 09:31 dev
* coherence/backends/gstreamer_audio_player.py: better compliance
with the AVTransport spec
2007-02-06 09:30 dev
* coherence/upnp/core/soap_service.py: one more log message
2007-02-06 09:30 dev
* coherence/upnp/core/xml-service-descriptions/AVTransport2.xml:
small adjustment
2007-02-06 09:03 dev
* coherence/web/Coherence.Base.js: small cleanup
2007-02-02 11:07 dev
* coherence/base.py, coherence/web/Coherence.Base.js: better web UI
menu tab creation
2007-02-02 10:00 dev
* coherence/base.py, coherence/web,
coherence/web/Coherence.Base.js,
coherence/web/Coherence.Devices.js,
coherence/web/Coherence.Logging.js, coherence/web/Coherence.js,
coherence/web/MochiKit.js, coherence/web/main.css: - reworked the
web UI to make more usage of the Athena features.
- breaks for now browser based device inspection.
- and addresses #15 too.
2007-02-02 09:55 dev
* coherence/upnp/core/event.py: fix for backends with no name
2007-02-02 09:54 dev
* coherence/extern/logger.py: added a method to retrieve data about
all log feeders
2007-01-31 21:51 dev
* coherence/upnp/devices/media_renderer.py: relict?
2007-01-31 21:34 dev
* docs/coherence.conf.example: have a less noisy example
2007-01-31 21:28 dev
* coherence/upnp/core/event.py: better error and logging handling
2007-01-31 21:26 dev
* coherence/base.py, docs/coherence.conf.example: add subsystem
specific logging option
this allows to have for example an overall log level 'warning'
and set it to 'info' for the Event and Service subsystem
addresses #15
2007-01-31 08:19 dev
* coherence/extern/inotify.py: really a stupid bug - great catch
Kaleo, thx!
https://core.fluendo.com/elisa/trac/changeset/1402/trunk/elisa/extern/inotify.py
2007-01-30 14:32 dev
* coherence/upnp/devices/media_server.py: added HEAD http request
sanitizing for the ReverseProxyResource, seems to be necessary
for the N800 file-manager
2007-01-29 23:11 dev
* coherence/upnp/devices/media_server.py: stupid errors
2007-01-29 21:08 dev
* coherence/backends/flickr_storage.py: one more
2007-01-29 21:03 dev
* coherence/upnp/devices/media_server.py: one print too much
2007-01-29 19:05 dev
* coherence/backends/flickr_storage.py,
docs/coherence.conf.example: check with Flickr every n minutes if
there are any new images and update the local store
2007-01-29 18:26 dev
* coherence/upnp/devices/media_server.py: an attempt to fix
inappropriate http GET requests from the XBox when relaying them
to some other service, re #52
2007-01-28 10:32 dev
* coherence/backends/fs_storage.py, docs/coherence.conf.example:
fix content path in fs_storage.py and change directive to
'content'
2007-01-28 10:31 dev
* coherence/base.py: stupid dodge to get around the still
non-existent plugin handling
2007-01-24 17:44 dev
* coherence/upnp/devices/media_server.py: added ConnectionID
handling for the Flickr proxy connection
2007-01-24 17:20 dev
* coherence/backends/flickr_storage.py,
coherence/upnp/devices/media_server.py,
docs/coherence.conf.example: Support for acting as a proxy for
Flickr to support MediaRenderers like the XBox, which can't
access the Flickr servers directly.
Contains an unclean hook inside the MediaServers getChild method.
2007-01-24 17:17 dev
* coherence/upnp/core/DIDLLite.py: UPnP class changes for a better
compliance with the XBox, addresses #50.
Should be of no effect for the other ContentDirectory clients.
;-)
2007-01-24 17:15 dev
* coherence/upnp/core/event.py: check if the url has a port defined
before we try to use it
2007-01-23 21:39 dev
* coherence/upnp/core/service.py: remove unnecessarily, error
engendering line of code
2007-01-23 14:20 dev
* coherence/backends/flickr_storage.py: missing " :-(
2007-01-23 13:36 dev
* coherence/backends/flickr_storage.py: a nicer log-message in
FlickrStore
2007-01-22 19:23 dev
* coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py,
coherence/upnp/services/servers/content_directory_server.py:
attempts to iron out the deviant behaviour of the new XBox UPnP
client,
addresses #50
2007-01-22 09:21 dev
* coherence/upnp/core/service.py: some cleanups
2007-01-21 22:48 dev
* coherence/backends/flickr_storage.py: let flickr calculate the
date
2007-01-21 21:50 dev
* coherence/upnp/core/soap_service.py: follow better the specs on
pages 49-51 in
http://upnp.org/resources/documents/CleanUPnPDA101-20031202s.pdf
when sending back an error upon an action call
exchanged a bit of SOAPpy using code with ElementTree
2007-01-21 12:31 dev
* coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py, coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/content_directory_server.py: try
something to make the MediaServer usage from an XBox a little bit
more universal, addresses #36
2007-01-20 15:18 dev
* coherence/backends/elisa_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
docs/coherence.conf.example: set the 'friendly_name' of a device
in the configuration
2007-01-20 14:06 dev
* coherence/backends/elisa_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/content_directory_server.py:
Cleaned up the backend upnp_... functions, moved the universal
ones into the service.
This addresses #36, but we need for this to work properly some
additional mapping supplied by the backend to tell which of the
Windows Media Connect 'directories' the backend actually
supports.
Added a method to browse the content of the Flickr backend.
This should evolve in some future into something that allows
browser access to any of the non-filesystem backends.
2007-01-19 14:17 dev
* coherence/backends/flickr_storage.py,
docs/coherence.conf.example: first usable Flickr backend
2007-01-19 14:16 dev
* coherence/base.py: one more debug output line
2007-01-19 14:15 dev
* coherence/upnp/core/service.py: some minor adjustments on how
services are generated from the descriptions
2007-01-18 23:00 dev
* coherence/backends/elisa_storage.py,
coherence/backends/flickr_storage.py,
coherence/backends/fs_storage.py, coherence/base.py,
coherence/upnp/devices/media_server.py,
docs/coherence.conf.example: this adds
- a first version of a Flickr MediaServer backend
- the still necessary import in base.py
- and changes the way arguments are passed to the devices and via
them to the backends
2007-01-18 22:54 dev
* coherence/upnp/core/soap_proxy.py: an attempt to make the
SOAPProxy a bit more universal, probably of no real future use
2007-01-18 08:32 dev
* docs/coherence.conf.example: put 'serverport' into
coherence.conf.example too
2007-01-18 08:24 dev
* coherence/base.py: added configuration option 'serverport' to
specify the port coherence should bind to, to serve xml files,
react on control requests or event subscriptions, and to
distribute content.
2007-01-17 10:49 dev
* coherence/base.py, coherence/upnp/core/utils.py: being a little
bit more flexible regarding interface/own IP address detection
2007-01-16 13:12 haiku
* coherence/backends/elisa_storage.py, coherence/base.py,
coherence/upnp/core/utils.py: - Updated Elisa storage to work
with new elisa media db
- Config now accepts an interface parameter, to provide the
network
interface to use. If not provided, default gateway interface is
used
2007-01-15 10:22 dev
* coherence/upnp/core/device.py: try to prevent errors resulting
from 'strange' device descriptions, addresses #48
2007-01-12 10:59 dev
* coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server_client.py: bring ControlPoint
back in line
2007-01-12 10:09 dev
* coherence/backends/elisa_storage.py: reverted change
2007-01-11 18:59 dev
* README: add a first version of a README
2007-01-11 11:21 philn
* coherence/backends/elisa_storage.py, coherence/base.py: some
fixes
2007-01-09 15:06 dev
* coherence/backends/gstreamer_audio_player.py: one more regarding
volume control
2007-01-09 15:02 dev
* coherence/backends/gstreamer_audio_player.py,
coherence/upnp/core/service.py, coherence/upnp/core/variable.py:
more fixes re proper volume control of the Gstreamer
MediaRenderer
- added the channel attribute
- send the allowedValueRange with the service description
unfortunately the Intel CP still sends strange values
2007-01-09 14:59 dev
* coherence/upnp/core/xml-service-descriptions/RenderingControl2.xml:
a try to hint the dependency between the audio related
StateVariables and the channel list
2007-01-09 10:28 dev
* coherence/backends/gstreamer_audio_player.py: fix for stupid typo
2007-01-08 17:31 dev
* coherence/backends/gstreamer_audio_player.py: adjustments for
better Gstreamer property handling, as the playbin seems not to
have a 'mute' property
2007-01-08 17:29 dev
* coherence/upnp/core/variable.py: add another value to the list to
determine boolean True
2007-01-07 20:14 dev
* coherence/backends/gstreamer_audio_player.py, coherence/base.py,
coherence/upnp/core/service.py, coherence/upnp/core/variable.py:
This adds Volume and Mute control to the GStreamer MediaRenderer
backend.
And a first method for a backend to overwrite the vendor defines
in the xml-service-descriptions.
2007-01-07 15:25 dev
* coherence/upnp/core/service.py, coherence/upnp/core/variable.py,
coherence/upnp/services/servers/connection_manager_server.py:
remove a connection from the ConnectionManager after 300 seconds
of inactivity - which is currently synonymous to no change of a
StateVariable
2007-01-06 21:05 dev
* coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/upnp/core/service.py,
coherence/upnp/core/xml-service-descriptions/AVTransport2.xml,
coherence/upnp/core/xml-service-descriptions/RenderingControl2.xml,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/connection_manager_server.py:
Enable several instances per MediaRenderer.
We still need to find a way to actually tell the
ConnectionManager if the backend supports this!
Adapting the MediaServer to these changes and some cosmetic fixes
in the xml-service-descriptions.
This also closes #45.
2007-01-06 20:56 dev
* coherence/upnp/devices/media_renderer.py: use the backend
parameter
2007-01-06 20:53 dev
* coherence/upnp/core/variable.py: store the default value of a
variable so we have it available when copying them for a new
instance
2007-01-05 11:16 dev
* coherence/upnp/services/servers/connection_manager_server.py:
without words
2007-01-04 21:49 dev
* coherence/backends/gstreamer_audio_player.py,
coherence/upnp/services/servers/connection_manager_server.py:
some update on the MediaRenderer
2006-12-30 23:01 dev
* bin/coherence, coherence/base.py, coherence/upnp/core/utils.py,
docs/coherence.conf.example: introduce 'ConfigObj' to handle the
configuration file
This, and the get_ip_address function in utils.py, closes #34.
2006-12-30 22:54 dev
* coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/upnp/core/service.py,
coherence/upnp/services/servers/connection_manager_server.py:
move universally valid upnp_ functions into the service class
re #45
2006-12-30 22:02 dev
* coherence/extern/logger.py: some improvements on the logger re
#15, this will allow us to move that ticket to the next milestone
2006-12-21 16:20 dev
* coherence/base.py, coherence/upnp/core/service.py,
coherence/upnp/core/variable.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/av_transport_server.py,
coherence/upnp/services/servers/connection_manager_server.py,
coherence/upnp/services/servers/content_directory_server.py,
coherence/upnp/services/servers/media_receiver_registrar_server.py,
coherence/upnp/services/servers/rendering_control_server.py:
Check if a device backend for server service provides all needed
action callbacks.
If the action is optional, just don't provide it.
If it is a required action, don't activate the service.
If that service is a required one, this will lead to an abort of
the device
instantiation.
We need an overwrite for this to create in the TestSuite
nonconformity devices/services.
This closes #25.
2006-12-21 15:59 dev
* coherence/extern/logger.py: some more logger functionality
2006-12-21 15:56 dev
* coherence/backends/fs_storage.py: temporally add
upnp_GetCurrentConnectionInfo to the backend until we have a
solution for #45.
2006-12-20 18:21 dev
* bin/coherence, coherence/base.py: made the backend passing to the
Coherence class a little bit more reasonable/readable - advice by
philn
2006-12-20 17:14 dev
* bin/coherence, coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py, coherence/base.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: Some first steps in the
direction of a plugin system.
Let the backends be the only visible things outside of Coherence!
We should now be able to add and activate a plugin an startup
and, in the next steps, later via the WebUI too, and retrieve
from somewhere the configuration for each plugin.
And this foundation should be extendable for .egg plugins too.
2006-12-18 22:28 dev
* bin, bin/coherence, coherence.py, coherence/base.py: Moved
Coherence class into the coherence package and the coherence.py
into bin/coherence.
Added a plugins parameter to Coherence, where a list of classes
can be handed over for instantiation.
And an add_plugin method to add one later.
2006-12-17 22:34 dev
* coherence/upnp/core/event.py,
coherence/upnp/services/servers/connection_manager_server.py:
undo some unnecessary changes
2006-12-17 22:28 dev
* coherence.py, coherence/backends/gstreamer_audio_player.py,
coherence/upnp/core/event.py, coherence/upnp/core/service.py,
coherence/upnp/core/variable.py,
coherence/upnp/core/xml-service-descriptions/AVTransport2.xml,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/connection_manager_server.py: We
have a controllable MediaRenderer!
Everything that was needed to get recognized by the Intel
ControlPoint.
An audio file will be played and progress displayed on the
ControlPoint.
Pause, Start and Stop seem to work.
There is an issue left on EOS and resetting the
CurrentTransportActions.
This addresses #38 again.
2006-12-17 19:37 dev
* coherence/upnp/devices/media_server.py: small fix and more
parameters on the call to
connection_manager_server.add_connection
2006-12-17 12:43 dev
* coherence/backends/gstreamer_audio_player.py,
coherence/upnp/services/servers/connection_manager_server.py:
changes for a better spec compliance, but either we are still
missing some things or maybe the Intel ControlPoint expects
something out of the usual way?
Need to check and compare this with a working MediaRenderer.
2006-12-17 12:40 dev
* coherence/upnp/core/variable.py: wrong check for last_change
attribute, surfaced due to the updates with the new default
values in [193]
2006-12-17 12:38 dev
* coherence/backends/fs_storage.py: proper errback return too
2006-12-17 12:38 dev
* coherence.py, coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py,
coherence/upnp/devices/media_server.py: more work on the logging
front re #15.
Now we need to enable on/off and a level change via the web-UI.
2006-12-17 12:35 dev
* coherence/backends/elisa_storage.py: proper errback return
2006-12-17 12:31 dev
* coherence/extern/inotify.py: more decent class instantiation and
a minor typo fix
2006-12-16 22:22 dev
* coherence.py, coherence/extern/logger.py,
coherence/upnp/core/msearch.py, coherence/upnp/core/service.py,
coherence/upnp/core/ssdp.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py: on the way to some
configurable logging function:
* enable/disable per module
* set log level per module
This addresses #15.
2006-12-15 20:05 dev
* coherence/upnp/core/service.py,
coherence/upnp/core/soap_service.py,
coherence/upnp/core/variable.py,
coherence/upnp/core/xml-service-descriptions/AVTransport2.xml,
coherence/upnp/core/xml-service-descriptions/ConnectionManager2.xml,
coherence/upnp/core/xml-service-descriptions/ContentDirectory2.xml,
coherence/upnp/core/xml-service-descriptions/RenderingControl2.xml:
a whole bunch of changes in the xml service descriptions
regarding default values and the definition of all allowed
values.
Plus a our very first '''own''' vendor extension
''coherence:X_withVendorDefines = "True|False"''
which defines if a value in
* a allowedValueList and
* a allowedValueRange
can be extended by a vendor.
This is currently used only in the description files used for
service creation, but it could be inserted into the description
files we send out to other devices too.
This changeset fixes #37 and #38.
2006-12-13 17:27 dev
* coherence/backends/fs_storage.py: small self-test change
2006-12-13 10:24 dev
* coherence/backends/fs_storage.py: fix for "stupid bug"
2006-12-13 10:19 dev
* coherence/backends/fs_storage.py: let upnp_Browse work again with
the changed root_id
2006-12-13 10:01 dev
* coherence/upnp/devices/media_server.py: take back [176], as it is
probably not needed for the XBox
2006-12-12 13:04 dev
* coherence/backends/fs_storage.py: first attempt to please an XBox
UPnP Search Action for 'all audio items'
2006-12-12 13:00 dev
* coherence/upnp/core/soap_service.py: let's see the headers of an
XBox SOAP request, maybe we have an user-agent header there too
2006-12-12 09:59 dev
* coherence/extern/uuid: more housekeeping
2006-12-12 09:58 dev
* coherence/upnp/core/xml-service-descriptions: housekeeping
2006-12-12 09:52 dev
* coherence/extern/uuid, coherence/extern/uuid/__init__.py,
coherence/extern/uuid/uuid.html, coherence/extern/uuid/uuid.py,
coherence/upnp/core/uuid.py,
coherence/upnp/devices/media_server.py: generate proper UUIDs,
this closes #19 and should help us with devices that are
(justifiably) petty about its format.
2006-12-11 22:18 dev
* coherence/upnp/devices/media_server.py: and again...
2006-12-11 21:48 dev
* coherence/upnp/devices/media_server.py: one more
2006-12-11 21:33 dev
* coherence/upnp/devices/media_server.py: is it an UUID question?
2006-12-11 20:41 dev
* coherence/upnp/devices/media_server.py: one more change to find
out the XBox' likings
2006-12-11 20:18 dev
* coherence/upnp/devices/media_server.py: some more adjustments to
get recognized by the XBox, added DLNA tags
2006-12-11 18:45 dev
* coherence/upnp/devices/media_server.py: fake a Windows Media
Connect server to get discovered by an XBox MediaRenderer
2006-12-11 18:07 idnar
* coherence/upnp/core/device.py, coherence/upnp/core/service.py,
coherence/upnp/core/soap_proxy.py: Pass correct args to
addCallbacks.
2006-12-11 17:51 dev
* coherence/upnp/core/msearch.py, coherence/upnp/core/ssdp.py,
coherence/upnp/devices/media_server.py: some debugging output, it
is really time for proper logging :-(
2006-12-11 09:29 dev
* coherence/backends/gstreamer_audio_player.py: initialize and
update more UPnP variables
2006-12-10 21:35 dev
* coherence/backends/elisa_storage.py,
coherence/backends/fs_storage.py,
coherence/backends/gstreamer_audio_player.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/av_transport_server.py,
coherence/upnp/services/servers/connection_manager_server.py,
coherence/upnp/services/servers/content_directory_server.py,
coherence/upnp/services/servers/media_receiver_registrar_server.py,
coherence/upnp/services/servers/rendering_control_server.py,
docs: first attempt of a MediaRenderer with a GStreamer (Audio)
backend.
Only partially working, and maybe hobbled by a [GStreamer Bug
384140 http://bugzilla.gnome.org/show_bug.cgi?id=384140] too.
Some adjustments all around.
2006-12-10 20:43 dev
* coherence.py, coherence/upnp/core/msearch.py,
coherence/upnp/core/ssdp.py: Actually send out ssdp:byebye
messages on application shutdown.
2006-12-10 20:02 dev
* coherence/upnp/core/device.py, coherence/upnp/core/service.py,
coherence/upnp/core/soap_proxy.py: added errbacks to
twisted.web.client.getPage calls
2006-12-02 16:48 dev
* coherence/backends/elisa_storage.py,
coherence/backends/fs_storage.py, coherence/upnp/core/service.py,
coherence/upnp/core/variable.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/services/servers/content_directory_server.py: This
adds auto-detection of file-system changes by means of the
inotify-module for the FileSystemBackend, re #33.
Quite some other adjustments and fixes related to StateVariable
modifications and event propagation.
2006-12-02 16:41 dev
* coherence/extern/inotify.py: a simple Python
[http://en.wikipedia.org/wiki/Inotify Inotify] interface, using
[http://python.net/crew/theller/ctypes/ ctypes] for the kernel
calls, works only on Linux with a kernel > 2.6.13 and
additionally at the moment only on ix86 architecture due to a
lame solution retrieving the kernel call ids.
2006-12-02 16:25 dev
* LICENCE: add MIT licence file
2006-12-02 16:02 dev
* coherence.py: reminder change re #34
2006-11-28 17:21 dev
* coherence/upnp/core/variable.py: a reminder to fix it
2006-11-28 17:16 dev
* ., coherence, coherence.py, coherence/__init__.py,
coherence/backends, coherence/backends/__init__.py,
coherence/backends/elisa_storage.py,
coherence/backends/fs_storage.py, coherence/extern,
coherence/extern/__init__.py, coherence/plugins, coherence/upnp,
coherence/upnp/__init__.py, coherence/upnp/core,
coherence/upnp/core/DIDLLite.py, coherence/upnp/core/__init__.py,
coherence/upnp/core/device.py, coherence/upnp/core/event.py,
coherence/upnp/core/msearch.py, coherence/upnp/core/service.py,
coherence/upnp/core/soap_proxy.py,
coherence/upnp/core/variable.py, coherence/upnp/devices,
coherence/upnp/devices/__init__.py,
coherence/upnp/devices/control_point.py,
coherence/upnp/devices/media_renderer.py,
coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/devices/media_server.py,
coherence/upnp/devices/media_server_client.py,
coherence/upnp/services, coherence/upnp/services/__init__.py,
coherence/upnp/services/clients,
coherence/upnp/services/clients/__init__.py,
coherence/upnp/services/clients/av_transport_client.py,
coherence/upnp/services/clients/connection_manager_client.py,
coherence/upnp/services/clients/content_directory_client.py,
coherence/upnp/services/clients/rendering_control_client.py,
coherence/upnp/services/servers,
coherence/upnp/services/servers/__init__.py,
coherence/upnp/services/servers/av_transport_server.py,
coherence/upnp/services/servers/connection_manager_server.py,
coherence/upnp/services/servers/content_directory_server.py,
coherence/upnp/services/servers/media_receiver_registrar_server.py,
coherence/upnp/services/servers/rendering_control_server.py,
docs, tests, tests/content, tests/content/audio: a lot of small
adjustments after directory restructure, re #29
2006-11-28 16:45 dev
* coherence/upnp/core/xml-service-descriptions,
coherence/upnp/xml-service-descriptions: Moved remotely
2006-11-28 13:14 dev
* docs: Created folder remotely
2006-11-28 13:13 dev
* coherence/tests, tests: Moved remotely
2006-11-28 13:08 dev
* coherence/upnp/core/variable.py, coherence/upnp/variable.py:
Moved remotely
2006-11-28 13:08 dev
* coherence/upnp/core/uuid.py, coherence/upnp/uuid.py: Moved
remotely
2006-11-28 13:07 dev
* coherence/upnp/core/utils.py, coherence/upnp/utils.py: Moved
remotely
2006-11-28 13:07 dev
* coherence/upnp/core/ssdp.py, coherence/upnp/ssdp.py: Moved
remotely
2006-11-28 13:06 dev
* coherence/upnp/core/soap_service.py,
coherence/upnp/soap_service.py: Moved remotely
2006-11-28 13:06 dev
* coherence/upnp/core/soap_proxy.py, coherence/upnp/soap_proxy.py:
Moved remotely
2006-11-28 13:06 dev
* coherence/upnp/core/service.py, coherence/upnp/service.py: Moved
remotely
2006-11-28 13:06 dev
* coherence/upnp/core/msearch.py, coherence/upnp/msearch.py: Moved
remotely
2006-11-28 13:05 dev
* coherence/upnp/core/event.py, coherence/upnp/event.py: Moved
remotely
2006-11-28 13:05 dev
* coherence/upnp/DIDLLite.py, coherence/upnp/core/DIDLLite.py:
Moved remotely
2006-11-28 13:05 dev
* coherence/upnp/core/device.py, coherence/upnp/device.py: Moved
remotely
2006-11-28 13:04 dev
* coherence/upnp/action.py, coherence/upnp/core/action.py: Moved
remotely
2006-11-28 13:04 dev
* coherence/upnp/core: Created folder remotely
2006-11-28 13:02 dev
* coherence/upnp/devices/media_server_client.py,
coherence/upnp/media_server_client.py: Moved remotely
2006-11-28 13:01 dev
* coherence/upnp/devices/media_renderer_client.py,
coherence/upnp/media_renderer_client.py: Moved remotely
2006-11-28 13:01 dev
* coherence/upnp/devices/media_server.py,
coherence/upnp/media_server.py: Moved remotely
2006-11-28 13:01 dev
* coherence/upnp/devices/media_renderer.py,
coherence/upnp/media_renderer.py: Moved remotely
2006-11-28 13:01 dev
* coherence/upnp/control_point.py,
coherence/upnp/devices/control_point.py: Moved remotely
2006-11-28 12:57 dev
* coherence/tests/rpc_client.py, rpc_client.py: Moved remotely
2006-11-28 12:56 dev
* coherence/upnp/rendering_control_server.py,
coherence/upnp/services/servers/rendering_control_server.py:
Moved remotely
2006-11-28 12:55 dev
* coherence/upnp/rendering_control_client.py,
coherence/upnp/services/clients/rendering_control_client.py:
Moved remotely
2006-11-28 12:55 dev
* coherence/upnp/media_receiver_registrar_server.py,
coherence/upnp/services/servers/media_receiver_registrar_server.py:
Moved remotely
2006-11-28 12:54 dev
* coherence/upnp/content_directory_server.py,
coherence/upnp/services/servers/content_directory_server.py:
Moved remotely
2006-11-28 12:54 dev
* coherence/upnp/content_directory_client.py,
coherence/upnp/services/clients/content_directory_client.py:
Moved remotely
2006-11-28 12:54 dev
* coherence/upnp/connection_manager_server.py,
coherence/upnp/services/servers/connection_manager_server.py:
Moved remotely
2006-11-28 12:53 dev
* coherence/upnp/connection_manager_client.py,
coherence/upnp/services/clients/connection_manager_client.py:
Moved remotely
2006-11-28 12:53 dev
* coherence/upnp/av_transport_server.py,
coherence/upnp/services/servers/av_transport_server.py: Moved
remotely
2006-11-28 12:53 dev
* coherence/upnp/av_transport_client.py,
coherence/upnp/services/clients/av_transport_client.py: Moved
remotely
2006-11-28 12:53 dev
* coherence/upnp/services/clients: Created folder remotely
2006-11-28 12:52 dev
* coherence/upnp/services/servers: Created folder remotely
2006-11-28 12:52 dev
* coherence/upnp/services: Created folder remotely
2006-11-28 12:52 dev
* coherence/upnp/devices: Created folder remotely
2006-11-28 12:51 dev
* coherence/rpc_client.py, rpc_client.py: Moved remotely
2006-11-28 12:51 dev
* coherence/upnp/variable.py, coherence/variable.py: Moved remotely
2006-11-28 12:51 dev
* coherence/upnp/uuid.py, coherence/uuid.py: Moved remotely
2006-11-28 12:50 dev
* coherence/upnp/utils.py, coherence/utils.py: Moved remotely
2006-11-28 12:50 dev
* coherence/ssdp.py, coherence/upnp/ssdp.py: Moved remotely
2006-11-28 12:49 dev
* coherence/soap_service.py, coherence/upnp/soap_service.py: Moved
remotely
2006-11-28 12:49 dev
* coherence/soap_proxy.py, coherence/upnp/soap_proxy.py: Moved
remotely
2006-11-28 12:49 dev
* coherence/service.py, coherence/upnp/service.py: Moved remotely
2006-11-28 12:49 dev
* coherence/rendering_control_server.py,
coherence/upnp/rendering_control_server.py: Moved remotely
2006-11-28 12:48 dev
* coherence/rendering_control_client.py,
coherence/upnp/rendering_control_client.py: Moved remotely
2006-11-28 12:48 dev
* coherence/msearch.py, coherence/upnp/msearch.py: Moved remotely
2006-11-28 12:48 dev
* coherence/media_server_client.py,
coherence/upnp/media_server_client.py: Moved remotely
2006-11-28 12:48 dev
* coherence/media_server.py, coherence/upnp/media_server.py: Moved
remotely
2006-11-28 12:48 dev
* coherence/media_renderer_client.py,
coherence/upnp/media_renderer_client.py: Moved remotely
2006-11-28 12:47 dev
* coherence/media_renderer.py, coherence/upnp/media_renderer.py:
Moved remotely
2006-11-28 12:47 dev
* coherence/media_receiver_registrar_server.py,
coherence/upnp/media_receiver_registrar_server.py: Moved remotely
2006-11-28 12:47 dev
* coherence/event.py, coherence/upnp/event.py: Moved remotely
2006-11-28 12:47 dev
* coherence/DIDLLite.py, coherence/upnp/DIDLLite.py: Moved remotely
2006-11-28 12:47 dev
* coherence/device.py, coherence/upnp/device.py: Moved remotely
2006-11-28 12:47 dev
* coherence/control_point.py, coherence/upnp/control_point.py:
Moved remotely
2006-11-28 12:46 dev
* coherence/content_directory_server.py,
coherence/upnp/content_directory_server.py: Moved remotely
2006-11-28 12:46 dev
* coherence/content_directory_client.py,
coherence/upnp/content_directory_client.py: Moved remotely
2006-11-28 12:46 dev
* coherence/connection_manager_server.py,
coherence/upnp/connection_manager_server.py: Moved remotely
2006-11-28 12:46 dev
* coherence/connection_manager_client.py,
coherence/upnp/connection_manager_client.py: Moved remotely
2006-11-28 12:46 dev
* coherence/av_transport_server.py,
coherence/upnp/av_transport_server.py: Moved remotely
2006-11-28 12:46 dev
* coherence/av_transport_client.py,
coherence/upnp/av_transport_client.py: Moved remotely
2006-11-28 12:45 dev
* coherence/action.py, coherence/upnp/action.py: Moved remotely
2006-11-28 12:44 dev
* coherence/elementsoap, coherence/extern/elementsoap: Moved
remotely
2006-11-28 12:44 dev
* coherence/content, coherence/tests/content: Moved remotely
2006-11-28 12:44 dev
* coherence/tests: Created folder remotely
2006-11-28 12:44 dev
* coherence/extern: Created folder remotely
2006-11-28 12:43 dev
* coherence.py, coherence/coherence.py: Moved remotely
2006-11-28 12:43 dev
* coherence/upnp/xml-service-descriptions,
coherence/xml-service-descriptions: Moved remotely
2006-11-28 12:43 dev
* coherence/backends/elisa_storage.py, coherence/elisa_storage.py:
Moved remotely
2006-11-28 12:43 dev
* coherence/backends/fs_storage.py, coherence/fs_storage.py: Moved
remotely
2006-11-28 12:41 dev
* coherence/plugins: Created folder remotely
2006-11-28 12:41 dev
* coherence/backends: Created folder remotely
2006-11-28 12:41 dev
* coherence/upnp: Created folder remotely
2006-11-28 12:40 dev
* coherence, python-upnp: Renamed remotely
2006-11-27 15:26 dev
* python-upnp/elisa_storage.py: doc string adjustment
2006-11-27 15:16 dev
* python-upnp/elisa_storage.py: item.res.size is an optional
attribute -as the Elisa MediaStore isn't (yet) providing it, it
should be set to None if not present in the response from the
MediaStore.
2006-11-26 18:01 dev
* python-upnp/elisa_storage.py, python-upnp/media_server.py: dumb
changes to test the Elisa MediaStore, time to work on the plugin
system
2006-11-26 16:21 dev
* python-upnp/connection_manager_server.py,
python-upnp/content_directory_server.py,
python-upnp/fs_storage.py, python-upnp/media_server.py: keep
track of connections in the MediaServer ConnectionManager and
some cosmetically changes
2006-11-26 16:19 dev
* python-upnp/service.py: fix soap_generic in such a way, that the
action.callback as intended can actually return a deferred or a
result-dict
2006-11-26 15:35 philn
* python-upnp/elisa_storage.py, python-upnp/soap_service.py: Some
progress on Elisa store
2006-11-24 15:15 dev
* python-upnp/elisa_storage.py: first shot of an
[http://www.fluendo.com/elisa/ Elisa] MediaServer backend
2006-11-24 15:13 dev
* python-upnp/fs_storage.py: some forgotten import
2006-11-22 17:02 dev
* python-upnp/av_transport_server.py, python-upnp/coherence.py,
python-upnp/connection_manager_server.py, python-upnp/content,
python-upnp/content/audio,
python-upnp/content_directory_server.py, python-upnp/device.py,
python-upnp/event.py, python-upnp/fs_storage.py,
python-upnp/media_receiver_registrar_server.py,
python-upnp/media_renderer.py, python-upnp/media_server.py,
python-upnp/msearch.py, python-upnp/rendering_control_server.py,
python-upnp/service.py, python-upnp/ssdp.py: A lot of fixes and
enhancements regarding a working MediaServer.
Some of them concerning the different namespace, which refs to
#28.
Fixed an embarrassingly stupid bug in the device registration,
where we had the services url in the location header of the
service notification, instead of the url for the device
description.xml, this is one of those that fixes #26.
This only showed up due to the fact that the Noxon-2 looks only
for service notifications.
Version 2 devices now send out notifications for devices v1 and
services v1 too. Requisite for this are different device
descriptions accordingly to the version, pointing to the matching
services.
2006-11-21 13:06 dev
* python-upnp/media_receiver_registrar_server.py,
python-upnp/xml-service-descriptions/X_MS_MediaReceiverRegistrar1.xml:
This adds a MediaReceiverRegistrar with a FakeBackend, that just
affirms any IsAuthorized and IsValidated actions.
2006-11-19 16:41 dev
* python-upnp/coherence.py, python-upnp/fs_storage.py,
python-upnp/media_server.py: removed 'uuid:' part from the
devices URL
2006-11-18 21:44 dev
* python-upnp/DIDLLite.py, python-upnp/fs_storage.py: some progress
towards a simple MediaServer (plugin) with a FileSystem backend
2006-11-18 12:34 dev
* python-upnp/fs_storage.py, python-upnp/media_renderer.py,
python-upnp/media_server.py: make the MediaServer return content
on request for an ObjectID
2006-11-18 10:34 dev
* python-upnp/fs_storage.py: minor cosmetic changes
2006-11-17 21:58 dev
* python-upnp/av_transport_server.py,
python-upnp/connection_manager_server.py,
python-upnp/content_directory_server.py,
python-upnp/fs_storage.py, python-upnp/media_renderer.py,
python-upnp/media_server.py,
python-upnp/rendering_control_server.py, python-upnp/service.py:
First 'usable' approach to couple the action callbacks with the
methods the backend provides.
We still need 'some' knowledge about UPnP in the backend, maybe
this can be reduced further.
2006-11-17 11:30 dev
* python-upnp/content_directory_server.py,
python-upnp/fs_storage.py, python-upnp/media_server.py: first
steps towards a simple MediaServer (plugin) with a FileSystem
backend
2006-11-17 11:26 dev
* python-upnp/service.py: wrong use of attribute and some minor
fixes
2006-11-17 11:23 dev
* python-upnp/DIDLLite.py: use cElementTree if available and
renamed klass to upnp_class
2006-11-17 11:16 dev
* python-upnp/content_directory.py: removed as this is only needed
with the elisa UPnP plugin
2006-11-17 11:14 dev
* python-upnp/soap_service.py: fix UPnPPublisher to get the
'soap'generic' function actually working with IN arguments
2006-11-16 10:26 dev
* python-upnp/msearch.py: let the OS choose a port for the MSEARCH
service, fixes #23
2006-11-09 14:19 dev
* python-upnp/event.py, python-upnp/media_renderer_client.py,
python-upnp/service.py, python-upnp/variable.py: added the
initial notification upon event subscription and proper
propagation of the LastChange event, closes #17 and #21.
2006-11-09 10:50 dev
* python-upnp/coherence.py: no need to check for re-subscriptions
immediately, wait for the first looping call to pass
2006-11-09 10:47 dev
* python-upnp/ssdp.py: don't (re)send notifications immediately,
wait for the first looping call to pass
2006-11-08 14:28 dev
* python-upnp/av_transport_server.py,
python-upnp/connection_manager_client.py,
python-upnp/content_directory_client.py, python-upnp/event.py,
python-upnp/media_renderer.py,
python-upnp/media_renderer_client.py,
python-upnp/rendering_control_client.py,
python-upnp/rendering_control_server.py, python-upnp/service.py:
First stub for the MediaRenderer and its services, plus some bugs
fixed in the event notification stuff that showed up on the first
tests.
2006-11-07 14:54 dev
* python-upnp/service.py: error checks in `soap__generic` for wrong
or missing IN arguments
2006-11-07 14:42 dev
* python-upnp/soap_service.py: Proper error-code for 'method not
found' according to
[http://upnp.org/resources/documents/CleanUPnPDA101-20031202s.pdf
UPnP Device Architecture]
2006-11-06 22:18 dev
* python-upnp/connection_manager_server.py,
python-upnp/content_directory_server.py, python-upnp/service.py:
follow-up on [57] and [58] which fixes the therein introduced
bugs
2006-11-06 21:22 dev
* python-upnp/soap_service.py: Extending UPnPPublisher for a better
compliance with the
[http://upnp.org/resources/documents/CleanUPnPDA101-20031202s.pdf
UPnP Device Architecture]
2006-11-04 13:49 dev
* python-upnp/connection_manager_server.py,
python-upnp/content_directory_server.py, python-upnp/service.py:
moved `soap__generic` and `get_action_results` out of the service
control classes into service.py, into their own ServiceControl
mix-in
2006-11-04 12:29 dev
* python-upnp/connection_manager_server.py,
python-upnp/content_directory_server.py, python-upnp/service.py:
moved service description class into service.py
2006-11-01 21:50 dev
* python-upnp/action.py, python-upnp/av_transport_client.py,
python-upnp/connection_manager_client.py,
python-upnp/content_directory.py,
python-upnp/content_directory_client.py,
python-upnp/control_point.py,
python-upnp/media_renderer_client.py,
python-upnp/media_server_client.py,
python-upnp/rendering_control_client.py,
python-upnp/soap_proxy.py, python-upnp/ssdp.py,
python-upnp/utils.py: put everything under MIT licence and added
appropriate copyright information, this changeset closes #7
2006-11-01 20:49 dev
* python-upnp/service.py, python-upnp/variable.py: This adds the
missing methods for moderated events and closes #11.
2006-11-01 16:17 dev
* python-upnp: property rag
2006-11-01 16:13 dev
* python-upnp/connection_manager_server.py,
python-upnp/content_directory_server.py, python-upnp/service.py:
refactored server service into a more universal service.Server
class for mix-in.
Added EventSubscriptionServer from #11.
2006-11-01 15:53 dev
* python-upnp/event.py: server side event subscription and
notification, re #11
The loop for sending out moderated events is not yet there ->
check [48].
2006-11-01 15:18 dev
* python-upnp/media_server.py: minor cleanups
2006-11-01 15:11 dev
* python-upnp/coherence.py: minor fix for device presentation in
the WebUI
2006-11-01 15:08 dev
* python-upnp/device.py: changed license notes addressing #7
2006-11-01 15:03 dev
* python-upnp/variable.py: laid foundation for moderated events, re
#11
2006-10-27 08:51 dev
* python-upnp/ssdp.py, python-upnp/uuid.py: Repeat 100 times:
Never work on code if you are tired!
Never work on code if you are tired!
Never work on code if you are tired!
Never work on code if you are tired!
...
2006-10-26 16:26 dev
* python-upnp/root-device.xml: removed accidentally checked-in file
2006-10-26 15:34 dev
* python-upnp/uuid.py: Adjusted copyright just to be sure
2006-10-26 15:30 dev
* python-upnp/media_server.py, python-upnp/uuid.py: Moved
generateuuid into its own UUID class so we can use it for SIDs
too.
Not sure if the str(instance) approach via __repr__ is sacrosanct
or if a self.uuid.get_uuid() construct is a better way to handle
this.
2006-10-23 11:14 dev
* python-upnp/coherence.py,
python-upnp/connection_manager_server.py,
python-upnp/media_server.py: accommodations to
ArchitecturalOverview
2006-10-23 11:11 dev
* python-upnp/ssdp.py: fixed old, mooching little bug, spotted by
philn
2006-10-15 20:55 dev
* python-upnp/connection_manager_server.py: experimenting with a
generic soap method to save us from too many similar function
definitions.
Maybe we can use this technique in the XMLRCP api too.
2006-10-15 20:51 dev
* python-upnp/soap_service.py: extend UPnPPublisher so we can use a
generic soap method for the trivial actions in a server service.
2006-10-15 20:47 dev
* python-upnp/content_directory_server.py: Copied over soap methods
from PyMedS.
2006-10-15 20:45 dev
* python-upnp/action.py: Extend action class with a callback so it
is more useful in a server service.
2006-10-14 14:59 dev
* python-upnp/media_server.py: Proper registration of ourself to
the SSDP server and corrected services url creation.
2006-10-14 14:56 dev
* python-upnp/connection_manager_server.py,
python-upnp/content_directory_server.py: Fix serviceStateTable
typo in scpd.xml creation, added instantiation of
EventSubscriptionServer and use v2 of the service description
file.
2006-10-14 14:48 dev
* python-upnp/media_server_client.py: Temporarily remove testing of
Browse action to handle our own half-done ContentDirectory
service.
2006-10-14 14:46 dev
* python-upnp/content_directory_client.py: Adjust licence, address
#7
2006-10-14 14:44 dev
* python-upnp/control_point.py, python-upnp/event.py: Added
EventSubscriptionServer and initiated it in
connection_manager_server.py and content_directory_server.py.
Functionality is still missing!!!
Removed an obsolete argument from EventServer `__init__`.
Addresses #11.
2006-10-14 14:39 dev
* python-upnp/ssdp.py: Reworked the SSDP server implementation.
The dict items, that represent discovered remote or registered
local devices have now a manifestation attribute to distinguish
between local or remote devices.
We do now resend notifications every 770 seconds.
These resends seem to be 'best practice' in case some
ControlPoint had missed the discovery responses.
Talking of these, discovery responses are now implemented too.
Notifications and discovery responses are only send out for local
devices.
2006-10-14 14:31 dev
* python-upnp/service.py: commented out noisy print
2006-10-14 14:30 dev
* python-upnp/coherence.py: commented out noisy print
2006-10-14 14:24 dev
* python-upnp/msearch.py: Adjust loop time for msearch, now do
searches every 120 seconds.
Maybe that's still too often.
Add the manifestation argument to the SSDP.register call and
modified the licence.
2006-10-14 14:17 dev
* python-upnp/xml-service-descriptions/AVTransport2.xml,
python-upnp/xml-service-descriptions/ConnectionManager2.xml,
python-upnp/xml-service-descriptions/ContentDirectory2.xml,
python-upnp/xml-service-descriptions/MediaRenderer2.xml,
python-upnp/xml-service-descriptions/MediaServer2.xml,
python-upnp/xml-service-descriptions/RenderingControl2.xml,
python-upnp/xml-service-descriptions/ScheduledRecording1.xml:
Actually it is a good idea to use the correct xml files if you
want to support MediaServer V2 and MediaRenderer V2 ;-)
This is an supplement to [25] and addresses #10 again.
2006-10-13 09:56 dev
* python-upnp/variable.py: adjust faulty argument order in
StateVariable init
2006-10-12 14:48 dev
* python-upnp/connection_manager_server.py,
python-upnp/content_directory_server.py,
python-upnp/media_server.py: Add and integrate
content_directory_server.py on the way to a working basic
MediaServer.
Some of the changes in media_server.py in the device xml
description generation close #10.
2006-10-12 13:35 dev
* python-upnp/action.py, python-upnp/coherence.py,
python-upnp/connection_manager_server.py,
python-upnp/media_server.py, python-upnp/service.py,
python-upnp/soap_service.py, python-upnp/variable.py,
python-upnp/xml-service-descriptions,
python-upnp/xml-service-descriptions/AVTransport1.xml,
python-upnp/xml-service-descriptions/ConnectionManager1.xml,
python-upnp/xml-service-descriptions/ContentDirectory1.xml,
python-upnp/xml-service-descriptions/RenderingControl1.xml:
Reverted the way the WebInterface is handled and add some simple
page-generation to allow easier browsing of the children.
Included the xml-services-descriptions directory and use the xml
files therein as the source for the server services definition.
This addresses #10.
And finally added connection_manager_server.py and
soap_service.py for an initial test of a server service.
2006-10-11 16:50 dev
* python-upnp/coherence.py, python-upnp/control_point.py,
python-upnp/device.py, python-upnp/media_server.py,
python-upnp/service.py, python-upnp/ssdp.py,
python-upnp/utils.py: Another big one which removes the blocking
urllib2.urlopen call
and adds signal based propagation of events, e.g. SSDP
new_device,
to get around too much deferred wizardry in the device,sub-device
and service detection.
This introduces [http://pylouie.org louie] as signal dispatcher.
2006-10-09 09:52 dev
* python-upnp/coherence.py, python-upnp/control_point.py,
python-upnp/event.py, python-upnp/rpc_client.py,
python-upnp/ssdp.py: This is a big changeset that turns upside
down a lot of
how the parts within the UPnP framework are dealt with.
There is now an embracement class called Coherence that
deals with all the parts needed to run an UPnP service.
And allows in the future a more plugin based structure.
There we decide whether we only want to be a ControlPoint,
only a MediaRenderer, only a MediaServer or any combination
of these.
The SSDP and the MSEARCH subsystems have now their home there.
And only one webserver instance is created where all the other
subsystems can register their services as childs.
For example the ControlPoint appends there its Event Notification
service and its XMLRPC interface.
And of course it can append there its own web-interface.
Likewise for the MediaServer. It appends its XML files,
the Event Subscription service, the SOAP interface and its
media files.
Hopefully not to many things broke with this changeset,
actually and intendedly we should be on the same functionality
level like before.
2006-10-09 09:29 dev
* python-upnp/media_server.py, python-upnp/root-device.xml: some
startup imports from pymeds to allow testing of the
framework/embracement approach
2006-10-05 21:55 dev
* python-upnp/content_directory_client.py: added remaining action
methods to ContentDirectory client
2006-10-05 15:27 dev
* python-upnp/content_directory_client.py,
python-upnp/media_server_client.py: fix stupid typo and solve
browse and search issues, herewith closes #6
2006-10-05 15:24 dev
* python-upnp/service.py: move SOAP request method back to service
class, refs #9
2006-10-05 15:21 dev
* python-upnp/action.py: change re #6
2006-10-05 15:17 dev
* python-upnp/control_point.py: correction for error introduced in
[15]
2006-10-05 15:03 dev
* python-upnp/DIDLLite.py: DIDL-Lite strings are encoded in utf-8
and need therefore decoding as such
2006-10-04 09:30 dev
* python-upnp/control_point.py, python-upnp/device.py: fixed device
identification within the ControlPoint, corrected this in the
Device class and added instantiating of the MediaServerClient
2006-10-04 09:17 dev
* python-upnp/media_renderer_client.py: first licence fix, refs #7
2006-10-04 09:12 dev
* python-upnp/media_server_client.py: created MediaServerClient
class
2006-10-03 21:40 dev
* python-upnp/action.py: added StateVariable (auto-)update on
return of an action call, refs #6
2006-10-03 21:32 dev
* python-upnp/media_renderer_client.py: some more method calls to
test the new action handling, re #6
2006-10-03 21:29 dev
* python-upnp/av_transport_client.py: added action
GetCurrentTransportActions
2006-10-03 21:28 dev
* python-upnp/soap_proxy.py: removed some prints
2006-10-03 21:27 dev
* python-upnp/elementsoap/ElementSOAP.py: removed an old print
2006-10-03 17:32 dev
* python-upnp/action.py, python-upnp/av_transport_client.py,
python-upnp/connection_manager_client.py,
python-upnp/content_directory_client.py,
python-upnp/media_renderer_client.py,
python-upnp/rendering_control_client.py, python-upnp/service.py:
reengineered the way actions are called, breaks Search and Browse
actions in [source:/trunk/python-upnp/content_directory_client.py
ContentDirectory], addresses #6
2006-10-03 09:57 dev
* python-upnp/control_point.py, python-upnp/event.py,
python-upnp/service.py: remaining adaptations for AVTransport and
RenderingControl LastChange events and instance based propagation
of that event and the therein enclosed StateVariables plus the
removal of some loquacious prints, closes #1,#2 and #3
2006-10-02 14:39 dev
* python-upnp/av_transport_client.py, python-upnp/control_point.py,
python-upnp/media_renderer_client.py, python-upnp/service.py,
python-upnp/variable.py: added instance dict around
state_variables dict and adjusted variable related methods,
addresses #3
2006-10-02 13:00 dev
* python-upnp/control_point.py, python-upnp/device.py,
python-upnp/event.py, python-upnp/service.py: enhanced with
unsubscribe service notification and proper(?) shutdown handling,
fixing #4
2006-10-02 12:50 dev
* python-upnp/elementsoap: set svnignore for pyc/pyo
2006-10-01 14:53 dev
* python-upnp: set svnignore for pyc/pyo
2006-10-01 14:39 dev
* ., python-upnp, python-upnp/DIDLLite.py, python-upnp/__init__.py,
python-upnp/action.py, python-upnp/av_transport_client.py,
python-upnp/connection_manager_client.py,
python-upnp/content_directory.py,
python-upnp/content_directory_client.py,
python-upnp/control_point.py, python-upnp/device.py,
python-upnp/elementsoap, python-upnp/elementsoap/ElementSOAP.py,
python-upnp/elementsoap/HTTPClient.py,
python-upnp/elementsoap/README,
python-upnp/elementsoap/__init__.py, python-upnp/event.py,
python-upnp/media_renderer_client.py, python-upnp/msearch.py,
python-upnp/rendering_control_client.py,
python-upnp/rpc_client.py, python-upnp/service.py,
python-upnp/soap_proxy.py, python-upnp/ssdp.py,
python-upnp/utils.py, python-upnp/variable.py: initial import
|