{"action":"created","comment":{"url":"https://api.github.com/repos/forGGe/theCore/pulls/comments/70473948","id":70473948,"diff_hunk":"@@ -0,0 +1,838 @@\n+//!\n+//! \\file\n+//! \\brief Contains implementation for CS43L22 driver.\n+//! \\details The CS43L22 is a highly integrated,\n+//!  low power stereo DAC with headphone and ClassD speaker amplifiers\n+//!  See: https://www.cirrus.com/cn/pubs/proDatasheet/CS43L22_F2.pdf\n+//!\n+\n+#ifndef DEV_CS43L22_HPP\n+#define DEV_CS43L22_HPP\n+\n+#include <ecl/err.hpp>\n+#include <dev/bus.hpp>\n+#include <common/spi.hpp>\n+\n+#include <functional>\n+\n+namespace ecl\n+{\n+\n+//!  The CS43L22 codec driver implementation.\n+//! \\tparam I2c I2C generic bus driver.\n+//! \\tparam I2s I2S generic bus driver.\n+//! \\tparam Rst_gpio Reset pin represented by generic GPIO class.\n+//!\n+template < class I2c, class I2s, class Rst_gpio >\n+class cs43l22\n+{\n+public:\n+\n+    //! Represents audio channel.\n+    //!\n+    enum class channel\n+    {\n+        left,\n+        right,\n+        all,\n+    };\n+\n+    //! Register masks for frequencies supported by beep generator.\n+    //!\n+    enum class beep_frequency\n+    {\n+        hz260  = 0x0, // 260.78 Hz\n+        hz521  = 0x10, // 521.74 Hz\n+        hz585  = 0x20, // 585.37 Hz\n+        hz666  = 0x30, // 666.67 Hz\n+        hz705  = 0x40, // 705.88 Hz\n+        hz774  = 0x50, // 774.19 Hz\n+        hz888  = 0x60, // 888.89 Hz\n+        hz1000 = 0x70, // 1000.00 Hz\n+        hz1043 = 0x80, // 1043.48 Hz\n+        hz1200 = 0x90, // 1200.00 Hz\n+        hz1333 = 0xA0, // 1333.33 Hz\n+        hz1411 = 0xB0, // 1411.76 Hz\n+        hz1600 = 0xC0, // 1600.00 Hz\n+        hz1714 = 0xD0, // 1714.29 Hz\n+        hz2000 = 0xE0, // 2000.00 Hz\n+        hz2181 = 0xF0, // 2181.82 Hz\n+    };\n+\n+    //! Register masks for possible values for on duration of the beep signal.\n+    //!\n+    enum class beep_on_time\n+    {\n+        ms86   = 0x0, // 86 ms\n+        ms430  = 0x1, // 430 ms\n+        ms780  = 0x2, // 780 ms\n+        ms1200 = 0x3, // 1.20 s\n+        ms1500 = 0x4, // 1.50 s\n+        ms1800 = 0x5, // 1.80 s\n+        ms2200 = 0x6, // 2.20 s\n+        ms2500 = 0x7, // 2.50 s\n+        ms2800 = 0x8, // 2.80 s\n+        ms3200 = 0x9, // 3.20 s\n+        ms3500 = 0xA, // 3.50 s\n+        ms3800 = 0xB, // 3.80 s\n+        ms4200 = 0xC, // 4.20 s\n+        ms4500 = 0xD, // 4.50 s\n+        ms4800 = 0xE, // 4.80 s\n+        ms5200 = 0xF, // 5.20 s\n+    };\n+\n+    //! Register masks for possible values for off duration of the beep signal.\n+    //!\n+    enum class beep_off_time\n+    {\n+        ms1230  = 0x0,  // 1.23 s\n+        ms2580  = 0x20, // 2.58 s\n+        ms3900  = 0x40, // 3.90 s\n+        ms5200  = 0x60, // 5.20 s\n+        ms6600  = 0x80, // 6.60 s\n+        ms8050  = 0xA0, // 8.05 s\n+        ms9350  = 0xC0, // 9.35 s\n+        ms10800 = 0xE0, // 10.80 s\n+    };\n+\n+    //! Register masks for operation modes of the beep generator.\n+    //!\n+    enum class beep_mode\n+    {\n+        single    = 0x40, // Play one beep\n+        multiple  = 0x80, // Play beep for on_time, mute for off_time\n+        continuos = 0xC0, // Play continuously\n+    };\n+\n+    //!  Maximum value of the master volume.\n+    //! \\details The minimum value (0) represents the signal out the DSP: -102 dB.\n+    //!  The maximum value (0xE4) represents +12 dB. Step size is 0.5 dB.\n+    //!\n+    static constexpr uint8_t max_master_volume = 0xE4;\n+\n+    //!  Maximum value of the headphone volume.\n+    //! \\details The minimum value (0) represents the signal out the DAC: -127 dB (muted).\n+    //!  The maximum value (0xFF) represents the signal out the DAC: 0 dB. Step size is 0.5 dB.\n+    //!\n+    static constexpr uint8_t max_headphone_volume = 0xFF;\n+\n+    //!  Maximum value of the beep volume.\n+    //! \\details The minimum value (0) represents the gain: -56 dB.\n+    //!  The maximum value (0x1F) represents the gain: +6 dB. Step size is 2 dB.\n+    //!\n+    static constexpr uint8_t max_beep_volume = 0x1F;\n+\n+    //!  Describes the user callback.\n+    //! \\details NOTE: The user callback is called in IRQ context.\n+    //! \\param type Represents the type of event: half-transfer (HT) or transfer completed (TC).\n+    //!\n+    using user_callback = std::function< void (ecl::bus_event type) >;\n+\n+    //!  Codec low-level initialization routine.\n+    //! \\details This method performs low-level initialization of the\n+    //!  codec and underlayer buses. This method must be called once\n+    //!  before any operations with codec.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err init();\n+\n+    //!  Codec power up sequence.\n+    //! \\details This method performs power up sequence of the\n+    //!  codec which is recommended by CS43L22 Reference Manual (RM).\n+    //!  To use this method, the init() method must be called previously.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err power_up();\n+\n+    //!  Codec power down sequence.\n+    //! \\details This method performs power down sequence of the\n+    //!  codec which is recommended by CS43L22 Reference Manual (RM).\n+    //!  To use this method, the init() method must be called previously.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err power_down();\n+\n+    //!  Send PCM buffer to the codec.\n+    //! \\details This method blocks until all data is transferred.\n+    //!  The PCM data contains audio samples. Sample size is constant and equal to 16 bit.\n+    //!  Sampling frequency can be changed with cs43l22< I2c, I2s, Rst_gpio >::set_sampling_frequency() method.\n+    //!  The buffer format is next: LRLR.... Where L - left channel and R - right channel.\n+    //! \\param buffer The buffer which contains PCM data.\n+    //! \\param count Number of samples in PCM buffer.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err send_pcm_buffer(uint16_t *buffer, size_t count);\n+\n+    //!  Starts stream of the PCM buffer to the codec.\n+    //! \\details When stream is started, the user callback is called on two events:\n+    //!  Halt Transfer (HT) and Transfer Completed (TC). When half of samples are\n+    //!  transferred, the HT is generated and user can write the data into fist\n+    //!  half of the buffer. After all sample are transferred, the TC is generated.\n+    //!  After this the codec is continuing streaming from the start of the buffer\n+    //!  until it is stopped by cs43l22< I2c, I2s, Rst_gpio >::pcm_stream_stop().\n+    //!  NOTE: The HT and TC events are generated in IRQ context. The user callback\n+    //!  should not perform blocking operations, busy wait etc.\n+    //!  The PCM data contains audio samples. Sample size is constant and equal to 16 bit.\n+    //!  Sampling frequency can be changed with cs43l22< I2c, I2s, Rst_gpio >::set_sampling_frequency() method.\n+    //!  The buffer format is next: LRLR.... Where L - left channel and R - right channel.\n+    //! \\param buffer The buffer which contains PCM data.\n+    //! \\param count Number of samples in PCM buffer. Must be multiple of 2 and less of equal to 0xFFFF.\n+    //! \\param callback User callback is called on HT and TC events.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err pcm_stream_start(uint16_t *buffer, size_t count, user_callback callback);\n+\n+    //!  Stop active stream.\n+    //! \\details This method stops active PCM stream. It is recommended to call this method\n+    //!  during processing of the HT or TC event. In case this method is called during\n+    //!  processing of the TC event the steam will be stopped immediately. Otherwise, it\n+    //!  will be stopped after next TC event.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err pcm_stream_stop();\n+\n+    //!  Set master volume for specific channel.\n+    //! \\param ch Audio channel.\n+    //! \\param volume The volume value. Must be in range [0, cs43l22< I2c, I2s, Rst_gpio >::max_master_volume]\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err set_master_volume(uint8_t volume, channel ch = channel::all);\n+\n+    //!  Set headphone volume for specific channel.\n+    //! \\param ch Audio channel.\n+    //! \\param volume The volume value. Must be in range [0, cs43l22< I2c, I2s, Rst_gpio >::max_headphone_volume]\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err set_headphone_volume(uint8_t volume, channel ch = channel::all);\n+\n+    //!  Mute headphone channel.\n+    //! \\param ch Audio channel.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err headphone_mute_on(channel ch = channel::all);\n+\n+    //!  Unmute headphone channel.\n+    //! \\param ch Audio channel.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err headphone_mute_off(channel ch = channel::all);\n+\n+    //!  Set beep on time. Must not be called if beep is enabled. See RM for details.\n+    //! \\param value The value of beep on time.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err set_beep_on_time(beep_on_time value);\n+\n+    //!  Set beep off time. Must not be called if beep is enabled. See RM for details.\n+    //! \\param value The value of beep off time.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err set_beep_off_time(beep_off_time value);\n+\n+    //!  Set beep frequency. Must not be called if beep is enabled. See RM for details.\n+    //! \\param value The value of beep frequency.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err set_beep_frequency(beep_frequency value);\n+\n+    //!  Set beep Volume. Must not be called if beep is enabled. See RM for details.\n+    //! \\param value The value of beep volume. Must be in range [0,\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err set_beep_volume(uint8_t volume);\n+\n+    //!  Enable beep generator.\n+    //! \\param mode The operation mode for beep generator.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err beep_generator_enable(beep_mode mode = beep_mode::multiple);\n+\n+    //!  Disable beep generator.\n+    //! \\retval Status of the operation.\n+    //!\n+    static ecl::err beep_generator_disable();\n+\n+    //!  Set sampling frequency for PCM audio data.\n+    //! \\tparam frequency Audio frequency.\n+    //! \\retval Status of the operation.\n+    //!\n+    template < ecl::i2s::audio_frequency frequency>","path":"dev/cs43l22/export/dev/cs43l22.hpp","position":259,"original_position":259,"commit_id":"9ec0de9d1a5aecba44d87c68380e19fe69a53347","original_commit_id":"9ec0de9d1a5aecba44d87c68380e19fe69a53347","user":{"login":"forGGe","id":5261821,"avatar_url":"https://avatars.githubusercontent.com/u/5261821?v=3","gravatar_id":"","url":"https://api.github.com/users/forGGe","html_url":"https://github.com/forGGe","followers_url":"https://api.github.com/users/forGGe/followers","following_url":"https://api.github.com/users/forGGe/following{/other_user}","gists_url":"https://api.github.com/users/forGGe/gists{/gist_id}","starred_url":"https://api.github.com/users/forGGe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/forGGe/subscriptions","organizations_url":"https://api.github.com/users/forGGe/orgs","repos_url":"https://api.github.com/users/forGGe/repos","events_url":"https://api.github.com/users/forGGe/events{/privacy}","received_events_url":"https://api.github.com/users/forGGe/received_events","type":"User","site_admin":false},"body":"CS","created_at":"2016-07-12T16:39:04Z","updated_at":"2016-07-12T16:39:04Z","html_url":"https://github.com/forGGe/theCore/pull/111#discussion_r70473948","pull_request_url":"https://api.github.com/repos/forGGe/theCore/pulls/111","_links":{"self":{"href":"https://api.github.com/repos/forGGe/theCore/pulls/comments/70473948"},"html":{"href":"https://github.com/forGGe/theCore/pull/111#discussion_r70473948"},"pull_request":{"href":"https://api.github.com/repos/forGGe/theCore/pulls/111"}}},"pull_request":{"url":"https://api.github.com/repos/forGGe/theCore/pulls/111","id":77017414,"html_url":"https://github.com/forGGe/theCore/pull/111","diff_url":"https://github.com/forGGe/theCore/pull/111.diff","patch_url":"https://github.com/forGGe/theCore/pull/111.patch","issue_url":"https://api.github.com/repos/forGGe/theCore/issues/111","number":111,"state":"open","locked":false,"title":"Added driver for cs43l22 audio DAC","user":{"login":"vadimol","id":5074479,"avatar_url":"https://avatars.githubusercontent.com/u/5074479?v=3","gravatar_id":"","url":"https://api.github.com/users/vadimol","html_url":"https://github.com/vadimol","followers_url":"https://api.github.com/users/vadimol/followers","following_url":"https://api.github.com/users/vadimol/following{/other_user}","gists_url":"https://api.github.com/users/vadimol/gists{/gist_id}","starred_url":"https://api.github.com/users/vadimol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vadimol/subscriptions","organizations_url":"https://api.github.com/users/vadimol/orgs","repos_url":"https://api.github.com/users/vadimol/repos","events_url":"https://api.github.com/users/vadimol/events{/privacy}","received_events_url":"https://api.github.com/users/vadimol/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-07-11T20:27:36Z","updated_at":"2016-07-12T16:53:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"918ee9f9397b487b5447e18e2c8b1627c75d4cb2","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/forGGe/theCore/pulls/111/commits","review_comments_url":"https://api.github.com/repos/forGGe/theCore/pulls/111/comments","review_comment_url":"https://api.github.com/repos/forGGe/theCore/pulls/comments{/number}","comments_url":"https://api.github.com/repos/forGGe/theCore/issues/111/comments","statuses_url":"https://api.github.com/repos/forGGe/theCore/statuses/9ec0de9d1a5aecba44d87c68380e19fe69a53347","head":{"label":"vadimol:cs43l2_develop","ref":"cs43l2_develop","sha":"9ec0de9d1a5aecba44d87c68380e19fe69a53347","user":{"login":"vadimol","id":5074479,"avatar_url":"https://avatars.githubusercontent.com/u/5074479?v=3","gravatar_id":"","url":"https://api.github.com/users/vadimol","html_url":"https://github.com/vadimol","followers_url":"https://api.github.com/users/vadimol/followers","following_url":"https://api.github.com/users/vadimol/following{/other_user}","gists_url":"https://api.github.com/users/vadimol/gists{/gist_id}","starred_url":"https://api.github.com/users/vadimol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vadimol/subscriptions","organizations_url":"https://api.github.com/users/vadimol/orgs","repos_url":"https://api.github.com/users/vadimol/repos","events_url":"https://api.github.com/users/vadimol/events{/privacy}","received_events_url":"https://api.github.com/users/vadimol/received_events","type":"User","site_admin":false},"repo":{"id":56065495,"name":"theCore","full_name":"vadimol/theCore","owner":{"login":"vadimol","id":5074479,"avatar_url":"https://avatars.githubusercontent.com/u/5074479?v=3","gravatar_id":"","url":"https://api.github.com/users/vadimol","html_url":"https://github.com/vadimol","followers_url":"https://api.github.com/users/vadimol/followers","following_url":"https://api.github.com/users/vadimol/following{/other_user}","gists_url":"https://api.github.com/users/vadimol/gists{/gist_id}","starred_url":"https://api.github.com/users/vadimol/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vadimol/subscriptions","organizations_url":"https://api.github.com/users/vadimol/orgs","repos_url":"https://api.github.com/users/vadimol/repos","events_url":"https://api.github.com/users/vadimol/events{/privacy}","received_events_url":"https://api.github.com/users/vadimol/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/vadimol/theCore","description":"The Core is highly configurable, straightforward C++ embedded framework with minimum set of development dependencies.","fork":true,"url":"https://api.github.com/repos/vadimol/theCore","forks_url":"https://api.github.com/repos/vadimol/theCore/forks","keys_url":"https://api.github.com/repos/vadimol/theCore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vadimol/theCore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vadimol/theCore/teams","hooks_url":"https://api.github.com/repos/vadimol/theCore/hooks","issue_events_url":"https://api.github.com/repos/vadimol/theCore/issues/events{/number}","events_url":"https://api.github.com/repos/vadimol/theCore/events","assignees_url":"https://api.github.com/repos/vadimol/theCore/assignees{/user}","branches_url":"https://api.github.com/repos/vadimol/theCore/branches{/branch}","tags_url":"https://api.github.com/repos/vadimol/theCore/tags","blobs_url":"https://api.github.com/repos/vadimol/theCore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vadimol/theCore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vadimol/theCore/git/refs{/sha}","trees_url":"https://api.github.com/repos/vadimol/theCore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vadimol/theCore/statuses/{sha}","languages_url":"https://api.github.com/repos/vadimol/theCore/languages","stargazers_url":"https://api.github.com/repos/vadimol/theCore/stargazers","contributors_url":"https://api.github.com/repos/vadimol/theCore/contributors","subscribers_url":"https://api.github.com/repos/vadimol/theCore/subscribers","subscription_url":"https://api.github.com/repos/vadimol/theCore/subscription","commits_url":"https://api.github.com/repos/vadimol/theCore/commits{/sha}","git_commits_url":"https://api.github.com/repos/vadimol/theCore/git/commits{/sha}","comments_url":"https://api.github.com/repos/vadimol/theCore/comments{/number}","issue_comment_url":"https://api.github.com/repos/vadimol/theCore/issues/comments{/number}","contents_url":"https://api.github.com/repos/vadimol/theCore/contents/{+path}","compare_url":"https://api.github.com/repos/vadimol/theCore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vadimol/theCore/merges","archive_url":"https://api.github.com/repos/vadimol/theCore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vadimol/theCore/downloads","issues_url":"https://api.github.com/repos/vadimol/theCore/issues{/number}","pulls_url":"https://api.github.com/repos/vadimol/theCore/pulls{/number}","milestones_url":"https://api.github.com/repos/vadimol/theCore/milestones{/number}","notifications_url":"https://api.github.com/repos/vadimol/theCore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vadimol/theCore/labels{/name}","releases_url":"https://api.github.com/repos/vadimol/theCore/releases{/id}","deployments_url":"https://api.github.com/repos/vadimol/theCore/deployments","created_at":"2016-04-12T13:30:04Z","updated_at":"2016-04-12T13:30:07Z","pushed_at":"2016-07-11T20:25:43Z","git_url":"git://github.com/vadimol/theCore.git","ssh_url":"git@github.com:vadimol/theCore.git","clone_url":"https://github.com/vadimol/theCore.git","svn_url":"https://github.com/vadimol/theCore","homepage":null,"size":5252,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"forGGe:develop","ref":"develop","sha":"41a30999b1ec036156b86f8f62aba28ccb8b5e32","user":{"login":"forGGe","id":5261821,"avatar_url":"https://avatars.githubusercontent.com/u/5261821?v=3","gravatar_id":"","url":"https://api.github.com/users/forGGe","html_url":"https://github.com/forGGe","followers_url":"https://api.github.com/users/forGGe/followers","following_url":"https://api.github.com/users/forGGe/following{/other_user}","gists_url":"https://api.github.com/users/forGGe/gists{/gist_id}","starred_url":"https://api.github.com/users/forGGe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/forGGe/subscriptions","organizations_url":"https://api.github.com/users/forGGe/orgs","repos_url":"https://api.github.com/users/forGGe/repos","events_url":"https://api.github.com/users/forGGe/events{/privacy}","received_events_url":"https://api.github.com/users/forGGe/received_events","type":"User","site_admin":false},"repo":{"id":56009055,"name":"theCore","full_name":"forGGe/theCore","owner":{"login":"forGGe","id":5261821,"avatar_url":"https://avatars.githubusercontent.com/u/5261821?v=3","gravatar_id":"","url":"https://api.github.com/users/forGGe","html_url":"https://github.com/forGGe","followers_url":"https://api.github.com/users/forGGe/followers","following_url":"https://api.github.com/users/forGGe/following{/other_user}","gists_url":"https://api.github.com/users/forGGe/gists{/gist_id}","starred_url":"https://api.github.com/users/forGGe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/forGGe/subscriptions","organizations_url":"https://api.github.com/users/forGGe/orgs","repos_url":"https://api.github.com/users/forGGe/repos","events_url":"https://api.github.com/users/forGGe/events{/privacy}","received_events_url":"https://api.github.com/users/forGGe/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/forGGe/theCore","description":"The Core is highly configurable, straightforward C++ embedded framework with minimum set of development dependencies.","fork":false,"url":"https://api.github.com/repos/forGGe/theCore","forks_url":"https://api.github.com/repos/forGGe/theCore/forks","keys_url":"https://api.github.com/repos/forGGe/theCore/keys{/key_id}","collaborators_url":"https://api.github.com/repos/forGGe/theCore/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/forGGe/theCore/teams","hooks_url":"https://api.github.com/repos/forGGe/theCore/hooks","issue_events_url":"https://api.github.com/repos/forGGe/theCore/issues/events{/number}","events_url":"https://api.github.com/repos/forGGe/theCore/events","assignees_url":"https://api.github.com/repos/forGGe/theCore/assignees{/user}","branches_url":"https://api.github.com/repos/forGGe/theCore/branches{/branch}","tags_url":"https://api.github.com/repos/forGGe/theCore/tags","blobs_url":"https://api.github.com/repos/forGGe/theCore/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/forGGe/theCore/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/forGGe/theCore/git/refs{/sha}","trees_url":"https://api.github.com/repos/forGGe/theCore/git/trees{/sha}","statuses_url":"https://api.github.com/repos/forGGe/theCore/statuses/{sha}","languages_url":"https://api.github.com/repos/forGGe/theCore/languages","stargazers_url":"https://api.github.com/repos/forGGe/theCore/stargazers","contributors_url":"https://api.github.com/repos/forGGe/theCore/contributors","subscribers_url":"https://api.github.com/repos/forGGe/theCore/subscribers","subscription_url":"https://api.github.com/repos/forGGe/theCore/subscription","commits_url":"https://api.github.com/repos/forGGe/theCore/commits{/sha}","git_commits_url":"https://api.github.com/repos/forGGe/theCore/git/commits{/sha}","comments_url":"https://api.github.com/repos/forGGe/theCore/comments{/number}","issue_comment_url":"https://api.github.com/repos/forGGe/theCore/issues/comments{/number}","contents_url":"https://api.github.com/repos/forGGe/theCore/contents/{+path}","compare_url":"https://api.github.com/repos/forGGe/theCore/compare/{base}...{head}","merges_url":"https://api.github.com/repos/forGGe/theCore/merges","archive_url":"https://api.github.com/repos/forGGe/theCore/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/forGGe/theCore/downloads","issues_url":"https://api.github.com/repos/forGGe/theCore/issues{/number}","pulls_url":"https://api.github.com/repos/forGGe/theCore/pulls{/number}","milestones_url":"https://api.github.com/repos/forGGe/theCore/milestones{/number}","notifications_url":"https://api.github.com/repos/forGGe/theCore/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/forGGe/theCore/labels{/name}","releases_url":"https://api.github.com/repos/forGGe/theCore/releases{/id}","deployments_url":"https://api.github.com/repos/forGGe/theCore/deployments","created_at":"2016-04-11T21:29:56Z","updated_at":"2016-04-25T15:31:08Z","pushed_at":"2016-07-11T20:27:36Z","git_url":"git://github.com/forGGe/theCore.git","ssh_url":"git@github.com:forGGe/theCore.git","clone_url":"https://github.com/forGGe/theCore.git","svn_url":"https://github.com/forGGe/theCore","homepage":null,"size":5407,"stargazers_count":7,"watchers_count":7,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":45,"forks":7,"open_issues":45,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/forGGe/theCore/pulls/111"},"html":{"href":"https://github.com/forGGe/theCore/pull/111"},"issue":{"href":"https://api.github.com/repos/forGGe/theCore/issues/111"},"comments":{"href":"https://api.github.com/repos/forGGe/theCore/issues/111/comments"},"review_comments":{"href":"https://api.github.com/repos/forGGe/theCore/pulls/111/comments"},"review_comment":{"href":"https://api.github.com/repos/forGGe/theCore/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/forGGe/theCore/pulls/111/commits"},"statuses":{"href":"https://api.github.com/repos/forGGe/theCore/statuses/9ec0de9d1a5aecba44d87c68380e19fe69a53347"}}}}
{"actor":{"display_login":"forGGe"}}