Commit 05eb43665f3efe9255dc5391e2b8b2d116903473
1 parent
0a050c2c
--no commit message
Showing
4 changed files
with
64 additions
and
37 deletions
src/com/upc/pbe/upcnews/SegmentList.java renamed to src/com/upc/pbe/upcnews/List.java
@@ -2,14 +2,15 @@ package com.upc.pbe.upcnews; | @@ -2,14 +2,15 @@ package com.upc.pbe.upcnews; | ||
2 | 2 | ||
3 | import java.util.ArrayList; | 3 | import java.util.ArrayList; |
4 | 4 | ||
5 | -public class SegmentList | 5 | +public class List |
6 | { | 6 | { |
7 | private boolean validated; | 7 | private boolean validated; |
8 | private int sequenceFirst; | 8 | private int sequenceFirst; |
9 | private int maxDuration; | 9 | private int maxDuration; |
10 | private ArrayList<Segment> segments; | 10 | private ArrayList<Segment> segments; |
11 | + private ParentList parent; | ||
11 | 12 | ||
12 | - public SegmentList() | 13 | + public List() |
13 | { | 14 | { |
14 | validated = false; | 15 | validated = false; |
15 | segments = new ArrayList<Segment>(); | 16 | segments = new ArrayList<Segment>(); |
@@ -45,6 +46,16 @@ public class SegmentList | @@ -45,6 +46,16 @@ public class SegmentList | ||
45 | return maxDuration; | 46 | return maxDuration; |
46 | } | 47 | } |
47 | 48 | ||
49 | + public void setParent(ParentList p) | ||
50 | + { | ||
51 | + parent = p; | ||
52 | + } | ||
53 | + | ||
54 | + public ParentList getParent() | ||
55 | + { | ||
56 | + return parent; | ||
57 | + } | ||
58 | + | ||
48 | public ArrayList<Segment> getSegments() | 59 | public ArrayList<Segment> getSegments() |
49 | { | 60 | { |
50 | return segments; | 61 | return segments; |
src/com/upc/pbe/upcnews/ParentList.java
0 → 100644
1 | +package com.upc.pbe.upcnews; | ||
2 | + | ||
3 | +import java.util.ArrayList; | ||
4 | + | ||
5 | +public class ParentList | ||
6 | +{ | ||
7 | + int currentID; | ||
8 | + ArrayList<List> lists; //per cada qualitat | ||
9 | + | ||
10 | + public ParentList() | ||
11 | + { | ||
12 | + currentID = 0; | ||
13 | + lists = new ArrayList<List>(); | ||
14 | + } | ||
15 | + | ||
16 | + public int getCurrent() | ||
17 | + { | ||
18 | + return currentID; | ||
19 | + } | ||
20 | + | ||
21 | + public ArrayList<List> getLists() | ||
22 | + { | ||
23 | + return lists; | ||
24 | + } | ||
25 | + | ||
26 | + | ||
27 | +} |
src/com/upc/pbe/upcnews/Parser.java
1 | package com.upc.pbe.upcnews; | 1 | package com.upc.pbe.upcnews; |
2 | 2 | ||
3 | +import java.util.ArrayList; | ||
4 | + | ||
3 | public class Parser | 5 | public class Parser |
4 | -{ | ||
5 | - private SegmentList playlist; | ||
6 | - | 6 | +{ |
7 | private static final String STARTWORD = "#EXTM3U"; | 7 | private static final String STARTWORD = "#EXTM3U"; |
8 | 8 | ||
9 | - public Parser() | ||
10 | - { | ||
11 | - | ||
12 | - } | 9 | + private int currentLine; |
10 | + private int currentSegment; | ||
11 | + private int currentList; | ||
13 | 12 | ||
14 | - public void setPlaylist(SegmentList pls) | 13 | + public Parser() |
15 | { | 14 | { |
16 | - playlist = pls; | 15 | + currentLine = 0; |
16 | + currentSegment = 0; | ||
17 | + currentList = 0; | ||
17 | } | 18 | } |
18 | 19 | ||
19 | - public SegmentList getPlaylist() | 20 | + public ArrayList<ParentList> parseFile(String file) throws ErrorException, WarningException, InfoException |
20 | { | 21 | { |
21 | - return playlist; | 22 | + ArrayList<ParentList> lists = new ArrayList<ParentList>(); |
23 | + lists.add(new ParentList()); | ||
24 | + lists.get(0).getLists().add(new List()); | ||
25 | + String[] lines = file.split("\n"); | ||
26 | + for(int i = 0; i < lines.length; i++) | ||
27 | + { | ||
28 | + parseLine(lines[i],lists); | ||
29 | + } | ||
30 | + return lists; | ||
22 | } | 31 | } |
23 | 32 | ||
24 | - public void parseLine(String line) throws ErrorException, WarningException, InfoException | 33 | + public void parseLine(String line, ArrayList<ParentList> lists) throws ErrorException, WarningException, InfoException |
25 | { | 34 | { |
26 | - SegmentList pls = getPlaylist(); | ||
27 | - int currentLine = 0; | ||
28 | - int currentSegment = 0; | ||
29 | boolean expectSegment = false; | 35 | boolean expectSegment = false; |
30 | boolean expectList = false; | 36 | boolean expectList = false; |
31 | 37 | ||
32 | - if(pls == null) | ||
33 | - { | ||
34 | - throw new ErrorException("Playlist uninitialized"); | ||
35 | - } | ||
36 | - | ||
37 | if(line.isEmpty()) | 38 | if(line.isEmpty()) |
38 | { | 39 | { |
39 | currentLine++; | 40 | currentLine++; |
@@ -41,6 +42,7 @@ public class Parser | @@ -41,6 +42,7 @@ public class Parser | ||
41 | } | 42 | } |
42 | else | 43 | else |
43 | { | 44 | { |
45 | + List pls = lists.get(currentList).getLists().get(lists.get(currentList).currentID); | ||
44 | if(!pls.getValidated()) | 46 | if(!pls.getValidated()) |
45 | { | 47 | { |
46 | if(line.equals(STARTWORD)) | 48 | if(line.equals(STARTWORD)) |
@@ -59,7 +61,6 @@ public class Parser | @@ -59,7 +61,6 @@ public class Parser | ||
59 | if(line.substring(0,4).equals("#EXT")) | 61 | if(line.substring(0,4).equals("#EXT")) |
60 | { | 62 | { |
61 | String[] extTag = line.split(":"); | 63 | String[] extTag = line.split(":"); |
62 | - //switch(extTag[0]) Esto no se puede usar hasta JDK7 y Android no lo permite, diffikultyz??? | ||
63 | if(extTag[0].equals("#EXT-X-MEDIA-SEQUENCE")) | 64 | if(extTag[0].equals("#EXT-X-MEDIA-SEQUENCE")) |
64 | { | 65 | { |
65 | pls.setSequence(Integer.parseInt(extTag[1])); | 66 | pls.setSequence(Integer.parseInt(extTag[1])); |
@@ -87,8 +88,8 @@ public class Parser | @@ -87,8 +88,8 @@ public class Parser | ||
87 | 88 | ||
88 | else if(extTag[0].equals("#EXT-X-STREAM-INF")) | 89 | else if(extTag[0].equals("#EXT-X-STREAM-INF")) |
89 | { | 90 | { |
90 | - /*EXTXSTREAM=1 | ||
91 | - PROGRAMID="" | 91 | + expectList = true; |
92 | + /*PROGRAMID="" | ||
92 | CODECS="" | 93 | CODECS="" |
93 | RESOLUTION="" | 94 | RESOLUTION="" |
94 | ARGUMENTS=`echo $line | cut -d':' -f 2` | 95 | ARGUMENTS=`echo $line | cut -d':' -f 2` |