3 import java.util.ArrayList;
\r
6 * レコーダプラグインに実装されるべきインタフェースです。
\r
7 * @see HDDRecorderUtils
\r
9 public interface HDDRecorder {
\r
11 /*******************************************************************************
\r
13 ******************************************************************************/
\r
16 * 繰り返し予約を表す文字列定数。(毎日曜日~毎日)
\r
18 public static final String[] RPTPTN = {"毎日曜日","毎月曜日","毎火曜日","毎水曜日","毎木曜日","毎金曜日","毎土曜日","毎月~木","毎月~金","毎月~土","毎日"};
\r
21 public static final int RPTPTN_ID_SAT = 6;
\r
22 public static final int RPTPTN_ID_MON2THU = 7;
\r
23 public static final int RPTPTN_ID_MON2FRI = 8;
\r
24 public static final int RPTPTN_ID_MON2SAT = 9;
\r
25 public static final int RPTPTN_ID_EVERYDAY = 10;
\r
26 public static final int RPTPTN_ID_BYDATE = 11;
\r
31 public static enum RecType { RECORDER, EPG, MAIL, CALENDAR, TUNER, NULL };
\r
34 * 録画結果と予約一覧の引き当てを行う範囲の最大
\r
36 public static final int SCOPEMAX = 366;
\r
39 public static final String SELECTED_ALL = "すべて";
\r
40 public static final String SELECTED_PICKUP = "ピックアップのみ";
\r
43 /*******************************************************************************
\r
45 ******************************************************************************/
\r
47 public String getRecorderId();
\r
49 public RecType getType();
\r
51 public ArrayList<TextValueSet> getVideoRateList();
\r
52 public ArrayList<TextValueSet> getAudioRateList();
\r
53 public ArrayList<TextValueSet> getFolderList();
\r
54 public ArrayList<TextValueSet> getEncoderList();
\r
55 public ArrayList<TextValueSet> getDVDCompatList();
\r
56 public ArrayList<TextValueSet> getDeviceList();
\r
57 public ArrayList<TextValueSet> getXChapter();
\r
58 public ArrayList<TextValueSet> getMsChapter();
\r
59 public ArrayList<TextValueSet> getMvChapter();
\r
60 public ArrayList<TextValueSet> getChValue();
\r
61 public ArrayList<TextValueSet> getChType();
\r
62 public ArrayList<TextValueSet> getAspect();
\r
63 public ArrayList<TextValueSet> getBVperf();
\r
64 public ArrayList<TextValueSet> getLVoice();
\r
65 public ArrayList<TextValueSet> getAutodel();
\r
67 public String getLabel_Videorate();
\r
68 public String getLabel_Audiorate();
\r
69 public String getLabel_Folder();
\r
70 public String getLabel_Device();
\r
71 public String getLabel_DVDCompat();
\r
72 public String getLabel_XChapter();
\r
73 public String getLabel_MsChapter();
\r
74 public String getLabel_MvChapter();
\r
75 public String getLabel_Aspect();
\r
76 public String getLabel_BVperf();
\r
77 public String getLabel_LVoice();
\r
78 public String getLabel_Autodel();
\r
80 public String text2value(ArrayList<TextValueSet> tvs, String text);
\r
81 public String value2text(ArrayList<TextValueSet> tvs, String value);
\r
85 public String getIPAddr();
\r
86 public void setIPAddr(String s);
\r
87 public String getPortNo();
\r
88 public void setPortNo(String s);
\r
89 public String getUser();
\r
90 public void setUser(String s);
\r
91 public String getPasswd();
\r
92 public void setPasswd(String s);
\r
93 public String getColor(String tuner);
\r
94 public void setColor(String s);
\r
95 public String getMacAddr();
\r
96 public void setMacAddr(String s);
\r
97 public String getBroadcast();
\r
98 public void setBroadcast(String s);
\r
103 public ArrayList<String> getColors();
\r
106 * 仮想エンコーダ数(チューナ数)を返します。DIGAなどレコーダからエンコーダ数を取得できない場合に使用します。
\r
108 public int getTunerNum();
\r
111 * 仮想エンコーダ数(チューナ数)を設定します。DIGAなどレコーダからエンコーダ数を取得できない場合に使用します。
\r
113 public void setTunerNum(int n);
\r
124 public ReserveList getReserveList(String rsvId);
\r
129 public ArrayList<ReserveList> getReserves();
\r
134 public AutoReserveInfoList getAutoReserves();
\r
139 public ArrayList<RecordedInfo> getRecorded();
\r
142 * 過去日の情報を削除したり、繰り返し予約の次回実行予定日を設定したりします。
\r
143 * @see HDDRecorderUtils#refreshReserves()
\r
145 public void refreshReserves();
\r
154 * <P>予約一覧へのアクセスだけでは予約の詳細がわからないレコーダなので詳細情報の個別取得が必要か?どうかを返します。
\r
155 * <P>ただし、これをtrueにするのは個別取得に時間がかかる(旧RD系など)だけで、高速なもの(TvRockやEDCBなど)ではfalseでかまいません。
\r
156 * @see #GetRdReserveDetails()
\r
158 public boolean isThereAdditionalDetails();
\r
161 * 自動予約の編集をサポートしているかどうかを返します。
\r
163 public boolean isEditAutoReserveSupported();
\r
166 * 自動エンコーダ選択を使用するかどうかを返します。
\r
168 public boolean isAutoEncSelectEnabled();
\r
171 * 繰り返し予約をサポートしているかどうかを返します。
\r
173 public boolean isRepeatReserveSupported();
\r
176 * 番組追従の変更をサポートしているかどうかを返します。
\r
178 public boolean isPursuesEditable();
\r
181 * タイトル自動補完をサポートしているかどうかを返します。
\r
183 public boolean isAutocompleteSupported();
\r
186 * チャンネル操作をサポートしているかどうかを返します。
\r
188 public boolean isChangeChannelSupported();
\r
191 * Googleカレンダープラグインなど、通常操作用には選択できないプラグインです。
\r
193 public boolean isBackgroundOnly();
\r
196 * 「レコーダの放送局名」にchvalueの値を利用できる
\r
198 public boolean isChValueAvailable();
\r
201 * 「レコーダの放送局名」と「放送局コード」に異なる値を設定する必要がある(isChValueAvailable()==trueなら通常使われない)
\r
203 public boolean isChCodeNeeded();
\r
206 * レコーダの放送局名すら必要ない(NULL)
\r
208 public boolean isRecChNameNeeded();
\r
211 * 放送波の種別設定を必要とする(TvRock)
\r
213 public boolean isBroadcastTypeNeeded();
\r
216 * フリーワードオプションの処理(設定)
\r
218 public boolean setOptString(String s);
\r
221 * フリーワードオプションの処理(記録)
\r
223 public String getOptString();
\r
231 * 実際のレコーダを示すユニークID返却します。
\r
232 * @return IP:PORT:RECORDER_ID (基本形。違う形式もあるかもしれない。)
\r
234 public String Myself();
\r
237 * このプラグインが実際のレコーダとマッチするかどうか判定します。
\r
238 * @param id : MySelf()で得られる値
\r
240 public boolean isMyself(String id);
\r
246 public String getChDatHelp();
\r
254 * デバッグログ出力(主にレコーダとのHTTPのやりとり)をON/OFFします。
\r
256 public void setDebug(boolean b);
\r
259 * 終了時刻と開始時刻が重なる番組を重複として処理するかどうかを指定します。
\r
260 * @param b : trueの場合、重複とみましません。
\r
262 public void setAdjNotRep(boolean b);
\r
265 * カレンダー連携を個別にON/OFFします。
\r
267 public void setUseCalendar(boolean b);
\r
268 public boolean getUseCalendar();
\r
271 * カレンダー連携を個別にON/OFFします。
\r
273 public void setUseChChange(boolean b);
\r
274 public boolean getUseChChange();
\r
279 public void setRecordedCheckScope(int n);
\r
280 //public int getRecordedCheckScope();
\r
285 public void setRecordedSaveScope(int n);
\r
288 * <P>HTTPアクセス時のUser-Agentの値を設定します。
\r
289 * <P>基本的に設定する意味はないでしょう。
\r
291 public void setUserAgent(String s);
\r
294 * 動作状況を出力するステータスウィンドウを設定します。
\r
296 public void setProgressArea(StatusWindow o);
\r
303 public ChannelCode getChCode();
\r
306 * <P>レコーダを起動させます。MACアドレスとブロードキャストアドレスの設定が必要です。
\r
307 * <P>基本的にはWOLを実行しますが、DIGAは電源が落ちていてもHTTPサーバが生きているのでHTTPリクエストによる起動が実行されます。
\r
309 public void wakeup();
\r
312 * レコーダを停止させます。MACアドレスとブロードキャストアドレスの設定が必要です。
\r
314 public void shutdown();
\r
318 * @param Channel : Web番組表の放送局名を指定します。
\r
320 public boolean ChangeChannel(String Channel);
\r
323 * <P>レコーダから各種設定の取得を行います。(全部のレコーダには実装していない)
\r
324 * @param force : trueの場合レコーダへのアクセスを強制します。falseの場合キャッシュファイルがあればそちらを利用します。
\r
325 * @see #GetRdReserve(boolean)
\r
326 * @see #GetRdReserveDetails()
\r
327 * @see #GetRdRecorded(boolean)
\r
329 public boolean GetRdSettings(boolean force);
\r
332 * <P>レコーダから予約一覧(と各種設定)の取得を行います。
\r
333 * <P>将来的には、各種設定の取得は別メソッドにわけたいところ。
\r
334 * @param force : trueの場合レコーダへのアクセスを強制します。falseの場合キャッシュファイルがあればそちらを利用します。
\r
335 * @see #GetRdSettings(boolean)
\r
337 public boolean GetRdReserve(boolean force);
\r
340 * <P>レコーダから自動予約一覧の取得を行います。
\r
341 * @param force : trueの場合レコーダへのアクセスを強制します。falseの場合キャッシュファイルがあればそちらを利用します。
\r
342 * @see #isEditAutoReserveSupported()
\r
344 public boolean GetRdAutoReserve(boolean force);
\r
347 * <P>レコーダから録画結果一覧の取得を行います。
\r
348 * @see #GetRdSettings(boolean)
\r
350 public boolean GetRdRecorded(boolean force);
\r
354 * @see #GetRdReserve(boolean)
\r
355 * @see #isThereAdditionalDetails()
\r
357 public boolean GetRdReserveDetails();
\r
362 public boolean PostRdEntry(ReserveList r);
\r
369 public boolean UpdateRdEntry(ReserveList o, ReserveList r);
\r
373 * @param delno : 削除する予約の予約IDを指定します。
\r
374 * @see ReserveList#id
\r
376 public ReserveList RemoveRdEntry(String delno);
\r
379 * 処理の結果に応じて追加のメッセージが取得できます。
\r
380 * @return "" : まったくの正常に終わった場合。
\r
382 public String getErrmsg();
\r
386 * クローンとコンピュータの融合体は新たな生命と呼べるのか
\r
388 public HDDRecorder clone();
\r