Imports System.Collections.Generic ''' ''' ICNStationインターフェース ''' ''' CastaNetにアタッチする放送局クラスが実装するインターフェースです。 ''' ''' 各プロパティは、設定と取得の両方が可能になっています。これは、外部設定ファイルから値を設定できるように ''' するためです。CastaNetが実装クラスのインスタンスを生成した直後に、設定ファイルに指定があれば、これらの ''' プロパティを通してその値を渡します。 ''' 実装クラスは、適宜対応するフィールドを用意して値の受け渡しを行ってください。 ''' ''' ※ セキュリティ対策のため、このインターフェースの実装クラスは、ローカルおよびインターネットへのアクセスは ''' できません。(例外が発生します) ''' ''' ''' TELLA ''' ''' 2006/07/31 新規作成 ''' 2007/09/05 修正(プロパティ追加等) ''' Public Interface ICNStation #Region "// プロパティ //////////////////////////////////////////////////" '//////////////////////////////////////////////////////////////////////////////// '// プロパティ '//////////////////////////////////////////////////////////////////////////////// ''' ''' 番組表のヘッダーテキストを設定・取得します。 ''' ''' ヘッダーテキスト Property HeaderTexts() As String() ''' ''' CastaNetの「放送局選択」コンボボックス等に表示する放送局名を設定・取得します。 ''' ''' 放送局名 Property DispName() As String ''' ''' CastaNetの情報アイコンを指したとき等に表示される放送局の情報を設定・取得します。 ''' ''' 放送局の情報 Property DispInfo() As String ''' ''' 放送を聴くためのストリームのURLを設定・取得します。 ''' ''' ストリームURL Property StreamUrl() As String ''' ''' 番組表を取得するためのURLの一部を設定・取得します。 ''' ''' 番組表取得URLの一部 Property PlayListUrlPart() As String ''' ''' 番組表の読み込み時に指定する文字セットのWindowsコードページ値を設定・取得します。 ''' ''' Windowsコードページ値 Property CodePage() As Integer ''' ''' 日本との時差を設定・取得します。 ''' ''' 日本との時差(h) Property TimeDiff() As Integer #End Region #Region "// メソッド ////////////////////////////////////////////////////////////" '//////////////////////////////////////////////////////////////////////////////// '// メソッド '//////////////////////////////////////////////////////////////////////////////// ''' ''' 指定された日本時間に対応する番組表を取得するためのURLを返します。 ''' ''' ※ CastaNetから引数で渡された日本時間を適宜加工してURLを組み立てて返すことになると思います。 ''' ※ 必要に応じてURLエンコードを行ってください。 ''' ''' ''' 日本時間 ''' 番組表取得URL Function PlayListUrl(ByVal dTimeJpn As DateTime) As String ''' ''' 番組表を返します。 ''' ''' CastaNetがPlayListUrl()メソッドを呼び出して得たURLにアクセスし、読み込んだテキストを引数で渡します。 ''' ''' 必要な情報が1回で取得できないときは、第3引数のnextUrlに次のURLを渡したうえで、Nothingを返してください。 ''' CastaNetはそのURLにアクセスして情報を取得し、再度第1引数に渡してこのメソッドを呼び出します。 ''' 何回目の呼び出しかは第2引数で知ることができます。 ''' 最終的に必要な情報がそろったら、下記のようなリストを作成して返してください。 ''' ''' 番組表は、以下の項目順で格納された文字列配列をList(Of String())に格納して返してください。 ''' ''' +----------+--------+--------+--------+--------+-----------------+ ''' | (0) | (1) | (2) | (3) | (4) | (5) | ''' +----------+--------+--------+--------+--------+-----------------+ ''' | 現地時刻 | 作曲者 | 曲名 | 演奏者 | CD番号 | CD購入サイトURL | ''' +----------+--------+--------+--------+--------+-----------------+ ''' ''' ※ 「現地時刻」はDateTimeに変換できる正しい文字列をセットしてください。 ''' ※ 「現地時刻」は時刻部分だけをセットしてください。(例:"12:01 am") ''' ※ 情報の無い項目にはNothingをセットしてください。 ''' ※ 各レコードの格納順は自由です。時間等でソートされている必要はありません。 ''' ※ HTMLデコードはCastaNet本体側で行いますので、実装クラスでは特に必要ありません。 ''' ''' ''' 番組表の情報を含んだテキスト ''' CastaNetからこのメソッドが呼ばれた回数、最初は0 ''' 次の情報の取得先URL ''' 番組表を格納したList、取得できなかったときは要素数を0にして返す、さらに情報が欲しいときはNothingを返す Function PlayList(ByVal playListText As String, ByVal callCount As Integer, ByRef nextUrl As String) As List(Of String()) ''' ''' 任意情報を受け取ります。 ''' ''' CastaNetは、各放送局の設定ファイルの [Option]Info キーに設定されている文字列を ''' このメソッドを呼び出して実装クラスに渡します。 ''' このメソッドは、CastaNetが実装クラスのインスタンスを生成した直後に呼び出します。 ''' ''' 任意情報の使用目的や書式などは、このインターフェースの実装者が自由に決めてください。 ''' ''' ''' 情報の文字列 Sub OptionInfo(ByVal info As String) #End Region End Interface