예제 #1
0
파일: resources.c 프로젝트: m1nuz/neon-core
extern VERTEX_ARRAY*
store_vertices_buffers(const VIDEO_VERTICES_INFO *info) {
    store_buffer(info->vertices);
    store_buffer(info->elements);

    return store_vertex_array(info->array);
}
static void loop_store_buffer(MYSQL_STMT *stmt, MYSQL_BIND *bind, int total_blob_length, VALUE block, VALUE obj)
{
    long loops = abs(total_blob_length / bind->buffer_length);
    long i;
    for (i = 0; i < loops; ++i) {
        store_buffer(stmt, i * bind->buffer_length, bind, bind->buffer_length, block, obj);
    }
    int new_bufflen = total_blob_length % bind->buffer_length;
    if (new_bufflen) {
        store_buffer(stmt, loops * bind->buffer_length, bind, new_bufflen, block, obj);
    }
}
예제 #3
0
int main(){
	wave test;
	int samples = 2000000,i,j,sounds,f;
	wave_buffer **bufs;
	scanf("%d",&sounds);	
	bufs = (wave_buffer**) malloc( (sounds+1) * sizeof(wave_buffer*));
	for (i = 0;i < sounds;i++){
		bufs[i] = (wave_buffer*) malloc(sizeof(wave_buffer));
		init_buffer(bufs[i],mono,44100,16,samples);
		alloc_buffer(bufs[i]);
		scanf("%d",&f);
			for (j = 0; j < samples;j++)
				bufs[i]->buffer[j] = Round(sinf( (float) j / f) * 30000);	
	}
	
	bufs[i] = NULL;
	
	mix_wave_buffers(*bufs,bufs+1,0);

	buffer_make_chunk(*bufs,&test);
	wave_open_file("test.wav","wb",&test);
	wave_write_chunk(&test);
	store_buffer(*bufs,&test,0);
	wave_finalize(&test);
	wave_close_file(&test);
	
	for (i = 0; i < sounds;i++)
		free_buffer(bufs[i]);
	free(bufs);
	
}
예제 #4
0
void FileAccess::store_string(const String &p_string) {

	if (p_string.length() == 0)
		return;

	CharString cs = p_string.utf8();
	store_buffer((uint8_t *)&cs[0], cs.length());
}
예제 #5
0
파일: main.c 프로젝트: crane-may/cat_ear
void loop(){
	int i;
	static u8 zero[32] = {0};
	
	if (is_playing){
		int buf_len = mp3_buffer_len();
		static int last_second = -1;
		int second;
		
		store_buffer();
		
		if (buf_len < 32){
			for (i=0;i<8;i++) fill_mp3_buffer();
		}else if (mp3_need_data()){
			if (wifi_available_len() < 30 && last_second < 2){
				printf("oooooverrrrrrrrr\r\n");
				while (wifi_available_len() > 0) wifi_receive();
				mp3_input_data(zero);
				
				cur_song_init();
				is_playing = 0;
				return;
			}
			
			mp3_input_data(cur_song.buffer);
			for (i=32;i<cur_song.buffer_idx;i++){
				cur_song.buffer[i-32] = cur_song.buffer[i];
			}
			cur_song.buffer_idx -= 32;
			
			
			if (cur_song.frame_size > 0){
				second = cur_song.content_remain / cur_song.frame_size * 26 /1000;
				if (second != last_second)	printf("time : -%d\r\n",second);
				last_second = second;
			}
		}
	}else{
		char * sg;
		sg = next_song();
	
		printf(">>> %s\r\n",sg);
		send_fetch_song(sg);
		
		is_playing = 1;
	}
}
예제 #6
0
void _File::store_var(const Variant& p_var) {

    ERR_FAIL_COND(!f);
    int len;
    Error err = encode_variant(p_var,NULL,len);
    ERR_FAIL_COND( err != OK );

    DVector<uint8_t> buff;
    buff.resize(len);
    DVector<uint8_t>::Write w = buff.write();

    err = encode_variant(p_var,&w[0],len);
    ERR_FAIL_COND( err != OK );
    w=DVector<uint8_t>::Write();

    store_32(len);
    store_buffer(buff);
}
예제 #7
0
OM_uint32
gssEapExportSecContext(OM_uint32 *minor,
                       gss_ctx_id_t ctx,
                       gss_buffer_t token)
{
    OM_uint32 major, tmpMinor;
    size_t length;
    gss_buffer_desc initiatorName = GSS_C_EMPTY_BUFFER;
    gss_buffer_desc acceptorName = GSS_C_EMPTY_BUFFER;
    gss_buffer_desc partialCtx = GSS_C_EMPTY_BUFFER;
    gss_buffer_desc key;
    unsigned char *p;

    if ((CTX_IS_INITIATOR(ctx) && !CTX_IS_ESTABLISHED(ctx)) ||
        ctx->mechanismUsed == GSS_C_NO_OID) {
        *minor = GSSEAP_CONTEXT_INCOMPLETE;
        return GSS_S_NO_CONTEXT;
    }

    key.length = KRB_KEY_LENGTH(&ctx->rfc3961Key);
    key.value  = KRB_KEY_DATA(&ctx->rfc3961Key);

    if (ctx->initiatorName != GSS_C_NO_NAME) {
        major = gssEapExportNameInternal(minor, ctx->initiatorName,
                                         &initiatorName,
                                         EXPORT_NAME_FLAG_COMPOSITE);
        if (GSS_ERROR(major))
            goto cleanup;
    }

    if (ctx->acceptorName != GSS_C_NO_NAME) {
        major = gssEapExportNameInternal(minor, ctx->acceptorName,
                                         &acceptorName,
                                         EXPORT_NAME_FLAG_COMPOSITE);
        if (GSS_ERROR(major))
            goto cleanup;
    }

#ifdef GSSEAP_ENABLE_ACCEPTOR
    /*
     * The partial context is only transmitted for unestablished acceptor
     * contexts.
     */
    if (!CTX_IS_INITIATOR(ctx) && !CTX_IS_ESTABLISHED(ctx) &&
        (ctx->flags & CTX_FLAG_KRB_REAUTH) == 0) {
        major = gssEapExportPartialContext(minor, ctx, &partialCtx);
        if (GSS_ERROR(major))
            goto cleanup;
    }
#endif

    length  = 16;                               /* version, state, flags, */
    length += 4 + ctx->mechanismUsed->length;   /* mechanismUsed */
    length += 12 + key.length;                  /* rfc3961Key.value */
    length += 4 + initiatorName.length;         /* initiatorName.value */
    length += 4 + acceptorName.length;          /* acceptorName.value */
    length += 24 + sequenceSize(ctx->seqState); /* seqState */

    if (partialCtx.value != NULL)
        length += 4 + partialCtx.length;        /* partialCtx.value */

    token->value = GSSEAP_MALLOC(length);
    if (token->value == NULL) {
        major = GSS_S_FAILURE;
        *minor = ENOMEM;
        goto cleanup;
    }
    token->length = length;

    p = (unsigned char *)token->value;

    store_uint32_be(EAP_EXPORT_CONTEXT_V1, &p[0]);        /* version */
    store_uint32_be(GSSEAP_SM_STATE(ctx),  &p[4]);
    store_uint32_be(ctx->flags,            &p[8]);
    store_uint32_be(ctx->gssFlags,         &p[12]);
    p = store_oid(ctx->mechanismUsed,      &p[16]);

    store_uint32_be(ctx->checksumType,     &p[0]);
    store_uint32_be(ctx->encryptionType,   &p[4]);
    p = store_buffer(&key,                 &p[8], FALSE);

    p = store_buffer(&initiatorName,       p, FALSE);
    p = store_buffer(&acceptorName,        p, FALSE);

    store_uint64_be(ctx->expiryTime,       &p[0]);
    store_uint64_be(ctx->sendSeq,          &p[8]);
    store_uint64_be(ctx->recvSeq,          &p[16]);
    p += 24;

    major = sequenceExternalize(minor, ctx->seqState, &p, &length);
    if (GSS_ERROR(major))
        goto cleanup;

    if (partialCtx.value != NULL)
        p = store_buffer(&partialCtx, p, FALSE);

    GSSEAP_ASSERT(p == (unsigned char *)token->value + token->length);

    major = GSS_S_COMPLETE;
    *minor = 0;

cleanup:
    if (GSS_ERROR(major))
        gss_release_buffer(&tmpMinor, token);
    gss_release_buffer(&tmpMinor, &initiatorName);
    gss_release_buffer(&tmpMinor, &acceptorName);
    gss_release_buffer(&tmpMinor, &partialCtx);

    return major;
}
예제 #8
0
void FileAccess::store_pascal_string(const String &p_string) {

	CharString cs = p_string.utf8();
	store_32(cs.length());
	store_buffer((uint8_t *)&cs[0], cs.length());
};