Mercurial > mplayer.hg
comparison DOCS/tech/playtree-hun @ 4959:7399c0dbd793
.sonak, hogy ne gorbuljon sirasra az.. arca - meg ha nevnapja nincs is
author | gabucino |
---|---|
date | Wed, 06 Mar 2002 23:16:33 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
4958:ca6f6b35baf4 | 4959:7399c0dbd793 |
---|---|
1 | |
2 2 stuff van. A playtree maga, meg az iterator. | |
3 A playtree testesiti meg az adatot, az iteratort meg az mplayer | |
4 hasznalja arra hogy egyik bejegyzesrol a masikra lepjen | |
5 | |
6 Eloszor, a play_tree struct : | |
7 | |
8 | |
9 struct play_tree { | |
10 play_tree_t* parent; | |
11 play_tree_t* child; | |
12 play_tree_t* next; | |
13 play_tree_t* prev; | |
14 | |
15 play_tree_param_t* params; | |
16 int loop; | |
17 char** files; | |
18 int entry_type; | |
19 }; | |
20 | |
21 A play_tree_t* tartalmazza a linkeket a 4 iranyba, a params tartalmazza | |
22 az adott bejegyzes osszes parameteret, a loop 1ertelmu (loop < 0 vegtelen | |
23 loopot jelent), a files tartalmazza az adott bejegyzes osszes file-jat, | |
24 es az entry_type kurvaegyertelmuen az adott bejegyzes tipusat adja meg | |
25 (node, file, dvd, vcd, tv) | |
26 | |
27 Egy bejegyzes egynel tobb filet is tartalmazhat, mie'? | |
28 | |
29 Mert egy bejegyzes lehet network stream is, es altalaban egynel tobb | |
30 szerver van. De mind ugyanazt kuldi, sz'al ez egy olyan bejegyzes | |
31 aminek tobb forrasa van. | |
32 | |
33 Es mit basszak ezzel a szarral? | |
34 | |
35 Eloszor csinalj egy entryt a play_tree_new func segitsegevel. Ez letrehozza | |
36 a structot, es default ertekekkel tolti fel. | |
37 Eztan ez lehet node vagy leaf is. Node lesz rogton, ha a play_tree_set_child | |
38 vagy a play_tree_set_parent segitsegevel odalinkeled egy masikhoz. | |
39 Vagy leaf lesz, ha a play_tree_add_file-t nyomod ra. | |
40 Ha egy bejegyzes legalabb 1 filet tartalmaz, nem lehet node (egy assert | |
41 lesz raised) es ha egy bejegyzesnek van egy childje amihez nem adhatsz | |
42 filet (?) (itt is assert lesz) | |
43 Aztan hogy letrehozz egy listat a bejegyzesekrol, hasznald a play_tree_ | |
44 _append_entry-t, a play_tree_prepend_entry-t vagy a play_tree_insert_entryt. | |
45 Ezek kozul barmelyikben hasznalhatod a lista barmelyik bejegyzeset elso | |
46 argumentumkent, nem csak az elsot. Ugyanez ervenyes arra amikor egy | |
47 node childjet allitod, a child argumentum barmelyik, listaban levo | |
48 bejegyzes lehet. | |
49 A bejegyzes treebol valo kiszedesehez hasznald a play_tree_removet. Ha a | |
50 masodik arg (free_it) true, akkor felszabaditja, ha a bejegyzest freezni | |
51 kell, es a harmadik arg is true, akkor a childjeit is. | |
52 | |
53 Amikor a tree kesz, hasznalhatod a play_tree_cleanupot hogy eltavolitsd az | |
54 osszes nemhasznalt bejegyzest. | |
55 | |
56 Playlist betoltesehez hasznald a parse_playtree-t ami egy stream_t-t fogad | |
57 argumentumkent, vagy a parse_playlist_file-t ami filenevet. | |
58 Mind2 funkcio NULL-t ad vissza hiba eseten, vagy ha egy uj (torolt) | |
59 fa eseten, amit hozzaadhatsz valahova a treedbe. (?)_ | |
60 | |
61 Hogy lehet DVD-t VCD-t TV-t? | |
62 | |
63 igy | |
64 dvd://x where x is the title number. | |
65 vcd://x where x is the track number | |
66 tv://x where x is the channel | |
67 | |
68 | |
69 Kesz a playtreem, mit basszak a play_tree_iter-rel? | |
70 | |
71 Ez egy iterator arra a celra hogy a treet atfesuljed jol. | |
72 <bazmeg ezt a mondatot szerintem o se ertette - SKIP> | |
73 Ezt a play_tree_iter_new-vel hozod letre, ami argumentumkent egy play_tree_t | |
74 es egy m_config_t-t eszik, amik aztan arra lesznek hasznalva hogy az | |
75 egyes bejegyzesek parametereit allitgassad. Miutan az iter pontot jol | |
76 semmibe krealtad, init az elso lepest. A listaban egy masik bejegyzesre | |
77 torteno atlepeshez hasznald a play_tree_iter_step-et. A masodik | |
78 argumentum a lepes iranya, pozitiv ertekek elore, negativok hatra, es | |
79 0 nem mozdul. A harmadik meg azt mondja meg hogy erdekel-e a node vagy se. | |
80 Ha igen, az iterator megall a nodeknel, maskulonben a kovetkezo | |
81 ervenyes bejegyzeshez megy. | |
82 This function return different values : | |
83 PLAY_TREE_ITER_ERROR : egyertelmu | |
84 PLAY_TREE_ITER_ENTRY : entryn vagyunk | |
85 PLAY_TREE_ITER_NODE : nodeon vagyunk | |
86 PLAY_TREE_ITER_END : targyalason vagyok ;) | |
87 (( Megj : kene rakni ide egy PLAY_TREE_ITER_BEGININGet a kezdethez. | |
88 Nemtom mit kene visszadni ilyen esetben. PLAY_TREE_ITER_ERROR ? )) | |
89 | |
90 Van meg a play_tree_iter_up_step ami egy loop megtoresere vagy az adott | |
91 lista skipelesere jo. Ugyanazok az argok mint a play_tree_iter_stepnel. | |
92 A kulonbseg az hogy ez visszamehet a jelenlegi lista parentjehez, es az | |
93 argumentumok szerint lephet. | |
94 | |
95 Eztan amikor az iter visszadta a PLAY_TREE_ITER_ENTRYt, hasznalhatod | |
96 a play_tree_iter_get_file-t hogy megkapd a filet. Ha egynel tobbszor | |
97 hivod meg, visszaadja az adott bejegyzeshez tartozo kovetkezo filet, | |
98 vagy loopolja a listat ha nincs tobb file. Megnezheted hogy hany | |
99 file all rendelkezesre az iter->num_files-sel (?) es hogy melyik adta | |
100 vissza, azt meg az iter->file-al (?). | |
101 Ha a bejegyzes DVD,VCD vagy tv, a visszaadott string nem file, hanem | |
102 "DVD title x", "VCD track x" or "TV channel x". | |
103 Hogy ezeket megkulonboztessuk egy normalis filetol, lehet csekkolni | |
104 az iter->tree->entry_type-ot. Tartalmazhat : | |
105 PLAY_TREE_ENTRY_DVD, PLAY_TREE_ENTRY_VCD, | |
106 PLAY_TREE_ENTRY_TV or PLAY_TREE_ENTRY_FILE. | |
107 | |
108 Ha csekkelni akarsz meg az iterrel, mint pl hogy a kovetkezo | |
109 bejegyzes helyes-e, egy klont kell letrehoznod a play_tree_iter_new_copy-val. | |
110 Ez az iter nem fogja befolyasolni a configot, szal azt qrsz vele amit akarsz. | |
111 | |
112 Es amikor annyit basztal az iterrel amennyit akartal, szabaditsd meg | |
113 szenvedeseitol a play_tree_iter_free-vel. | |
114 | |
115 | |
116 Miutan megvolt config parsing, az iterator az mplayer.c-ben jon letre. | |
117 Meg, a stream megnyitasa utan, ha a stream egy playlist, behelyettesiti | |
118 a bejegyzest amelyik a playlistet tarolta azzal mi a parsing eredmenye. | |
119 Az event handlingben megnezi hogy egy lepes megoldhato-e, stb. Es vegul | |
120 a vegen a kovetkezo bejegyzesre m1. |