コード例 #1
0
ファイル: Commands.c プロジェクト: pixelmager/rocket
static void undoInsertKey(void* userData)
{
	struct InsertKeyData* data = (struct InsertKeyData*)userData;
	struct sync_track* t = s_syncTracks[data->track];
	sync_del_key(t, data->key.row);

	RemoteConnection_sendDeleteKeyCommand(t->name, data->key.row);
}
コード例 #2
0
ファイル: Commands.c プロジェクト: pixelmager/rocket
static void execDeleteKey(void* userData)
{
	struct DeleteKeyData* data = (struct DeleteKeyData*)userData;
	struct sync_track* t = s_syncTracks[data->track];
	int idx = sync_find_key(t, data->row);

	data->oldKey = t->keys[idx];
	sync_del_key(t, data->row);

	RemoteConnection_sendDeleteKeyCommand(t->name, data->row);
}
コード例 #3
0
ファイル: device.c プロジェクト: fcondolo/rocket
static int handle_del_key_cmd(SOCKET sock, struct sync_device *data)
{
	uint32_t track, row;

	if (xrecv(sock, (char *)&track, sizeof(track), 0) ||
	    xrecv(sock, (char *)&row, sizeof(row), 0))
		return -1;

	track = ntohl(track);
	row = ntohl(row);

	assert(track < data->num_tracks);
	return sync_del_key(data->tracks[track], row);
}
コード例 #4
0
ファイル: Commands.c プロジェクト: alkama/rocket
static void toggleMute(void* userData)
{
	struct MuteData* data = (struct MuteData*)userData;

	// if we have mute data we should toggle back the track to it's old form

	if (data->track->muteBackup)
	{
		int i;

		sync_del_key(data->syncTrack, 0);
		RemoteConnection_sendDeleteKeyCommand(data->syncTrack->name, 0);

		for (i = 0; i < data->track->muteKeyCount; ++i)
		{
			struct track_key* key = &data->track->muteBackup[i];

			sync_set_key(data->syncTrack, key);
			RemoteConnection_sendSetKeyCommand(data->syncTrack->name, key);
		}

		data->track->disabled = false;

		free(data->track->muteBackup);

		data->track->muteBackup = 0;
		data->track->muteKeyCount = 0;
	}
	else
	{
		struct track_key defKey;
		int i;
		size_t keysSize = sizeof(struct track_key) * data->syncTrack->num_keys;
		float currentValue = (float)sync_get_val(data->syncTrack, data->row);

		data->track->disabled = true;

		// No muteBackup, this means that we want to mute the channel

		data->track->muteBackup = malloc(keysSize);
		data->track->muteKeyCount = data->syncTrack->num_keys;

		memcpy(data->track->muteBackup, data->syncTrack->keys, keysSize);

		for (i = 0; i < data->syncTrack->num_keys; ++i)
		{
			int row = data->track->muteBackup[i].row;

			sync_del_key(data->syncTrack, row);
			RemoteConnection_sendDeleteKeyCommand(data->syncTrack->name, row);
		}

		defKey.row = 0;
		defKey.value = currentValue;
		defKey.type = KEY_STEP;

		// insert key with the current value

		sync_set_key(data->syncTrack, &defKey);
		RemoteConnection_sendSetKeyCommand(data->syncTrack->name, &defKey);
	}
}