Esempio n. 1
0
void OwCtrl::processNewMessage(const string &msg)
{
    json_error_t jerr;
    json_t *jroot = json_loads(msg.c_str(), 0, &jerr);

    if (!jroot || !json_is_array(jroot))
    {
        cWarningDom("1wire") << "Error parsing json from sub process: " << jerr.text;
        if (jroot)
            json_decref(jroot);
        return;
    }

    int idx;
    json_t *value;

    json_array_foreach(jroot, idx, value)
    {
        Params p;
        jansson_decode_object(value, p);

        if (p.Exists("id"))
        {
            if (p.Exists("value"))
                mapValues[p["id"]] = p["value"];
            if (p.Exists("type"))
                mapValues[p["id"]] = p["type"];
        }
    }
Esempio n. 2
0
void Utils::parseParamsItemList(std::string l, std::vector<Params> &res, int start_at)
{
    std::vector<std::string> tokens;
    split(l, tokens);
    Params item;

    for (unsigned int i = start_at;i < tokens.size();i++)
    {
        std::string tmp = tokens[i];
        std::vector<std::string> tk;
        split(tmp, tk, ":", 2);

        if (tk.size() != 2) continue;

        if (item.Exists(tk[0]))
        {
            res.push_back(item);
            item.clear();
        }

        item.Add(tk[0], tk[1]);
    }

    if (item.size() > 0)
        res.push_back(item);
}
void ActivityAudioListView::browserShowPlaylistTracks(Params &infos, Params pl_infos)
{
    if (!infos.Exists("count")) return;

    EmitSignal("browser,loading,stop", "calaos");

    cDebug() << "RESULT infos: " << pl_infos.toString();

    pl_infos.Add("count", infos["count"]);
    int count;
    from_string(infos["count"], count);

    int pl_id;
    from_string(pl_infos["id"], pl_id);

    CREATE_GENLIST_HELPER(glist);

    GenlistItemPlaylistHeader *header = new GenlistItemPlaylistHeader(evas, parent, player_current->getPlayer(), pl_infos, pl_id);
    header->Append(glist);

    for (int i = 0;i < count;i++)
    {
        GenlistItemTrack *item = new GenlistItemTrack(evas, parent, player_current->getPlayer(), i, GenlistItemTrack::TRACK_PLAYLIST, pl_id);
        item->Append(glist);
    }

    elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos");
}
void ActivityAudioListView::browserShowYearAlbum(Params &infos, Params year_infos)
{
    if (!infos.Exists("count")) return;

    EmitSignal("browser,loading,stop", "calaos");

    cDebug() << "RESULT infos: " << year_infos.toString();

    year_infos.Add("count", infos["count"]);
    int count;
    from_string(infos["count"], count);

    int year_id;
    from_string(year_infos["year"], year_id);

    CREATE_GENLIST_HELPER(glist);

    for (int i = 0;i < count;i++)
    {
        GenlistItemAlbum *item = new GenlistItemAlbum(evas, parent, player_current->getPlayer(), i, GenlistItemAlbum::ALBUM_YEAR, year_id);
        item->Append(glist);
        item->setUserData(item);
        item->item_selected.connect(sigc::mem_fun(*this, &ActivityAudioListView::albumSelected));
    }

    elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos");
}
Esempio n. 5
0
void AudioPlayer::getDBAlbumCoverItem(Params &item, PlayerInfo_cb callback, int size)
{
    if (!item.Exists("cover_url")) return;

    string fname = Utils::getCacheFile(".cover_cache/album_") + item["cover_id"];

    string cmdsize;
    switch (size)
    {
    default:
    case AUDIO_COVER_SIZE_SMALL: cmdsize = "40x40"; fname += "_small.jpg"; break;
    case AUDIO_COVER_SIZE_MEDIUM: cmdsize = "100x100"; fname += "_medium.jpg"; break;
    case AUDIO_COVER_SIZE_BIG: cmdsize = "250x250"; fname += "_big.jpg"; break;
    }

    if (ecore_file_exists(fname.c_str()))
    {
        PlayerInfo_signal sig;
        sig.connect(callback);
        Params p;
        p.Add("filename", fname);
        sig.emit(p);

        return;
    }

    PlayerInfoData *data = new PlayerInfoData();
    data->cover_fname = fname;
    data->callback = callback;
    data->item = item;

    string cmd;
    cmd = Prefix::Instance().binDirectoryGet();
    cmd += "calaos_thumb " + item["cover_url"] + " " + fname + " " + cmdsize;
    data->thumb_exe = ecore_exe_run(cmd.c_str(), data);
    if (!data->thumb_exe)
    {
        PlayerInfo_signal sig;
        sig.connect(callback);
        Params p;
        sig.emit(p);

        delete data;
    }
}
void ActivityAudioListView::browserShowAlbumTracks(Params &infos, int album_id, Params album_infos)
{
    if (!infos.Exists("count")) return;

    EmitSignal("browser,loading,stop", "calaos");

    album_infos.Add("count", infos["count"]);
    int count;
    from_string(infos["count"], count);

    CREATE_GENLIST_HELPER(glist);

    GenlistItemAlbumHeader *header = new GenlistItemAlbumHeader(evas, parent, player_current->getPlayer(), album_infos, album_id);
    header->Append(glist);
    for (int i = 0;i < count;i++)
    {
        GenlistItemTrack *item = new GenlistItemTrack(evas, parent, player_current->getPlayer(), i, GenlistItemTrack::TRACK_ALBUM, album_id);
        item->Append(glist, NULL);
    }

    elm_naviframe_item_push(pager_browser, NULL, NULL, NULL, glist, "calaos");
}
Esempio n. 7
0
string JsonApiClient::buildHttpResponse(string code, Params &headers, string body)
{
    stringstream res;

    //HTTP code
    res << code << "\r\n";

    if (!headers.Exists("Content-Length"))
        headers.Add("Content-Length", Utils::to_string(body.length()));

    if (request_headers["Connection"] == "close" ||
        request_headers["Connection"] == "Close")
    {
        headers.Add("Connection", "Close");
        cDebugDom("network")
                << "Client requested Connection: Close";
    }

    if (headers["Connection"] == "Close" || headers["Connection"] == "close")
        conn_close = true;
    else
        conn_close = false;

    //headers
    for (int i = 0;i < headers.size();i++)
    {
        string key, value;
        headers.get_item(i, key, value);
        res << key << ": " << value << "\r\n";
    }

    res << "\r\n";

    //body
    res << body;

    return res.str();
}
Esempio n. 8
0
void TimeRange::computeSunSetRise(int year, int month, int day,
                                  int &rise_hour, int &rise_min,
                                  int &set_hour, int &set_min)
{
    if (year == cyear && month == cmonth && day == cday &&
        (sunrise_hour_cache != 0 || sunrise_min_cache != 0 ||
         sunset_hour_cache != 0 || sunset_min_cache != 0))
    {
        rise_hour = sunrise_hour_cache;
        rise_min = sunrise_min_cache;
        set_hour = sunset_hour_cache;
        set_min = sunset_min_cache;

        return;
    }

    double longitude;
    double latitude;
    Params opt;

    get_config_options(opt);
    if (!opt.Exists("longitude") || !opt.Exists("latitude"))
    {
        longitude = 2.548828;
        latitude = 46.422713;

        cError() <<  "Horaire: To use sunset/sunrise, you have to set your longitude/latitude in configuration!";
        cError() <<  "Horaire: Please go to the webpage of the server to set these parameters.";
    }
    else
    {
        from_string(get_config_option("longitude"), longitude);
        from_string(get_config_option("latitude"), latitude);
    }

    double rise, set;
    int res;

    cInfo() <<  "Horaire: Computing sunrise/sunset for date " <<
                day << "/" << month << "/" << year;
    res = sun_rise_set(year, month, day, longitude, latitude, &rise, &set);

    if (res != 0)
    {
        rise_hour = 0;
        rise_min = 0;
        set_hour = 0;
        set_min = 0;

        cError() <<  "Horaire: Error in sunset/sunrise calculation!";

        return;
    }

    long tzOffset = getTimezoneOffset();
    rise_min = minutes(rise + minutes((double)tzOffset / 3600.0));
    rise_hour = hours(rise + (double)tzOffset / 3600.0);
    set_min = minutes(set + minutes((double)tzOffset / 3600.0));
    set_hour = hours(set + (double)tzOffset / 3600.0);

    std::stringstream streamrise, streamset;
    streamrise << std::setfill('0') << std::setw(2) << rise_hour << ":" << rise_min;
    streamset << std::setfill('0') << std::setw(2) << set_hour << ":" << set_min;
    cInfo() <<  "Horaire: sunrise is at " << streamrise.str() << " and sunset is at " <<
                streamset.str();

    sunrise_hour_cache = rise_hour;
    sunrise_min_cache = rise_min;
    sunset_hour_cache = set_hour;
    sunset_min_cache = set_min;
    cyear = year;
    cmonth = month;
    cday = day;
}