Committer:
FrankWeissenborn
Date:
Sun Jan 30 21:33:12 2011 +0000
Revision:
7:f652d1e054e9
Parent:
4:520664d73063
Added: GetPath Problem: Memory leak (after 5-6 tune in)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
FrankWeissenborn 0:d9d38ebc0f69 1 #ifndef __SHOUTCAST_H
FrankWeissenborn 0:d9d38ebc0f69 2 #define __SHOUTCAST_H
FrankWeissenborn 0:d9d38ebc0f69 3
FrankWeissenborn 0:d9d38ebc0f69 4 #include "EthernetNetIf.h"
FrankWeissenborn 0:d9d38ebc0f69 5
FrankWeissenborn 0:d9d38ebc0f69 6 #include "DNSRequest.h"
FrankWeissenborn 0:d9d38ebc0f69 7
FrankWeissenborn 0:d9d38ebc0f69 8 #include "defines.h"
FrankWeissenborn 0:d9d38ebc0f69 9
FrankWeissenborn 0:d9d38ebc0f69 10 class Shoutcast
FrankWeissenborn 0:d9d38ebc0f69 11 {
FrankWeissenborn 0:d9d38ebc0f69 12 public:
FrankWeissenborn 2:0e9a10f2b8c5 13 Shoutcast(const char* devId, char * big_buffer, int big_buffer_size, char * small_buffer, int small_buffer_size);
FrankWeissenborn 0:d9d38ebc0f69 14
FrankWeissenborn 4:520664d73063 15 /**
FrankWeissenborn 4:520664d73063 16 * Get previous genre.
FrankWeissenborn 4:520664d73063 17 *
FrankWeissenborn 4:520664d73063 18 * @return pointer to null terminatetd string.
FrankWeissenborn 4:520664d73063 19 */
FrankWeissenborn 0:d9d38ebc0f69 20 const char* GetPrevGenre();
FrankWeissenborn 4:520664d73063 21 /**
FrankWeissenborn 4:520664d73063 22 * Get current genre.
FrankWeissenborn 4:520664d73063 23 *
FrankWeissenborn 4:520664d73063 24 * @return pointer to null terminatetd string.
FrankWeissenborn 4:520664d73063 25 */
FrankWeissenborn 0:d9d38ebc0f69 26 const char* GetCurrGenre();
FrankWeissenborn 4:520664d73063 27
FrankWeissenborn 4:520664d73063 28 /**
FrankWeissenborn 4:520664d73063 29 * Get next genre.
FrankWeissenborn 4:520664d73063 30 *
FrankWeissenborn 4:520664d73063 31 * @return pointer to null terminatetd string.
FrankWeissenborn 4:520664d73063 32 */
FrankWeissenborn 0:d9d38ebc0f69 33 const char* GetNextGenre();
FrankWeissenborn 0:d9d38ebc0f69 34
FrankWeissenborn 0:d9d38ebc0f69 35 int GetChannel(char* name, int length); //cache
FrankWeissenborn 0:d9d38ebc0f69 36 int GetTop500(char* name, int length);
FrankWeissenborn 0:d9d38ebc0f69 37
FrankWeissenborn 4:520664d73063 38 /**
FrankWeissenborn 4:520664d73063 39 * Get previous channel.
FrankWeissenborn 4:520664d73063 40 *
FrankWeissenborn 4:520664d73063 41 * @param name A target key name.
FrankWeissenborn 4:520664d73063 42 * @param length A pointer to a value storage.
FrankWeissenborn 4:520664d73063 43 * @return 0, all okay -1, eror getting channel, -2 no channels in list.
FrankWeissenborn 4:520664d73063 44 */
FrankWeissenborn 0:d9d38ebc0f69 45 int GetPrevChannel(char* name, int length);
FrankWeissenborn 4:520664d73063 46 /**
FrankWeissenborn 4:520664d73063 47 * Get current channel.
FrankWeissenborn 4:520664d73063 48 *
FrankWeissenborn 4:520664d73063 49 * @param name A target key name.
FrankWeissenborn 4:520664d73063 50 * @param length A pointer to a value storage.
FrankWeissenborn 4:520664d73063 51 * @return 0, all okay -1, eror getting channel, -2 no channels in list.
FrankWeissenborn 4:520664d73063 52 */
FrankWeissenborn 0:d9d38ebc0f69 53 int GetCurrChannel(char* name, int length);
FrankWeissenborn 4:520664d73063 54 /**
FrankWeissenborn 4:520664d73063 55 * Get next channel.
FrankWeissenborn 4:520664d73063 56 *
FrankWeissenborn 4:520664d73063 57 * @param name A target key name.
FrankWeissenborn 4:520664d73063 58 * @param length A pointer to a value storage.
FrankWeissenborn 4:520664d73063 59 * @return 0, all okay -1, eror getting channel, -2 no channels in list.
FrankWeissenborn 4:520664d73063 60 */
FrankWeissenborn 0:d9d38ebc0f69 61 int GetNextChannel(char* name, int length);
FrankWeissenborn 0:d9d38ebc0f69 62
FrankWeissenborn 4:520664d73063 63 /**
FrankWeissenborn 4:520664d73063 64 * Get IP and port of current shoutcast channel.
FrankWeissenborn 4:520664d73063 65 *
FrankWeissenborn 4:520664d73063 66 * @param address pointer to address.
FrankWeissenborn 4:520664d73063 67 * @param port pointer to port.
FrankWeissenborn 4:520664d73063 68 * @return 0, all okay -1, error 1, error parsing pls
FrankWeissenborn 4:520664d73063 69 */
FrankWeissenborn 7:f652d1e054e9 70 int TuneIn(IpAddr* address, int* port, char * path, const int length);
FrankWeissenborn 7:f652d1e054e9 71 int GetNextAddress(IpAddr* address, int* port, char * path, const int length);
FrankWeissenborn 7:f652d1e054e9 72 int GetCurrAddress(IpAddr* address, int* port, char * path, const int length);
FrankWeissenborn 7:f652d1e054e9 73 int GetPrevAddress(IpAddr* address, int* port, char * path, const int length);
FrankWeissenborn 0:d9d38ebc0f69 74
FrankWeissenborn 0:d9d38ebc0f69 75
FrankWeissenborn 0:d9d38ebc0f69 76
FrankWeissenborn 0:d9d38ebc0f69 77 private:
FrankWeissenborn 0:d9d38ebc0f69 78 const char* _devId;
FrankWeissenborn 0:d9d38ebc0f69 79 int ParseChannelList(const char* channelList);
FrankWeissenborn 0:d9d38ebc0f69 80 int ParsePls();
FrankWeissenborn 0:d9d38ebc0f69 81 int GetChannel(char* name, int length, int channelNumber);
FrankWeissenborn 7:f652d1e054e9 82 int GetAddressData(IpAddr* address, int* port,char * path, const int length, int addressNumber);
FrankWeissenborn 0:d9d38ebc0f69 83 void onReply(DNSReply reply);
FrankWeissenborn 0:d9d38ebc0f69 84 int ResolveDNSRequest(IpAddr* addr, char * url);
FrankWeissenborn 0:d9d38ebc0f69 85 int GetChannelId(int channelNumber);
FrankWeissenborn 2:0e9a10f2b8c5 86 char * _big_buffer;
FrankWeissenborn 2:0e9a10f2b8c5 87 int _big_buffer_size;
FrankWeissenborn 2:0e9a10f2b8c5 88 char * _small_buffer;
FrankWeissenborn 2:0e9a10f2b8c5 89 int _small_buffer_size;
FrankWeissenborn 4:520664d73063 90
FrankWeissenborn 4:520664d73063 91 unsigned int _genreCounter;
FrankWeissenborn 4:520664d73063 92 unsigned int _maxChannel;
FrankWeissenborn 4:520664d73063 93 unsigned int _currentChannel;
FrankWeissenborn 4:520664d73063 94 unsigned int _maxAddress;
FrankWeissenborn 4:520664d73063 95 unsigned int _currentAddress;
FrankWeissenborn 4:520664d73063 96 FILE *_fpin;
FrankWeissenborn 4:520664d73063 97 FILE *_fpout;
FrankWeissenborn 0:d9d38ebc0f69 98 };
FrankWeissenborn 0:d9d38ebc0f69 99
FrankWeissenborn 0:d9d38ebc0f69 100 #endif