#pragma once

///
///ドメイン名
//////////////////////////////////////////////////////////////////////////////
#define NICO_VIDEO_DOMEINNAME "nicovideo.jp"
#define WWW_NICO_VIDEO_DOMEINNAME L"www." WTEXT(NICO_VIDEO_DOMEINNAME)
#define LIVE_NICO_VIDEO_DOMEINNAME "live.nicovideo.jp"
#define WATCH_LIVE_NICO_VIDEO_DOMEINNAME "watch.live.nicovideo.jp"


///
///プロバイダータイプ定義
//////////////////////////////////////////////////////////////

///定義なし
#define NO_SETTING_PROVIDER_TYPE			((PROVIDERTYPE)0)

///コミュニティ
#define COMMUNITY_PROVIDER_TYPE				((PROVIDERTYPE)1)

///チャンネル
#define CHANNEL_PROVIDER_TYPE				((PROVIDERTYPE)2)

///オフィシャル
#define OFFICIAL_PROVIDER_TYPE				((PROVIDERTYPE)3)


///
///イベントタイプ定義
/////////////////////////////////////////////////////////////////

///接続応答
#define NICOLIVE_EVENT_RECEVE_CONNECTRESULT			((NICOLIVE_EVENT)0x00000001)

///チャット受信
#define NICOLIVE_EVENT_RECEVE_CHAT					((NICOLIVE_EVENT)0x00000002)

///チャット受信が一段落した場合に送られてくるコメント※コメントの画面反映はこちらのイベントでやると良い
#define NICOLIVE_EVENT_RECEVE_CHATSETTLE			((NICOLIVE_EVENT)0x00000003)

///チャット送信結果受信
#define NICOLIVE_EVENT_RECEVE_CHATSENDRESULT		((NICOLIVE_EVENT)0x00000004)

///ハートビート送信
#define NICOLIVE_EVENT_SEND_HEARTBEAT				((NICOLIVE_EVENT)0x00000005)

///放送切断
#define NICOLIVE_EVENT_DISCONNECT					((NICOLIVE_EVENT)0x00000006)

//エラーマスク
#define NICOLIVE_EVENT_ERRMASK						((NICOLIVE_EVENT)0x80000000)


///接続エラー
#define NICOLIVE_EVENT_ERR_CONNECT					((NICOLIVE_EVENT)(NICOLIVE_EVENT_ERRMASK |1))









///
///エラー定義
///////////////////////////////////////////////////////////////////////////////////////////

///正常終了	
#define NLIB_ERR_OK																((NLIB_RESULT)0)

///クッキー取得失敗
#define NLIB_ERR_COOKIE_FAILED													((NLIB_RESULT)1)

///ネットワーク初期化失敗
#define NLIB_INITALIZE_FAILED_NETWORK											((NLIB_RESULT)2)

///入力された放送番号がNULL
#define NLIB_LIVENO_IS_NULL														((NLIB_RESULT)3)

///入力された放送番号が長すぎる
#define NLIB_LIVENO_FAILED_TOOBIG												((NLIB_RESULT)4)

///未定義の放送番号が入力された
#define NLIB_LIVENO_FAILED_UNDEFEINE											((NLIB_RESULT)5)

///ユーザーセッション文字列が長すぎる
#define NLIB_USERSESSION_FAILED_TOOBIG											((NLIB_RESULT)6)

///接続に失敗した
#define NLIB_FAILED_CONNECT														((NLIB_RESULT)7)

///プレイヤーステータス取得エラー：invalid_lvが発生した
#define NLIB_ERR_GETPLAYERSTATUS_INVALID_LV										((NLIB_RESULT)8)

///プレイヤーステータス取得エラー:invalid_threadが発生した
#define NLIB_ERR_GETPLAYERSTATUS_INVALID_THREAD									((NLIB_RESULT)9)

///プレイヤーステータス取得エラー:closedが発生した
#define NLIB_ERR_GETPLAYERSTATUS_CLOSED											((NLIB_RESULT)10)

///プレイヤーステータス取得エラー:unknown_errorが発生した
#define NLIB_ERR_GETPLAYERSTATUS_UNKNOWN_ERROR									((NLIB_RESULT)11)

///プレイヤーステータス取得エラー:server_errorが発生した
#define NLIB_ERR_GETPLAYERSTATUS_SERVER_ERROR									((NLIB_RESULT)12)

///プレイヤーステータス取得エラー:DELETEDが発生した
#define NLIB_ERR_GETPLAYERSTATUS_DELETED										((NLIB_RESULT)13)

///プレイヤーステータス取得エラー:fullが発生した
#define NLIB_ERR_GETPLAYERSTATUS_FULL											((NLIB_RESULT)14)

///プレイヤーステータス取得エラー:permission_deniedが発生した
#define NLIB_ERR_GETPLAYERSTATUS_PERMISSION_DENIED								((NLIB_RESULT)15)

///プレイヤーステータス取得エラー:access_lockedが発生した
#define NLIB_ERR_GETPLAYERSTATUS_ACCESS_LOCKED									((NLIB_RESULT)16)

///プレイヤーステータス取得エラー:require_community_memberが発生した
#define NLIB_ERR_GETPLAYERSTATUS_REQUIRE_COMMUNITY_MEMBER						((NLIB_RESULT)17)

///プレイヤーステータス取得エラー:comingsoonが発生した
#define NLIB_ERR_GETPLAYERSTATUS_COMINGSOON										((NLIB_RESULT)18)

///プレイヤーステータス取得エラー:notfoundが発生した
#define NLIB_ERR_GETPLAYERSTATUS_NOTFOUND										((NLIB_RESULT)19)

///プレイヤーステータス取得エラー:notloginが発生した
#define NLIB_ERR_GETPLAYERSTATUS_NOTLOGIN										((NLIB_RESULT)20)

///プレイヤーステータス取得エラー:unknownが発生した
#define NLIB_ERR_GETPLAYERSTATUS_UNKNOWN										((NLIB_RESULT)21)

///プレイヤーステータス取得エラー:maintenanceが発生した
#define NLIB_ERR_GETPLAYERSTATUS_MAINTENANCE									((NLIB_RESULT)22)

///プレイヤーステータス取得エラー:not_permittedが発生した
#define NLIB_ERR_GETPLAYERSTATUS_NOT_PERMITTED									((NLIB_RESULT)23)

///プレイヤーステータス取得エラー:require_accept_print_timeshift_ticketが発生した
#define NLIB_ERR_GETPLAYERSTATUS_REQUIRE_ACCEPT_PRINT_TIMESHIFT_TICKET			((NLIB_RESULT)24)

///プレイヤーステータス取得エラー:tsarchiveが発生した
#define NLIB_ERR_GETPLAYERSTATUS_TSARCHIVE										((NLIB_RESULT)25)

///プレイヤーステータス取得エラー:usertimeshiftが発生した
#define NLIB_ERR_GETPLAYERSTATUS_USERTIMESHIFT									((NLIB_RESULT)26)

///プレイヤーステータス取得エラー:未定義のエラーが発生した
#define NLIB_ERR_GETPLAYERSTATUS_UNDEFINED										((NLIB_RESULT)27)

///watch.live.nicovideo接続に失敗
#define NLIB_ERR_WATCHLIVENICOVIDEO_FAILED_CONNECT								((NLIB_RESULT)28)

///バッファがたりない
#define NLIB_ERR_BUFFER_TOOLITTLE												((NLIB_RESULT)29)

///ネットワークエラー発生
#define NLIB_ERR_FAILED_NETWORK													((NLIB_RESULT)30)


///取得したプレイヤーステータスがエラー
#define NLIB_ERR_PLAYERSTATUS_ERROR												((NLIB_RESULT)31)


///取得したハートビートがエラー
#define NLIB_ERR_HEARTBEAT_ERROR												((NLIB_RESULT)32)

///json解析中にエラー
#define NLIB_ERR_JSON_PARSE														((NLIB_RESULT)33)


///shell実行エラー
#define NLIB_ERR_SHELL_FAILED													((NLIB_RESULT)34)


///生放送に接続していない
#define NLIB_ERR_NOT_LIVECONNECT												((NLIB_RESULT)35)

///コメント送信用のポストキー取得失敗
#define NLIB_ERR_LIVE_GETPOSTKEY_FAILED											((NLIB_RESULT)36)

///プレイヤーステータス取得エラー:noauth発生
#define NLIB_ERR_GETPLAYERSTATUS_NOAUTH											((NLIB_RESULT)37)

///プレイヤーステータスエラー:block_now_count_overflowが発生した
#define NLIB_ERR_GETPLAYERSTATUS_BLOCK_NOW_COUNT_OVERFLOW						((NLIB_RESULT)38)


///プレイヤーステータスが解析できる形式ではない
#define NLIB_ERR_GETPLAYERSTATUS_CHANT_PARSE									((NLIB_RESULT)39)

///ハートビートサーバー接続に失敗
#define NLIB_HEARTBEAT_FAILED_CONNECT											((NLIB_RESULT)40)

///生主情報ステータスエラー発生
#define NLIB_ERR_PUBLISHSTATUS_ERROR											((NLIB_RESULT)41)

///渡されたストリームがNULL
#define NLIB_ERR_STREAM_IS_NULL													((NLIB_RESULT)42)

///生主ではない
#define NLIB_ERR_YOUARE_NOTOWNER												((NLIB_RESULT)43)






///エラーコードが設定されていない
#define NLIB_ERR_CODE_NOTSET													((NLIB_RESULT)0xFFFFFFFF)



	








